(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: [74 82]
              ) (/..)
            }
          spids: [73]
        )
      ]
      spids: [73]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/init.sh))})
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:branch)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Number 1>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: 
                      {
                        (BracedVarSub
                          token: <VSub_Name KUBE_VERIFY_GIT_BRANCH>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(master)})
                          spids: [101 105]
                        )
                      }
                  )
                spids: [98 106]
              )
            }
          spids: [97]
        )
      ]
      spids: [95]
    )
    (FuncDef
      name: find_files
      body: 
        (BraceGroup
          children: [
            (C {(find)} {(.)} {(-not)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\('>)} 
              {(EscapedLiteralPart token:<Lit_EscapedChar '\\('>)} {(-wholename)} {(SQ <./output>)} {(-o)} {(-wholename)} {(SQ <./_output>)} {(-o)} {(-wholename)} 
              {(SQ <./_gopath>)} {(-o)} {(-wholename)} {(SQ <./release>)} {(-o)} {(-wholename)} {(SQ <./target>)} {(-o)} {(-wholename)} 
              {(SQ <'*/third_party/*'>)} {(-o)} {(-wholename)} {(SQ <'*/vendor/*'>)} {(-o)} {(-wholename)} 
              {(SQ <'./staging/src/k8s.io/client-go/*vendor/*'>)} {(-o)} {(-wholename)} {(SQ <'./staging/src/k8s.io/client-go/pkg/*'>)} 
              {(EscapedLiteralPart token:<Lit_EscapedChar '\\)'>)} {(-prune)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\)'>)} {(-name)} {(SQ <.readonly>)}
            )
          ]
          spids: [113]
        )
      spids: [109 112]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:IFS)
          op: Equal
          rhs: {(SQ <Lit_EscapedChar '\\n'>)}
          spids: [235]
        )
      ]
      spids: [235]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:conflicts)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  {
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [
                            (Pipeline
                              children: [
                                (C {(find_files)})
                                (C {(sed)} {(SQ <'s|/.readonly||'>)})
                                (While
                                  cond: [
                                    (Sentence
                                      child: (C {(read)} {(dir)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  body: 
                                    (DoGroup
                                      children: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:dir)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name dir>
                                                    suffix_op: 
                                                      (StringUnary
                                                        op_id: VOp1_Pound
                                                        arg_word: {(.) (Lit_Slash /)}
                                                      )
                                                    spids: [266 271]
                                                  )
                                                }
                                              spids: [265]
                                            )
                                          ]
                                          spids: [265]
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (SimpleCommand
                                                      words: [
                                                        {(kube) (Lit_Other ':') (Lit_Other ':') (util) 
                                                          (Lit_Other ':') (Lit_Other ':') (has_changes_against_upstream_branch)
                                                        }
                                                        {(DQ (${ VSub_Name branch))}
                                                        {
                                                          (DQ ('^') (${ VSub_Name dir) ('/[^/]*') 
                                                            (EscapedLiteralPart
                                                              token: <Lit_EscapedChar '\\$'>
                                                            )
                                                          )
                                                        }
                                                        {
                                                          (SQ 
                                                            <
'/\\.readonly$|/BUILD$|/zz_generated|/\\.generated\\.|\\.proto$|\\.pb\\.go$'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op_id: Redir_Great
                                                          fd: 16777215
                                                          arg_word: {(/dev/null)}
                                                          spids: [303]
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              action: [(C {(echo)} {(DQ (${ VSub_Name dir))})]
                                              spids: [16777215 307]
                                            )
                                          ]
                                          spids: [16777215 319]
                                        )
                                      ]
                                      spids: [262 321]
                                    )
                                )
                              ]
                              negated: False
                            )
                          ]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [242 322]
                    )
                  }
                ]
              )
            }
          spids: [240]
        )
      ]
      spids: [240]
    )
    (C {(unset)} {(IFS)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} 
                  {
                    (BracedVarSub
                      token: <VSub_Name conflicts>
                      prefix_op: VSub_Pound
                      bracket_op: (WholeArray op_id:Lit_At)
                      spids: [334 340]
                    )
                  } {(-gt)} {(0)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(exec)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[354])]
            )
            (ForEach
              iter_name: dir
              iter_words: [
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name conflicts>
                      bracket_op: (WholeArray op_id:Lit_At)
                      spids: [365 370]
                    )
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} 
                      {
                        (DQ ('Found ') (${ VSub_Name dir) 
                          ('/.readonly, but files changed compared to ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (${ VSub_Name branch) 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' branch.')
                        )
                      }
                    )
                  ]
                  spids: [374 394]
                )
              spids: [363 372]
            )
            (C {(exit)} {(1)})
          ]
          spids: [16777215 349]
        )
      ]
      else_action: [(C {(echo)} {(DQ ('Readonly packages verified.'))})]
      spids: [401 410]
    )
  ]
)