(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (FuncDef
      name: set-broken-motd
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir op_id:Redir_Great fd:-1 arg_word:{(/etc/motd)} spids:[85])
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ 
                        (
"Broken (or in progress) Kubernetes node setup! Check the cluster initialization status\n"
                        ) ("using the following commands.\n") ("\n") ("Master instance:\n") 
                        ("  - sudo systemctl status kube-master-installation\n") ("  - sudo systemctl status kube-master-configuration\n") ("\n") ("Node instance:\n") 
                        ("  - sudo systemctl status kube-node-installation\n") ("  - sudo systemctl status kube-node-configuration\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [89]
                )
              ]
            )
          ]
          spids: [80]
        )
      spids: [76 79]
    )
    (FuncDef
      name: download-kube-env
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tmp_kube_env)
                  op: Equal
                  rhs: {(DQ (/tmp/kube-env.yaml))}
                  spids: [120]
                )
              ]
              spids: [116]
            )
            (C {(curl)} {(--fail)} {(--retry)} {(5)} {(--retry-delay)} {(3)} {(--silent)} {(--show-error)} 
              {(-H)} {(DQ ("X-Google-Metadata-Request: True"))} {(-o)} {(DQ (${ VSub_Name tmp_kube_env))} 
              {(http) (Lit_Other ":") 
                (//metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env)
              }
            )
            (C {(eval)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (SimpleCommand
                          words: [
                            {(python)}
                            {(-c)}
                            {(SQ ) 
                              (SQ <"\n"> <"import pipes,sys,yaml\n"> 
                                <"for k,v in yaml.load(sys.stdin).iteritems():\n"> <"  print(\"readonly {var}={value}\".format(var = k, value = pipes.quote(str(v))))\n">
                              ) (SQ )
                            }
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_Less
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name tmp_kube_env))}
                              spids: [189]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name KUBE_HOME) (/kube-env))}
                              spids: [197]
                            )
                          ]
                        )
                      ]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [173 205]
                )
              }
            )
            (C {(rm)} {(-f)} {(DQ (${ VSub_Name tmp_kube_env))})
          ]
          spids: [109]
        )
      spids: [105 108]
    )
    (FuncDef
      name: download-kube-master-certs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tmp_kube_master_certs)
                  op: Equal
                  rhs: {(DQ (/tmp/kube-master-certs.yaml))}
                  spids: [236]
                )
              ]
              spids: [232]
            )
            (C {(curl)} {(--fail)} {(--retry)} {(5)} {(--retry-delay)} {(3)} {(--silent)} {(--show-error)} 
              {(-H)} {(DQ ("X-Google-Metadata-Request: True"))} {(-o)} {(DQ (${ VSub_Name tmp_kube_master_certs))} 
              {(http) (Lit_Other ":") 
                (
//metadata.google.internal/computeMetadata/v1/instance/attributes/kube-master-certs
                )
              }
            )
            (C {(eval)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (SimpleCommand
                          words: [
                            {(python)}
                            {(-c)}
                            {(SQ ) 
                              (SQ <"\n"> <"import pipes,sys,yaml\n"> 
                                <"for k,v in yaml.load(sys.stdin).iteritems():\n"> <"  print(\"readonly {var}={value}\".format(var = k, value = pipes.quote(str(v))))\n">
                              ) (SQ )
                            }
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_Less
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name tmp_kube_master_certs))}
                              spids: [305]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name KUBE_HOME) (/kube-master-certs))}
                              spids: [313]
                            )
                          ]
                        )
                      ]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [289 321]
                )
              }
            )
            (C {(rm)} {(-f)} {(DQ (${ VSub_Name tmp_kube_master_certs))})
          ]
          spids: [225]
        )
      spids: [221 224]
    )
    (FuncDef
      name: validate-hash
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [348]
                )
              ]
              spids: [344]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:expected)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$2"))}
                  spids: [358]
                )
              ]
              spids: [354]
            )
            (AndOr
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:actual)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(sha1sum)} {(${ VSub_Name file)})
                                      (C {(awk)} {(SQ <"{ print $1 }">)})
                                    ]
                                    negated: False
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub "$(">
                            spids: [366 380]
                          )
                        }
                      spids: [365]
                    )
                  ]
                  spids: [365]
                )
                (C {(true)})
              ]
              op_id: Op_DPipe
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: {(DQ (${ VSub_Name actual))}
                              right: {(DQ (${ VSub_Name expected))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ("== ") (${ VSub_Name file) (" corrupted, sha1 ") (${ VSub_Name actual) 
                          (" doesn't match expected ") (${ VSub_Name expected) (" ==")
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [-1 408]
                )
              ]
              spids: [-1 435]
            )
          ]
          spids: [341]
        )
      spids: [337 340]
    )
    (FuncDef
      name: download-or-bust
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:hash)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [463]
                )
              ]
              spids: [459]
            )
            (C {(shift)} {(1)})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:urls)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{($ VSub_Star "$*")}])}
                  spids: [479]
                )
              ]
              spids: [475]
            )
            (While
              cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)]
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: url
                      iter_words: [
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name urls>
                              bracket_op: (WholeArray op_id:Lit_At)
                              spids: [502 507]
                            )
                          )
                        }
                      ]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:file)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name url>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_DPound
                                              arg_word: {("*") (Lit_Slash /)}
                                            )
                                          spids: [518 523]
                                        )
                                      )
                                    }
                                  spids: [516]
                                )
                              ]
                              spids: [514]
                            )
                            (C {(rm)} {(-f)} {(DQ (${ VSub_Name file))})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(curl)} {(-f)} {(--ipv4)} {(-Lo)} 
                                              {(DQ (${ VSub_Name file))} {(--connect-timeout)} {(20)} {(--max-time)} {(300)} {(--retry)} {(6)} {(--retry-delay)} {(10)} 
                                              {(DQ (${ VSub_Name url))}
                                            )
                                          ]
                                          negated: True
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ("== Failed to download ") (${ VSub_Name url) 
                                          (". Retrying. ==")
                                        )
                                      }
                                    )
                                  ]
                                  spids: [-1 579]
                                )
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (DBracket
                                              expr: 
                                                (BoolUnary
                                                  op_id: BoolUnary_n
                                                  child: {(DQ (${ VSub_Name hash))}
                                                )
                                            )
                                            (Pipeline
                                              children: [
                                                (C {(validate-hash)} {(DQ (${ VSub_Name file))} 
                                                  {(DQ (${ VSub_Name hash))}
                                                )
                                              ]
                                              negated: True
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ("== Hash validation of ") (${ VSub_Name url) 
                                          (" failed. Retrying. ==")
                                        )
                                      }
                                    )
                                  ]
                                  spids: [593 626]
                                )
                              ]
                              else_action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolUnary
                                                  op_id: BoolUnary_n
                                                  child: {(DQ (${ VSub_Name hash))}
                                                )
                                            )
                                          terminator: <Op_Semi ";">
                                        )
                                      ]
                                      action: [
                                        (C {(echo)} 
                                          {
                                            (DQ ("== Downloaded ") (${ VSub_Name url) (" (SHA1 = ") 
                                              (${ VSub_Name hash) (") ==")
                                            )
                                          }
                                        )
                                      ]
                                      spids: [-1 658]
                                    )
                                  ]
                                  else_action: [
                                    (C {(echo)} {(DQ ("== Downloaded ") (${ VSub_Name url) (" =="))})
                                  ]
                                  spids: [676 690]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                )
                              ]
                              spids: [640 696]
                            )
                          ]
                          spids: [511 699]
                        )
                      spids: [500 509]
                    )
                  ]
                  spids: [492 702]
                )
            )
          ]
          spids: [456]
        )
      spids: [452 455]
    )
    (FuncDef
      name: is-preloaded
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:key)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [718]
                )
              ]
              spids: [714]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:value)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [726]
                )
              ]
              spids: [722]
            )
            (C {(grep)} {(-qs)} {(DQ (${ VSub_Name key) (",") (${ VSub_Name value))} 
              {(DQ (${ VSub_Name KUBE_HOME) (/preload_info))}
            )
          ]
          spids: [711]
        )
      spids: [707 710]
    )
    (FuncDef
      name: split-commas
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(echo)} {($ VSub_Number "$1")})
                (C {(tr)} {(DQ (","))} {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))})
              ]
              negated: False
            )
          ]
          spids: [758]
        )
      spids: [754 757]
    )
    (FuncDef
      name: install-gci-mounter-tools
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CONTAINERIZED_MOUNTER_HOME)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/containerized_mounter))}
                  spids: [787]
                )
              ]
              spids: [787]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mounter_tar_sha)
                  op: Equal
                  rhs: {(DQ (8003b798cf33c7f91320cd6ee5cec4fa22244571))}
                  spids: [800]
                )
              ]
              spids: [796]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(is-preloaded)} {(DQ (mounter))} {(DQ (${ VSub_Name mounter_tar_sha))})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("mounter is preloaded."))})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 821]
                )
              ]
              spids: [-1 834]
            )
            (C {(echo)} {(DQ ("Downloading gci mounter tools."))})
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name CONTAINERIZED_MOUNTER_HOME))})
            (C {(chmod)} {(a) (Lit_Other "+") (x)} {(DQ (${ VSub_Name CONTAINERIZED_MOUNTER_HOME))})
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name CONTAINERIZED_MOUNTER_HOME) (/rootfs))})
            (C {(download-or-bust)} {(DQ (${ VSub_Name mounter_tar_sha))} 
              {(DQ ("https://storage.googleapis.com/kubernetes-release/gci-mounter/mounter.tar"))}
            )
            (C {(cp)} 
              {(DQ (${ VSub_Name KUBE_HOME) (/kube-manifests/kubernetes/gci-trusty/gci-mounter))} {(DQ (${ VSub_Name CONTAINERIZED_MOUNTER_HOME) (/mounter))}
            )
            (C {(chmod)} {(a) (Lit_Other "+") (x)} 
              {(DQ (${ VSub_Name CONTAINERIZED_MOUNTER_HOME) (/mounter))}
            )
            (C {(mv)} {(DQ (${ VSub_Name KUBE_HOME) (/mounter.tar))} {(/tmp/mounter.tar)})
            (C {(tar)} {(xf)} {(/tmp/mounter.tar)} {(-C)} 
              {(DQ (${ VSub_Name CONTAINERIZED_MOUNTER_HOME) (/rootfs))}
            )
            (C {(rm)} {(/tmp/mounter.tar)})
            (C {(mkdir)} {(-p)} 
              {(DQ (${ VSub_Name CONTAINERIZED_MOUNTER_HOME) (/rootfs/var/lib/kubelet))}
            )
          ]
          spids: [784]
        )
      spids: [780 783]
    )
    (FuncDef
      name: install-node-problem-detector
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NODE_PROBLEM_DETECTOR_VERSION>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [989 992]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:npd_version)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name NODE_PROBLEM_DETECTOR_VERSION))}
                          spids: [1005]
                        )
                      ]
                      spids: [1001]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:npd_sha1)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name NODE_PROBLEM_DETECTOR_TAR_HASH))}
                          spids: [1017]
                        )
                      ]
                      spids: [1013]
                    )
                  ]
                  spids: [-1 998]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Local
                  flags: ["'-r'"]
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:npd_version)
                      op: Equal
                      rhs: {(DQ (v0.4.1))}
                      spids: [1032]
                    )
                  ]
                  spids: [1028]
                )
                (Assignment
                  keyword: Assign_Local
                  flags: ["'-r'"]
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:npd_sha1)
                      op: Equal
                      rhs: {(DQ (a57a3fe64cab8a18ec654f5cef0aec59dae62568))}
                      spids: [1042]
                    )
                  ]
                  spids: [1038]
                )
              ]
              spids: [1025 1048]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(is-preloaded)} {(DQ (node-problem-detector))} {(DQ (${ VSub_Name npd_sha1))})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("node-problem-detector is preloaded."))})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 1067]
                )
              ]
              spids: [-1 1080]
            )
            (C {(echo)} {(DQ ("Downloading node problem detector."))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:npd_release_path)
                  op: Equal
                  rhs: {(DQ ("https://storage.googleapis.com/kubernetes-release"))}
                  spids: [1095]
                )
              ]
              spids: [1091]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:npd_tar)
                  op: Equal
                  rhs: {(DQ (node-problem-detector-) (${ VSub_Name npd_version) (.tar.gz))}
                  spids: [1105]
                )
              ]
              spids: [1101]
            )
            (C {(download-or-bust)} {(DQ (${ VSub_Name npd_sha1))} 
              {(DQ (${ VSub_Name npd_release_path) (/node-problem-detector/) (${ VSub_Name npd_tar))}
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:npd_dir)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/node-problem-detector))}
                  spids: [1138]
                )
              ]
              spids: [1134]
            )
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name npd_dir))})
            (C {(tar)} {(xzf)} {(DQ (${ VSub_Name KUBE_HOME) (/) (${ VSub_Name npd_tar))} {(-C)} 
              {(DQ (${ VSub_Name npd_dir))} {(--overwrite)}
            )
            (C {(mv)} {(DQ (${ VSub_Name npd_dir) (/bin)) (/) (Lit_Other "*")} 
              {(DQ (${ VSub_Name KUBE_BIN))}
            )
            (C {(chmod)} {(a) (Lit_Other "+") (x)} 
              {(DQ (${ VSub_Name KUBE_BIN) (/node-problem-detector))}
            )
            (C {(rmdir)} {(DQ (${ VSub_Name npd_dir) (/bin))})
            (C {(rm)} {(-f)} {(DQ (${ VSub_Name KUBE_HOME) (/) (${ VSub_Name npd_tar))})
          ]
          spids: [979]
        )
      spids: [975 978]
    )
    (FuncDef
      name: install-cni-binaries
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cni_tar)
                  op: Equal
                  rhs: {(DQ (cni-0799f5732f2a11b329d9e3d51b9c8f2e3759f2ff.tar.gz))}
                  spids: [1257]
                )
              ]
              spids: [1253]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cni_sha1)
                  op: Equal
                  rhs: {(DQ (1d9788b0f5420e1a219aad2cb8681823fc515e7c))}
                  spids: [1267]
                )
              ]
              spids: [1263]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(is-preloaded)} {(DQ (${ VSub_Name cni_tar))} {(DQ (${ VSub_Name cni_sha1))})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ (${ VSub_Name cni_tar) (" is preloaded."))})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 1290]
                )
              ]
              spids: [-1 1306]
            )
            (C {(echo)} {(DQ ("Downloading cni binaries"))})
            (C {(download-or-bust)} {(DQ (${ VSub_Name cni_sha1))} 
              {
                (DQ ("https://storage.googleapis.com/kubernetes-release/network-plugins/") 
                  (${ VSub_Name cni_tar)
                )
              }
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cni_dir)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/cni))}
                  spids: [1337]
                )
              ]
              spids: [1333]
            )
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name cni_dir))})
            (C {(tar)} {(xzf)} {(DQ (${ VSub_Name KUBE_HOME) (/) (${ VSub_Name cni_tar))} {(-C)} 
              {(DQ (${ VSub_Name cni_dir))} {(--overwrite)}
            )
            (C {(mv)} {(DQ (${ VSub_Name cni_dir) (/bin)) (/) (Lit_Other "*")} 
              {(DQ (${ VSub_Name KUBE_BIN))}
            )
            (C {(rmdir)} {(DQ (${ VSub_Name cni_dir) (/bin))})
            (C {(rm)} {(-f)} {(DQ (${ VSub_Name KUBE_HOME) (/) (${ VSub_Name cni_tar))})
          ]
          spids: [1246]
        )
      spids: [1242 1245]
    )
    (FuncDef
      name: install-kube-manifests
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dst_dir)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/kube-manifests))}
                  spids: [1440]
                )
              ]
              spids: [1438]
            )
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name dst_dir))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:manifests_tar_urls)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(split-commas)} {(DQ (${ VSub_Name KUBE_MANIFESTS_TAR_URL))})
                                  ]
                                )
                              left_token: <Left_CommandSub "$(">
                              spids: [1467 1475]
                            )
                          }
                        ]
                      )
                    }
                  spids: [1464]
                )
              ]
              spids: [1460]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:manifests_tar)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name manifests_tar_urls>
                          bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                          suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)})
                          spids: [1486 1494]
                        )
                      )
                    }
                  spids: [1484]
                )
              ]
              spids: [1480]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name KUBE_MANIFESTS_TAR_HASH>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [1505 1508]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:manifests_tar_hash)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name KUBE_MANIFESTS_TAR_HASH))}
                          spids: [1521]
                        )
                      ]
                      spids: [1517]
                    )
                  ]
                  spids: [-1 1514]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ("Downloading k8s manifests sha1 (not found in env)"))})
                (C {(download-or-bust)} {(DQ )} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name manifests_tar_urls>
                        bracket_op: (WholeArray op_id:Lit_At)
                        suffix_op: 
                          (PatSub
                            pat: {(.tar.gz)}
                            replace: {(.tar.gz.sha1)}
                            do_all: False
                            do_prefix: False
                            do_suffix: False
                          )
                        spids: [1545 1554]
                      )
                    )
                  }
                )
                (Assignment
                  keyword: Assign_Local
                  flags: ["'-r'"]
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:manifests_tar_hash)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(cat)} {(DQ (${ VSub_Name manifests_tar) (.sha1))})]
                              )
                            left_token: <Left_CommandSub "$(">
                            spids: [1563 1572]
                          )
                        }
                      spids: [1562]
                    )
                  ]
                  spids: [1558]
                )
              ]
              spids: [1529 1575]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(is-preloaded)} {(DQ (${ VSub_Name manifests_tar))} 
                          {(DQ (${ VSub_Name manifests_tar_hash))}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ (${ VSub_Name manifests_tar) (" is preloaded."))})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 1596]
                )
              ]
              spids: [-1 1612]
            )
            (C {(echo)} {(DQ ("Downloading k8s manifests tar"))})
            (C {(download-or-bust)} {(DQ (${ VSub_Name manifests_tar_hash))} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name manifests_tar_urls>
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [1632 1637]
                  )
                )
              }
            )
            (C {(tar)} {(xzf)} {(DQ (${ VSub_Name KUBE_HOME) (/) (${ VSub_Name manifests_tar))} {(-C)} 
              {(DQ (${ VSub_Name dst_dir))} {(--overwrite)}
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_addon_registry)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name KUBE_ADDON_REGISTRY>
                          suffix_op: 
                            (StringUnary
                              op_id: VTest_ColonHyphen
                              arg_word: {(gcr.io) (Lit_Slash /) (google_containers)}
                            )
                          spids: [1672 1678]
                        )
                      )
                    }
                  spids: [1670]
                )
              ]
              spids: [1666]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: {(DQ (${ VSub_Name kube_addon_registry))}
                              right: {(DQ (gcr.io/google_containers))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (C {(find)} {(DQ (${ VSub_Name dst_dir))} {(-name)} 
                          {(EscapedLiteralPart token:<Lit_EscapedChar "\\*">) (.yaml)} {(-or)} {(-name)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\*">) (.yaml.in)}
                        )
                        (C {(xargs)} {(sed)} {(-ri)} 
                          {
                            (DQ ("s@(image:") (EscapedLiteralPart token:<Lit_EscapedChar "\\s">) 
                              (".*)gcr.io/google_containers@") (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (${ VSub_Name kube_addon_registry) ("@")
                            )
                          }
                        )
                      ]
                      negated: False
                    )
                    (Pipeline
                      children: [
                        (C {(find)} {(DQ (${ VSub_Name dst_dir))} {(-name)} 
                          {(EscapedLiteralPart token:<Lit_EscapedChar "\\*">) (.manifest)} {(-or)} {(-name)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\*">) (.json)}
                        )
                        (C {(xargs)} {(sed)} {(-ri)} 
                          {
                            (DQ ("s@(image") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (":") 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar "\\s">
                              ) ("+") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (")gcr.io/google_containers@") 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar "\\1">
                              ) (${ VSub_Name kube_addon_registry) ("@")
                            )
                          }
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [-1 1701]
                )
              ]
              spids: [-1 1792]
            )
            (C {(cp)} {(DQ (${ VSub_Name dst_dir) (/kubernetes/gci-trusty/gci-configure-helper.sh))} 
              {(DQ (${ VSub_Name KUBE_BIN) (/configure-helper.sh))}
            )
            (C {(cp)} {(DQ (${ VSub_Name dst_dir) (/kubernetes/gci-trusty/health-monitor.sh))} 
              {(DQ (${ VSub_Name KUBE_BIN) (/health-monitor.sh))}
            )
            (C {(rm)} {(-f)} {(DQ (${ VSub_Name KUBE_HOME) (/) (${ VSub_Name manifests_tar))})
            (C {(rm)} {(-f)} {(DQ (${ VSub_Name KUBE_HOME) (/) (${ VSub_Name manifests_tar) (.sha1))})
          ]
          spids: [1431]
        )
      spids: [1427 1430]
    )
    (FuncDef
      name: try-load-docker-image
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:img)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [1883]
                )
              ]
              spids: [1879]
            )
            (C {(echo)} {(DQ ("Try to load docker image file ") (${ VSub_Name img))})
            (C {(set)} {(Lit_Other "+") (e)})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [(assign_pair lhs:(LhsName name:max_attempts) op:Equal rhs:{(5)} spids:[1911])]
              spids: [1907]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-i'"]
              pairs: [(assign_pair lhs:(LhsName name:attempt_num) op:Equal rhs:{(1)} spids:[1919])]
              spids: [1915]
            )
            (Until
              cond: [
                (Sentence
                  child: (C {(timeout)} {(30)} {(docker)} {(load)} {(-i)} {(DQ (${ VSub_Name img))})
                  terminator: <Op_Semi ";">
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(DQ (${ VSub_Name attempt_num))}
                                      right: {(DQ (${ VSub_Name max_attempts))}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ ("Fail to load docker image file ") (${ VSub_Name img) (" after ") 
                                  (${ VSub_Name max_attempts) (" retries. Exit!!")
                                )
                              }
                            )
                            (C {(exit)} {(1)})
                          ]
                          spids: [-1 1966]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:attempt_num)
                              op: Equal
                              rhs: 
                                {
                                  (ArithSubPart
                                    anode: 
                                      (ArithBinary
                                        op_id: Arith_Plus
                                        left: (ArithVarRef name:attempt_num)
                                        right: (ArithWord w:{(Lit_Digits 1)})
                                      )
                                    spids: [1993 1998]
                                  )
                                }
                              spids: [1992]
                            )
                          ]
                          spids: [1992]
                        )
                        (C {(sleep)} {(5)})
                      ]
                      spids: [1989 2006]
                    )
                  ]
                  spids: [1942 2009]
                )
            )
            (C {(set)} {(-e)})
          ]
          spids: [1876]
        )
      spids: [1872 1875]
    )
    (FuncDef
      name: load-docker-images
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Start loading kube-system docker images"))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:img_dir)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/kube-docker-files))}
                  spids: [2047]
                )
              ]
              spids: [2043]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBERNETES_MASTER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [2061 2064]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(try-load-docker-image)} {(DQ (${ VSub_Name img_dir) (/kube-apiserver.tar))})
                    (C {(try-load-docker-image)} 
                      {(DQ (${ VSub_Name img_dir) (/kube-controller-manager.tar))}
                    )
                    (C {(try-load-docker-image)} {(DQ (${ VSub_Name img_dir) (/kube-scheduler.tar))})
                  ]
                  spids: [-1 2076]
                )
              ]
              else_action: [
                (C {(try-load-docker-image)} {(DQ (${ VSub_Name img_dir) (/kube-proxy.tar))})
              ]
              spids: [2109 2122]
            )
          ]
          spids: [2033]
        )
      spids: [2029 2032]
    )
    (FuncDef
      name: install-kube-binary-config
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ (${ VSub_Name KUBE_HOME))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:server_binary_tar_urls)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(split-commas)} {(DQ (${ VSub_Name SERVER_BINARY_TAR_URL))})
                                  ]
                                )
                              left_token: <Left_CommandSub "$(">
                              spids: [2156 2164]
                            )
                          }
                        ]
                      )
                    }
                  spids: [2153]
                )
              ]
              spids: [2149]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:server_binary_tar)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name server_binary_tar_urls>
                          bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                          suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)})
                          spids: [2175 2183]
                        )
                      )
                    }
                  spids: [2173]
                )
              ]
              spids: [2169]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name SERVER_BINARY_TAR_HASH>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [2194 2197]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:server_binary_tar_hash)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name SERVER_BINARY_TAR_HASH))}
                          spids: [2210]
                        )
                      ]
                      spids: [2206]
                    )
                  ]
                  spids: [-1 2203]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ("Downloading binary release sha1 (not found in env)"))})
                (C {(download-or-bust)} {(DQ )} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name server_binary_tar_urls>
                        bracket_op: (WholeArray op_id:Lit_At)
                        suffix_op: 
                          (PatSub
                            pat: {(.tar.gz)}
                            replace: {(.tar.gz.sha1)}
                            do_all: False
                            do_prefix: False
                            do_suffix: False
                          )
                        spids: [2234 2243]
                      )
                    )
                  }
                )
                (Assignment
                  keyword: Assign_Local
                  flags: ["'-r'"]
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:server_binary_tar_hash)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(cat)} {(DQ (${ VSub_Name server_binary_tar) (.sha1))})]
                              )
                            left_token: <Left_CommandSub "$(">
                            spids: [2252 2261]
                          )
                        }
                      spids: [2251]
                    )
                  ]
                  spids: [2247]
                )
              ]
              spids: [2218 2264]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(is-preloaded)} {(DQ (${ VSub_Name server_binary_tar))} 
                          {(DQ (${ VSub_Name server_binary_tar_hash))}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(echo)} {(DQ (${ VSub_Name server_binary_tar) (" is preloaded."))})]
                  spids: [-1 2285]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ("Downloading binary release tar"))})
                (C {(download-or-bust)} {(DQ (${ VSub_Name server_binary_tar_hash))} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name server_binary_tar_urls>
                        bracket_op: (WholeArray op_id:Lit_At)
                        spids: [2317 2322]
                      )
                    )
                  }
                )
                (C {(tar)} {(xzf)} {(DQ (${ VSub_Name KUBE_HOME) (/) (${ VSub_Name server_binary_tar))} 
                  {(-C)} {(DQ (${ VSub_Name KUBE_HOME))} {(--overwrite)}
                )
                (Assignment
                  keyword: Assign_Local
                  flags: ["'-r'"]
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:src_dir)
                      op: Equal
                      rhs: {(DQ (${ VSub_Name KUBE_HOME) (/kubernetes/server/bin))}
                      spids: [2359]
                    )
                  ]
                  spids: [2355]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:dst_dir)
                      op: Equal
                      rhs: {(DQ (${ VSub_Name KUBE_HOME) (/kube-docker-files))}
                      spids: [2370]
                    )
                  ]
                  spids: [2368]
                )
                (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name dst_dir))})
                (C {(cp)} {(DQ (${ VSub_Name src_dir) (/)) (Lit_Other "*") (.docker_tag)} 
                  {(DQ (${ VSub_Name dst_dir))}
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name KUBERNETES_MASTER>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [2413 2416]
                                        )
                                      )
                                    }
                                  right: {(DQ (false))}
                                )
                            )
                          terminator: <Op_Semi ";">
                        )
                      ]
                      action: [
                        (C {(cp)} {(DQ (${ VSub_Name src_dir) (/kube-proxy.tar))} 
                          {(DQ (${ VSub_Name dst_dir))}
                        )
                      ]
                      spids: [-1 2428]
                    )
                  ]
                  else_action: [
                    (C {(cp)} {(DQ (${ VSub_Name src_dir) (/kube-apiserver.tar))} 
                      {(DQ (${ VSub_Name dst_dir))}
                    )
                    (C {(cp)} {(DQ (${ VSub_Name src_dir) (/kube-controller-manager.tar))} 
                      {(DQ (${ VSub_Name dst_dir))}
                    )
                    (C {(cp)} {(DQ (${ VSub_Name src_dir) (/kube-scheduler.tar))} 
                      {(DQ (${ VSub_Name dst_dir))}
                    )
                    (C {(cp)} {(-r)} {(DQ (${ VSub_Name KUBE_HOME) (/kubernetes/addons))} 
                      {(DQ (${ VSub_Name dst_dir))}
                    )
                  ]
                  spids: [2447 2516]
                )
                (C {(load-docker-images)})
                (C {(mv)} {(DQ (${ VSub_Name src_dir) (/kubelet))} {(DQ (${ VSub_Name KUBE_BIN))})
                (C {(mv)} {(DQ (${ VSub_Name src_dir) (/kubectl))} {(DQ (${ VSub_Name KUBE_BIN))})
                (C {(mv)} {(DQ (${ VSub_Name KUBE_HOME) (/kubernetes/LICENSES))} 
                  {(DQ (${ VSub_Name KUBE_HOME))}
                )
                (C {(mv)} {(DQ (${ VSub_Name KUBE_HOME) (/kubernetes/kubernetes-src.tar.gz))} 
                  {(DQ (${ VSub_Name KUBE_HOME))}
                )
              ]
              spids: [2298 2587]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name KUBERNETES_MASTER>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [2596 2599]
                                        )
                                      )
                                    }
                                  right: {(DQ (false))}
                                )
                            )
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name ENABLE_NODE_PROBLEM_DETECTOR>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [2617 2620]
                                        )
                                      )
                                    }
                                  right: {(DQ (standalone))}
                                )
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(install-node-problem-detector)})]
                  spids: [-1 2632]
                )
              ]
              spids: [-1 2638]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name NETWORK_PROVIDER>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [2647 2650]
                                        )
                                      )
                                    }
                                  right: {(DQ (kubenet))}
                                )
                            )
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name NETWORK_PROVIDER>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [2668 2671]
                                        )
                                      )
                                    }
                                  right: {(DQ (cni))}
                                )
                            )
                          ]
                          op_id: Op_DPipe
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(install-cni-binaries)})]
                  spids: [-1 2683]
                )
              ]
              spids: [-1 2689]
            )
            (C {(install-kube-manifests)})
            (C {(chmod)} {(-R)} {(755)} {(DQ (${ VSub_Name KUBE_BIN))})
            (C {(install-gci-mounter-tools)})
            (C {(rm)} {(-rf)} {(DQ (${ VSub_Name KUBE_HOME) (/kubernetes))})
            (C {(rm)} {(-f)} {(DQ (${ VSub_Name KUBE_HOME) (/) (${ VSub_Name server_binary_tar))})
            (C {(rm)} {(-f)} {(DQ (${ VSub_Name KUBE_HOME) (/) (${ VSub_Name server_binary_tar) (.sha1))})
          ]
          spids: [2137]
        )
      spids: [2133 2136]
    )
    (C {(echo)} {(DQ ("Start to install kubernetes files"))})
    (C {(set-broken-motd)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_HOME)
          op: Equal
          rhs: {(DQ (/home/kubernetes))}
          spids: [2782]
        )
      ]
      spids: [2782]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_BIN)
          op: Equal
          rhs: {(DQ (${ VSub_Name KUBE_HOME) (/bin))}
          spids: [2787]
        )
      ]
      spids: [2787]
    )
    (C {(download-kube-env)})
    (C {(source)} {(DQ (${ VSub_Name KUBE_HOME) (/kube-env))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name KUBERNETES_MASTER>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [2811 2814]
                            )
                          )
                        }
                      right: {(DQ (true))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(download-kube-master-certs)})]
          spids: [-1 2826]
        )
      ]
      spids: [-1 2831]
    )
    (C {(install-kube-binary-config)})
    (C {(echo)} {(DQ ("Done for installing kubernetes files"))})
  ]
)