(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:SUBDIRECTORY_OK) op:Equal rhs:{(Yes)} spids:[10])]
      spids: [10]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:OPTIONS_KEEPDASHDASH)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:OPTIONS_STUCKLONG) op:Equal rhs:{(t)} spids:[15])]
      spids: [15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:OPTIONS_SPEC)
          op: Equal
          rhs: 
            {
              (DQ ('git am [options] [(<mbox>|<Maildir>)...]\n') 
                ('git am [options] (--continue | --skip | --abort)\n') ('--\n') ('i,interactive   run interactively\n') ('b,binary*       (historical option -- no-op)\n') 
                ('3,3way          allow fall back on 3way merging if needed\n') ('q,quiet         be quiet\n') ('s,signoff       add a Signed-off-by line to the commit message\n') 
                ('u,utf8          recode into utf8 (default)\n') ('k,keep          pass -k flag to git-mailinfo\n') ('keep-non-patch  pass -b flag to git-mailinfo\n') 
                ('m,message-id    pass -m flag to git-mailinfo\n') ('keep-cr         pass --keep-cr flag to git-mailsplit for mbox format\n') 
                (
'no-keep-cr      do not pass --keep-cr flag to git-mailsplit independent of am.keepcr\n'
                ) ('c,scissors      strip everything before a scissors line\n') 
                ('whitespace=     pass it through git-apply\n') ('ignore-space-change pass it through git-apply\n') ('ignore-whitespace pass it through git-apply\n') 
                ('directory=      pass it through git-apply\n') ('exclude=        pass it through git-apply\n') ('include=        pass it through git-apply\n') 
                ('C=              pass it through git-apply\n') ('p=              pass it through git-apply\n') ('patch-format=   format the patch(es) are in\n') 
                ('reject          pass it through git-apply\n') ('resolvemsg=     override error message when patch failure occurs\n') 
                ('continue        continue applying patches after resolving a conflict\n') ('r,resolved      synonyms for --continue\n') ('skip            skip the current patch\n') 
                ('abort           restore the original branch and abort the patching operation.\n') ('committer-date-is-author-date    lie about committer date\n') 
                ('ignore-date     use current timestamp for author date\n') ('rerere-autoupdate update the index with reused conflict resolution if possible\n') 
                ('S,gpg-sign?     GPG-sign commits\n') ('rebasing*       (internal use for git-rebase)')
              )
            }
          spids: [18]
        )
      ]
      spids: [18]
    )
    (C {(.)} {(git-sh-setup)})
    (C {(.)} {(git-sh-i18n)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:prefix)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(--show-prefix)})])
                left_token: <Left_CommandSub '$('>
                spids: [68 74]
              )
            }
          spids: [67]
        )
      ]
      spids: [67]
    )
    (C {(set_reflog_action)} {(am)})
    (C {(require_work_tree)})
    (C {(cd_to_toplevel)})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(git)} {(var)} {(GIT_COMMITTER_IDENT)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[91])]
        )
        (C {(die)} 
          {
            (DQ 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(gettext)} {(DQ ('You need to set your committer info first'))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [100 106]
              )
            )
          }
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (SimpleCommand
              words: [{(git)} {(rev-parse)} {(--verify)} {(-q)} {(HEAD)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[122])]
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HAS_HEAD) op:Equal rhs:{(yes)} spids:[128])]
              spids: [128]
            )
          ]
          spids: [16777215 125]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:HAS_HEAD) op:Equal rhs:{(EmptyPart)} spids:[134])]
          spids: [134]
        )
      ]
      spids: [131 136]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:cmdline) op:Equal rhs:{(DQ ('git am'))} spids:[139])]
      spids: [139]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} {(SQ )} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$interactive'))})
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmdline)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$cmdline') (' -i'))}
                  spids: [161]
                )
              ]
              spids: [161]
            )
          ]
          spids: [16777215 158]
        )
      ]
      spids: [16777215 167]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(SQ )} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$threeway'))})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmdline)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$cmdline') (' -3'))}
                  spids: [186]
                )
              ]
              spids: [186]
            )
          ]
          spids: [16777215 183]
        )
      ]
      spids: [16777215 192]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:empty_tree)
          op: Equal
          rhs: {(4b825dc642cb6eb9a060e54bf8d69288fbee4904)}
          spids: [195]
        )
      ]
      spids: [195]
    )
    (FuncDef
      name: sq
      body: 
        (BraceGroup
          children: [(C {(git)} {(rev-parse)} {(--sq-quote)} {(DQ ($ VSub_At '$@'))})]
          spids: [204]
        )
      spids: [199 203]
    )
    (FuncDef
      name: stop_here
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(echo)} {(DQ ($ VSub_Number '$1'))}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$dotest') (/next))}
                  spids: [234]
                )
              ]
            )
            (SimpleCommand
              words: [{(git)} {(rev-parse)} {(--verify)} {(-q)} {(HEAD)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$dotest') (/abort-safety))}
                  spids: [251]
                )
              ]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [225]
        )
      spids: [220 224]
    )
    (FuncDef
      name: safe_to_abort
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/dirtyindex))})]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                  spids: [16777215 285]
                )
              ]
              spids: [16777215 293]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Pipeline
                      children: [(C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/abort-safety))})]
                      negated: T
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [16777215 311]
                )
              ]
              spids: [16777215 319]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:abort_safety)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/abort-safety))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [324 331]
                      )
                    }
                  spids: [323]
                )
              ]
              spids: [323]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} 
                      {
                        (DQ (z) 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(git)} {(rev-parse)} {(--verify)} {(-q)} {(HEAD)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [340 350]
                          )
                        )
                      } {(Lit_Other '=')} {(DQ (z) ($ VSub_Name '$abort_safety'))}
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [16777215 361]
                )
              ]
              spids: [16777215 369]
            )
            (SimpleCommand
              words: [
                {(gettextln)}
                {
                  (DQ ("You seem to have moved HEAD since the last 'am' failure.\n") 
                    ('Not rewinding to ORIG_HEAD')
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[379])]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [270]
        )
      spids: [265 269]
    )
    (FuncDef
      name: stop_here_user_resolve
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$resolvemsg'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(printf)} {(SQ <'%s\\n'>)} {(DQ ($ VSub_Name '$resolvemsg'))})
                    (C {(stop_here)} {($ VSub_Number '$1')})
                  ]
                  spids: [16777215 411]
                )
              ]
              spids: [16777215 430]
            )
            (C {(eval_gettextln)} 
              {
                (DQ ('When you have resolved this problem, run ') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('cmdline --continue') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('.\n') ('If you prefer to skip this patch, run ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('cmdline --skip') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' instead.\n') 
                  ('To restore the original branch and stop patching, run ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                  ('cmdline --abort') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (.)
                )
              }
            )
            (C {(stop_here)} {($ VSub_Number '$1')})
          ]
          spids: [395]
        )
      spids: [390 394]
    )
    (FuncDef
      name: go_next
      body: 
        (BraceGroup
          children: [
            (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/) ($ VSub_Name '$msgnum'))} 
              {(DQ ($ VSub_Name '$dotest') (/msg))} {(DQ ($ VSub_Name '$dotest') (/msg-clean))} {(DQ ($ VSub_Name '$dotest') (/patch))} 
              {(DQ ($ VSub_Name '$dotest') (/info))}
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ($ VSub_Name '$next'))}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$dotest') (/next))}
                  spids: [512]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:this)
                  op: Equal
                  rhs: {($ VSub_Name '$next')}
                  spids: [519]
                )
              ]
              spids: [519]
            )
          ]
          spids: [470]
        )
      spids: [465 469]
    )
    (FuncDef
      name: cannot_fallback
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ($ VSub_Number '$1'))})
            (C {(gettextln)} {(DQ ('Cannot fall back to three-way merge.'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [530]
        )
      spids: [525 529]
    )
    (FuncDef
      name: fall_back_3way
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:O_OBJECT)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (AndOr
                                ops: [Op_DAmp]
                                children: [
                                  (C {(cd)} {(DQ ($ VSub_Name '$GIT_OBJECT_DIRECTORY'))})
                                  (C {(pwd)})
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [563 573]
                      )
                    }
                  spids: [562]
                )
              ]
              spids: [562]
            )
            (C {(rm)} {(-fr)} {(DQ ($ VSub_Name '$dotest')) (/patch-merge-) (Lit_Other '*')})
            (C {(mkdir)} {(DQ ($ VSub_Name '$dotest') (/patch-merge-tmp-dir))})
            (AndOr
              ops: [Op_DAmp Op_DAmp Op_DAmp Op_DPipe]
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cmd)
                      op: Equal
                      rhs: 
                        {
                          (DQ ('git apply ') ($ VSub_Name '$git_apply_opt') (' --build-fake-ancestor'))
                        }
                      spids: [601]
                    )
                  ]
                  spids: [601]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cmd)
                      op: Equal
                      rhs: 
                        {(DQ ($ VSub_Name '$cmd') (' ')) 
                          (SQ <'"$dotest/patch-merge-tmp-index" "$dotest/patch"'>)
                        }
                      spids: [611]
                    )
                  ]
                  spids: [611]
                )
                (C {(eval)} {(DQ ($ VSub_Name '$cmd'))})
                (SimpleCommand
                  words: [{(git)} {(write-tree)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$dotest') ('/patch-merge-base+'))}
                      spids: [644]
                    )
                  ]
                  more_env: [
                    (env_pair
                      name: GIT_INDEX_FILE
                      val: {(DQ ($ VSub_Name '$dotest') (/patch-merge-tmp-index))}
                      spids: [632]
                    )
                  ]
                )
                (C {(cannot_fallback)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(gettext)} 
                                {
                                  (DQ 
                                    (
'Repository lacks necessary blobs to fall back on 3-way merge.'
                                    )
                                  )
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [656 662]
                      )
                    )
                  }
                )
              ]
            )
            (C {(say)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (C {(gettext)} {(DQ ('Using index info to reconstruct a base tree...'))})
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [670 676]
                  )
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmd)
                  op: Equal
                  rhs: {(SQ <'GIT_INDEX_FILE="$dotest/patch-merge-tmp-index"'>)}
                  spids: [681]
                )
              ]
              spids: [681]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$GIT_QUIET'))})]
                  action: [
                    (C {(eval)} 
                      {
                        (DQ ($ VSub_Name '$cmd') 
                          (' git diff-index --cached --diff-filter=AM --name-status HEAD')
                        )
                      }
                    )
                  ]
                  spids: [16777215 699]
                )
              ]
              spids: [16777215 710]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmd)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$cmd') (' git apply --cached ') ($ VSub_Name '$git_apply_opt')) (SQ <' <"$dotest/patch"'>)
                    }
                  spids: [714]
                )
              ]
              spids: [714]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(eval)} {(DQ ($ VSub_Name '$cmd'))})]
                  action: [
                    (C {(mv)} {(DQ ($ VSub_Name '$dotest') ('/patch-merge-base+'))} 
                      {(DQ ($ VSub_Name '$dotest') (/patch-merge-base))}
                    )
                    (C {(mv)} {(DQ ($ VSub_Name '$dotest') (/patch-merge-tmp-index))} 
                      {(DQ ($ VSub_Name '$dotest') (/patch-merge-index))}
                    )
                  ]
                  spids: [16777215 734]
                )
              ]
              else_action: [
                (C {(cannot_fallback)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(gettext)} 
                                {
                                  (DQ ('Did you hand edit your patch?\n') 
                                    ('It does not apply to blobs recorded in its index.')
                                  )
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [769 776]
                      )
                    )
                  }
                )
              ]
              spids: [763 780]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp Op_DAmp Op_DPipe]
              children: [
                (C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/patch-merge-index))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:his_tree)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [{(git)} {(write-tree)}]
                                    more_env: [
                                      (env_pair
                                        name: GIT_INDEX_FILE
                                        val: {(DQ ($ VSub_Name '$dotest') (/patch-merge-index))}
                                        spids: [798]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [797 807]
                          )
                        }
                      spids: [796]
                    )
                  ]
                  spids: [796]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:orig_tree)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(cat)} {(DQ ($ VSub_Name '$dotest') (/patch-merge-base))})
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [813 820]
                          )
                        }
                      spids: [812]
                    )
                  ]
                  spids: [812]
                )
                (C {(rm)} {(-fr)} {(DQ ($ VSub_Name '$dotest')) (/patch-merge-) (Lit_Other '*')})
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
            )
            (C {(say)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (C {(gettext)} {(DQ ('Falling back to patching base and 3-way merge...'))})
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [846 852]
                  )
                )
              }
            )
            (C {(eval)} {(GITHEAD_) ($ VSub_Name '$his_tree') (Lit_Other '=') (SQ <'"$FIRSTLINE"'>)})
            (C {(export)} {(GITHEAD_) ($ VSub_Name '$his_tree')})
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$GIT_QUIET'))})]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:GIT_MERGE_VERBOSITY)
                              op: Equal
                              rhs: {(0)}
                              spids: [908]
                            )
                          ]
                          spids: [908]
                        )
                        (C {(export)} {(GIT_MERGE_VERBOSITY)})
                      ]
                    )
                  ]
                  spids: [16777215 905]
                )
              ]
              spids: [16777215 918]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:our_tree)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (AndOr
                                ops: [Op_DPipe]
                                children: [
                                  (C {(git)} {(rev-parse)} {(--verify)} {(-q)} {(HEAD)})
                                  (C {(echo)} {($ VSub_Name '$empty_tree')})
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [922 938]
                      )
                    }
                  spids: [921]
                )
              ]
              spids: [921]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(git-merge-recursive)} {($ VSub_Name '$orig_tree')} {(--)} 
                  {($ VSub_Name '$our_tree')} {($ VSub_Name '$his_tree')}
                )
                (BraceGroup
                  children: [
                    (C {(git)} {(rerere)} {($ VSub_Name '$allow_rerere_autoupdate')})
                    (C {(die)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(gettext)} {(DQ ('Failed to merge in the changes.'))})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [966 972]
                          )
                        )
                      }
                    )
                  ]
                  spids: [953]
                )
              ]
            )
            (C {(unset)} {(GITHEAD_) ($ VSub_Name '$his_tree')})
          ]
          spids: [559]
        )
      spids: [554 558]
    )
    (FuncDef
      name: clean_abort
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {($ VSub_Pound '$#')} {(Lit_Other '=')} {(0)})
                (SimpleCommand
                  words: [{(echo)} {(DQ ($ VSub_At '$@'))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[1007])]
                )
              ]
            )
            (C {(rm)} {(-fr)} {(DQ ($ VSub_Name '$dotest'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [992]
        )
      spids: [987 991]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:patch_format) op:Equal rhs:{(EmptyPart)} spids:[1031])]
      spids: [1031]
    )
    (FuncDef
      name: check_patch_format
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$patch_format'))})]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [16777215 1057]
                )
              ]
              spids: [16777215 1065]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (AndOr
                      ops: [Op_DPipe Op_DPipe]
                      children: [
                        (C {(test)} {($ VSub_Pound '$#')} {(Lit_Other '=')} {(0)})
                        (C {(test)} {(DQ (x) ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (x-))})
                        (C {(test)} {(-d)} {(DQ ($ VSub_Number '$1'))})
                      ]
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:patch_format)
                          op: Equal
                          rhs: {(mbox)}
                          spids: [1116]
                        )
                      ]
                      spids: [1116]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 1113]
                )
              ]
              spids: [16777215 1125]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:l1)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [1144]
                        )
                      ]
                      spids: [1144]
                    )
                    (While
                      cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$l1'))})]
                      body: 
                        (DoGroup
                          children: [
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(read)} {(l1)})
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                          ]
                          spids: [1158 1170]
                        )
                    )
                    (C {(read)} {(l2)})
                    (C {(read)} {(l3)})
                    (Case
                      to_match: {(DQ ($ VSub_Name '$l1'))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ ('From ')) (Lit_Other '*')} {(DQ ('From: ')) (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:patch_format)
                                  op: Equal
                                  rhs: {(mbox)}
                                  spids: [1206]
                                )
                              ]
                              spids: [1206]
                            )
                          ]
                          spids: [1193 1203 1210 16777215]
                        )
                        (case_arm
                          pat_list: [{(SQ <'# This series applies on GIT commit'>) (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:patch_format)
                                  op: Equal
                                  rhs: {(stgit-series)}
                                  spids: [1220]
                                )
                              ]
                              spids: [1220]
                            )
                          ]
                          spids: [1214 1217 1224 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('# HG changeset patch'))}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:patch_format)
                                  op: Equal
                                  rhs: {(hg)}
                                  spids: [1233]
                                )
                              ]
                              spids: [1233]
                            )
                          ]
                          spids: [1228 1230 1237 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (Case
                              to_match: {(DQ ($ VSub_Name '$l2') (',') ($ VSub_Name '$l3'))}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {(Lit_Comma ',') (DQ ('From: ')) (Lit_Other '*')}
                                    {(Lit_Comma ',') (DQ ('Author: ')) (Lit_Other '*')}
                                    {(Lit_Comma ',') (DQ ('Date: ')) (Lit_Other '*')}
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:patch_format)
                                          op: Equal
                                          rhs: {(stgit)}
                                          spids: [1291]
                                        )
                                      ]
                                      spids: [1291]
                                    )
                                  ]
                                  spids: [1267 1288 1295 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  spids: [1298 1299 1302 16777215]
                                )
                              ]
                              spids: [1256 1264 1305]
                            )
                          ]
                          spids: [1240 1241 1308 16777215]
                        )
                      ]
                      spids: [1183 1189 1311]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (AndOr
                              ops: [Op_DAmp Op_DAmp Op_DAmp]
                              children: [
                                (C {(test)} {(-z)} {(DQ ($ VSub_Name '$patch_format'))})
                                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$l1'))})
                                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$l2'))})
                                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$l3'))})
                              ]
                            )
                          ]
                          action: [
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (Pipeline
                                  children: [
                                    (SimpleCommand
                                      words: [{(tr)} {(-d)} {(SQ <'\\015'>)}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Less
                                          fd: 16777215
                                          arg_word: {(DQ ($ VSub_Number '$1'))}
                                          spids: [1389]
                                        )
                                      ]
                                    )
                                    (C {(sed)} {(-n)} {(-e)} {(SQ <'/^$/q'>)} {(-e)} {(SQ <'/^[ \t]/d'>)} 
                                      {(-e)} {(p)}
                                    )
                                    (SimpleCommand
                                      words: [{(sane_egrep)} {(-v)} {(SQ <'^[!-9;-~]+:'>)}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 16777215
                                          arg_word: {(/dev/null)}
                                          spids: [1428]
                                        )
                                      ]
                                    )
                                  ]
                                  negated: F
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:patch_format)
                                      op: Equal
                                      rhs: {(mbox)}
                                      spids: [1434]
                                    )
                                  ]
                                  spids: [1434]
                                )
                              ]
                            )
                          ]
                          spids: [16777215 1358]
                        )
                      ]
                      spids: [16777215 1438]
                    )
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Number '$1'))}
                      spids: [1443]
                    )
                  ]
                  spids: [1137]
                )
                (C {(clean_abort)})
              ]
            )
          ]
          spids: [1039]
        )
      spids: [1034 1038]
    )
    (FuncDef
      name: split_patches
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Name '$patch_format'))}
              arms: [
                (case_arm
                  pat_list: [{(mbox)}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(C {(test)} {(t)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$keepcr'))})]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:keep_cr)
                                  op: Equal
                                  rhs: {(--keep-cr)}
                                  spids: [1493]
                                )
                              ]
                              spids: [1493]
                            )
                          ]
                          spids: [16777215 1490]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:keep_cr)
                              op: Equal
                              rhs: {(EmptyPart)}
                              spids: [1500]
                            )
                          ]
                          spids: [1500]
                        )
                      ]
                      spids: [1497 1503]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (SimpleCommand
                          words: [
                            {(git)}
                            {(mailsplit)}
                            {(-d) (DQ ($ VSub_Name '$prec'))}
                            {(-o) (DQ ($ VSub_Name '$dotest'))}
                            {(-b)}
                            {($ VSub_Name '$keep_cr')}
                            {(--)}
                            {(DQ ($ VSub_At '$@'))}
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$dotest') (/last))}
                              spids: [1530]
                            )
                          ]
                        )
                        (C {(clean_abort)})
                      ]
                    )
                  ]
                  spids: [1473 1474 1543 16777215]
                )
                (case_arm
                  pat_list: [{(stgit-series)}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(C {(test)} {($ VSub_Pound '$#')} {(-ne)} {(1)})]
                          action: [
                            (C {(clean_abort)} 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(gettext)} 
                                            {
                                              (DQ 
                                                (
'Only one StGIT patch series can be applied at once'
                                                )
                                              )
                                            }
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [1567 1573]
                                  )
                                )
                              }
                            )
                          ]
                          spids: [16777215 1561]
                        )
                      ]
                      spids: [16777215 1577]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:series_dir)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(dirname)} {(DQ ($ VSub_Number '$1'))})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1581 1587]
                              )
                            }
                          spids: [1580]
                        )
                      ]
                      spids: [1580]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:series_file)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [1590]
                        )
                      ]
                      spids: [1590]
                    )
                    (C {(shift)})
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (BraceGroup
                          children: [
                            (C {(set)} {(x)})
                            (While
                              cond: [(C {(read)} {(filename)})]
                              body: 
                                (DoGroup
                                  children: [
                                    (C {(set)} {(DQ ($ VSub_At '$@'))} 
                                      {
                                        (DQ ($ VSub_Name '$series_dir') (/) ($ VSub_Name '$filename'))
                                      }
                                    )
                                  ]
                                  spids: [1614 1630]
                                )
                            )
                            (C {(shift)})
                            (C {(shift)})
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_Less
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$series_file'))}
                              spids: [1649]
                            )
                          ]
                          spids: [1599]
                        )
                        (C {(clean_abort)})
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:patch_format)
                          op: Equal
                          rhs: {(stgit)}
                          spids: [1664]
                        )
                      ]
                      spids: [1664]
                    )
                    (C {(split_patches)} {(DQ ($ VSub_At '$@'))})
                  ]
                  spids: [1546 1547 1679 16777215]
                )
                (case_arm
                  pat_list: [{(stgit)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:this) op:Equal rhs:{(0)} spids:[1686])]
                      spids: [1686]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(0)} {(-eq)} {(DQ ($ VSub_Pound '$#'))})
                        (C {(set)} {(--)} {(-)})
                      ]
                    )
                    (ForEach
                      iter_name: stgit
                      iter_words: [{(DQ ($ VSub_At '$@'))}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:this)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(expr)} {(DQ ($ VSub_Name '$this'))} {(Lit_Other '+')} 
                                                {(1)}
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [1724 1734]
                                      )
                                    }
                                  spids: [1723]
                                )
                              ]
                              spids: [1723]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:msgnum)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(printf)} {(DQ ('%0') (${ VSub_Name prec) (d))} 
                                                {($ VSub_Name '$this')}
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [1738 1750]
                                      )
                                    }
                                  spids: [1737]
                                )
                              ]
                              spids: [1737]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (SimpleCommand
                                  words: [
                                    {(Lit_Other '@') (Lit_Other '@') (PERL) (Lit_Other '@') 
                                      (Lit_Other '@')
                                    }
                                    {(-ne)}
                                    {
                                      (SQ <'BEGIN { $subject = 0 }\n'> 
                                        <'\t\t\t\tif ($subject > 1) { print ; }\n'> <'\t\t\t\telsif (/^\\s+$/) { next ; }\n'> <'\t\t\t\telsif (/^Author:/) { s/Author/From/ ; print ;}\n'> 
                                        <'\t\t\t\telsif (/^(From|Date)/) { print ; }\n'> <'\t\t\t\telsif ($subject) {\n'> <'\t\t\t\t\t$subject = 2 ;\n'> <'\t\t\t\t\tprint "\\n" ;\n'> 
                                        <'\t\t\t\t\tprint ;\n'> <'\t\t\t\t} else {\n'> <'\t\t\t\t\tprint "Subject: ", $_ ;\n'> <'\t\t\t\t\t$subject = 1;\n'> 
                                        <'\t\t\t\t}\n'> <'\t\t\t'>
                                      )
                                    }
                                    {(--)}
                                    {(DQ ($ VSub_Name '$stgit'))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: 
                                        {(DQ ($ VSub_Name '$dotest') (/) ($ VSub_Name '$msgnum'))}
                                      spids: [1800]
                                    )
                                  ]
                                )
                                (C {(clean_abort)})
                              ]
                            )
                          ]
                          spids: [1720 1812]
                        )
                      spids: [1714 16777215]
                    )
                    (SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_Name '$this'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$dotest') (/last))}
                          spids: [1821]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:this)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [1829]
                        )
                      ]
                      spids: [1829]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:msgnum)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [1832]
                        )
                      ]
                      spids: [1832]
                    )
                  ]
                  spids: [1682 1683 1835 16777215]
                )
                (case_arm
                  pat_list: [{(hg)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:this) op:Equal rhs:{(0)} spids:[1842])]
                      spids: [1842]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(0)} {(-eq)} {(DQ ($ VSub_Pound '$#'))})
                        (C {(set)} {(--)} {(-)})
                      ]
                    )
                    (ForEach
                      iter_name: hg
                      iter_words: [{(DQ ($ VSub_At '$@'))}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:this)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArithSubPart
                                        anode: 
                                          (ArithBinary
                                            op_id: Arith_Plus
                                            left: (ArithWord w:{($ VSub_Name '$this')})
                                            right: (ArithWord w:{(Lit_Digits 1)})
                                          )
                                        spids: [1880 1889]
                                      )
                                    }
                                  spids: [1879]
                                )
                              ]
                              spids: [1879]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:msgnum)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(printf)} {(DQ ('%0') (${ VSub_Name prec) (d))} 
                                                {($ VSub_Name '$this')}
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [1893 1905]
                                      )
                                    }
                                  spids: [1892]
                                )
                              ]
                              spids: [1892]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (SimpleCommand
                                  words: [
                                    {(Lit_Other '@') (Lit_Other '@') (PERL) (Lit_Other '@') 
                                      (Lit_Other '@')
                                    }
                                    {(-M) (SQ <'POSIX qw(strftime)'>)}
                                    {(-ne)}
                                    {
                                      (SQ <'BEGIN { $subject = 0 }\n'> 
                                        <'\t\t\t\tif ($subject) { print ; }\n'> <'\t\t\t\telsif (/^\\# User /) { s/\\# User/From:/ ; print ; }\n'> 
                                        <'\t\t\t\telsif (/^\\# Date /) {\n'> <'\t\t\t\t\tmy ($hashsign, $str, $time, $tz) = split ;\n'> 
                                        <'\t\t\t\t\t$tz_str = sprintf "%+05d", (0-$tz)/36;\n'> <'\t\t\t\t\tprint "Date: " .\n'> <'\t\t\t\t\t      strftime("%a, %d %b %Y %H:%M:%S ",\n'> 
                                        <'\t\t\t\t\t\t       gmtime($time-$tz))\n'> <'\t\t\t\t\t      . "$tz_str\\n";\n'> <'\t\t\t\t} elsif (/^\\# /) { next ; }\n'> <'\t\t\t\telse {\n'> 
                                        <'\t\t\t\t\tprint "\\n", $_ ;\n'> <'\t\t\t\t\t$subject = 1;\n'> <'\t\t\t\t}\n'> <'\t\t\t'>
                                      )
                                    }
                                    {(--)}
                                    {(DQ ($ VSub_Name '$hg'))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: 
                                        {(DQ ($ VSub_Name '$dotest') (/) ($ VSub_Name '$msgnum'))}
                                      spids: [1980]
                                    )
                                  ]
                                  more_env: [
                                    (env_pair
                                      name: LANG
                                      val: {(C)}
                                      spids: [1936]
                                    )
                                    (env_pair
                                      name: LC_ALL
                                      val: {(C)}
                                      spids: [1939]
                                    )
                                  ]
                                )
                                (C {(clean_abort)})
                              ]
                            )
                          ]
                          spids: [1876 1992]
                        )
                      spids: [1870 16777215]
                    )
                    (SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_Name '$this'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$dotest') (/last))}
                          spids: [2001]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:this)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [2008]
                        )
                      ]
                      spids: [2008]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:msgnum)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [2011]
                        )
                      ]
                      spids: [2011]
                    )
                  ]
                  spids: [1838 1839 2014 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$patch_format'))})]
                          action: [
                            (C {(clean_abort)} 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(eval_gettext)} 
                                            {
                                              (DQ ('Patch format ') 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar '\\$'>
                                                ) ('patch_format is not supported.')
                                              )
                                            }
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [2038 2046]
                                  )
                                )
                              }
                            )
                          ]
                          spids: [16777215 2032]
                        )
                      ]
                      else_action: [
                        (C {(clean_abort)} 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(gettext)} {(DQ ('Patch format detection failed.'))})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2056 2062]
                              )
                            )
                          }
                        )
                      ]
                      spids: [2050 2066]
                    )
                  ]
                  spids: [2017 2018 2069 16777215]
                )
              ]
              spids: [1464 1470 2072]
            )
          ]
          spids: [1461]
        )
      spids: [1456 1460]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:prec) op:Equal rhs:{(4)} spids:[2077])]
      spids: [2077]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:dotest)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$GIT_DIR') (/rebase-apply))}
          spids: [2080]
        )
      ]
      spids: [2080]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair lhs:(LhsName name:sign) op:Equal rhs:{(EmptyPart)} spids:[2086])
        (assign_pair lhs:(LhsName name:utf8) op:Equal rhs:{(t)} spids:[2088])
        (assign_pair lhs:(LhsName name:keep) op:Equal rhs:{(EmptyPart)} spids:[2091])
        (assign_pair lhs:(LhsName name:keepcr) op:Equal rhs:{(EmptyPart)} spids:[2093])
        (assign_pair lhs:(LhsName name:skip) op:Equal rhs:{(EmptyPart)} spids:[2095])
        (assign_pair lhs:(LhsName name:interactive) op:Equal rhs:{(EmptyPart)} spids:[2097])
        (assign_pair lhs:(LhsName name:resolved) op:Equal rhs:{(EmptyPart)} spids:[2099])
        (assign_pair lhs:(LhsName name:rebasing) op:Equal rhs:{(EmptyPart)} spids:[2101])
        (assign_pair lhs:(LhsName name:abort) op:Equal rhs:{(EmptyPart)} spids:[2103])
      ]
      spids: [2086]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair lhs:(LhsName name:messageid) op:Equal rhs:{(EmptyPart)} spids:[2105])
        (assign_pair lhs:(LhsName name:resolvemsg) op:Equal rhs:{(EmptyPart)} spids:[2107])
        (assign_pair lhs:(LhsName name:resume) op:Equal rhs:{(EmptyPart)} spids:[2109])
        (assign_pair lhs:(LhsName name:scissors) op:Equal rhs:{(EmptyPart)} spids:[2111])
        (assign_pair
          lhs: (LhsName name:no_inbody_headers)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [2113]
        )
      ]
      spids: [2105]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:git_apply_opt) op:Equal rhs:{(EmptyPart)} spids:[2115])]
      spids: [2115]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:committer_date_is_author_date)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [2117]
        )
      ]
      spids: [2117]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ignore_date) op:Equal rhs:{(EmptyPart)} spids:[2119])]
      spids: [2119]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:allow_rerere_autoupdate)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [2121]
        )
      ]
      spids: [2121]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:gpg_sign_opt) op:Equal rhs:{(EmptyPart)} spids:[2123])]
      spids: [2123]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:threeway) op:Equal rhs:{(EmptyPart)} spids:[2125])]
      spids: [2125]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(git)} {(config)} {(--bool)} {(--get)} {(am.messageid)})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [2133 2143]
                  )
                )
              } {(Lit_Other '=')} {(true)}
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:messageid) op:Equal rhs:{(t)} spids:[2153])]
              spids: [2153]
            )
          ]
          spids: [16777215 2150]
        )
      ]
      spids: [16777215 2156]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(git)} {(config)} {(--bool)} {(--get)} {(am.keepcr)})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [2164 2174]
                  )
                )
              } {(Lit_Other '=')} {(true)}
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:keepcr) op:Equal rhs:{(t)} spids:[2184])]
              spids: [2184]
            )
          ]
          spids: [16777215 2181]
        )
      ]
      spids: [16777215 2187]
    )
    (While
      cond: [(C {(test)} {($ VSub_Pound '$#')} {(KW_Bang '!') (Lit_Other '=')} {(0)})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(-i)} {(--interactive)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:interactive)
                          op: Equal
                          rhs: {(t)}
                          spids: [2219]
                        )
                      ]
                      spids: [2219]
                    )
                  ]
                  spids: [2213 2216 2222 16777215]
                )
                (case_arm
                  pat_list: [{(-b)} {(--binary)}]
                  action: [
                    (SimpleCommand
                      words: [
                        {(gettextln)}
                        {
                          (DQ ('The -b/--binary option has been a no-op for long time, and\n') 
                            ('it will be removed. Please do not use it anymore.')
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [2233]
                        )
                      ]
                    )
                  ]
                  spids: [2225 2228 2242 16777215]
                )
                (case_arm
                  pat_list: [{(-3)} {(--3way)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:threeway)
                          op: Equal
                          rhs: {(t)}
                          spids: [2251]
                        )
                      ]
                      spids: [2251]
                    )
                  ]
                  spids: [2245 2248 2254 16777215]
                )
                (case_arm
                  pat_list: [{(-s)} {(--signoff)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:sign) op:Equal rhs:{(t)} spids:[2263])]
                      spids: [2263]
                    )
                  ]
                  spids: [2257 2260 2266 16777215]
                )
                (case_arm
                  pat_list: [{(-u)} {(--utf8)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:utf8) op:Equal rhs:{(t)} spids:[2275])]
                      spids: [2275]
                    )
                  ]
                  spids: [2269 2272 2278 16777215]
                )
                (case_arm
                  pat_list: [{(--no-utf8)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:utf8)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [2288]
                        )
                      ]
                      spids: [2288]
                    )
                  ]
                  spids: [2284 2285 2290 16777215]
                )
                (case_arm
                  pat_list: [{(-m)} {(--message-id)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:messageid)
                          op: Equal
                          rhs: {(t)}
                          spids: [2299]
                        )
                      ]
                      spids: [2299]
                    )
                  ]
                  spids: [2293 2296 2302 16777215]
                )
                (case_arm
                  pat_list: [{(--no-message-id)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:messageid)
                          op: Equal
                          rhs: {(f)}
                          spids: [2309]
                        )
                      ]
                      spids: [2309]
                    )
                  ]
                  spids: [2305 2306 2312 16777215]
                )
                (case_arm
                  pat_list: [{(-k)} {(--keep)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:keep) op:Equal rhs:{(t)} spids:[2321])]
                      spids: [2321]
                    )
                  ]
                  spids: [2315 2318 2324 16777215]
                )
                (case_arm
                  pat_list: [{(--keep-non-patch)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:keep) op:Equal rhs:{(b)} spids:[2331])]
                      spids: [2331]
                    )
                  ]
                  spids: [2327 2328 2334 16777215]
                )
                (case_arm
                  pat_list: [{(-c)} {(--scissors)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:scissors)
                          op: Equal
                          rhs: {(t)}
                          spids: [2343]
                        )
                      ]
                      spids: [2343]
                    )
                  ]
                  spids: [2337 2340 2346 16777215]
                )
                (case_arm
                  pat_list: [{(--no-scissors)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:scissors)
                          op: Equal
                          rhs: {(f)}
                          spids: [2353]
                        )
                      ]
                      spids: [2353]
                    )
                  ]
                  spids: [2349 2350 2356 16777215]
                )
                (case_arm
                  pat_list: [{(-r)} {(--resolved)} {(--continue)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:resolved)
                          op: Equal
                          rhs: {(t)}
                          spids: [2367]
                        )
                      ]
                      spids: [2367]
                    )
                  ]
                  spids: [2359 2364 2370 16777215]
                )
                (case_arm
                  pat_list: [{(--skip)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:skip) op:Equal rhs:{(t)} spids:[2377])]
                      spids: [2377]
                    )
                  ]
                  spids: [2373 2374 2380 16777215]
                )
                (case_arm
                  pat_list: [{(--abort)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:abort) op:Equal rhs:{(t)} spids:[2387])]
                      spids: [2387]
                    )
                  ]
                  spids: [2383 2384 2390 16777215]
                )
                (case_arm
                  pat_list: [{(--rebasing)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:rebasing)
                          op: Equal
                          rhs: {(t)}
                          spids: [2397]
                        )
                        (assign_pair
                          lhs: (LhsName name:threeway)
                          op: Equal
                          rhs: {(t)}
                          spids: [2400]
                        )
                      ]
                      spids: [2397]
                    )
                  ]
                  spids: [2393 2394 2403 16777215]
                )
                (case_arm
                  pat_list: [{(--resolvemsg) (Lit_Other '=') (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:resolvemsg)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VOp1_Pound
                                      arg_word: {('--resolvemsg=')}
                                    )
                                  spids: [2414 2418]
                                )
                              )
                            }
                          spids: [2412]
                        )
                      ]
                      spids: [2412]
                    )
                  ]
                  spids: [2406 2409 2421 16777215]
                )
                (case_arm
                  pat_list: [
                    {(--whitespace) (Lit_Other '=') (Lit_Other '*')}
                    {(--directory) (Lit_Other '=') (Lit_Other '*')}
                    {(--exclude) (Lit_Other '=') (Lit_Other '*')}
                    {(--include) (Lit_Other '=') (Lit_Other '*')}
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:git_apply_opt)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$git_apply_opt') (' ') 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [(C {(sq)} {(DQ ($ VSub_Number '$1'))})]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2446 2452]
                                )
                              )
                            }
                          spids: [2442]
                        )
                      ]
                      spids: [2442]
                    )
                  ]
                  spids: [2424 2439 2455 16777215]
                )
                (case_arm
                  pat_list: [{(-C) (Lit_Other '*')} {(-p) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:git_apply_opt)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$git_apply_opt') (' ') 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [(C {(sq)} {(DQ ($ VSub_Number '$1'))})]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2470 2476]
                                )
                              )
                            }
                          spids: [2466]
                        )
                      ]
                      spids: [2466]
                    )
                  ]
                  spids: [2458 2463 2479 16777215]
                )
                (case_arm
                  pat_list: [{(--patch-format) (Lit_Other '=') (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:patch_format)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VOp1_Pound
                                      arg_word: {('--patch-format=')}
                                    )
                                  spids: [2490 2494]
                                )
                              )
                            }
                          spids: [2488]
                        )
                      ]
                      spids: [2488]
                    )
                  ]
                  spids: [2482 2485 2497 16777215]
                )
                (case_arm
                  pat_list: [{(--reject)} {(--ignore-whitespace)} {(--ignore-space-change)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:git_apply_opt)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$git_apply_opt') (' ') ($ VSub_Number '$1'))}
                          spids: [2508]
                        )
                      ]
                      spids: [2508]
                    )
                  ]
                  spids: [2500 2505 2515 16777215]
                )
                (case_arm
                  pat_list: [{(--committer-date-is-author-date)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:committer_date_is_author_date)
                          op: Equal
                          rhs: {(t)}
                          spids: [2522]
                        )
                      ]
                      spids: [2522]
                    )
                  ]
                  spids: [2518 2519 2525 16777215]
                )
                (case_arm
                  pat_list: [{(--ignore-date)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ignore_date)
                          op: Equal
                          rhs: {(t)}
                          spids: [2532]
                        )
                      ]
                      spids: [2532]
                    )
                  ]
                  spids: [2528 2529 2535 16777215]
                )
                (case_arm
                  pat_list: [{(--rerere-autoupdate)} {(--no-rerere-autoupdate)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:allow_rerere_autoupdate)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [2544]
                        )
                      ]
                      spids: [2544]
                    )
                  ]
                  spids: [2538 2541 2549 16777215]
                )
                (case_arm
                  pat_list: [{(-q)} {(--quiet)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:GIT_QUIET)
                          op: Equal
                          rhs: {(t)}
                          spids: [2558]
                        )
                      ]
                      spids: [2558]
                    )
                  ]
                  spids: [2552 2555 2561 16777215]
                )
                (case_arm
                  pat_list: [{(--keep-cr)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:keepcr) op:Equal rhs:{(t)} spids:[2568])]
                      spids: [2568]
                    )
                  ]
                  spids: [2564 2565 2571 16777215]
                )
                (case_arm
                  pat_list: [{(--no-keep-cr)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:keepcr) op:Equal rhs:{(f)} spids:[2578])]
                      spids: [2578]
                    )
                  ]
                  spids: [2574 2575 2581 16777215]
                )
                (case_arm
                  pat_list: [{(--gpg-sign)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:gpg_sign_opt)
                          op: Equal
                          rhs: {(-S)}
                          spids: [2588]
                        )
                      ]
                      spids: [2588]
                    )
                  ]
                  spids: [2584 2585 2591 16777215]
                )
                (case_arm
                  pat_list: [{(--gpg-sign) (Lit_Other '=') (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:gpg_sign_opt)
                          op: Equal
                          rhs: 
                            {
                              (DQ (-S) 
                                (BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('--gpg-sign=')})
                                  spids: [2603 2607]
                                )
                              )
                            }
                          spids: [2600]
                        )
                      ]
                      spids: [2600]
                    )
                  ]
                  spids: [2594 2597 2610 16777215]
                )
                (case_arm
                  pat_list: [{(--)}]
                  action: [
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [2613 2614 2622 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(usage)})]
                  spids: [2625 2626 2631 16777215]
                )
              ]
              spids: [2204 2210 2634]
            )
            (C {(shift)})
          ]
          spids: [2201 2639]
        )
    )
    (If
      arms: [
        (if_arm
          cond: [
            (AndOr
              ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp]
              children: [
                (C {(test)} {(-d)} {(DQ ($ VSub_Name '$dotest'))})
                (C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/last))})
                (C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/next))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:last)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/last))})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [2686 2693]
                          )
                        }
                      spids: [2685]
                    )
                  ]
                  spids: [2685]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:next)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/next))})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [2699 2706]
                          )
                        }
                      spids: [2698]
                    )
                  ]
                  spids: [2698]
                )
                (C {(test)} {($ VSub_Pound '$#')} {(KW_Bang '!') (Lit_Other '=')} {(0)})
                (C {(test)} {(DQ ($ VSub_Name '$next'))} {(-gt)} {(DQ ($ VSub_Name '$last'))})
              ]
            )
          ]
          action: [(C {(rm)} {(-fr)} {(DQ ($ VSub_Name '$dotest'))})]
          spids: [16777215 2735]
        )
      ]
      spids: [16777215 2746]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(test)} {(-d)} {(DQ ($ VSub_Name '$dotest'))})
                (C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/last))})
                (C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/next))})
              ]
            )
          ]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Case
                  to_match: 
                    {
                      (DQ ($ VSub_Pound '$#') (',') ($ VSub_Name '$skip') ($ VSub_Name '$resolved') 
                        ($ VSub_Name '$abort')
                      )
                    }
                  arms: [
                    (case_arm
                      pat_list: [{(0) (Lit_Comma ',') (Lit_Other '*') (t) (Lit_Other '*')}]
                      action: [(C {(Lit_Other ':')})]
                      spids: [2797 2802 2815 16777215]
                    )
                    (case_arm
                      pat_list: [{(0) (Lit_Comma ',')}]
                      action: [(C {(test)} {(-t)} {(0)})]
                      spids: [2818 2820 2854 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [(C {(false)})]
                      spids: [2857 2858 2864 16777215]
                    )
                  ]
                  spids: [2784 2794 2867]
                )
                (C {(die)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(eval_gettext)} 
                                {
                                  (DQ ('previous rebase directory ') 
                                    (EscapedLiteralPart
                                      token: <Lit_EscapedChar '\\$'>
                                    ) ('dotest still exists but mbox given.')
                                  )
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [2875 2883]
                      )
                    )
                  }
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:resume) op:Equal rhs:{(yes)} spids:[2887])]
              spids: [2887]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$skip') (',') ($ VSub_Name '$abort'))}
              arms: [
                (case_arm
                  pat_list: [{(t) (Lit_Comma ',') (t)}]
                  action: [
                    (C {(die)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(gettext)} {(DQ ('Please make up your mind. --skip or --abort?'))})
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [2912 2918]
                          )
                        )
                      }
                    )
                  ]
                  spids: [2903 2906 2922 16777215]
                )
                (case_arm
                  pat_list: [{(t) (Lit_Comma ',')}]
                  action: [
                    (C {(git)} {(rerere)} {(clear)})
                    (AndOr
                      ops: [Op_DAmp Op_DAmp Op_DAmp]
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:head_tree)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (AndOr
                                            ops: [Op_DPipe]
                                            children: [
                                              (C {(git)} {(rev-parse)} {(--verify)} {(-q)} {(HEAD)})
                                              (C {(echo)} {($ VSub_Name '$empty_tree')})
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [2938 2954]
                                  )
                                }
                              spids: [2937]
                            )
                          ]
                          spids: [2937]
                        )
                        (C {(git)} {(read-tree)} {(--reset)} {(-u)} {($ VSub_Name '$head_tree')} 
                          {($ VSub_Name '$head_tree')}
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:index_tree)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: (CommandList children:[(C {(git)} {(write-tree)})])
                                    left_token: <Left_CommandSub '$('>
                                    spids: [2975 2979]
                                  )
                                }
                              spids: [2974]
                            )
                          ]
                          spids: [2974]
                        )
                        (C {(git)} {(read-tree)} {(-m)} {(-u)} {($ VSub_Name '$index_tree')} 
                          {($ VSub_Name '$head_tree')}
                        )
                      ]
                    )
                    (C {(git)} {(read-tree)} {(-m)} {($ VSub_Name '$head_tree')})
                  ]
                  spids: [2925 2927 3006 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Comma ',') (t)}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/rebasing))})]
                          action: [(C {(exec)} {(git)} {(rebase)} {(--abort)})]
                          spids: [16777215 3026]
                        )
                      ]
                      spids: [16777215 3038]
                    )
                    (C {(git)} {(rerere)} {(clear)})
                    (If
                      arms: [
                        (if_arm
                          cond: [(C {(safe_to_abort)})]
                          action: [
                            (AndOr
                              ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp]
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:head_tree)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (AndOr
                                                    ops: [Op_DPipe]
                                                    children: [
                                                      (C {(git)} {(rev-parse)} {(--verify)} {(-q)} 
                                                        {(HEAD)}
                                                      )
                                                      (C {(echo)} {($ VSub_Name '$empty_tree')})
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [3057 3073]
                                          )
                                        }
                                      spids: [3056]
                                    )
                                  ]
                                  spids: [3056]
                                )
                                (C {(git)} {(read-tree)} {(--reset)} {(-u)} {($ VSub_Name '$head_tree')} 
                                  {($ VSub_Name '$head_tree')}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:index_tree)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [(C {(git)} {(write-tree)})]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [3094 3098]
                                          )
                                        }
                                      spids: [3093]
                                    )
                                  ]
                                  spids: [3093]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:orig_head)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (AndOr
                                                    ops: [Op_DPipe]
                                                    children: [
                                                      (C {(git)} {(rev-parse)} {(--verify)} {(-q)} 
                                                        {(ORIG_HEAD)}
                                                      )
                                                      (C {(echo)} {($ VSub_Name '$empty_tree')})
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [3104 3120]
                                          )
                                        }
                                      spids: [3103]
                                    )
                                  ]
                                  spids: [3103]
                                )
                                (C {(git)} {(read-tree)} {(-m)} {(-u)} {($ VSub_Name '$index_tree')} 
                                  {($ VSub_Name '$orig_head')}
                                )
                              ]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (SimpleCommand
                                      words: [{(git)} {(rev-parse)} {(--verify)} {(-q)} {(ORIG_HEAD)}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 16777215
                                          arg_word: {(/dev/null)}
                                          spids: [3150]
                                        )
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: 2
                                          arg_word: {(1)}
                                          spids: [3153]
                                        )
                                      ]
                                    )
                                  ]
                                  action: [(C {(git)} {(reset)} {(ORIG_HEAD)})]
                                  spids: [16777215 3157]
                                )
                              ]
                              else_action: [
                                (C {(git)} {(read-tree)} {($ VSub_Name '$empty_tree')})
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:curr_branch)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (SimpleCommand
                                                        words: [{(git)} {(symbolic-ref)} {(HEAD)}]
                                                        redirects: [
                                                          (Redir
                                                            op_id: Redir_Great
                                                            fd: 2
                                                            arg_word: {(/dev/null)}
                                                            spids: [3185]
                                                          )
                                                        ]
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [3178 3187]
                                              )
                                            }
                                          spids: [3177]
                                        )
                                      ]
                                      spids: [3177]
                                    )
                                    (C {(git)} {(update-ref)} {(-d)} {($ VSub_Name '$curr_branch')})
                                  ]
                                )
                              ]
                              spids: [3167 3201]
                            )
                          ]
                          spids: [16777215 3053]
                        )
                      ]
                      spids: [16777215 3204]
                    )
                    (C {(rm)} {(-fr)} {(DQ ($ VSub_Name '$dotest'))})
                    (ControlFlow token:<ControlFlow_Exit exit>)
                  ]
                  spids: [3009 3011 3218 16777215]
                )
              ]
              spids: [2892 2900 3221]
            )
            (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/dirtyindex))})
          ]
          spids: [16777215 2781]
        )
      ]
      else_action: [
        (If
          arms: [
            (if_arm
              cond: [
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(test)} {(-d)} {(DQ ($ VSub_Name '$dotest'))})
                    (C {(test)} {(-z)} {(DQ ($ VSub_Name '$rebasing'))})
                  ]
                )
              ]
              action: [
                (Case
                  to_match: 
                    {
                      (DQ ($ VSub_Name '$skip') (',') ($ VSub_Name '$resolved') (',') 
                        ($ VSub_Name '$abort')
                      )
                    }
                  arms: [
                    (case_arm
                      pat_list: [{(Lit_Comma ',') (Lit_Comma ',') (t)}]
                      action: [
                        (C {(rm)} {(-fr)} {(DQ ($ VSub_Name '$dotest'))})
                        (ControlFlow
                          token: <ControlFlow_Exit exit>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [3285 3288 3305 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [
                        (C {(die)} 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(eval_gettext)} 
                                        {
                                          (DQ ('Stray ') 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar '\\$'>
                                            ) ('dotest directory found.\n') ('Use ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                                            ('git am --abort') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' to remove it.')
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [3315 3328]
                              )
                            )
                          }
                        )
                      ]
                      spids: [3308 3309 3332 16777215]
                    )
                  ]
                  spids: [3272 3282 3335]
                )
              ]
              spids: [16777215 3269]
            )
          ]
          spids: [16777215 3338]
        )
        (AndOr
          ops: [Op_DPipe]
          children: [
            (C {(test)} {(DQ ($ VSub_Name '$skip') ($ VSub_Name '$resolved') ($ VSub_Name '$abort'))} 
              {(Lit_Other '=')} {(DQ )}
            )
            (C {(die)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (C {(gettext)} 
                            {(DQ ('Resolve operation not in progress, we are not resuming.'))}
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [3365 3371]
                  )
                )
              }
            )
          ]
        )
        (AndOr
          ops: [Op_DPipe]
          children: [
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$dotest'))})
            (ControlFlow token:<ControlFlow_Exit exit>)
          ]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(test)} {(-n)} {(DQ ($ VSub_Name '$prefix'))})
                    (C {(test)} {($ VSub_Pound '$#')} {(KW_Bang '!') (Lit_Other '=')} {(0)})
                  ]
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:first) op:Equal rhs:{(t)} spids:[3419])]
                  spids: [3419]
                )
                (ForEach
                  iter_name: arg
                  do_arg_iter: T
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name '$first'))})
                            (BraceGroup
                              children: [
                                (C {(set)} {(x)})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:first)
                                      op: Equal
                                      rhs: {(EmptyPart)}
                                      spids: [3449]
                                    )
                                  ]
                                  spids: [3449]
                                )
                              ]
                              spids: [3441]
                            )
                          ]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [(C {(is_absolute_path)} {(DQ ($ VSub_Name '$arg'))})]
                              action: [(C {(set)} {(DQ ($ VSub_At '$@'))} {(DQ ($ VSub_Name '$arg'))})]
                              spids: [16777215 3464]
                            )
                          ]
                          else_action: [
                            (C {(set)} {(DQ ($ VSub_At '$@'))} 
                              {(DQ ($ VSub_Name '$prefix') ($ VSub_Name '$arg'))}
                            )
                          ]
                          spids: [3478 3493]
                        )
                      ]
                      spids: [3428 3496]
                    )
                  spids: [16777215 16777215]
                )
                (C {(shift)})
              ]
              spids: [16777215 3416]
            )
          ]
          spids: [16777215 3502]
        )
        (C {(check_patch_format)} {(DQ ($ VSub_At '$@'))})
        (C {(split_patches)} {(DQ ($ VSub_At '$@'))})
        (SimpleCommand
          words: [{(echo)} {(DQ (' ') ($ VSub_Name '$git_apply_opt'))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$dotest') (/apply-opt))}
              spids: [3537]
            )
          ]
        )
        (SimpleCommand
          words: [{(echo)} {(DQ ($ VSub_Name '$threeway'))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$dotest') (/threeway))}
              spids: [3550]
            )
          ]
        )
        (SimpleCommand
          words: [{(echo)} {(DQ ($ VSub_Name '$sign'))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$dotest') (/sign))}
              spids: [3563]
            )
          ]
        )
        (SimpleCommand
          words: [{(echo)} {(DQ ($ VSub_Name '$utf8'))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$dotest') (/utf8))}
              spids: [3576]
            )
          ]
        )
        (SimpleCommand
          words: [{(echo)} {(DQ ($ VSub_Name '$keep'))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$dotest') (/keep))}
              spids: [3589]
            )
          ]
        )
        (SimpleCommand
          words: [{(echo)} {(DQ ($ VSub_Name '$messageid'))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$dotest') (/messageid))}
              spids: [3602]
            )
          ]
        )
        (SimpleCommand
          words: [{(echo)} {(DQ ($ VSub_Name '$scissors'))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$dotest') (/scissors))}
              spids: [3615]
            )
          ]
        )
        (SimpleCommand
          words: [{(echo)} {(DQ ($ VSub_Name '$no_inbody_headers'))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$dotest') (/no_inbody_headers))}
              spids: [3628]
            )
          ]
        )
        (SimpleCommand
          words: [{(echo)} {(DQ ($ VSub_Name '$GIT_QUIET'))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$dotest') (/quiet))}
              spids: [3641]
            )
          ]
        )
        (SimpleCommand
          words: [{(echo)} {(1)}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$dotest') (/next))}
              spids: [3652]
            )
          ]
        )
        (If
          arms: [
            (if_arm
              cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$rebasing'))})]
              action: [
                (SimpleCommand
                  words: [{(Lit_Other ':')}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$dotest') (/rebasing))}
                      spids: [3675]
                    )
                  ]
                )
              ]
              spids: [16777215 3670]
            )
          ]
          else_action: [
            (SimpleCommand
              words: [{(Lit_Other ':')}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$dotest') (/applying))}
                  spids: [3687]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$HAS_HEAD'))})]
                  action: [(C {(git)} {(update-ref)} {(ORIG_HEAD)} {(HEAD)})]
                  spids: [16777215 3705]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [{(git)} {(update-ref)} {(-d)} {(ORIG_HEAD)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [3728]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[3731])
                  ]
                )
              ]
              spids: [3717 3735]
            )
          ]
          spids: [3682 3738]
        )
      ]
      spids: [3233 3740]
    )
    (C {(git)} {(update-index)} {(-q)} {(--refresh)})
    (Case
      to_match: {(DQ ($ VSub_Name '$resolved'))}
      arms: [
        (case_arm
          pat_list: [{(SQ )}]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Case
                  to_match: {(DQ ($ VSub_Name '$HAS_HEAD'))}
                  arms: [
                    (case_arm
                      pat_list: [{(SQ )}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:files)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: (CommandList children:[(C {(git)} {(ls-files)})])
                                    left_token: <Left_CommandSub '$('>
                                    spids: [3780 3784]
                                  )
                                }
                              spids: [3779]
                            )
                          ]
                          spids: [3779]
                        )
                      ]
                      spids: [16777215 3776 3786 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '?') (Lit_Other '*')}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:files)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(git)} {(diff-index)} {(--cached)} {(--name-only)} {(HEAD)} 
                                            {(--)}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [3795 3807]
                                  )
                                }
                              spids: [3794]
                            )
                          ]
                          spids: [3794]
                        )
                      ]
                      spids: [3789 3791 3809 16777215]
                    )
                  ]
                  spids: [3765 3771 3812]
                )
                (ControlFlow token:<ControlFlow_Exit exit>)
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(DQ ($ VSub_Name '$files'))})]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-n)} {(DQ ($ VSub_Name '$HAS_HEAD'))})
                        (SimpleCommand
                          words: [{(Lit_Other ':')}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$dotest') (/dirtyindex))}
                              spids: [3843]
                            )
                          ]
                        )
                      ]
                    )
                    (C {(die)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(eval_gettext)} 
                                    {
                                      (DQ ('Dirty index: cannot apply patches (dirty: ') 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar '\\$'>
                                        ) ('files)')
                                      )
                                    }
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [3853 3861]
                          )
                        )
                      }
                    )
                  ]
                  spids: [16777215 3828]
                )
              ]
              spids: [16777215 3865]
            )
          ]
          spids: [16777215 3762 16777215 3867]
        )
      ]
      spids: [3752 3758 3867]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/utf8))})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [3885 3892]
                  )
                )
              } {(Lit_Other '=')} {(t)}
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:utf8) op:Equal rhs:{(-u)} spids:[3902])]
              spids: [3902]
            )
          ]
          spids: [16777215 3899]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:utf8) op:Equal rhs:{(-n)} spids:[3908])]
          spids: [3908]
        )
      ]
      spids: [3905 3911]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:keep)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/keep))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [3914 3921]
              )
            }
          spids: [3913]
        )
      ]
      spids: [3913]
    )
    (Case
      to_match: {(DQ ($ VSub_Name '$keep'))}
      arms: [
        (case_arm
          pat_list: [{(t)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:keep) op:Equal rhs:{(-k)} spids:[3935])]
              spids: [3935]
            )
          ]
          spids: [3931 3932 3938 16777215]
        )
        (case_arm
          pat_list: [{(b)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:keep) op:Equal rhs:{(-b)} spids:[3944])]
              spids: [3944]
            )
          ]
          spids: [3940 3941 3947 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:keep) op:Equal rhs:{(EmptyPart)} spids:[3953])]
              spids: [3953]
            )
          ]
          spids: [3949 3950 3955 16777215]
        )
      ]
      spids: [3923 3929 3957]
    )
    (Case
      to_match: 
        {
          (DQ 
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/messageid))})]
                )
              left_token: <Left_CommandSub '$('>
              spids: [3962 3969]
            )
          )
        }
      arms: [
        (case_arm
          pat_list: [{(t)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:messageid) op:Equal rhs:{(-m)} spids:[3978])]
              spids: [3978]
            )
          ]
          spids: [3974 3975 3981 16777215]
        )
        (case_arm
          pat_list: [{(f)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:messageid)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [3987]
                )
              ]
              spids: [3987]
            )
          ]
          spids: [3983 3984 3989 16777215]
        )
      ]
      spids: [3959 3972 3991]
    )
    (Case
      to_match: 
        {
          (DQ 
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/scissors))})]
                )
              left_token: <Left_CommandSub '$('>
              spids: [3996 4003]
            )
          )
        }
      arms: [
        (case_arm
          pat_list: [{(t)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:scissors)
                  op: Equal
                  rhs: {(--scissors)}
                  spids: [4012]
                )
              ]
              spids: [4012]
            )
          ]
          spids: [4008 4009 4015 16777215]
        )
        (case_arm
          pat_list: [{(f)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:scissors)
                  op: Equal
                  rhs: {(--no-scissors)}
                  spids: [4021]
                )
              ]
              spids: [4021]
            )
          ]
          spids: [4017 4018 4024 16777215]
        )
      ]
      spids: [3993 4006 4026]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/no_inbody_headers))})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [4033 4040]
                  )
                )
              } {(Lit_Other '=')} {(t)}
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:no_inbody_headers)
                  op: Equal
                  rhs: {(--no-inbody-headers)}
                  spids: [4050]
                )
              ]
              spids: [4050]
            )
          ]
          spids: [16777215 4047]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:no_inbody_headers)
              op: Equal
              rhs: {(EmptyPart)}
              spids: [4056]
            )
          ]
          spids: [4056]
        )
      ]
      spids: [4053 4058]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/quiet))})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [4065 4072]
                  )
                )
              } {(Lit_Other '=')} {(t)}
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:GIT_QUIET) op:Equal rhs:{(t)} spids:[4082])]
              spids: [4082]
            )
          ]
          spids: [16777215 4079]
        )
      ]
      spids: [16777215 4085]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/threeway))})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [4092 4099]
                  )
                )
              } {(Lit_Other '=')} {(t)}
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:threeway) op:Equal rhs:{(t)} spids:[4109])]
              spids: [4109]
            )
          ]
          spids: [16777215 4106]
        )
      ]
      spids: [16777215 4112]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:git_apply_opt)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/apply-opt))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [4115 4122]
              )
            }
          spids: [4114]
        )
      ]
      spids: [4114]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(test)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/sign))})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [4129 4136]
                  )
                )
              } {(Lit_Other '=')} {(t)}
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SIGNOFF)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(git)} {(var)} {(GIT_COMMITTER_IDENT)})
                                  (C {(sed)} {(-e)} 
                                    {(SQ <'\n'> <'\t\t\ts/>.*/>/\n'> <'\t\t\ts/^/Signed-off-by: /'>)}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4147 4167]
                      )
                    }
                  spids: [4146]
                )
              ]
              spids: [4146]
            )
          ]
          spids: [16777215 4143]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:SIGNOFF) op:Equal rhs:{(EmptyPart)} spids:[4172])]
          spids: [4172]
        )
      ]
      spids: [4169 4174]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:last)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/last))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [4178 4185]
              )
            }
          spids: [4177]
        )
      ]
      spids: [4177]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:this)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/next))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [4188 4195]
              )
            }
          spids: [4187]
        )
      ]
      spids: [4187]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(DQ ($ VSub_Name '$skip'))} {(Lit_Other '=')} {(t)})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:this)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(expr)} {(DQ ($ VSub_Name '$this'))} {(Lit_Other '+')} {(1)})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4213 4223]
                      )
                    }
                  spids: [4212]
                )
              ]
              spids: [4212]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:resume) op:Equal rhs:{(EmptyPart)} spids:[4226])]
              spids: [4226]
            )
          ]
          spids: [16777215 4209]
        )
      ]
      spids: [16777215 4228]
    )
    (While
      cond: [(C {(test)} {(DQ ($ VSub_Name '$this'))} {(-le)} {(DQ ($ VSub_Name '$last'))})]
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:msgnum)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(printf)} {(DQ ('%0') (${ VSub_Name prec) (d))} 
                                {($ VSub_Name '$this')}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4249 4261]
                      )
                    }
                  spids: [4248]
                )
              ]
              spids: [4248]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:next)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(expr)} {(DQ ($ VSub_Name '$this'))} {(Lit_Other '+')} {(1)})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4265 4275]
                      )
                    }
                  spids: [4264]
                )
              ]
              spids: [4264]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/) ($ VSub_Name '$msgnum'))})
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:resume)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [4293]
                        )
                      ]
                      spids: [4293]
                    )
                    (C {(go_next)})
                    (ControlFlow token:<ControlFlow_Continue continue>)
                  ]
                  spids: [4290]
                )
              ]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$resume'))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/rebasing))})]
                          action: [
                            (AndOr
                              ops: [Op_DAmp Op_DPipe]
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:commit)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(sed)} {(-e)} 
                                                    {(SQ <'s/^From \\([0-9a-f]*\\) .*/\\1/'>)} {(-e)} {(q)} {(DQ ($ VSub_Name '$dotest') (/) ($ VSub_Name '$msgnum'))}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [4368 4388]
                                          )
                                        }
                                      spids: [4367]
                                    )
                                  ]
                                  spids: [4367]
                                )
                                (C {(test)} 
                                  {
                                    (DQ 
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(git)} {(cat-file)} {(-t)} 
                                                {(DQ ($ VSub_Name '$commit'))}
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [4396 4406]
                                      )
                                    )
                                  } {(Lit_Other '=')} {(commit)}
                                )
                                (C {(stop_here)} {($ VSub_Name '$this')})
                              ]
                            )
                            (Pipeline
                              children: [
                                (C {(git)} {(cat-file)} {(commit)} {(DQ ($ VSub_Name '$commit'))})
                                (SimpleCommand
                                  words: [{(sed)} {(-e)} {(SQ <'1,/^$/d'>)}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {(DQ ($ VSub_Name '$dotest') (/msg-clean))}
                                      spids: [4442]
                                    )
                                  ]
                                )
                              ]
                              negated: F
                            )
                            (SimpleCommand
                              words: [{(echo)} {(DQ ($ VSub_Name '$commit'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$dotest') (/original-commit))}
                                  spids: [4455]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(get_author_ident_from_commit)} {(DQ ($ VSub_Name '$commit'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$dotest') (/author-script))}
                                  spids: [4468]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [
                                {(git)}
                                {(diff-tree)}
                                {(--root)}
                                {(--binary)}
                                {(--full-index)}
                                {(DQ ($ VSub_Name '$commit'))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$dotest') (/patch))}
                                  spids: [4489]
                                )
                              ]
                            )
                          ]
                          spids: [16777215 4364]
                        )
                      ]
                      else_action: [
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (SimpleCommand
                              words: [
                                {(git)}
                                {(mailinfo)}
                                {($ VSub_Name '$keep')}
                                {($ VSub_Name '$no_inbody_headers')}
                                {($ VSub_Name '$messageid')}
                                {($ VSub_Name '$scissors')}
                                {($ VSub_Name '$utf8')}
                                {(DQ ($ VSub_Name '$dotest') (/msg))}
                                {(DQ ($ VSub_Name '$dotest') (/patch))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$dotest') (/) ($ VSub_Name '$msgnum'))}
                                  spids: [4525]
                                )
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$dotest') (/info))}
                                  spids: [4532]
                                )
                              ]
                            )
                            (C {(stop_here)} {($ VSub_Name '$this')})
                          ]
                        )
                        (AndOr
                          ops: [Op_DAmp Op_DAmp]
                          children: [
                            (SimpleCommand
                              words: [{(sane_grep)} {(SQ <'^Author: Mail System Internal Data$'>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$dotest')) (/info)}
                                  spids: [4559]
                                )
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                  spids: [4565]
                                )
                              ]
                            )
                            (C {(go_next)})
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                        )
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(test)} {(-s)} {(DQ ($ VSub_Name '$dotest') (/patch))})
                            (BraceGroup
                              children: [
                                (C {(eval_gettextln)} 
                                  {
                                    (DQ ('Patch is empty.  Was it split wrong?\n') 
                                      ('If you would prefer to skip this patch, instead run ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                      ('cmdline --skip') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('.\n') 
                                      ('To restore the original branch and stop patching run ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                      ('cmdline --abort') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (.)
                                    )
                                  }
                                )
                                (C {(stop_here)} {($ VSub_Name '$this')})
                              ]
                              spids: [4590]
                            )
                          ]
                        )
                        (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/original-commit))} 
                          {(DQ ($ VSub_Name '$dotest') (/author-script))}
                        )
                        (Pipeline
                          children: [
                            (BraceGroup
                              children: [
                                (C {(sed)} {(-n)} {(SQ <'/^Subject/ s/Subject: //p'>)} 
                                  {(DQ ($ VSub_Name '$dotest') (/info))}
                                )
                                (C {(echo)})
                                (C {(cat)} {(DQ ($ VSub_Name '$dotest') (/msg))})
                              ]
                              spids: [4635]
                            )
                            (SimpleCommand
                              words: [{(git)} {(stripspace)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$dotest') (/msg-clean))}
                                  spids: [4672]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                      ]
                      spids: [4496 4680]
                    )
                  ]
                  spids: [16777215 4349 4683 16777215]
                )
              ]
              spids: [4338 4344 4686]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/author-script))})]
                  action: [
                    (C {(eval)} 
                      {
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/author-script))})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [4707 4714]
                        )
                      }
                    )
                  ]
                  spids: [16777215 4702]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:GIT_AUTHOR_NAME)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(sed)} {(-n)} {(SQ <'/^Author/ s/Author: //p'>)} 
                                      {(DQ ($ VSub_Name '$dotest') (/info))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [4722 4735]
                            )
                          )
                        }
                      spids: [4720]
                    )
                  ]
                  spids: [4720]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:GIT_AUTHOR_EMAIL)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(sed)} {(-n)} {(SQ <'/^Email/ s/Email: //p'>)} 
                                      {(DQ ($ VSub_Name '$dotest') (/info))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [4741 4754]
                            )
                          )
                        }
                      spids: [4739]
                    )
                  ]
                  spids: [4739]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:GIT_AUTHOR_DATE)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(sed)} {(-n)} {(SQ <'/^Date/ s/Date: //p'>)} 
                                      {(DQ ($ VSub_Name '$dotest') (/info))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [4760 4773]
                            )
                          )
                        }
                      spids: [4758]
                    )
                  ]
                  spids: [4758]
                )
              ]
              spids: [4717 4777]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$GIT_AUTHOR_EMAIL'))})]
                  action: [
                    (C {(gettextln)} {(DQ ('Patch does not have a valid e-mail address.'))})
                    (C {(stop_here)} {($ VSub_Name '$this')})
                  ]
                  spids: [16777215 4792]
                )
              ]
              spids: [16777215 4807]
            )
            (C {(export)} {(GIT_AUTHOR_NAME)} {(GIT_AUTHOR_EMAIL)} {(GIT_AUTHOR_DATE)})
            (Case
              to_match: {(DQ ($ VSub_Name '$resume'))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(test)} {(SQ )} {(KW_Bang '!') (Lit_Other '=')} 
                              {(DQ ($ VSub_Name '$SIGNOFF'))}
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:LAST_SIGNED_OFF_BY)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(sed)} {(-ne)} {(SQ <'/^Signed-off-by: /p'>)} 
                                                    {(DQ ($ VSub_Name '$dotest') (/msg-clean))}
                                                  )
                                                  (C {(sed)} {(-ne)} {(SQ <'$p'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [4854 4884]
                                      )
                                    }
                                  spids: [4853]
                                )
                              ]
                              spids: [4853]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ADD_SIGNOFF)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (AndOr
                                                ops: [Op_DPipe]
                                                children: [
                                                  (C {(test)} {(DQ ($ VSub_Name '$LAST_SIGNED_OFF_BY'))} 
                                                    {(Lit_Other '=')} {(DQ ($ VSub_Name '$SIGNOFF'))}
                                                  )
                                                  (BraceGroup
                                                    children: [
                                                      (AndOr
                                                        ops: [Op_DAmp]
                                                        children: [
                                                          (C {(test)} {(SQ )} {(Lit_Other '=')} 
                                                            {
                                                              (DQ ($ VSub_Name '$LAST_SIGNED_OFF_BY'))
                                                            }
                                                          )
                                                          (C {(echo)})
                                                        ]
                                                      )
                                                      (C {(echo)} {(DQ ($ VSub_Name '$SIGNOFF'))})
                                                    ]
                                                    spids: [4905]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [4888 4932]
                                      )
                                    }
                                  spids: [4887]
                                )
                              ]
                              spids: [4887]
                            )
                          ]
                          spids: [16777215 4850]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ADD_SIGNOFF)
                              op: Equal
                              rhs: {(EmptyPart)}
                              spids: [4938]
                            )
                          ]
                          spids: [4938]
                        )
                      ]
                      spids: [4935 4941]
                    )
                    (BraceGroup
                      children: [
                        (If
                          arms: [
                            (if_arm
                              cond: [(C {(test)} {(-s)} {(DQ ($ VSub_Name '$dotest') (/msg-clean))})]
                              action: [(C {(cat)} {(DQ ($ VSub_Name '$dotest') (/msg-clean))})]
                              spids: [16777215 4959]
                            )
                          ]
                          spids: [16777215 4970]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(test)} {(SQ )} {(KW_Bang '!') (Lit_Other '=')} 
                                  {(DQ ($ VSub_Name '$ADD_SIGNOFF'))}
                                )
                              ]
                              action: [(C {(echo)} {(DQ ($ VSub_Name '$ADD_SIGNOFF'))})]
                              spids: [16777215 4988]
                            )
                          ]
                          spids: [16777215 4998]
                        )
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$dotest') (/final-commit))}
                          spids: [5003]
                        )
                      ]
                      spids: [4944]
                    )
                  ]
                  spids: [16777215 4832 5010 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$resolved') ($ VSub_Name '$interactive'))}
                      arms: [
                        (case_arm
                          pat_list: [{(tt)}]
                          action: [
                            (SimpleCommand
                              words: [{(git)} {(diff-index)} {(-p)} {(--cached)} {(HEAD)} {(--)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$dotest') (/patch))}
                                  spids: [5047]
                                )
                              ]
                            )
                          ]
                          spids: [5027 5028 5054 16777215]
                        )
                      ]
                      spids: [5017 5024 5057]
                    )
                  ]
                  spids: [5013 5014 16777215 5060]
                )
              ]
              spids: [4821 4827 5060]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:resume) op:Equal rhs:{(EmptyPart)} spids:[5064])]
              spids: [5064]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(DQ ($ VSub_Name '$interactive'))} {(Lit_Other '=')} {(t)})]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-t)} {(0)})
                        (C {(die)} 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(gettext)} 
                                        {
                                          (DQ 
                                            (
'cannot be interactive without stdin connected to a terminal.'
                                            )
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [5095 5101]
                              )
                            )
                          }
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:action)
                          op: Equal
                          rhs: {(again)}
                          spids: [5105]
                        )
                      ]
                      spids: [5105]
                    )
                    (While
                      cond: [(C {(test)} {(DQ ($ VSub_Name '$action'))} {(Lit_Other '=')} {(again)})]
                      body: 
                        (DoGroup
                          children: [
                            (C {(gettextln)} {(DQ ('Commit Body is:'))})
                            (C {(echo)} {(DQ (--------------------------))})
                            (C {(cat)} {(DQ ($ VSub_Name '$dotest') (/final-commit))})
                            (C {(echo)} {(DQ (--------------------------))})
                            (C {(gettext)} 
                              {(DQ ('Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all '))}
                            )
                            (C {(read)} {(reply)})
                            (Case
                              to_match: {(DQ ($ VSub_Name '$reply'))}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (yY) (Lit_Other ']') (Lit_Other '*')}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:action)
                                          op: Equal
                                          rhs: {(yes)}
                                          spids: [5193]
                                        )
                                      ]
                                      spids: [5193]
                                    )
                                  ]
                                  spids: [5187 5191 5196 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (aA) (Lit_Other ']') (Lit_Other '*')}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:action)
                                          op: Equal
                                          rhs: {(yes)}
                                          spids: [5205]
                                        )
                                        (assign_pair
                                          lhs: (LhsName name:interactive)
                                          op: Equal
                                          rhs: {(EmptyPart)}
                                          spids: [5208]
                                        )
                                      ]
                                      spids: [5205]
                                    )
                                  ]
                                  spids: [5199 5203 5210 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (nN) (Lit_Other ']') (Lit_Other '*')}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:action)
                                          op: Equal
                                          rhs: {(skip)}
                                          spids: [5219]
                                        )
                                      ]
                                      spids: [5219]
                                    )
                                  ]
                                  spids: [5213 5217 5222 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (eE) (Lit_Other ']') (Lit_Other '*')}]
                                  action: [
                                    (C {(git_editor)} {(DQ ($ VSub_Name '$dotest') (/final-commit))})
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:action)
                                          op: Equal
                                          rhs: {(again)}
                                          spids: [5239]
                                        )
                                      ]
                                      spids: [5239]
                                    )
                                  ]
                                  spids: [5225 5229 5242 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (vV) (Lit_Other ']') (Lit_Other '*')}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:action)
                                          op: Equal
                                          rhs: {(again)}
                                          spids: [5251]
                                        )
                                      ]
                                      spids: [5251]
                                    )
                                    (C {(git_pager)} {(DQ ($ VSub_Name '$dotest') (/patch))})
                                  ]
                                  spids: [5245 5249 5262 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:action)
                                          op: Equal
                                          rhs: {(again)}
                                          spids: [5268]
                                        )
                                      ]
                                      spids: [5268]
                                    )
                                  ]
                                  spids: [5265 5266 5271 16777215]
                                )
                              ]
                              spids: [5178 5184 5274]
                            )
                          ]
                          spids: [5122 5277]
                        )
                    )
                  ]
                  spids: [16777215 5080]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:action) op:Equal rhs:{(yes)} spids:[5283])]
                  spids: [5283]
                )
              ]
              spids: [5280 5287]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {($ VSub_Name '$action')} {(Lit_Other '=')} {(skip)})]
                  action: [(C {(go_next)}) (ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [16777215 5302]
                )
              ]
              spids: [16777215 5311]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:hook)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(git)} {(rev-parse)} {(--git-path)} {(hooks/applypatch-msg)})
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [5317 5325]
                        )
                      )
                    }
                  spids: [5315]
                )
              ]
              spids: [5315]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-x)} {(DQ ($ VSub_Name '$hook'))})]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(DQ ($ VSub_Name '$hook'))} {(DQ ($ VSub_Name '$dotest') (/final-commit))})
                        (C {(stop_here)} {($ VSub_Name '$this')})
                      ]
                    )
                  ]
                  spids: [16777215 5340]
                )
              ]
              spids: [16777215 5359]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/final-commit))})]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:FIRSTLINE)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(sed)} {(1q)} {(DQ ($ VSub_Name '$dotest') (/final-commit))})
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [5379 5388]
                              )
                            }
                          spids: [5378]
                        )
                      ]
                      spids: [5378]
                    )
                  ]
                  spids: [16777215 5375]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:FIRSTLINE)
                      op: Equal
                      rhs: {(DQ )}
                      spids: [5394]
                    )
                  ]
                  spids: [5394]
                )
              ]
              spids: [5391 5399]
            )
            (C {(say)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (C {(eval_gettext)} 
                            {
                              (DQ ('Applying: ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                (FIRSTLINE)
                              )
                            }
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [5406 5414]
                  )
                )
              }
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$resolved'))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:squelch)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [5441]
                        )
                      ]
                      spids: [5441]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [(C {(test)} {(DQ ($ VSub_Name '$threeway'))} {(Lit_Other '=')} {(t)})]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:squelch)
                                  op: Equal
                                  rhs: {(SQ <'>/dev/null 2>&1 '>)}
                                  spids: [5460]
                                )
                              ]
                              spids: [5460]
                            )
                          ]
                          spids: [16777215 5457]
                        )
                      ]
                      spids: [16777215 5466]
                    )
                    (C {(eval)} 
                      {(DQ ('git apply ') ($ VSub_Name '$squelch') ($ VSub_Name '$git_apply_opt')) 
                        (SQ <' --index "$dotest/patch"'>)
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:apply_status)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [5481]
                        )
                      ]
                      spids: [5481]
                    )
                  ]
                  spids: [16777215 5430 5485 16777215]
                )
                (case_arm
                  pat_list: [{(t)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:resolved)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [5508]
                        )
                      ]
                      spids: [5508]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(git)} {(diff-index)} {(--quiet)} {(--cached)} {(HEAD)} {(--)})
                        (BraceGroup
                          children: [
                            (C {(gettextln)} 
                              {
                                (DQ ("No changes - did you forget to use 'git add'?\n") 
                                  (
'If there is nothing left to stage, chances are that something else\n'
                                  ) ('already introduced the same changes; you might want to skip this patch.')
                                )
                              }
                            )
                            (C {(stop_here_user_resolve)} {($ VSub_Name '$this')})
                          ]
                          spids: [5525]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:unmerged)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(git)} {(ls-files)} {(-u)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [5546 5552]
                              )
                            }
                          spids: [5545]
                        )
                      ]
                      spids: [5545]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$unmerged'))})]
                          action: [
                            (C {(gettextln)} 
                              {
                                (DQ ('You still have unmerged paths in your index\n') 
                                  ("did you forget to use 'git add'?")
                                )
                              }
                            )
                            (C {(stop_here_user_resolve)} {($ VSub_Name '$this')})
                          ]
                          spids: [16777215 5566]
                        )
                      ]
                      spids: [16777215 5582]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:apply_status)
                          op: Equal
                          rhs: {(0)}
                          spids: [5585]
                        )
                      ]
                      spids: [5585]
                    )
                    (C {(git)} {(rerere)})
                  ]
                  spids: [5488 5489 5594 16777215]
                )
              ]
              spids: [5419 5425 5597]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {($ VSub_Name '$apply_status')} {(KW_Bang '!') (Lit_Other '=')} {(0)})
                        (C {(test)} {(DQ ($ VSub_Name '$threeway'))} {(Lit_Other '=')} {(t)})
                      ]
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(Subshell child:(C {(fall_back_3way)}) spids:[5630 5632])]
                          action: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(git)} {(diff-index)} {(--quiet)} {(--cached)} {(HEAD)} {(--)})
                                (BraceGroup
                                  children: [
                                    (C {(say)} 
                                      {
                                        (DQ 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(gettext)} 
                                                    {(DQ ('No changes -- Patch already applied.'))}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [5666 5672]
                                          )
                                        )
                                      }
                                    )
                                    (C {(go_next)})
                                    (ControlFlow
                                      token: <ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [5660]
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:apply_status)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [5689]
                                )
                              ]
                              spids: [5689]
                            )
                          ]
                          spids: [16777215 5635]
                        )
                      ]
                      spids: [16777215 5693]
                    )
                  ]
                  spids: [16777215 5625]
                )
              ]
              spids: [16777215 5696]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} {($ VSub_Name '$apply_status')} {(KW_Bang '!') (Lit_Other '=')} {(0)})
                  ]
                  action: [
                    (C {(eval_gettextln)} {(SQ <'Patch failed at $msgnum $FIRSTLINE'>)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(test)} 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(git)} {(config)} {(--bool)} {(advice.amworkdir)})
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [5726 5734]
                                  )
                                )
                              } {(KW_Bang '!') (Lit_Other '=')} {(false)}
                            )
                          ]
                          action: [
                            (C {(eval_gettextln)} 
                              {
                                (SQ <'The copy of the patch that failed is found in:\n'> 
                                  <'   $dotest/patch'>
                                )
                              }
                            )
                          ]
                          spids: [16777215 5743]
                        )
                      ]
                      spids: [16777215 5754]
                    )
                    (C {(stop_here_user_resolve)} {($ VSub_Name '$this')})
                  ]
                  spids: [16777215 5711]
                )
              ]
              spids: [16777215 5762]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:hook)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(git)} {(rev-parse)} {(--git-path)} {(hooks/pre-applypatch)})
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [5768 5776]
                        )
                      )
                    }
                  spids: [5766]
                )
              ]
              spids: [5766]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-x)} {(DQ ($ VSub_Name '$hook'))})]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(DQ ($ VSub_Name '$hook'))})
                        (C {(stop_here)} {($ VSub_Name '$this')})
                      ]
                    )
                  ]
                  spids: [16777215 5791]
                )
              ]
              spids: [16777215 5805]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp Op_DPipe]
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:tree)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(git)} {(write-tree)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [5810 5814]
                          )
                        }
                      spids: [5809]
                    )
                  ]
                  spids: [5809]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:commit)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (If
                                    arms: [
                                      (if_arm
                                        cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$ignore_date'))})]
                                        action: [
                                          (Assignment
                                            keyword: Assign_None
                                            pairs: [
                                              (assign_pair
                                                lhs: (LhsName name:GIT_AUTHOR_DATE)
                                                op: Equal
                                                rhs: {(EmptyPart)}
                                                spids: [5837]
                                              )
                                            ]
                                            spids: [5837]
                                          )
                                        ]
                                        spids: [16777215 5834]
                                      )
                                    ]
                                    spids: [16777215 5840]
                                  )
                                  (AndOr
                                    ops: [Op_DPipe]
                                    children: [
                                      (Assignment
                                        keyword: Assign_None
                                        pairs: [
                                          (assign_pair
                                            lhs: (LhsName name:parent)
                                            op: Equal
                                            rhs: 
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(git)} {(rev-parse)} {(--verify)} {(-q)} 
                                                          {(HEAD)}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [5844 5854]
                                                )
                                              }
                                            spids: [5843]
                                          )
                                        ]
                                        spids: [5843]
                                      )
                                      (SimpleCommand
                                        words: [
                                          {(say)}
                                          {
                                            (DQ 
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(gettext)} 
                                                        {(DQ ('applying to an empty history'))}
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [5865 5871]
                                              )
                                            )
                                          }
                                        ]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_GreatAnd
                                            fd: 16777215
                                            arg_word: {(2)}
                                            spids: [5861]
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                  (AndOr
                                    ops: [Op_DAmp]
                                    children: [
                                      (If
                                        arms: [
                                          (if_arm
                                            cond: [
                                              (C {(test)} {(-n)} 
                                                {(DQ ($ VSub_Name '$committer_date_is_author_date'))}
                                              )
                                            ]
                                            action: [
                                              (Assignment
                                                keyword: Assign_None
                                                pairs: [
                                                  (assign_pair
                                                    lhs: (LhsName name:GIT_COMMITTER_DATE)
                                                    op: Equal
                                                    rhs: {(DQ ($ VSub_Name '$GIT_AUTHOR_DATE'))}
                                                    spids: [5890]
                                                  )
                                                ]
                                                spids: [5890]
                                              )
                                              (C {(export)} {(GIT_COMMITTER_DATE)})
                                            ]
                                            spids: [16777215 5887]
                                          )
                                        ]
                                        spids: [16777215 5901]
                                      )
                                      (SimpleCommand
                                        words: [
                                          {(git)}
                                          {(commit-tree)}
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name parent>
                                              suffix_op: 
                                                (StringUnary
                                                  op_id: VTest_ColonPlus
                                                  arg_word: {(-p)}
                                                )
                                              spids: [5910 5914]
                                            )
                                          }
                                          {($ VSub_Name '$parent')}
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name gpg_sign_opt>
                                              suffix_op: 
                                                (StringUnary
                                                  op_id: VTest_ColonPlus
                                                  arg_word: {(DQ ($ VSub_Name '$gpg_sign_opt'))}
                                                )
                                              spids: [5918 5924]
                                            )
                                          }
                                          {($ VSub_Name '$tree')}
                                        ]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_Less
                                            fd: 16777215
                                            arg_word: {(DQ ($ VSub_Name '$dotest') (/final-commit))}
                                            spids: [5930]
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [5820 5937]
                          )
                        }
                      spids: [5819]
                    )
                  ]
                  spids: [5819]
                )
                (C {(git)} {(update-ref)} {(-m)} 
                  {(DQ ($ VSub_Name '$GIT_REFLOG_ACTION') (': ') ($ VSub_Name '$FIRSTLINE'))} {(HEAD)} {($ VSub_Name '$commit')} {($ VSub_Name '$parent')}
                )
                (C {(stop_here)} {($ VSub_Name '$this')})
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/original-commit))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(cat)} {(DQ ($ VSub_Name '$dotest') (/original-commit))})
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [5987 5994]
                            ) (' ') ($ VSub_Name '$commit')
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$dotest') (/rewritten))}
                          spids: [5999]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 5981]
                )
              ]
              spids: [16777215 6007]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:hook)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(git)} {(rev-parse)} {(--git-path)} {(hooks/post-applypatch)})
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [6013 6021]
                        )
                      )
                    }
                  spids: [6011]
                )
              ]
              spids: [6011]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-x)} {(DQ ($ VSub_Name '$hook'))})
                (C {(DQ ($ VSub_Name '$hook'))})
              ]
            )
            (C {(go_next)})
          ]
          spids: [4245 6043]
        )
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-s)} {(DQ ($ VSub_Name '$dotest')) (/rewritten)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(git)} {(notes)} {(copy)} {(--for-rewrite) (Lit_Other '=') (rebase)}]
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$dotest')) (/rewritten)}
                  spids: [6071]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:hook)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(git)} {(rev-parse)} {(--git-path)} {(hooks/post-rewrite)})
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [6081 6089]
                        )
                      )
                    }
                  spids: [6079]
                )
              ]
              spids: [6079]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-x)} {(DQ ($ VSub_Name '$hook'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(DQ ($ VSub_Name '$hook'))} {(rebase)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$dotest')) (/rewritten)}
                          spids: [6113]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 6104]
                )
              ]
              spids: [16777215 6121]
            )
          ]
          spids: [16777215 6058]
        )
      ]
      spids: [16777215 6123]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Pipeline
              children: [(C {(test)} {(-f)} {(DQ ($ VSub_Name '$dotest') (/rebasing))})]
              negated: T
            )
          ]
          action: [(C {(rm)} {(-fr)} {(DQ ($ VSub_Name '$dotest'))}) (C {(git)} {(gc)} {(--auto)})]
          spids: [16777215 6145]
        )
      ]
      spids: [16777215 6163]
    )
  ]
)