(command.CommandList
  children: [
    (C {<set>} {<-o>} {<errexit>})
    (C {<set>} {<-o>} {<nounset>})
    (C {<set>} {<-o>} {<pipefail>})
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<__EOF__>}
              here_end_span_id: 80
              stdin_parts: [
                <'Note: This assumes that the \'types_swagger_doc_generated.go\' file has been\n'>
                <'updated for all API group versions. If you are unsure, please run\n'>
                <'hack/update-generated-swagger-docs.sh first.\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:KUBE_ROOT)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<dirname>} {(DQ (${ Id.VSub_Name BASH_SOURCE))})
              ) <'/..'>
            }
          spids: [82]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SWAGGER_ROOT_DIR)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/api/swagger-spec'>)}
          spids: [94]
        )
      ]
    )
    (C {<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/hack/lib/init.sh'>)})
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <golang> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
        <setup_env>
      }
    )
    (C {<make>} {<-C>} {(DQ (${ Id.VSub_Name KUBE_ROOT))} 
      {<Id.Lit_VarLike 'WHAT='> <'cmd/kube-apiserver'>}
    )
    (command.ShFunction
      name: cleanup
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Unary
                      op_id: Id.BoolUnary_n
                      child: 
                        {
                          (braced_var_sub
                            token: <Id.VSub_Name APISERVER_PID>
                            suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{})
                          )
                        }
                    )
                )
                (command.Simple
                  words: [{<kill>} {(${ Id.VSub_Name APISERVER_PID)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_GreatAnd '1>&'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<2>}
                    )
                    (redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
              ]
            )
            (C 
              {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <etcd> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
                <cleanup>
              }
            )
            (C 
              {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
                <status>
              } {(DQ <'Clean up complete'>)}
            )
          ]
        )
    )
    (C {<trap>} {<cleanup>} {<EXIT>} {<SIGINT>})
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <golang> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
        <setup_env>
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:apiserver)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (C 
                    {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> 
                      <Id.Lit_Colon ':'> <find-binary>
                    } {(DQ <kube-apiserver>)}
                  )
              )
            }
          spids: [214]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMP_DIR)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<mktemp>} {<-d>} {<'/tmp/update-swagger-spec.XXXX'>})
              )
            }
          spids: [230]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETCD_HOST)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name ETCD_HOST>
                suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<127.0.0.1>})
              )
            }
          spids: [239]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETCD_PORT)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name ETCD_PORT>
                suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<2379>})
              )
            }
          spids: [246]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:API_PORT)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name API_PORT>
                suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<8050>})
              )
            }
          spids: [253]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:API_HOST)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name API_HOST>
                suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<127.0.0.1>})
              )
            }
          spids: [260]
        )
      ]
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <etcd> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <start>}
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <status>} {(DQ <'Starting kube-apiserver'>)}
    )
    (command.Sentence
      child: 
        (command.Simple
          words: [
            {(DQ (${ Id.VSub_Name KUBE_OUTPUT_HOSTBIN) <'/kube-apiserver'>)}
            {<--insecure-bind-address> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name API_HOST))}
            {<--bind-address> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name API_HOST))}
            {<--insecure-port> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name API_PORT))}
            {<--etcd-servers> <Id.Lit_Equals '='> 
              (DQ <'http://'> (${ Id.VSub_Name ETCD_HOST) <':'> (${ Id.VSub_Name ETCD_PORT))
            }
            {<--advertise-address> <Id.Lit_Equals '='> (DQ <10.10.10.10>)}
            {<--cert-dir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name TMP_DIR) <'/certs'>)}
            {<--runtime-config> <Id.Lit_Equals '='> 
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<echo>} {(DQ (${ Id.VSub_Name KUBE_AVAILABLE_GROUP_VERSIONS))})
                      (C {<sed>} {<-E>} {(SQ <'s|[[:blank:]]+|,|g'>)})
                    ]
                    negated: F
                  )
              )
            }
            {<--service-cluster-ip-range> <Id.Lit_Equals '='> (DQ <'10.0.0.0/24'>)}
          ]
          redirects: [
            (redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {<'/tmp/swagger-api-server.log'>}
            )
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
      terminator: <Id.Op_Amp _>
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:APISERVER_PID)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Bang '$!')}
          spids: [407]
        )
      ]
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
        <wait_for_url>
      } {(DQ (${ Id.VSub_Name API_HOST) <':'> (${ Id.VSub_Name API_PORT) <'/healthz'>)} {(DQ <'apiserver: '>)}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SWAGGER_API_PATH)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name API_HOST) <':'> (${ Id.VSub_Name API_PORT) <'/swaggerapi/'>)}
          spids: [435]
        )
      ]
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <status>} {(DQ <'Updating '>)} {(${ Id.VSub_Name SWAGGER_ROOT_DIR)}
    )
    (command.Simple
      words: [
        {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
          <fetch-swagger-spec>
        }
      ]
      more_env: [
        (env_pair
          name: SWAGGER_API_PATH
          val: {(DQ (${ Id.VSub_Name SWAGGER_API_PATH))}
          spids: [465]
        )
        (env_pair
          name: SWAGGER_ROOT_DIR
          val: {(DQ (${ Id.VSub_Name SWAGGER_ROOT_DIR))}
          spids: [472]
        )
        (env_pair
          name: VERSIONS
          val: {(DQ (${ Id.VSub_Name KUBE_AVAILABLE_GROUP_VERSIONS))}
          spids: [479]
        )
        (env_pair
          name: KUBE_NONSERVER_GROUP_VERSIONS
          val: {(DQ (${ Id.VSub_Name KUBE_NONSERVER_GROUP_VERSIONS))}
          spids: [486]
        )
      ]
      do_fork: T
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <status>} {(DQ <SUCCESS>)}
    )
  ]
)