(CommandList
  children: [
    (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: [55 63]
              ) (/..)
            }
          spids: [54]
        )
      ]
      spids: [54]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/skeleton/util.sh))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_n
                      child: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name KUBERNETES_CONFORMANCE_TEST>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [84 87]
                            )
                          )
                        }
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KUBERNETES_PROVIDER)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [96]
                )
              ]
              spids: [96]
            )
          ]
          spids: [16777215 93]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:KUBERNETES_PROVIDER)
              op: Equal
              rhs: 
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name KUBERNETES_PROVIDER>
                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(gce)})
                      spids: [105 109]
                    )
                  )
                }
              spids: [103]
            )
          ]
          spids: [103]
        )
      ]
      spids: [100 112]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PROVIDER_VARS) op:Equal rhs:{(DQ )} spids:[127])]
      spids: [127]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PROVIDER_UTILS)
          op: Equal
          rhs: 
            {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/) (${ VSub_Name KUBERNETES_PROVIDER) (/util.sh))}
          spids: [132]
        )
      ]
      spids: [132]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name PROVIDER_UTILS)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(source)} {(DQ (${ VSub_Name PROVIDER_UTILS))})]
          spids: [16777215 157]
        )
      ]
      spids: [16777215 168]
    )
    (FuncDef
      name: kubeconfig-federation-context
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_z
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Number 1>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [209 212]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ ('zone parameter is required'))}) (C {(exit)} {(1)})]
                  spids: [16777215 218]
                )
              ]
              spids: [16777215 233]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CLUSTER_CONTEXT)
                  op: Equal
                  rhs: 
                    {
                      (DQ (federation-e2e-) (${ VSub_Name KUBERNETES_PROVIDER) (-) (${ VSub_Number 1))
                    }
                  spids: [236]
                )
              ]
              spids: [236]
            )
          ]
          spids: [199]
        )
      spids: [193 198]
    )
    (FuncDef
      name: set-federation-zone-vars
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:zone)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [264]
                )
              ]
              spids: [264]
            )
            (C {(kubeconfig-federation-context)} {(DQ (${ VSub_Name zone))})
            (C {(export)} {(Lit_VarLike 'OVERRIDE_CONTEXT=') (DQ (${ VSub_Name CLUSTER_CONTEXT))})
            (C {(echo)} {(DQ ('Setting zone vars to: ') ($ VSub_Name '$OVERRIDE_CONTEXT'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ ($ VSub_Name '$KUBERNETES_PROVIDER'))}
                              right: {(DQ (gce))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(export)} {(Lit_VarLike 'CLUSTER_NAME=') (DQ (${ VSub_Name zone))})
                    (C {(export)} {(Lit_VarLike 'KUBE_GCE_ZONE=') (DQ (${ VSub_Name zone))})
                    (C {(export)} 
                      {(Lit_VarLike 'KUBE_GCE_INSTANCE_PREFIX=') 
                        (DQ (${ VSub_Name USER) (-) (${ VSub_Name zone))
                      }
                    )
                  ]
                  spids: [16777215 313]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ ($ VSub_Name '$KUBERNETES_PROVIDER'))}
                              right: {(DQ (gke))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(export)} 
                      {(Lit_VarLike 'CLUSTER_NAME=') (DQ (${ VSub_Name USER) (-) (${ VSub_Name zone))}
                    )
                  ]
                  spids: [376 392]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ ($ VSub_Name '$KUBERNETES_PROVIDER'))}
                              right: {(DQ (aws))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(export)} {(Lit_VarLike 'KUBE_AWS_ZONE=') (DQ ($ VSub_Name '$zone'))})
                    (C {(export)} 
                      {(Lit_VarLike 'KUBE_AWS_INSTANCE_PREFIX=') 
                        (DQ (${ VSub_Name USER) (-) (${ VSub_Name zone))
                      }
                    )
                    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/aws/util.sh))})
                  ]
                  spids: [411 427]
                )
              ]
              else_action: [
                (C {(echo)} 
                  {
                    (DQ ('Provider ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                      (${ VSub_Name KUBERNETES_PROVIDER) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' is not supported')
                    )
                  }
                )
                (C {(exit)} {(1)})
              ]
              spids: [484 505]
            )
          ]
          spids: [261]
        )
      spids: [257 260]
    )
  ]
)