(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_ROOT)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [80 88]
              ) (/..)
            }
          spids: [79]
        )
      ]
      spids: [79]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/env.sh))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/env.sh))})]
          spids: [16777215 108]
        )
      ]
      spids: [16777215 120]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/kube-util.sh))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DEPRECATED_PROVIDERS)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  {(DQ (centos))}
                  {(DQ (libvert-coreos))}
                  {(DQ (local))}
                  {(DQ (openstack-heat))}
                  {(DQ (photon-controller))}
                  {(DQ (vagrant))}
                  {(DQ (vsphere))}
                  {(DQ (windows))}
                ]
              )
            }
          spids: [133]
        )
      ]
      spids: [133]
    )
    (ForEach
      iter_name: provider
      iter_words: [
        {
          (DQ 
            (BracedVarSub
              token: <VSub_Name DEPRECATED_PROVIDERS>
              bracket_op: (WholeArray op_id:Lit_At)
              spids: [186 191]
            )
          )
        }
      ]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (${ VSub_Name KUBERNETES_PROVIDER))}
                              right: {(DQ (${ VSub_Name provider))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: 16777215
                          body: 
                            {
                              (DQ ('\n') ('!!! DEPRECATION NOTICE !!!\n') ('\n') ("The '") 
                                (${ VSub_Name provider) ("' kube-up provider is deprecated and will be removed in a future\n") 
                                (
'release of kubernetes. Deprecated providers will be removed within 2 releases.\n'
                                ) ('\n') ('See https://github.com/kubernetes/kubernetes/issues/49213 for more info.\n') ('\n')
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: T
                          spids: [224]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 1
                          arg_word: {(2)}
                          spids: [227]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [16777215 219]
                )
              ]
              spids: [16777215 247]
            )
          ]
          spids: [195 249]
        )
      spids: [184 193]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name ZONE>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(EmptyPart)})
                        spids: [259 262]
                      )
                    )
                  } {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ('... Starting cluster using provider: ') (${ VSub_Name KUBERNETES_PROVIDER))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[280])]
            )
          ]
          spids: [16777215 268]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [
            {(echo)}
            {
              (DQ ('... Starting cluster in ') (${ VSub_Name ZONE) (' using provider ') 
                (${ VSub_Name KUBERNETES_PROVIDER)
              )
            }
          ]
          redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[299])]
        )
      ]
      spids: [283 302]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('... calling verify-prereqs'))}]
      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[311])]
    )
    (C {(verify-prereqs)})
    (SimpleCommand
      words: [{(echo)} {(DQ ('... calling verify-kube-binaries'))}]
      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[322])]
    )
    (C {(verify-kube-binaries)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name KUBE_STAGE_IMAGES>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(EmptyPart)})
                              spids: [333 336]
                            )
                          )
                        }
                      right: {(DQ (true))}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('... staging images'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[357])]
            )
            (C {(stage-images)})
          ]
          spids: [16777215 348]
        )
      ]
      spids: [16777215 363]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('... calling kube-up'))}]
      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[372])]
    )
    (C {(kube-up)})
    (SimpleCommand
      words: [{(echo)} {(DQ ('... calling validate-cluster'))}]
      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[384])]
    )
    (AndOr
      ops: [Op_DAmp Op_DPipe]
      children: [
        (Subshell child:(C {(validate-cluster)}) spids:[390 392])
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:validate_result)
              op: Equal
              rhs: {(DQ ($ VSub_QMark '$?'))}
              spids: [396]
            )
          ]
          spids: [396]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:validate_result)
              op: Equal
              rhs: {(DQ ($ VSub_QMark '$?'))}
              spids: [403]
            )
          ]
          spids: [403]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {(DQ (${ VSub_Name validate_result))}
                      right: {(DQ (1))}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})]
          spids: [16777215 440]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {(DQ (${ VSub_Name validate_result))}
                      right: {(DQ (2))}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('...ignoring non-fatal errors in validate-cluster'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[475])]
            )
          ]
          spids: [447 466]
        )
      ]
      spids: [16777215 478]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name ENABLE_PROXY>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(EmptyPart)})
                              spids: [486 489]
                            )
                          )
                        }
                      right: {(DQ (true))}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(.)} {(/tmp/kube-proxy-env)})
            (C {(echo)} {(DQ )})
            (C {(echo)} 
              {
                (DQ 
                  (
'*** Please run the following to add the kube-apiserver endpoint to your proxy white-list ***'
                  )
                )
              }
            )
            (C {(cat)} {(/tmp/kube-proxy-env)})
            (C {(echo)} 
              {
                (DQ 
                  (
'***                                                                                      ***'
                  )
                )
              }
            )
            (C {(echo)} {(DQ )})
          ]
          spids: [16777215 501]
        )
      ]
      spids: [16777215 539]
    )
    (SimpleCommand
      words: [{(echo)} {(-e)} {(DQ ('Done, listing cluster services:') (Lit_Other '\\') (n))}]
      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[552])]
    )
    (C {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(cluster-info)})
    (C {(echo)})
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)