(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:__git_printf_supports_v spids:[289])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [289]
        )
      ]
      spids: [289]
    )
    (command.SimpleCommand
      words: [{(printf)} {(-v)} {(__git_printf_supports_v)} {(--)} {(SQ <'%s'>)} {(yes)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
        (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
      ]
    )
    (command.FuncDef
      name: __git_ps1_show_upstream
      body: 
        (command.BraceGroup
          children: [
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:key spids:[328])
                  op: Equal
                  spids: [328]
                )
                (assign_pair
                  lhs: (lhs_expr.LhsName name:value spids:[330])
                  op: Equal
                  spids: [330]
                )
              ]
              spids: [326]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:svn_remote spids:[335])
                  op: Equal
                  spids: [335]
                )
                (assign_pair
                  lhs: (lhs_expr.LhsName name:svn_url_pattern spids:[337])
                  op: Equal
                  spids: [337]
                )
                (assign_pair
                  lhs: (lhs_expr.LhsName name:count spids:[339])
                  op: Equal
                  spids: [339]
                )
                (assign_pair
                  lhs: (lhs_expr.LhsName name:n spids:[341])
                  op: Equal
                  spids: [341]
                )
              ]
              spids: [333]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:upstream spids:[346])
                  op: Equal
                  rhs: {(git)}
                  spids: [346]
                )
                (assign_pair
                  lhs: (lhs_expr.LhsName name:legacy spids:[349])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [349]
                )
                (assign_pair
                  lhs: (lhs_expr.LhsName name:verbose spids:[353])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [353]
                )
                (assign_pair
                  lhs: (lhs_expr.LhsName name:name spids:[357])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [357]
                )
              ]
              spids: [344]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:svn_remote spids:[363])
                  op: Equal
                  rhs: {(word_part.ArrayLiteralPart)}
                  spids: [363]
                )
              ]
              spids: [363]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:output spids:[374])
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.CommandSubPart
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (command.SimpleCommand
                                      words: [
                                        {(git)}
                                        {(config)}
                                        {(-z)}
                                        {(--get-regexp)}
                                        {(SQ <'^(svn-remote\\..*\\.url|bash\\.showupstream)$'>)}
                                      ]
                                      redirects: [
                                        (redir.Redir
                                          op: <Redir_Great '2>'>
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                        )
                                      ]
                                    )
                                    (C {(tr)} {(SQ <'\\0\\n'>)} {(SQ <'\\n '>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [376 403]
                        )
                      )
                    }
                  spids: [374]
                )
              ]
              spids: [372]
            )
            (command.WhileUntil
              keyword: <KW_While while>
              cond: [
                (command.Sentence
                  child: (C {(read)} {(-r)} {(key)} {(value)})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {(DQ ($ VSub_DollarName '$key'))}
                      arms: [
                        (case_arm
                          pat_list: [{(bash.showupstream)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:GIT_PS1_SHOWUPSTREAM spids:[434])
                                  op: Equal
                                  rhs: {(DQ ($ VSub_DollarName '$value'))}
                                  spids: [434]
                                )
                              ]
                              spids: [434]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.BoolUnary
                                              op_id: BoolUnary_z
                                              child: {(DQ (${ VSub_Name GIT_PS1_SHOWUPSTREAM))}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:p spids:[458])
                                          op: Equal
                                          rhs: {(DQ )}
                                          spids: [458]
                                        )
                                      ]
                                      spids: [458]
                                    )
                                    (command.ControlFlow
                                      token: <ControlFlow_Return return>
                                    )
                                  ]
                                  spids: [16777215 455]
                                )
                              ]
                              spids: [16777215 466]
                            )
                          ]
                          spids: [430 431 469 16777215]
                        )
                        (case_arm
                          pat_list: [{(svn-remote.) (Lit_Other '*') (.url)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (lhs_expr.LhsIndexedName
                                      name: svn_remote
                                      index: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (word_part.ArithSubPart
                                                anode: 
                                                  (arith_expr.ArithBinary
                                                    op_id: Arith_Plus
                                                    left: 
                                                      (arith_expr.ArithWord
                                                        w: 
                                                          {
                                                            (word_part.BracedVarSub
                                                              token: <VSub_Name svn_remote>
                                                              prefix_op: VSub_Pound
                                                              bracket_op: 
                                                                (bracket_op.WholeArray
                                                                  op_id: Lit_At
                                                                )
                                                              spids: [1 7]
                                                            )
                                                          }
                                                      )
                                                    right: (arith_expr.ArithWord w:{(Lit_Digits 1)})
                                                  )
                                                spids: [0 13]
                                              )
                                            }
                                        )
                                      spids: [478]
                                    )
                                  op: Equal
                                  rhs: {(DQ ($ VSub_DollarName '$value'))}
                                  spids: [478]
                                )
                              ]
                              spids: [478]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:svn_url_pattern spids:[499])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_DollarName '$svn_url_pattern') 
                                        (word_part.EscapedLiteralPart
                                          token: <Lit_EscapedChar '\\\\'>
                                        ) ('|') ($ VSub_DollarName '$value')
                                      )
                                    }
                                  spids: [499]
                                )
                              ]
                              spids: [499]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:upstream spids:[508])
                                  op: Equal
                                  rhs: {(svn) (Lit_Other '+') (git)}
                                  spids: [508]
                                )
                              ]
                              spids: [508]
                            )
                          ]
                          spids: [472 475 517 16777215]
                        )
                      ]
                      spids: [421 427 520]
                    )
                  ]
                  spids: [418 523]
                )
              redirects: [
                (redir.Redir
                  op: <Redir_TLess '<<<'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_DollarName '$output'))}
                )
              ]
            )
            (command.ForEach
              iter_name: option
              iter_words: [{(${ VSub_Name GIT_PS1_SHOWUPSTREAM)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {(DQ ($ VSub_DollarName '$option'))}
                      arms: [
                        (case_arm
                          pat_list: [{(git)} {(svn)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:upstream spids:[565])
                                  op: Equal
                                  rhs: {(DQ ($ VSub_DollarName '$option'))}
                                  spids: [565]
                                )
                              ]
                              spids: [565]
                            )
                          ]
                          spids: [560 563 570 16777215]
                        )
                        (case_arm
                          pat_list: [{(verbose)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:verbose spids:[576])
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [576]
                                )
                              ]
                              spids: [576]
                            )
                          ]
                          spids: [573 574 579 16777215]
                        )
                        (case_arm
                          pat_list: [{(legacy)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:legacy spids:[585])
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [585]
                                )
                              ]
                              spids: [585]
                            )
                          ]
                          spids: [582 583 588 16777215]
                        )
                        (case_arm
                          pat_list: [{(name)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:name spids:[594])
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [594]
                                )
                              ]
                              spids: [594]
                            )
                          ]
                          spids: [591 592 597 16777215]
                        )
                      ]
                      spids: [551 557 600]
                    )
                  ]
                  spids: [548 603]
                )
              spids: [542 546]
            )
            (command.Case
              to_match: {(DQ ($ VSub_DollarName '$upstream'))}
              arms: [
                (case_arm
                  pat_list: [{(git)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:upstream spids:[623])
                          op: Equal
                          rhs: {(DQ ('@{upstream}'))}
                          spids: [623]
                        )
                      ]
                      spids: [623]
                    )
                  ]
                  spids: [620 621 628 16777215]
                )
                (case_arm
                  pat_list: [{(svn) (Lit_Other '*')}]
                  action: [
                    (command.Assignment
                      keyword: Assign_Local
                      flags: [-a]
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:svn_upstream spids:[648])
                          op: Equal
                          spids: [648]
                        )
                      ]
                      spids: [644]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:svn_upstream spids:[651])
                          op: Equal
                          rhs: 
                            {
                              (word_part.ArrayLiteralPart
                                words: [
                                  {
                                    (word_part.CommandSubPart
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.SimpleCommand
                                              words: [
                                                {(git)}
                                                {(log)}
                                                {(--first-parent)}
                                                {(-1)}
                                                {(--grep) (Lit_Other '=') 
                                                  (DQ ('^git-svn-id: ') (Lit_Other '\\') ('(') 
                                                    (word_part.BracedVarSub
                                                      token: <VSub_Name svn_url_pattern>
                                                      suffix_op: 
                                                        (suffix_op.StringUnary
                                                          op_id: VOp1_Pound
                                                          arg_word: {('??')}
                                                        )
                                                      spids: [670 674]
                                                    ) (Lit_Other '\\') (')')
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir.Redir
                                                  op: <Redir_Great '2>'>
                                                  fd: 2
                                                  arg_word: {(/dev/null)}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [653 681]
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [651]
                        )
                      ]
                      spids: [651]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.BoolBinary
                                      op_id: BoolBinary_ne
                                      left: {(0)}
                                      right: 
                                        {
                                          (word_part.BracedVarSub
                                            token: <VSub_Name svn_upstream>
                                            prefix_op: VSub_Pound
                                            bracket_op: (bracket_op.WholeArray op_id:Lit_At)
                                            spids: [693 699]
                                          )
                                        }
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:svn_upstream spids:[707])
                                  op: Equal
                                  rhs: 
                                    {
                                      (word_part.BracedVarSub
                                        token: <VSub_Name svn_upstream>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithBinary
                                                op_id: Arith_Minus
                                                left: 
                                                  (arith_expr.ArithWord
                                                    w: 
                                                      {
                                                        (word_part.BracedVarSub
                                                          token: <VSub_Name svn_upstream>
                                                          prefix_op: VSub_Pound
                                                          bracket_op: 
                                                            (bracket_op.WholeArray
                                                              op_id: Lit_At
                                                            )
                                                          spids: [711 717]
                                                        )
                                                      }
                                                  )
                                                right: (arith_expr.ArithWord w:{(Lit_Digits 2)})
                                              )
                                          )
                                        spids: [708 723]
                                      )
                                    }
                                  spids: [707]
                                )
                              ]
                              spids: [707]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:svn_upstream spids:[726])
                                  op: Equal
                                  rhs: 
                                    {
                                      (word_part.BracedVarSub
                                        token: <VSub_Name svn_upstream>
                                        suffix_op: 
                                          (suffix_op.StringUnary
                                            op_id: VOp1_Percent
                                            arg_word: {('@*')}
                                          )
                                        spids: [727 731]
                                      )
                                    }
                                  spids: [726]
                                )
                              ]
                              spids: [726]
                            )
                            (command.Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:n_stop spids:[736])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (word_part.BracedVarSub
                                          token: <VSub_Name svn_remote>
                                          prefix_op: VSub_Pound
                                          bracket_op: (bracket_op.WholeArray op_id:Lit_At)
                                          spids: [738 744]
                                        )
                                      )
                                    }
                                  spids: [736]
                                )
                              ]
                              spids: [734]
                            )
                            (command.ForExpr
                              init: 
                                (arith_expr.BinaryAssign
                                  op_id: Arith_Equal
                                  left: (lhs_expr.LhsName name:n spids:[751])
                                  right: (arith_expr.ArithWord w:{(Lit_Digits 1)})
                                )
                              cond: 
                                (arith_expr.ArithBinary
                                  op_id: Arith_LessEqual
                                  left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike n>)
                                  right: (arith_expr.ArithVarRef token:<Lit_ArithVarLike n_stop>)
                                )
                              update: 
                                (arith_expr.UnaryAssign
                                  op_id: Node_PostDPlus
                                  child: (lhs_expr.LhsName name:n spids:[763])
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:svn_upstream spids:[772])
                                          op: Equal
                                          rhs: 
                                            {
                                              (word_part.BracedVarSub
                                                token: <VSub_Name svn_upstream>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: 
                                                      {
                                                        (word_part.BracedVarSub
                                                          token: <VSub_Name svn_remote>
                                                          bracket_op: 
                                                            (bracket_op.ArrayIndex
                                                              expr: 
                                                                (arith_expr.ArithWord
                                                                  w: {($ VSub_DollarName '$n')}
                                                                )
                                                            )
                                                          spids: [776 781]
                                                        )
                                                      }
                                                  )
                                                spids: [773 782]
                                              )
                                            }
                                          spids: [772]
                                        )
                                      ]
                                      spids: [772]
                                    )
                                  ]
                                  spids: [769 785]
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.BoolUnary
                                              op_id: BoolUnary_z
                                              child: {(DQ ($ VSub_DollarName '$svn_upstream'))}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:upstream spids:[809])
                                          op: Equal
                                          rhs: 
                                            {
                                              (word_part.BracedVarSub
                                                token: <VSub_Name GIT_SVN_ID>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VTest_ColonHyphen
                                                    arg_word: {(git-svn)}
                                                  )
                                                spids: [810 814]
                                              )
                                            }
                                          spids: [809]
                                        )
                                      ]
                                      spids: [809]
                                    )
                                  ]
                                  spids: [16777215 802]
                                )
                              ]
                              else_action: [
                                (command.Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (lhs_expr.LhsName name:upstream spids:[820])
                                      op: Equal
                                      rhs: 
                                        {
                                          (word_part.BracedVarSub
                                            token: <VSub_Name svn_upstream>
                                            suffix_op: 
                                              (suffix_op.StringUnary
                                                op_id: VOp1_Pound
                                                arg_word: {(Lit_Slash /)}
                                              )
                                            spids: [821 825]
                                          )
                                        }
                                      spids: [820]
                                    )
                                  ]
                                  spids: [820]
                                )
                              ]
                              spids: [817 828]
                            )
                          ]
                          spids: [16777215 704]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.BoolBinary
                                      op_id: BoolBinary_GlobEqual
                                      left: {(DQ ('svn+git'))}
                                      right: {(DQ ($ VSub_DollarName '$upstream'))}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:upstream spids:[851])
                                  op: Equal
                                  rhs: {(DQ ('@{upstream}'))}
                                  spids: [851]
                                )
                              ]
                              spids: [851]
                            )
                          ]
                          spids: [831 848]
                        )
                      ]
                      spids: [16777215 857]
                    )
                  ]
                  spids: [631 633 860 16777215]
                )
              ]
              spids: [611 617 863]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.BoolUnary
                              op_id: BoolUnary_z
                              child: {(DQ ($ VSub_DollarName '$legacy'))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:count spids:[887])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.CommandSubPart
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.SimpleCommand
                                          words: [
                                            {(git)}
                                            {(rev-list)}
                                            {(--count)}
                                            {(--left-right)}
                                            {(DQ ($ VSub_DollarName '$upstream')) (...HEAD)}
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: <Redir_Great '2>'>
                                              fd: 2
                                              arg_word: {(/dev/null)}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [889 907]
                                )
                              )
                            }
                          spids: [887]
                        )
                      ]
                      spids: [887]
                    )
                  ]
                  spids: [16777215 884]
                )
              ]
              else_action: [
                (command.Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:commits spids:[920])
                      op: Equal
                      spids: [920]
                    )
                  ]
                  spids: [918]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:commits spids:[925])
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (word_part.CommandSubPart
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.SimpleCommand
                                              words: [
                                                {(git)}
                                                {(rev-list)}
                                                {(--left-right)}
                                                {(DQ ($ VSub_DollarName '$upstream')) (...HEAD)}
                                              ]
                                              redirects: [
                                                (redir.Redir
                                                  op: <Redir_Great '2>'>
                                                  fd: 2
                                                  arg_word: {(/dev/null)}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [927 941]
                                    )
                                  )
                                }
                              spids: [925]
                            )
                          ]
                          spids: [925]
                        )
                      ]
                      action: [
                        (command.Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:commit spids:[950])
                              op: Equal
                              spids: [950]
                            )
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:behind spids:[952])
                              op: Equal
                              rhs: {(0)}
                              spids: [952]
                            )
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:ahead spids:[955])
                              op: Equal
                              rhs: {(0)}
                              spids: [955]
                            )
                          ]
                          spids: [948]
                        )
                        (command.ForEach
                          iter_name: commit
                          iter_words: [{($ VSub_DollarName '$commits')}]
                          do_arg_iter: F
                          body: 
                            (command.DoGroup
                              children: [
                                (command.Case
                                  to_match: {(DQ ($ VSub_DollarName '$commit'))}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(DQ ('<')) (Lit_Other '*')}]
                                      action: [
                                        (command.DParen
                                          child: 
                                            (arith_expr.UnaryAssign
                                              op_id: Node_PostDPlus
                                              child: (lhs_expr.LhsName name:behind spids:[987])
                                            )
                                          spids: [986 990]
                                        )
                                      ]
                                      spids: [980 984 992 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(Lit_Other '*')}]
                                      action: [
                                        (command.DParen
                                          child: 
                                            (arith_expr.UnaryAssign
                                              op_id: Node_PostDPlus
                                              child: (lhs_expr.LhsName name:ahead spids:[999])
                                            )
                                          spids: [998 1002]
                                        )
                                      ]
                                      spids: [995 996 1004 16777215]
                                    )
                                  ]
                                  spids: [971 977 1007]
                                )
                              ]
                              spids: [968 1010]
                            )
                          spids: [964 16777215]
                        )
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:count spids:[1013])
                              op: Equal
                              rhs: 
                                {
                                  (DQ ($ VSub_DollarName '$behind') ('\t') ($ VSub_DollarName '$ahead'))
                                }
                              spids: [1013]
                            )
                          ]
                          spids: [1013]
                        )
                      ]
                      spids: [16777215 945]
                    )
                  ]
                  else_action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:count spids:[1024])
                          op: Equal
                          rhs: {(DQ )}
                          spids: [1024]
                        )
                      ]
                      spids: [1024]
                    )
                  ]
                  spids: [1021 1029]
                )
              ]
              spids: [911 1032]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.BoolUnary
                              op_id: BoolUnary_z
                              child: {(DQ ($ VSub_DollarName '$verbose'))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Case
                      to_match: {(DQ ($ VSub_DollarName '$count'))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ )}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:p spids:[1073])
                                  op: Equal
                                  rhs: {(DQ )}
                                  spids: [1073]
                                )
                              ]
                              spids: [1073]
                            )
                          ]
                          spids: [1065 1067 1077 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('0\t0'))}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:p spids:[1089])
                                  op: Equal
                                  rhs: {(DQ ('='))}
                                  spids: [1089]
                                )
                              ]
                              spids: [1089]
                            )
                          ]
                          spids: [1080 1083 1094 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('0\t')) (Lit_Other '*')}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:p spids:[1107])
                                  op: Equal
                                  rhs: {(DQ ('>'))}
                                  spids: [1107]
                                )
                              ]
                              spids: [1107]
                            )
                          ]
                          spids: [1097 1101 1112 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*') (DQ ('\t0'))}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:p spids:[1125])
                                  op: Equal
                                  rhs: {(DQ ('<'))}
                                  spids: [1125]
                                )
                              ]
                              spids: [1125]
                            )
                          ]
                          spids: [1115 1119 1130 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:p spids:[1140])
                                  op: Equal
                                  rhs: {(DQ ('<>'))}
                                  spids: [1140]
                                )
                              ]
                              spids: [1140]
                            )
                          ]
                          spids: [1133 1134 1145 16777215]
                        )
                      ]
                      spids: [1056 1062 1148]
                    )
                  ]
                  spids: [16777215 1053]
                )
              ]
              else_action: [
                (command.Case
                  to_match: {(DQ ($ VSub_DollarName '$count'))}
                  arms: [
                    (case_arm
                      pat_list: [{(DQ )}]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:p spids:[1171])
                              op: Equal
                              rhs: {(DQ )}
                              spids: [1171]
                            )
                          ]
                          spids: [1171]
                        )
                      ]
                      spids: [1163 1165 1175 16777215]
                    )
                    (case_arm
                      pat_list: [{(DQ ('0\t0'))}]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:p spids:[1187])
                              op: Equal
                              rhs: {(DQ (' u='))}
                              spids: [1187]
                            )
                          ]
                          spids: [1187]
                        )
                      ]
                      spids: [1178 1181 1192 16777215]
                    )
                    (case_arm
                      pat_list: [{(DQ ('0\t')) (Lit_Other '*')}]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:p spids:[1205])
                              op: Equal
                              rhs: 
                                {
                                  (DQ (' u+') 
                                    (word_part.BracedVarSub
                                      token: <VSub_Name count>
                                      suffix_op: 
                                        (suffix_op.StringUnary
                                          op_id: VOp1_Pound
                                          arg_word: {('0\t')}
                                        )
                                      spids: [1208 1212]
                                    )
                                  )
                                }
                              spids: [1205]
                            )
                          ]
                          spids: [1205]
                        )
                      ]
                      spids: [1195 1199 1215 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*') (DQ ('\t0'))}]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:p spids:[1228])
                              op: Equal
                              rhs: 
                                {
                                  (DQ (' u-') 
                                    (word_part.BracedVarSub
                                      token: <VSub_Name count>
                                      suffix_op: 
                                        (suffix_op.StringUnary
                                          op_id: VOp1_Percent
                                          arg_word: {('\t0')}
                                        )
                                      spids: [1231 1235]
                                    )
                                  )
                                }
                              spids: [1228]
                            )
                          ]
                          spids: [1228]
                        )
                      ]
                      spids: [1218 1222 1238 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:p spids:[1248])
                              op: Equal
                              rhs: 
                                {
                                  (DQ (' u+') 
                                    (word_part.BracedVarSub
                                      token: <VSub_Name count>
                                      suffix_op: 
                                        (suffix_op.StringUnary
                                          op_id: VOp1_Pound
                                          arg_word: {('*\t')}
                                        )
                                      spids: [1251 1255]
                                    ) (-) 
                                    (word_part.BracedVarSub
                                      token: <VSub_Name count>
                                      suffix_op: 
                                        (suffix_op.StringUnary
                                          op_id: VOp1_Percent
                                          arg_word: {('\t*')}
                                        )
                                      spids: [1257 1261]
                                    )
                                  )
                                }
                              spids: [1248]
                            )
                          ]
                          spids: [1248]
                        )
                      ]
                      spids: [1241 1242 1264 16777215]
                    )
                  ]
                  spids: [1154 1160 1267]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(DQ ($ VSub_DollarName '$count'))}
                                    )
                                  right: 
                                    (bool_expr.BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(DQ ($ VSub_DollarName '$name'))}
                                    )
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:__git_ps1_upstream_name spids:[1294])
                              op: Equal
                              rhs: 
                                {
                                  (word_part.CommandSubPart
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.SimpleCommand
                                            words: [
                                              {(git)}
                                              {(rev-parse)}
                                              {(--abbrev-ref)}
                                              {(DQ ($ VSub_DollarName '$upstream'))}
                                            ]
                                            redirects: [
                                              (redir.Redir
                                                op: <Redir_Great '2>'>
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [1295 1310]
                                  )
                                }
                              spids: [1294]
                            )
                          ]
                          spids: [1294]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (C {(Lit_Other '[')} {($ VSub_DollarName '$pcmode')} 
                                          {(Lit_Other '=')} {(yes)} {(Lit_Other ']')}
                                        )
                                        (C {(Lit_Other '[')} {($ VSub_DollarName '$ps1_expanded')} 
                                          {(Lit_Other '=')} {(yes)} {(Lit_Other ']')}
                                        )
                                      ]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (command.Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (lhs_expr.LhsName name:p spids:[1341])
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ ($ VSub_DollarName '$p') (' ') 
                                            (word_part.EscapedLiteralPart
                                              token: <Lit_EscapedChar '\\$'>
                                            ) ('{__git_ps1_upstream_name}')
                                          )
                                        }
                                      spids: [1341]
                                    )
                                  ]
                                  spids: [1341]
                                )
                              ]
                              spids: [16777215 1338]
                            )
                          ]
                          else_action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:p spids:[1353])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_DollarName '$p') (' ') 
                                        (${ VSub_Name __git_ps1_upstream_name)
                                      )
                                    }
                                  spids: [1353]
                                )
                              ]
                              spids: [1353]
                            )
                            (C {(unset)} {(__git_ps1_upstream_name)})
                          ]
                          spids: [1350 1376]
                        )
                      ]
                      spids: [16777215 1291]
                    )
                  ]
                  spids: [16777215 1379]
                )
              ]
              spids: [1151 1382]
            )
          ]
          spids: [323]
        )
      spids: [318 322]
    )
    (command.FuncDef
      name: __git_ps1_colorize_gitstring
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (word_part.BracedVarSub
                                    token: <VSub_Name ZSH_VERSION>
                                    suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:{})
                                    spids: [1411 1414]
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:c_red spids:[1424])
                          op: Equal
                          rhs: {(SQ <'%F{red}'>)}
                          spids: [1424]
                        )
                      ]
                      spids: [1422]
                    )
                    (command.Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:c_green spids:[1432])
                          op: Equal
                          rhs: {(SQ <'%F{green}'>)}
                          spids: [1432]
                        )
                      ]
                      spids: [1430]
                    )
                    (command.Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:c_lblue spids:[1440])
                          op: Equal
                          rhs: {(SQ <'%F{blue}'>)}
                          spids: [1440]
                        )
                      ]
                      spids: [1438]
                    )
                    (command.Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:c_clear spids:[1448])
                          op: Equal
                          rhs: {(SQ <'%f'>)}
                          spids: [1448]
                        )
                      ]
                      spids: [1446]
                    )
                  ]
                  spids: [16777215 1419]
                )
              ]
              else_action: [
                (command.Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:c_red spids:[1467])
                      op: Equal
                      rhs: {(SQ <'\\[\\e[31m\\]'>)}
                      spids: [1467]
                    )
                  ]
                  spids: [1465]
                )
                (command.Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:c_green spids:[1475])
                      op: Equal
                      rhs: {(SQ <'\\[\\e[32m\\]'>)}
                      spids: [1475]
                    )
                  ]
                  spids: [1473]
                )
                (command.Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:c_lblue spids:[1483])
                      op: Equal
                      rhs: {(SQ <'\\[\\e[1;34m\\]'>)}
                      spids: [1483]
                    )
                  ]
                  spids: [1481]
                )
                (command.Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:c_clear spids:[1491])
                      op: Equal
                      rhs: {(SQ <'\\[\\e[0m\\]'>)}
                      spids: [1491]
                    )
                  ]
                  spids: [1489]
                )
              ]
              spids: [1454 1497]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:bad_color spids:[1502])
                  op: Equal
                  rhs: {($ VSub_DollarName '$c_red')}
                  spids: [1502]
                )
              ]
              spids: [1500]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ok_color spids:[1508])
                  op: Equal
                  rhs: {($ VSub_DollarName '$c_green')}
                  spids: [1508]
                )
              ]
              spids: [1506]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:flags_color spids:[1514])
                  op: Equal
                  rhs: {(DQ ($ VSub_DollarName '$c_lblue'))}
                  spids: [1514]
                )
              ]
              spids: [1512]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:branch_color spids:[1523])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [1523]
                )
              ]
              spids: [1521]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_DollarName '$detached')} {(Lit_Other '=')} {(no)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:branch_color spids:[1544])
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$ok_color'))}
                          spids: [1544]
                        )
                      ]
                      spids: [1544]
                    )
                  ]
                  spids: [16777215 1541]
                )
              ]
              else_action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:branch_color spids:[1553])
                      op: Equal
                      rhs: {(DQ ($ VSub_DollarName '$bad_color'))}
                      spids: [1553]
                    )
                  ]
                  spids: [1553]
                )
              ]
              spids: [1550 1559]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:c spids:[1562])
                  op: Equal
                  rhs: {(DQ ($ VSub_DollarName '$branch_color') ($ VSub_DollarName '$c'))}
                  spids: [1562]
                )
              ]
              spids: [1562]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:z spids:[1570])
                  op: Equal
                  rhs: {(DQ ($ VSub_DollarName '$c_clear') ($ VSub_DollarName '$z'))}
                  spids: [1570]
                )
              ]
              spids: [1570]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$w'))} {(Lit_Other '=')} 
                          {(DQ ('*'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:w spids:[1597])
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$bad_color') ($ VSub_DollarName '$w'))}
                          spids: [1597]
                        )
                      ]
                      spids: [1597]
                    )
                  ]
                  spids: [16777215 1594]
                )
              ]
              spids: [16777215 1604]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$i'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:i spids:[1623])
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$ok_color') ($ VSub_DollarName '$i'))}
                          spids: [1623]
                        )
                      ]
                      spids: [1623]
                    )
                  ]
                  spids: [16777215 1620]
                )
              ]
              spids: [16777215 1630]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$s'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:s spids:[1649])
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$flags_color') ($ VSub_DollarName '$s'))}
                          spids: [1649]
                        )
                      ]
                      spids: [1649]
                    )
                  ]
                  spids: [16777215 1646]
                )
              ]
              spids: [16777215 1656]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$u'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:u spids:[1675])
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$bad_color') ($ VSub_DollarName '$u'))}
                          spids: [1675]
                        )
                      ]
                      spids: [1675]
                    )
                  ]
                  spids: [16777215 1672]
                )
              ]
              spids: [16777215 1682]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:r spids:[1685])
                  op: Equal
                  rhs: {(DQ ($ VSub_DollarName '$c_clear') ($ VSub_DollarName '$r'))}
                  spids: [1685]
                )
              ]
              spids: [1685]
            )
          ]
          spids: [1402]
        )
      spids: [1397 1401]
    )
    (command.FuncDef
      name: __git_eread
      body: 
        (command.BraceGroup
          children: [
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:f spids:[1704])
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [1704]
                )
              ]
              spids: [1702]
            )
            (C {(shift)})
            (command.AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-r)} {(DQ ($ VSub_DollarName '$f'))})
                (command.SimpleCommand
                  words: [{(read)} {(DQ ($ VSub_At '$@'))}]
                  redirects: [
                    (redir.Redir
                      op: <Redir_Less '<'>
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_DollarName '$f'))}
                    )
                  ]
                )
              ]
            )
          ]
          spids: [1699]
        )
      spids: [1694 1698]
    )
    (command.FuncDef
      name: __git_ps1
      body: 
        (command.BraceGroup
          children: [
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:exit spids:[1784])
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [1784]
                )
              ]
              spids: [1782]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:pcmode spids:[1790])
                  op: Equal
                  rhs: {(no)}
                  spids: [1790]
                )
              ]
              spids: [1788]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:detached spids:[1796])
                  op: Equal
                  rhs: {(no)}
                  spids: [1796]
                )
              ]
              spids: [1794]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ps1pc_start spids:[1802])
                  op: Equal
                  rhs: {(SQ <'\\u@\\h:\\w '>)}
                  spids: [1802]
                )
              ]
              spids: [1800]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ps1pc_end spids:[1810])
                  op: Equal
                  rhs: {(SQ <'\\$ '>)}
                  spids: [1810]
                )
              ]
              spids: [1808]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:printf_format spids:[1818])
                  op: Equal
                  rhs: {(SQ <' (%s)'>)}
                  spids: [1818]
                )
              ]
              spids: [1816]
            )
            (command.Case
              to_match: {(DQ ($ VSub_Pound '$#'))}
              arms: [
                (case_arm
                  pat_list: [{(2)} {(3)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:pcmode spids:[1839])
                          op: Equal
                          rhs: {(yes)}
                          spids: [1839]
                        )
                      ]
                      spids: [1839]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:ps1pc_start spids:[1843])
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [1843]
                        )
                      ]
                      spids: [1843]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:ps1pc_end spids:[1849])
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$2'))}
                          spids: [1849]
                        )
                      ]
                      spids: [1849]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:printf_format spids:[1855])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.BracedVarSub
                                  token: <VSub_Number 3>
                                  suffix_op: 
                                    (suffix_op.StringUnary
                                      op_id: VTest_ColonHyphen
                                      arg_word: {($ VSub_DollarName '$printf_format')}
                                    )
                                  spids: [1857 1861]
                                )
                              )
                            }
                          spids: [1855]
                        )
                      ]
                      spids: [1855]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:PS1 spids:[1877])
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$ps1pc_start') ($ VSub_DollarName '$ps1pc_end'))
                            }
                          spids: [1877]
                        )
                      ]
                      spids: [1877]
                    )
                  ]
                  spids: [1834 1837 1884 16777215]
                )
                (case_arm
                  pat_list: [{(0)} {(1)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:printf_format spids:[1892])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (suffix_op.StringUnary
                                      op_id: VTest_ColonHyphen
                                      arg_word: {($ VSub_DollarName '$printf_format')}
                                    )
                                  spids: [1894 1898]
                                )
                              )
                            }
                          spids: [1892]
                        )
                      ]
                      spids: [1892]
                    )
                  ]
                  spids: [1887 1890 1902 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (command.ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_DollarName '$exit')}
                    )
                  ]
                  spids: [1905 1906 1913 16777215]
                )
              ]
              spids: [1825 1831 1916]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ps1_expanded spids:[2054])
                  op: Equal
                  rhs: {(yes)}
                  spids: [2054]
                )
              ]
              spids: [2052]
            )
            (command.AndOr
              ops: [Op_DPipe Op_DPipe]
              children: [
                (C {(Lit_Other '[')} {(-z)} 
                  {
                    (DQ 
                      (word_part.BracedVarSub
                        token: <VSub_Name ZSH_VERSION>
                        suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:(word.EmptyWord))
                        spids: [2063 2066]
                      )
                    )
                  } {(Lit_Other ']')}
                )
                (command.DBracket
                  expr: (bool_expr.BoolUnary op_id:BoolUnary_o child:{(PROMPT_SUBST)})
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:ps1_expanded spids:[2083])
                      op: Equal
                      rhs: {(no)}
                      spids: [2083]
                    )
                  ]
                  spids: [2083]
                )
              ]
            )
            (command.AndOr
              ops: [Op_DPipe Op_DPipe]
              children: [
                (C {(Lit_Other '[')} {(-z)} 
                  {
                    (DQ 
                      (word_part.BracedVarSub
                        token: <VSub_Name BASH_VERSION>
                        suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:(word.EmptyWord))
                        spids: [2092 2095]
                      )
                    )
                  } {(Lit_Other ']')}
                )
                (C {(shopt)} {(-q)} {(promptvars)})
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:ps1_expanded spids:[2110])
                      op: Equal
                      rhs: {(no)}
                      spids: [2110]
                    )
                  ]
                  spids: [2110]
                )
              ]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:repo_info spids:[2117])
                  op: Equal
                  spids: [2117]
                )
                (assign_pair
                  lhs: (lhs_expr.LhsName name:rev_parse_exit_code spids:[2119])
                  op: Equal
                  spids: [2119]
                )
              ]
              spids: [2115]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:repo_info spids:[2122])
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.CommandSubPart
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.SimpleCommand
                                  words: [
                                    {(git)}
                                    {(rev-parse)}
                                    {(--git-dir)}
                                    {(--is-inside-git-dir)}
                                    {(--is-bare-repository)}
                                    {(--is-inside-work-tree)}
                                    {(--short)}
                                    {(HEAD)}
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: <Redir_Great '2>'>
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                    )
                                  ]
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [2124 2147]
                        )
                      )
                    }
                  spids: [2122]
                )
              ]
              spids: [2122]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:rev_parse_exit_code spids:[2151])
                  op: Equal
                  rhs: {(DQ ($ VSub_QMark '$?'))}
                  spids: [2151]
                )
              ]
              spids: [2151]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$repo_info'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_DollarName '$exit')}
                    )
                  ]
                  spids: [16777215 2171]
                )
              ]
              spids: [16777215 2179]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:short_sha spids:[2185])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [2185]
                )
              ]
              spids: [2183]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$rev_parse_exit_code'))} 
                          {(Lit_Other '=')} {(DQ (0))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:short_sha spids:[2210])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.BracedVarSub
                                  token: <VSub_Name repo_info>
                                  suffix_op: 
                                    (suffix_op.StringUnary
                                      op_id: VOp1_DPound
                                      arg_word: 
                                        {('*') (Lit_Other '$') ("'") 
                                          (word_part.EscapedLiteralPart
                                            token: <Lit_EscapedChar '\\n'>
                                          ) ("'")
                                        }
                                    )
                                  spids: [2212 2220]
                                )
                              )
                            }
                          spids: [2210]
                        )
                      ]
                      spids: [2210]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:repo_info spids:[2224])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.BracedVarSub
                                  token: <VSub_Name repo_info>
                                  suffix_op: 
                                    (suffix_op.StringUnary
                                      op_id: VOp1_Percent
                                      arg_word: 
                                        {(Lit_Other '$') ("'") 
                                          (word_part.EscapedLiteralPart
                                            token: <Lit_EscapedChar '\\n'>
                                          ) ("'*")
                                        }
                                    )
                                  spids: [2226 2233]
                                )
                              )
                            }
                          spids: [2224]
                        )
                      ]
                      spids: [2224]
                    )
                  ]
                  spids: [16777215 2207]
                )
              ]
              spids: [16777215 2237]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:inside_worktree spids:[2242])
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.BracedVarSub
                          token: <VSub_Name repo_info>
                          suffix_op: 
                            (suffix_op.StringUnary
                              op_id: VOp1_DPound
                              arg_word: 
                                {('*') (Lit_Other '$') ("'") 
                                  (word_part.EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\n'>
                                  ) ("'")
                                }
                            )
                          spids: [2244 2252]
                        )
                      )
                    }
                  spids: [2242]
                )
              ]
              spids: [2240]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:repo_info spids:[2256])
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.BracedVarSub
                          token: <VSub_Name repo_info>
                          suffix_op: 
                            (suffix_op.StringUnary
                              op_id: VOp1_Percent
                              arg_word: 
                                {(Lit_Other '$') ("'") 
                                  (word_part.EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\n'>
                                  ) ("'*")
                                }
                            )
                          spids: [2258 2265]
                        )
                      )
                    }
                  spids: [2256]
                )
              ]
              spids: [2256]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:bare_repo spids:[2271])
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.BracedVarSub
                          token: <VSub_Name repo_info>
                          suffix_op: 
                            (suffix_op.StringUnary
                              op_id: VOp1_DPound
                              arg_word: 
                                {('*') (Lit_Other '$') ("'") 
                                  (word_part.EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\n'>
                                  ) ("'")
                                }
                            )
                          spids: [2273 2281]
                        )
                      )
                    }
                  spids: [2271]
                )
              ]
              spids: [2269]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:repo_info spids:[2285])
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.BracedVarSub
                          token: <VSub_Name repo_info>
                          suffix_op: 
                            (suffix_op.StringUnary
                              op_id: VOp1_Percent
                              arg_word: 
                                {(Lit_Other '$') ("'") 
                                  (word_part.EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\n'>
                                  ) ("'*")
                                }
                            )
                          spids: [2287 2294]
                        )
                      )
                    }
                  spids: [2285]
                )
              ]
              spids: [2285]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:inside_gitdir spids:[2300])
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.BracedVarSub
                          token: <VSub_Name repo_info>
                          suffix_op: 
                            (suffix_op.StringUnary
                              op_id: VOp1_DPound
                              arg_word: 
                                {('*') (Lit_Other '$') ("'") 
                                  (word_part.EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\n'>
                                  ) ("'")
                                }
                            )
                          spids: [2302 2310]
                        )
                      )
                    }
                  spids: [2300]
                )
              ]
              spids: [2298]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:g spids:[2316])
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.BracedVarSub
                          token: <VSub_Name repo_info>
                          suffix_op: 
                            (suffix_op.StringUnary
                              op_id: VOp1_Percent
                              arg_word: 
                                {(Lit_Other '$') ("'") 
                                  (word_part.EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\n'>
                                  ) ("'*")
                                }
                            )
                          spids: [2318 2325]
                        )
                      )
                    }
                  spids: [2316]
                )
              ]
              spids: [2314]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.AndOr
                      ops: [Op_DAmp Op_DAmp Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(DQ (true))} {(Lit_Other '=')} 
                          {(DQ ($ VSub_DollarName '$inside_worktree'))} {(Lit_Other ']')}
                        )
                        (C {(Lit_Other '[')} {(-n)} 
                          {
                            (DQ 
                              (word_part.BracedVarSub
                                token: <VSub_Name GIT_PS1_HIDE_IF_PWD_IGNORED>
                                suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:(word.EmptyWord))
                                spids: [2354 2357]
                              )
                            )
                          } {(Lit_Other ']')}
                        )
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(git)} {(config)} {(--bool)} {(bash.hideIfPwdIgnored)})
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2368 2376]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ (false))} {(Lit_Other ']')}
                        )
                        (C {(git)} {(check-ignore)} {(-q)} {(.)})
                      ]
                    )
                  ]
                  action: [
                    (command.ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_DollarName '$exit')}
                    )
                  ]
                  spids: [16777215 2400]
                )
              ]
              spids: [16777215 2408]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:r spids:[2414])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [2414]
                )
              ]
              spids: [2412]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:b spids:[2421])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [2421]
                )
              ]
              spids: [2419]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:step spids:[2428])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [2428]
                )
              ]
              spids: [2426]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:total spids:[2435])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [2435]
                )
              ]
              spids: [2433]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_DollarName '$g') (/rebase-merge))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(__git_eread)} {(DQ ($ VSub_DollarName '$g') (/rebase-merge/head-name))} {(b)})
                    (C {(__git_eread)} {(DQ ($ VSub_DollarName '$g') (/rebase-merge/msgnum))} {(step)})
                    (C {(__git_eread)} {(DQ ($ VSub_DollarName '$g') (/rebase-merge/end))} {(total)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-f)} 
                                  {(DQ ($ VSub_DollarName '$g') (/rebase-merge/interactive))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:r spids:[2504])
                                  op: Equal
                                  rhs: {(DQ ('|REBASE-i'))}
                                  spids: [2504]
                                )
                              ]
                              spids: [2504]
                            )
                          ]
                          spids: [16777215 2501]
                        )
                      ]
                      else_action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:r spids:[2513])
                              op: Equal
                              rhs: {(DQ ('|REBASE-m'))}
                              spids: [2513]
                            )
                          ]
                          spids: [2513]
                        )
                      ]
                      spids: [2510 2519]
                    )
                  ]
                  spids: [16777215 2454]
                )
              ]
              else_action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_DollarName '$g') (/rebase-apply))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(__git_eread)} {(DQ ($ VSub_DollarName '$g') (/rebase-apply/next))} {(step)})
                        (C {(__git_eread)} {(DQ ($ VSub_DollarName '$g') (/rebase-apply/last))} 
                          {(total)}
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(-f)} 
                                      {(DQ ($ VSub_DollarName '$g') (/rebase-apply/rebasing))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(__git_eread)} 
                                  {(DQ ($ VSub_DollarName '$g') (/rebase-apply/head-name))} {(b)}
                                )
                                (command.Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (lhs_expr.LhsName name:r spids:[2589])
                                      op: Equal
                                      rhs: {(DQ ('|REBASE'))}
                                      spids: [2589]
                                    )
                                  ]
                                  spids: [2589]
                                )
                              ]
                              spids: [16777215 2576]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(-f)} 
                                      {(DQ ($ VSub_DollarName '$g') (/rebase-apply/applying))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (command.Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (lhs_expr.LhsName name:r spids:[2612])
                                      op: Equal
                                      rhs: {(DQ ('|AM'))}
                                      spids: [2612]
                                    )
                                  ]
                                  spids: [2612]
                                )
                              ]
                              spids: [2595 2609]
                            )
                          ]
                          else_action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:r spids:[2621])
                                  op: Equal
                                  rhs: {(DQ ('|AM/REBASE'))}
                                  spids: [2621]
                                )
                              ]
                              spids: [2621]
                            )
                          ]
                          spids: [2618 2627]
                        )
                      ]
                      spids: [16777215 2539]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_DollarName '$g') (/MERGE_HEAD))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:r spids:[2647])
                              op: Equal
                              rhs: {(DQ ('|MERGING'))}
                              spids: [2647]
                            )
                          ]
                          spids: [2647]
                        )
                      ]
                      spids: [2630 2644]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-f)} 
                              {(DQ ($ VSub_DollarName '$g') (/CHERRY_PICK_HEAD))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:r spids:[2670])
                              op: Equal
                              rhs: {(DQ ('|CHERRY-PICKING'))}
                              spids: [2670]
                            )
                          ]
                          spids: [2670]
                        )
                      ]
                      spids: [2653 2667]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_DollarName '$g') (/REVERT_HEAD))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:r spids:[2693])
                              op: Equal
                              rhs: {(DQ ('|REVERTING'))}
                              spids: [2693]
                            )
                          ]
                          spids: [2693]
                        )
                      ]
                      spids: [2676 2690]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_DollarName '$g') (/BISECT_LOG))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:r spids:[2716])
                              op: Equal
                              rhs: {(DQ ('|BISECTING'))}
                              spids: [2716]
                            )
                          ]
                          spids: [2716]
                        )
                      ]
                      spids: [2699 2713]
                    )
                  ]
                  spids: [16777215 2722]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$b'))} {(Lit_Other ']')})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [(C {(Lit_Other ':')})]
                      spids: [16777215 2739]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-h)} {(DQ ($ VSub_DollarName '$g') (/HEAD))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:b spids:[2766])
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (word_part.CommandSubPart
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.SimpleCommand
                                              words: [{(git)} {(symbolic-ref)} {(HEAD)}]
                                              redirects: [
                                                (redir.Redir
                                                  op: <Redir_Great '2>'>
                                                  fd: 2
                                                  arg_word: {(/dev/null)}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [2768 2777]
                                    )
                                  )
                                }
                              spids: [2766]
                            )
                          ]
                          spids: [2766]
                        )
                      ]
                      spids: [2745 2759]
                    )
                  ]
                  else_action: [
                    (command.Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:head spids:[2786])
                          op: Equal
                          rhs: {(DQ )}
                          spids: [2786]
                        )
                      ]
                      spids: [2784]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {(__git_eread)} {(DQ ($ VSub_DollarName '$g') (/HEAD))} {(head)})
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (command.ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {($ VSub_DollarName '$exit')}
                            )
                          ]
                          spids: [16777215 2805]
                        )
                      ]
                      spids: [16777215 2813]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:b spids:[2820])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.BracedVarSub
                                  token: <VSub_Name head>
                                  suffix_op: 
                                    (suffix_op.StringUnary
                                      op_id: VOp1_Pound
                                      arg_word: {('ref: ')}
                                    )
                                  spids: [2822 2826]
                                )
                              )
                            }
                          spids: [2820]
                        )
                      ]
                      spids: [2820]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$head'))} 
                                  {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$b'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:detached spids:[2850])
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [2850]
                                )
                              ]
                              spids: [2850]
                            )
                            (command.AndOr
                              ops: [Op_DPipe]
                              children: [
                                (command.Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (lhs_expr.LhsName name:b spids:[2854])
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (word_part.CommandSubPart
                                              command_list: 
                                                (command.CommandList
                                                  children: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ 
                                                            (word_part.BracedVarSub
                                                              token: 
                                                                <VSub_Name GIT_PS1_DESCRIBE_STYLE>
                                                              suffix_op: 
                                                                (suffix_op.StringUnary
                                                                  op_id: VTest_Hyphen
                                                                  arg_word: (word.EmptyWord)
                                                                )
                                                              spids: [2862 2865]
                                                            )
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{(contains)}]
                                                          action: [
                                                            (C {(git)} {(describe)} {(--contains)} 
                                                              {(HEAD)}
                                                            )
                                                          ]
                                                          spids: [2871 2873 2884 16777215]
                                                        )
                                                        (case_arm
                                                          pat_list: [{(branch)}]
                                                          action: [
                                                            (C {(git)} {(describe)} {(--contains)} 
                                                              {(--all)} {(HEAD)}
                                                            )
                                                          ]
                                                          spids: [2887 2889 2902 16777215]
                                                        )
                                                        (case_arm
                                                          pat_list: [{(describe)}]
                                                          action: [(C {(git)} {(describe)} {(HEAD)})]
                                                          spids: [2905 2907 2916 16777215]
                                                        )
                                                        (case_arm
                                                          pat_list: [{(Lit_Other '*')} {(default)}]
                                                          action: [
                                                            (C {(git)} {(describe)} {(--tags)} 
                                                              {(--exact-match)} {(HEAD)}
                                                            )
                                                          ]
                                                          spids: [2919 2925 2938 16777215]
                                                        )
                                                      ]
                                                      redirects: [
                                                        (redir.Redir
                                                          op: <Redir_Great '2>'>
                                                          fd: 2
                                                          arg_word: {(/dev/null)}
                                                        )
                                                      ]
                                                      spids: [2859 2868 2941]
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [2856 2945]
                                            )
                                          )
                                        }
                                      spids: [2854]
                                    )
                                  ]
                                  spids: [2854]
                                )
                                (command.Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (lhs_expr.LhsName name:b spids:[2952])
                                      op: Equal
                                      rhs: {(DQ ($ VSub_DollarName '$short_sha') (...))}
                                      spids: [2952]
                                    )
                                  ]
                                  spids: [2952]
                                )
                              ]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:b spids:[2959])
                                  op: Equal
                                  rhs: {(DQ ('(') ($ VSub_DollarName '$b') (')'))}
                                  spids: [2959]
                                )
                              ]
                              spids: [2959]
                            )
                          ]
                          spids: [16777215 2847]
                        )
                      ]
                      spids: [16777215 2967]
                    )
                  ]
                  spids: [2781 2970]
                )
              ]
              spids: [2522 2973]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$step'))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$total'))} 
                              {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:r spids:[3005])
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$r') (' ') ($ VSub_DollarName '$step') (/) 
                                ($ VSub_DollarName '$total')
                              )
                            }
                          spids: [3005]
                        )
                      ]
                      spids: [3005]
                    )
                  ]
                  spids: [16777215 3002]
                )
              ]
              spids: [16777215 3015]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:w spids:[3021])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [3021]
                )
              ]
              spids: [3019]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:i spids:[3028])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [3028]
                )
              ]
              spids: [3026]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:s spids:[3035])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [3035]
                )
              ]
              spids: [3033]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:u spids:[3042])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [3042]
                )
              ]
              spids: [3040]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:c spids:[3049])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [3049]
                )
              ]
              spids: [3047]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:p spids:[3056])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [3056]
                )
              ]
              spids: [3054]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (true))} {(Lit_Other '=')} 
                          {(DQ ($ VSub_DollarName '$inside_gitdir'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ (true))} {(Lit_Other '=')} 
                                  {(DQ ($ VSub_DollarName '$bare_repo'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:c spids:[3102])
                                  op: Equal
                                  rhs: {(DQ ('BARE:'))}
                                  spids: [3102]
                                )
                              ]
                              spids: [3102]
                            )
                          ]
                          spids: [16777215 3099]
                        )
                      ]
                      else_action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:b spids:[3111])
                              op: Equal
                              rhs: {(DQ ('GIT_DIR!'))}
                              spids: [3111]
                            )
                          ]
                          spids: [3111]
                        )
                      ]
                      spids: [3108 3117]
                    )
                  ]
                  spids: [16777215 3079]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (true))} {(Lit_Other '=')} 
                          {(DQ ($ VSub_DollarName '$inside_worktree'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (word_part.BracedVarSub
                                        token: <VSub_Name GIT_PS1_SHOWDIRTYSTATE>
                                        suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:(word.EmptyWord))
                                        spids: [3147 3150]
                                      )
                                    )
                                  } {(Lit_Other ']')}
                                )
                                (C {(Lit_Other '[')} 
                                  {
                                    (DQ 
                                      (word_part.CommandSubPart
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (C {(git)} {(config)} {(--bool)} {(bash.showDirtyState)})
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [3161 3169]
                                      )
                                    )
                                  } {(KW_Bang '!') (Lit_Other '=')} {(DQ (false))} {(Lit_Other ']')}
                                )
                              ]
                            )
                          ]
                          action: [
                            (command.AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(git)} {(diff)} {(--no-ext-diff)} {(--quiet)})
                                (command.Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (lhs_expr.LhsName name:w spids:[3195])
                                      op: Equal
                                      rhs: {(DQ ('*'))}
                                      spids: [3195]
                                    )
                                  ]
                                  spids: [3195]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(git)} {(diff)} {(--no-ext-diff)} {(--cached)} {(--quiet)})
                                (command.Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (lhs_expr.LhsName name:i spids:[3213])
                                      op: Equal
                                      rhs: {(DQ ('+'))}
                                      spids: [3213]
                                    )
                                  ]
                                  spids: [3213]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(Lit_Other '[')} {(-z)} 
                                              {(DQ ($ VSub_DollarName '$short_sha'))} {(Lit_Other ']')}
                                            )
                                            (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$i'))} 
                                              {(Lit_Other ']')}
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:i spids:[3247])
                                          op: Equal
                                          rhs: {(DQ ('#'))}
                                          spids: [3247]
                                        )
                                      ]
                                      spids: [3247]
                                    )
                                  ]
                                  spids: [16777215 3244]
                                )
                              ]
                              spids: [16777215 3253]
                            )
                          ]
                          spids: [16777215 3182]
                        )
                      ]
                      spids: [16777215 3256]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (word_part.BracedVarSub
                                        token: <VSub_Name GIT_PS1_SHOWSTASHSTATE>
                                        suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:(word.EmptyWord))
                                        spids: [3266 3269]
                                      )
                                    )
                                  } {(Lit_Other ']')}
                                )
                                (command.SimpleCommand
                                  words: [{(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(refs/stash)}]
                                  redirects: [
                                    (redir.Redir
                                      op: <Redir_Great '>'>
                                      fd: 16777215
                                      arg_word: {(/dev/null)}
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:s spids:[3294])
                                  op: Equal
                                  rhs: {(DQ (Lit_Other '$'))}
                                  spids: [3294]
                                )
                              ]
                              spids: [3294]
                            )
                          ]
                          spids: [16777215 3291]
                        )
                      ]
                      spids: [16777215 3300]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (word_part.BracedVarSub
                                        token: <VSub_Name GIT_PS1_SHOWUNTRACKEDFILES>
                                        suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:(word.EmptyWord))
                                        spids: [3311 3314]
                                      )
                                    )
                                  } {(Lit_Other ']')}
                                )
                                (C {(Lit_Other '[')} 
                                  {
                                    (DQ 
                                      (word_part.CommandSubPart
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (C {(git)} {(config)} {(--bool)} 
                                                {(bash.showUntrackedFiles)}
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [3325 3333]
                                      )
                                    )
                                  } {(KW_Bang '!') (Lit_Other '=')} {(DQ (false))} {(Lit_Other ']')}
                                )
                                (command.SimpleCommand
                                  words: [
                                    {(git)}
                                    {(ls-files)}
                                    {(--others)}
                                    {(--exclude-standard)}
                                    {(--directory)}
                                    {(--no-empty-directory)}
                                    {(--error-unmatch)}
                                    {(--)}
                                    {(SQ <':/*'>)}
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: <Redir_Great '>'>
                                      fd: 16777215
                                      arg_word: {(/dev/null)}
                                    )
                                    (redir.Redir
                                      op: <Redir_Great '2>'>
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:u spids:[3378])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ('%') 
                                        (word_part.BracedVarSub
                                          token: <VSub_Name ZSH_VERSION>
                                          suffix_op: 
                                            (suffix_op.StringUnary
                                              op_id: VTest_Plus
                                              arg_word: {(Lit_Percent '%')}
                                            )
                                          spids: [3381 3385]
                                        )
                                      )
                                    }
                                  spids: [3378]
                                )
                              ]
                              spids: [3378]
                            )
                          ]
                          spids: [16777215 3375]
                        )
                      ]
                      spids: [16777215 3389]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (word_part.BracedVarSub
                                        token: <VSub_Name GIT_PS1_SHOWUPSTREAM>
                                        suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:(word.EmptyWord))
                                        spids: [3400 3403]
                                      )
                                    )
                                  } {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(__git_ps1_show_upstream)})]
                          spids: [16777215 3409]
                        )
                      ]
                      spids: [16777215 3415]
                    )
                  ]
                  spids: [3120 3137]
                )
              ]
              spids: [16777215 3418]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:z spids:[3424])
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.BracedVarSub
                          token: <VSub_Name GIT_PS1_STATESEPARATOR>
                          suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:{(DQ (' '))})
                          spids: [3426 3432]
                        )
                      )
                    }
                  spids: [3424]
                )
              ]
              spids: [3422]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {($ VSub_DollarName '$pcmode')} {(Lit_Other '=')} 
                              {(yes)} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(-n)} 
                              {
                                (DQ 
                                  (word_part.BracedVarSub
                                    token: <VSub_Name GIT_PS1_SHOWCOLORHINTS>
                                    suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:(word.EmptyWord))
                                    spids: [3460 3463]
                                  )
                                )
                              } {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(__git_ps1_colorize_gitstring)})]
                  spids: [16777215 3469]
                )
              ]
              spids: [16777215 3475]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:b spids:[3479])
                  op: Equal
                  rhs: 
                    {
                      (word_part.BracedVarSub
                        token: <VSub_Name b>
                        suffix_op: 
                          (suffix_op.StringUnary
                            op_id: VOp1_DPound
                            arg_word: {(refs) (Lit_Slash /) (heads) (Lit_Slash /)}
                          )
                        spids: [3480 3487]
                      )
                    }
                  spids: [3479]
                )
              ]
              spids: [3479]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {($ VSub_DollarName '$pcmode')} {(Lit_Other '=')} 
                              {(yes)} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {($ VSub_DollarName '$ps1_expanded')} {(Lit_Other '=')} 
                              {(yes)} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:__git_ps1_branch_name spids:[3518])
                          op: Equal
                          rhs: {($ VSub_DollarName '$b')}
                          spids: [3518]
                        )
                      ]
                      spids: [3518]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:b spids:[3522])
                          op: Equal
                          rhs: 
                            {
                              (DQ (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                ('{__git_ps1_branch_name}')
                              )
                            }
                          spids: [3522]
                        )
                      ]
                      spids: [3522]
                    )
                  ]
                  spids: [16777215 3515]
                )
              ]
              spids: [16777215 3529]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:f spids:[3535])
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_DollarName '$w') ($ VSub_DollarName '$i') ($ VSub_DollarName '$s') 
                        ($ VSub_DollarName '$u')
                      )
                    }
                  spids: [3535]
                )
              ]
              spids: [3533]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:gitstring spids:[3546])
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_DollarName '$c') ($ VSub_DollarName '$b') 
                        (word_part.BracedVarSub
                          token: <VSub_Name f>
                          suffix_op: 
                            (suffix_op.StringUnary
                              op_id: VTest_ColonPlus
                              arg_word: {($ VSub_DollarName '$z') ($ VSub_DollarName '$f')}
                            )
                          spids: [3550 3555]
                        ) ($ VSub_DollarName '$r') ($ VSub_DollarName '$p')
                      )
                    }
                  spids: [3546]
                )
              ]
              spids: [3544]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_DollarName '$pcmode')} {(Lit_Other '=')} {(yes)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} 
                                  {
                                    (DQ 
                                      (word_part.BracedVarSub
                                        token: <VSub_Name __git_printf_supports_v>
                                        suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:(word.EmptyWord))
                                        spids: [3583 3586]
                                      )
                                    )
                                  } {(KW_Bang '!') (Lit_Other '=')} {(yes)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:gitstring spids:[3600])
                                  op: Equal
                                  rhs: 
                                    {
                                      (word_part.CommandSubPart
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (C {(printf)} {(--)} 
                                                {(DQ ($ VSub_DollarName '$printf_format'))} {(DQ ($ VSub_DollarName '$gitstring'))}
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [3601 3613]
                                      )
                                    }
                                  spids: [3600]
                                )
                              ]
                              spids: [3600]
                            )
                          ]
                          spids: [16777215 3597]
                        )
                      ]
                      else_action: [
                        (C {(printf)} {(-v)} {(gitstring)} {(--)} 
                          {(DQ ($ VSub_DollarName '$printf_format'))} {(DQ ($ VSub_DollarName '$gitstring'))}
                        )
                      ]
                      spids: [3616 3636]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:PS1 spids:[3639])
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$ps1pc_start') ($ VSub_DollarName '$gitstring') 
                                ($ VSub_DollarName '$ps1pc_end')
                              )
                            }
                          spids: [3639]
                        )
                      ]
                      spids: [3639]
                    )
                  ]
                  spids: [16777215 3575]
                )
              ]
              else_action: [
                (C {(printf)} {(--)} {(DQ ($ VSub_DollarName '$printf_format'))} 
                  {(DQ ($ VSub_DollarName '$gitstring'))}
                )
              ]
              spids: [3647 3663]
            )
            (command.ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {($ VSub_DollarName '$exit')}
            )
          ]
          spids: [1775]
        )
      spids: [1770 1774]
    )
  ]
)