(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(source)} {(cluster/lib/logging.sh)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (LogicalOr
                      left: (BoolBinary op_id:BoolBinary_eq left:{($ VSub_Pound "$#")} right:{(0)})
                      right: 
                        (LogicalNot
                          child: 
                            (BoolBinary
                              op_id: BoolBinary_EqualTilde
                              left: {($ VSub_Number "$1")}
                              right: 
                                {(Lit_Other "^") (Lit_Other "[") (Yy) (Lit_Other "]") (Lit_Other "$")}
                            )
                        )
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(read)} {(-p)} 
              {(DQ ("Do you want to run gubernator.sh and upload logs publicly to GCS? [y/n]"))} {(yn)}
            )
            (C {(echo)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: 
                                (BoolBinary
                                  op_id: BoolBinary_EqualTilde
                                  left: {($ VSub_Name "$yn")}
                                  right: 
                                    {(Lit_Other "^") (Lit_Other "[") (Yy) (Lit_Other "]") 
                                      (Lit_Other "$")
                                    }
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(exit)} {(1)})]
                  spids: [-1 142]
                )
              ]
              spids: [-1 150]
            )
          ]
          spids: [-1 106]
        )
      ]
      spids: [-1 152]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(which)} {(gsutil)})])
                            left_token: <Left_CommandSub "$(">
                            spids: [162 166]
                          )
                        }
                      right: {(DQ )}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ("Could not find gsutil when running ") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\`">) ("which gsutil") (EscapedLiteralPart token:<Lit_EscapedChar "\\`">)
                )
              }
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 176]
        )
      ]
      spids: [-1 193]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(which)} {(gcloud)})])
                            left_token: <Left_CommandSub "$(">
                            spids: [203 207]
                          )
                        }
                      right: {(DQ )}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ("Could not find gcloud when running: ") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\`">) ("which gcloud") (EscapedLiteralPart token:<Lit_EscapedChar "\\`">)
                )
              }
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 217]
        )
      ]
      spids: [-1 234]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [(C {(gcloud)} {(auth)} {(list)}) (C {(grep)} {(-q)} {(DQ (ACTIVE))})]
                  negated: True
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ("Could not find active account when running: ") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\`">) ("gcloud auth list") (EscapedLiteralPart token:<Lit_EscapedChar "\\`">)
                )
              }
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 261]
        )
      ]
      spids: [-1 278]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [(assign_pair lhs:(LhsName name:gcs_acl) op:Equal rhs:{(DQ (public-read))} spids:[283])]
      spids: [281]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:bucket_name)
          op: Equal
          rhs: {(DQ (${ VSub_Name USER) (-g8r-logs))}
          spids: [288]
        )
      ]
      spids: [288]
    )
    (C {(echo)} {(DQ )})
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
        {(DQ ("Using bucket ") (${ VSub_Name bucket_name))}
      ]
      more_env: [(env_pair name:V val:{(2)} spids:[301])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (C {(gsutil)} {(ls)} {(gs) (Lit_Other ":") (//)})
                    (C {(grep)} {(-q)} {(DQ ("gs://") (${ VSub_Name bucket_name) (/))})
                  ]
                  negated: True
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
                {(DQ ("Creating public bucket ") (${ VSub_Name bucket_name))}
              ]
              more_env: [(env_pair name:V val:{(2)} spids:[353])]
            )
            (C {(gsutil)} {(mb)} {(gs) (Lit_Other ":") (//) (${ VSub_Name bucket_name) (/)})
            (C {(gsutil)} {(acl)} {(ch)} {(-u)} {(AllUsers) (Lit_Other ":") (R)} 
              {(gs) (Lit_Other ":") (//) (${ VSub_Name bucket_name)}
            )
          ]
          spids: [-1 350]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [
            {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
            {(DQ ("Bucket already exists"))}
          ]
          more_env: [(env_pair name:V val:{(2)} spids:[411])]
        )
      ]
      spids: [408 426]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GCS_JOBS_PATH)
          op: Equal
          rhs: {(DQ ("gs://") (${ VSub_Name bucket_name) (/logs/e2e-node))}
          spids: [432]
        )
      ]
      spids: [432]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ARTIFACTS)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name ARTIFACTS>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (/tmp/_artifacts))})
                spids: [443 449]
              )
            }
          spids: [442]
        )
      ]
      spids: [442]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BUILD_LOG_PATH)
          op: Equal
          rhs: {(DQ (${ VSub_Name ARTIFACTS) (/build-log.txt))}
          spids: [451]
        )
      ]
      spids: [451]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (LogicalNot
                      child: (BoolUnary op_id:BoolUnary_e child:{($ VSub_Name "$BUILD_LOG_PATH")})
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} {(DQ ("Could not find build-log.txt at ") (${ VSub_Name BUILD_LOG_PATH))})
            (C {(exit)} {(1)})
          ]
          spids: [-1 473]
        )
      ]
      spids: [-1 490]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:start_line)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(grep)} {(-n)} {(-m)} {(1)} {(DQ ("^="))} {(${ VSub_Name BUILD_LOG_PATH)})
                          (C {(sed)} {(SQ <"s/\\([0-9]*\\).*/\\1/">)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [500 524]
              )
            }
          spids: [499]
        )
      ]
      spids: [499]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:after_start)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(tail)} {(-n)} {(Lit_Other "+") (${ VSub_Name start_line)} 
                        {(${ VSub_Name BUILD_LOG_PATH)}
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [530 543]
              )
            }
          spids: [529]
        )
      ]
      spids: [529]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ (${ VSub_Name after_start))}]
      redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(build-log-cut.txt)} spids:[553])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:start_time_raw)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(grep)} {(-m)} {(1)} {(-o)} 
                        {
                          (SQ 
                            <
"[0-9][0-9][0-9][0-9][[:blank:]][0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9]*"
                            >
                          )
                        } {(build-log-cut.txt)}
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [561 575]
              )
            }
          spids: [560]
        )
      ]
      spids: [560]
    )
    (C {(rm)} {(build-log-cut.txt)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:start_time)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {(${ VSub_Name start_time_raw)})
                          (C {(sed)} {(SQ <"s/^.\\{2\\}/&\\//">)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [585 599]
              )
            }
          spids: [584]
        )
      ]
      spids: [584]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
        {(DQ ("Started at ") (${ VSub_Name start_time))}
      ]
      more_env: [(env_pair name:V val:{(2)} spids:[601])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:end_time)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(grep)} {(-o)} 
                            {
                              (SQ 
                                <
"[0-9][0-9][0-9][0-9][[:blank:]][0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9]*"
                                >
                              )
                            } {(${ VSub_Name BUILD_LOG_PATH)}
                          )
                          (C {(tail)} {(-1)})
                          (C {(sed)} {(SQ <"s/^.\\{2\\}/&\\//">)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [623 649]
              )
            }
          spids: [622]
        )
      ]
      spids: [622]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:start_time_epoch)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(date)} {(-d)} {(DQ (${ VSub_Name start_time))} 
                        {(Lit_Other "+") (Lit_Other "%") (s)}
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [655 669]
              )
            }
          spids: [654]
        )
      ]
      spids: [654]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:end_time_epoch)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(date)} {(-d)} {(DQ (${ VSub_Name end_time))} 
                        {(Lit_Other "+") (Lit_Other "%") (s)}
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [672 686]
              )
            }
          spids: [671]
        )
      ]
      spids: [671]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BUILD_STAMP)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {($ VSub_Name "$start_time")})
                          (C {(sed)} {(SQ <"s/\\///">)})
                          (C {(sed)} {(SQ <"s/ /_/">)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [693 713]
              )
            }
          spids: [692]
        )
      ]
      spids: [692]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GCS_LOGS_PATH)
          op: Equal
          rhs: {(DQ (${ VSub_Name GCS_JOBS_PATH) (/) (${ VSub_Name BUILD_STAMP))}
          spids: [716]
        )
      ]
      spids: [716]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (C {(gsutil)} {(ls)} {(DQ (${ VSub_Name GCS_JOBS_PATH))})
                    (C {(grep)} {(-q)} {(DQ (${ VSub_Name BUILD_STAMP))})
                  ]
                  negated: False
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
                {(DQ ("Log files already uploaded"))}
              ]
              more_env: [(env_pair name:V val:{(2)} spids:[759])]
            )
            (C {(echo)} {(DQ ("Gubernator linked below:"))})
            (C {(echo)} 
              {(DQ (k8s-gubernator.appspot.com/build/) (${ VSub_Name GCS_LOGS_PATH) ("?local=on"))}
            )
            (C {(exit)})
          ]
          spids: [-1 756]
        )
      ]
      spids: [-1 795]
    )
    (ForEach
      iter_name: result
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (C {(find)} {(${ VSub_Name ARTIFACTS)} {(-type)} {(d)} {(-name)} {(DQ (results))})
                ]
              )
            left_token: <Left_CommandSub "$(">
            spids: [804 820]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobNEqual
                                  left: {($ VSub_Name "$result")}
                                  right: {(DQ )}
                                )
                              right: 
                                (LogicalAnd
                                  left: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {($ VSub_Name "$result")}
                                      right: {(DQ (${ VSub_Name ARTIFACTS) (/results))}
                                    )
                                  right: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {($ VSub_Name "$result")}
                                      right: {($ VSub_Name "$ARTIFACTS")}
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(mv)} {($ VSub_Name "$result") (/) (Lit_Other "*")} {($ VSub_Name "$ARTIFACTS")})
                  ]
                  spids: [-1 861]
                )
              ]
              spids: [-1 873]
            )
          ]
          spids: [823 875]
        )
      spids: [803 821]
    )
    (ForEach
      iter_name: upload_attempt
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(seq)} {(3)})])
            left_token: <Left_CommandSub "$(">
            spids: [887 891]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: (BoolUnary op_id:BoolUnary_d child:{(DQ (${ VSub_Name ARTIFACTS))})
                              right: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [(C {(ls)} {(-A)} {(DQ (${ VSub_Name ARTIFACTS))})]
                                          )
                                        left_token: <Left_CommandSub "$(">
                                        spids: [913 923]
                                      )
                                    }
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") 
                          (status)
                        }
                        {(DQ ("Uploading artifacts"))}
                      ]
                      more_env: [(env_pair name:V val:{(2)} spids:[931])]
                    )
                    (AndOr
                      children: [
                        (C {(gsutil)} {(-m)} {(-q)} {(-o)} {(DQ ("GSUtil:use_magicfile=True"))} {(cp)} 
                          {(-a)} {(DQ (${ VSub_Name gcs_acl))} {(-r)} {(-c)} {(-z)} {(log) (Lit_Comma ",") (xml) (Lit_Comma ",") (json)} 
                          {(DQ (${ VSub_Name ARTIFACTS))} {(DQ (${ VSub_Name GCS_LOGS_PATH) (/artifacts))}
                        )
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [-1 928]
                )
              ]
              spids: [-1 1001]
            )
            (ControlFlow token:<ControlFlow_Break break>)
          ]
          spids: [894 1006]
        )
      spids: [886 892]
    )
    (ForEach
      iter_name: upload_attempt
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(seq)} {(3)})])
            left_token: <Left_CommandSub "$(">
            spids: [1014 1018]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_e child:{(DQ (${ VSub_Name BUILD_LOG_PATH))})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") 
                          (status)
                        }
                        {(DQ ("Uploading build log"))}
                      ]
                      more_env: [(env_pair name:V val:{(2)} spids:[1042])]
                    )
                    (AndOr
                      children: [
                        (C {(gsutil)} {(-q)} {(cp)} {(-Z)} {(-a)} {(DQ (${ VSub_Name gcs_acl))} 
                          {(DQ (${ VSub_Name BUILD_LOG_PATH))} {(DQ (${ VSub_Name GCS_LOGS_PATH))}
                        )
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [-1 1039]
                )
              ]
              spids: [-1 1091]
            )
            (ControlFlow token:<ControlFlow_Break break>)
          ]
          spids: [1021 1096]
        )
      spids: [1013 1019]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:version) op:Equal rhs:{(DQ )} spids:[1103])]
      spids: [1103]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(BoolUnary op_id:BoolUnary_e child:{(DQ (version))}))
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:version)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(cat)} {(DQ (version))})])
                        left_token: <Left_CommandSub "$(">
                        spids: [1124 1130]
                      )
                    }
                  spids: [1123]
                )
              ]
              spids: [1123]
            )
          ]
          spids: [-1 1120]
        )
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(BoolUnary op_id:BoolUnary_e child:{(DQ (hack/lib/version.sh))}))
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(export)} {(Lit_VarLike "KUBE_ROOT=") (DQ (.))})
            (C {(source)} {(DQ (hack/lib/version.sh))})
            (C 
              {(kube) (Lit_Other ":") (Lit_Other ":") (version) (Lit_Other ":") (Lit_Other ":") 
                (get_version_vars)
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:version)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name KUBE_GIT_VERSION>
                          suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )})
                          spids: [1174 1177]
                        )
                      )
                    }
                  spids: [1172]
                )
              ]
              spids: [1172]
            )
          ]
          spids: [1132 1145]
        )
      ]
      spids: [-1 1180]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(BoolUnary op_id:BoolUnary_n child:{(DQ (${ VSub_Name version))}))
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
                {(DQ ("Found Kubernetes version: ") (${ VSub_Name version))}
              ]
              more_env: [(env_pair name:V val:{(2)} spids:[1200])]
            )
          ]
          spids: [-1 1197]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [
            {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
            {(DQ ("Could not find Kubernetes version"))}
          ]
          more_env: [(env_pair name:V val:{(2)} spids:[1221])]
        )
      ]
      spids: [1218 1236]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(grep)} {(-Fxq)} {(DQ ("Test Suite Passed"))} {(DQ (${ VSub_Name BUILD_LOG_PATH))})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:build_result)
                  op: Equal
                  rhs: {(DQ (SUCCESS))}
                  spids: [1262]
                )
              ]
              spids: [1262]
            )
          ]
          spids: [-1 1259]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:build_result)
              op: Equal
              rhs: {(DQ (FAILURE))}
              spids: [1270]
            )
          ]
          spids: [1270]
        )
      ]
      spids: [1267 1275]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
        {(DQ ("Build result is ") (${ VSub_Name build_result))}
      ]
      more_env: [(env_pair name:V val:{(4)} spids:[1278])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_e
                      child: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(rm)} {(DQ (${ VSub_Name ARTIFACTS) (/started.json))})]
          spids: [-1 1313]
        )
      ]
      spids: [-1 1325]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_e
                      child: {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(rm)} {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))})]
          spids: [-1 1344]
        )
      ]
      spids: [-1 1356]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
        {(DQ ("Constructing started.json and finished.json files"))}
      ]
      more_env: [(env_pair name:V val:{(2)} spids:[1359])]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ("{"))}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
          spids: [1380]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ("    ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (version) 
            (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name version) 
            (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (",")
          )
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
          spids: [1405]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ("    ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (timestamp) 
            (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") (${ VSub_Name start_time_epoch) (",")
          )
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
          spids: [1428]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ("    ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (jenkins-node) 
            (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
            (BracedVarSub
              token: <VSub_Name NODE_NAME>
              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
              spids: [1446 1449]
            ) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
          )
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
          spids: [1453]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ("}"))}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
          spids: [1468]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ("{"))}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))}
          spids: [1484]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ("    ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (result) 
            (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name build_result) 
            (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (",")
          )
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))}
          spids: [1509]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ("    ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (timestamp) 
            (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") (${ VSub_Name end_time_epoch)
          )
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))}
          spids: [1531]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ("}"))}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))}
          spids: [1546]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
        {(DQ ("Uploading started.json and finished.json"))}
      ]
      more_env: [(env_pair name:V val:{(2)} spids:[1560])]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
        {(DQ ("Run started at ") (${ VSub_Name start_time))}
      ]
      more_env: [(env_pair name:V val:{(2)} spids:[1575])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:json_file)
          op: Equal
          rhs: {(DQ (${ VSub_Name GCS_LOGS_PATH) (/started.json))}
          spids: [1593]
        )
      ]
      spids: [1593]
    )
    (ForEach
      iter_name: upload_attempt
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(seq)} {(3)})])
            left_token: <Left_CommandSub "$(">
            spids: [1608 1612]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (SimpleCommand
              words: [
                {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
                {
                  (DQ ("Uploading started.json to ") (${ VSub_Name json_file) (" (attempt ") 
                    (${ VSub_Name upload_attempt) (")")
                  )
                }
              ]
              more_env: [(env_pair name:V val:{(2)} spids:[1618])]
            )
            (AndOr
              children: [
                (C {(gsutil)} {(-q)} {(-h)} {(DQ ("Content-Type:application/json"))} {(cp)} {(-a)} 
                  {(DQ (${ VSub_Name gcs_acl))} {(DQ (${ VSub_Name ARTIFACTS) (/started.json))} {(DQ (${ VSub_Name json_file))}
                )
                (ControlFlow token:<ControlFlow_Continue continue>)
              ]
              op_id: Op_DPipe
            )
            (ControlFlow token:<ControlFlow_Break break>)
          ]
          spids: [1615 1684]
        )
      spids: [1607 1613]
    )
    (ForEach
      iter_name: upload_attempt
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(seq)} {(3)})])
            left_token: <Left_CommandSub "$(">
            spids: [1696 1700]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (SimpleCommand
              words: [
                {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)}
                {
                  (DQ ("Uploading finished.json to ") (${ VSub_Name GCS_LOGS_PATH) (" (attempt ") 
                    (${ VSub_Name upload_attempt) (")")
                  )
                }
              ]
              more_env: [(env_pair name:V val:{(2)} spids:[1706])]
            )
            (AndOr
              children: [
                (C {(gsutil)} {(-q)} {(-h)} {(DQ ("Content-Type:application/json"))} {(cp)} {(-a)} 
                  {(DQ (${ VSub_Name gcs_acl))} {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))} {(DQ (${ VSub_Name GCS_LOGS_PATH) (/finished.json))}
                )
                (ControlFlow token:<ControlFlow_Continue continue>)
              ]
              op_id: Op_DPipe
            )
            (ControlFlow token:<ControlFlow_Break break>)
          ]
          spids: [1703 1773]
        )
      spids: [1695 1701]
    )
    (C {(echo)} {(DQ ("Gubernator linked below:"))})
    (C {(echo)} 
      {
        (DQ (k8s-gubernator.appspot.com/build/) (${ VSub_Name bucket_name) (/logs/e2e-node/) 
          (${ VSub_Name BUILD_STAMP)
        )
      }
    )
  ]
)