(command.CommandList
  children: [
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {<regress>}
        {<->}
        {<run>}
        {<regression>}
        {<tests>}
        {<Id.KW_In in>}
        {<command.tst>}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'command='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'command='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command)
          op: assign_op.Equal
          rhs: {<regress>}
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.CommandList
                    children: [
                      (command.Sentence
                        child: 
                          (command.Simple
                            blame_tok: <getopts>
                            more_env: []
                            words: [{<getopts>} {(SQ <'[-][123:xyz]'>)} {<opt>} {<--xyz>}]
                            redirects: [
                              (Redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                        terminator: <Id.Op_Semi _>
                      )
                      (command.Simple
                        blame_tok: <echo>
                        more_env: []
                        words: [{<echo>} {<0> ($ Id.VSub_DollarName opt)}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <0123>
          pattern: (pat.Words words:[{<0123>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'USAGE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'USAGE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[-?\n'>
                          <Id.Char_Literals '@(#)$Id: regress (AT&T Research) 2012-02-02 $\n'>
                          <Id.Char_Literals ']\n'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      ) ($ Id.VSub_DollarName USAGE_LICENSE) 
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[+NAME?regress - run regression tests]\n'>
                          <Id.Char_Literals '[+DESCRIPTION?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals regress>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' runs the tests in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', or\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .tst>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' does not exist. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is omitted\n'>
                          <Id.Char_Literals '    then it is assumed to be the base name of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. All testing is done\n'>
                          <Id.Char_Literals '    in the temporary directory '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .tmp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '[+?Default test output lists the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals number>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals description>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' for\n'>
                          <Id.Char_Literals '    each active '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals TEST>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' group and the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals number>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ':'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals line>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' for each\n'>
                          <Id.Char_Literals '    individual '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals EXEC>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' test. Each test that fails results in a diagnostic\n'>
                          <Id.Char_Literals '    that contains the word '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals FAILED>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '; no other diagnostics contain this\n'>
                          <Id.Char_Literals '    word.]\n'>
                          <Id.Char_Literals 
'[b:ignore-space?Ignore space differences when comparing expected\n'
                          >
                          <Id.Char_Literals '    output.]\n'>
                          <Id.Char_Literals 
'[i:pipe-input?Repeat each test with the standard input redirected through a\n'
                          >
                          <Id.Char_Literals '    pipe.]\n'>
                          <Id.Char_Literals '[k:keep?Enable '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals core>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' dumps, exit after the first test that fails,\n'>
                          <Id.Char_Literals '    and do not remove the temporary directory '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .tmp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '[l:local-fs?Force '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .tmp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' to be in a local filesystem.]\n'>
                          <Id.Char_Literals 
'[o:pipe-output?Repeat each test with the standard output redirected through\n'
                          >
                          <Id.Char_Literals '    a pipe.]\n'>
                          <Id.Char_Literals 
'[p:pipe-io?Repeat each test with the standard input and standard output\n'
                          >
                          <Id.Char_Literals '    redirected through pipes.]\n'>
                          <Id.Char_Literals '[q:quiet?Output information on '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals FAILED>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' tests only.]\n'>
                          <Id.Char_Literals 
'[r!:regular?Run each test with the standard input and standard output\n'
                          >
                          <Id.Char_Literals '    redirected through regular files.]\n'>
                          <Id.Char_Literals '[t:test?Run only tests matching '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals pattern>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. Tests are numbered and\n'>
                          <Id.Char_Literals 
'    consist of at least two digits (0 filled if necessary.) Tests matching\n'
                          >
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '+(0)'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are always run.]:[pattern]\n'>
                          <Id.Char_Literals '[x:trace?Enable debug tracing.]\n'>
                          <Id.Char_Literals 
'[v:verbose?List differences between actual (<) and expected (>) output,\n'
                          >
                          <Id.Char_Literals 
'    errors and exit codes. Also disable long output line truncation.]\n'
                          >
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 'unit [ command [ arg ... ] ]\n'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[+INPUT FILES?The regression test file '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .tst>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ksh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1)\n'>
                          <Id.Char_Literals 
'    script that is executed in an environment with the following functions\n'
                          >
                          <Id.Char_Literals '    defined:]\n'>
                          <Id.Char_Literals '    {\n'>
                          <Id.Char_Literals '        [+BODY '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
'{ ... }?Defines the test body; used for complex tests.]\n'
                          >
                          <Id.Char_Literals '        [+CD '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Create and change to working directory for\n'>
                          <Id.Char_Literals '            one test.]\n'>
                          <Id.Char_Literals '        [+CLEANUP '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals status>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Called at exit time to remove the\n'>
                          <Id.Char_Literals '            temporary directory '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .tmp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', list the tests totals via\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals TALLY>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', and exit with status '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals status>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+COMMAND '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?Runs the current command under test with\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... appended to the default args.]\n'>
                          <Id.Char_Literals 
'        [+CONTINUE?The background job must be running.]\n'
                          >
                          <Id.Char_Literals '        [+COPY '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'from to'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Copy file '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals from>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals to>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals from>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may\n'>
                          <Id.Char_Literals '            be a regular file or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals INPUT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals OUTPUT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ERROR>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. Post\n'>
                          <Id.Char_Literals '            test comparisons are still done for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals from>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+DIAGNOSTICS '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 1>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' | '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 0>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' | '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals pattern>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?No argument or an\n'>
                          <Id.Char_Literals '\t    argument of '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 1>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' declares that diagnostics are to expected for\n'>
                          <Id.Char_Literals '\t    the remainder of the current '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals TEST>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '; '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 0>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' reverts to the default\n'>
                          <Id.Char_Literals 
'            state that diagnostics are not expected; otherwise the argument\n'
                          >
                          <Id.Char_Literals '\t    is a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ksh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) pattern that must match the non-empty contents\n'>
                          <Id.Char_Literals '\t    of the standard error.]\n'>
                          <Id.Char_Literals '        [+DO '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals statement>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines additional statements to be executed\n'>
                          <Id.Char_Literals '            for the current test. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals statement>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may be a { ... } group.]\n'>
                          <Id.Char_Literals '        [+EMPTY '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'INPUT|OUTPUT|ERROR|SAME?The corresponding file is\n'>
                          <Id.Char_Literals '            expected to be empty.]\n'>
                          <Id.Char_Literals '        [+ERROR '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -e>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals filter>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]] [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -n>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' | - '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?The\n'>
                          <Id.Char_Literals 
'\t    standard error is expected to match either the contents\n'
                          >
                          <Id.Char_Literals '\t    of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' or the line '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'ERROR -n'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' does not\n'>
                          <Id.Char_Literals '\t    append a newline to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals filter>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a shell command\n'>
                          <Id.Char_Literals 
'\t    or pipeline that reads standard input and writes standard\n'
                          >
                          <Id.Char_Literals 
'\t    output that is applied to ERROR before comparison with the\n'
                          >
                          <Id.Char_Literals '\t    expected contents.]\n'>
                          <Id.Char_Literals '        [+EXEC '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?Runs the command under test with\n'>
                          <Id.Char_Literals '            optional arguments. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals INPUT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals OUTPUT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ERROR>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals EXIT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals SAME>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' calls following this '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals EXEC>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' up until the next\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals EXEC>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or the end of the script provide details for the\n'>
                          <Id.Char_Literals 
'            expected results. If no arguments are specified then the\n'
                          >
                          <Id.Char_Literals '            arguments from the previious '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals EXEC>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' in the current '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals TEST>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'            group are used, or no arguments if this is the first '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals EXEC>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            in the group.]\n'>
                          <Id.Char_Literals '        [+EXIT '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals status>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?The command exit status is expected to match\n'>
                          <Id.Char_Literals '            the pattern '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals status>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals 
'        [+EXITED?The background job must have exited.]\n'
                          >
                          <Id.Char_Literals '        [+EXPORT '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[-]] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '='>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals value>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?Export environment\n'>
                          <Id.Char_Literals '            variables for one test.]\n'>
                          <Id.Char_Literals '        [+FATAL '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals message>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals message>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is printed on the standard\n'>
                          <Id.Char_Literals '            error and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals regress>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' exits with status '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 1>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+FIFO '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'INPUT|OUTPUT|ERROR'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -n>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' | - '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?The\n'>
                          <Id.Char_Literals '\t    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals IO>
                          <Id.Unknown_Backslash '\\'>
                          <Id.Char_Literals 'B file is a fifo.]\n'>
                          <Id.Char_Literals '        [+IF '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals note>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]?If the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' exits\n'>
                          <Id.Char_Literals '            0 then tests until the next '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ELIF>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ELSE>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals FI>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are\n'>
                          <Id.Char_Literals 
'            enabled. Otherwise those tests are skipped. '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals IF>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals FI>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            may be nested, but must not cross '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals TEST>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' boundaries. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals note>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'            is listed on the standard error if the correspoding test block\n'
                          >
                          <Id.Char_Literals '            is enabled; '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals IF>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ELIF>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ELSE>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' may nave a '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals note>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            operand.]\n'>
                          <Id.Char_Literals '        [+IGNORE '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is ignored for subsequent result\n'>
                          <Id.Char_Literals '            comparisons. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may be '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals OUTPUT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ERROR>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals 
'        [+IGNORESPACE?Ignore space differences when comparing expected\n'
                          >
                          <Id.Char_Literals '            output.]\n'>
                          <Id.Char_Literals '        [+INCLUDE '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?One or more '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' operands are read\n'>
                          <Id.Char_Literals '            via the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ksh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) command. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals VIEW>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is used to locate\n'>
                          <Id.Char_Literals '            the files.]\n'>
                          <Id.Char_Literals '        [+INFO '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals description>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals description>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is printed on the\n'>
                          <Id.Char_Literals '            standard error.]\n'>
                          <Id.Char_Literals '        [+INITIALIZE?Called by '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals regress>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' to initialize a each\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals TEST>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' group.]\n'>
                          <Id.Char_Literals '        [+INPUT '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -e>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals filter>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]] [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -n>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' | - '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?The\n'>
                          <Id.Char_Literals '\t    standard input is set to either the contents of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t    or the line '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'INPUT -n'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' does not append a newline\n'>
                          <Id.Char_Literals '\t    to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals filter>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a shell command or pipeline that\n'>
                          <Id.Char_Literals 
'\t    reads standard input and writes standard output that is\n'
                          >
                          <Id.Char_Literals 
'\t    applied to OUTPUT before comparison with the expected contents.]\n'
                          >
                          <Id.Char_Literals '        [+INTRO?Called by '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals regress>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' to introduce all '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals TEST>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            groups.]\n'>
                          <Id.Char_Literals '        [+IO '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals FIFO>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' | '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals PIPE>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]] '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'INPUT|OUTPUT|ERROR'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -e>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals filter>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]] [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -n>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' | - '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?Internal\n'>
                          <Id.Char_Literals '            support for the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals INPUT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals OUTPUT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ERROR>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' functions.]\n'>
                          <Id.Char_Literals '        [+JOB '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals op>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ ... ]]?Like '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals EXEC>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' except the command is run\n'>
                          <Id.Char_Literals 
'            as a background job for the duration of the group or until it\n'
                          >
                          <Id.Char_Literals '            is killed via '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals KILL>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+KEEP '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals pattern>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?The temporary directory is cleared for\n'>
                          <Id.Char_Literals '            each test. Files matching '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals pattern>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' are retained between\n'>
                          <Id.Char_Literals '            tests.]\n'>
                          <Id.Char_Literals '        [+KILL '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals signal>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?Kill the background job with '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals signal>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '        [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals SIGKILL>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]].]\n'>
                          <Id.Char_Literals '        [+MOVE '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'from to'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Rename file '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals from>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals to>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals from>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may\n'>
                          <Id.Char_Literals '            be a regular file or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals INPUT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals OUTPUT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ERROR>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. Post\n'>
                          <Id.Char_Literals '            test comparisons are ignored for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals from>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+NOTE '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals comment>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals comment>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is added to the current test\n'>
                          <Id.Char_Literals '            trace output.]\n'>
                          <Id.Char_Literals '        [+OUTPUT '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -e>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals filter>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]] [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -n>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' | - '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?The\n'>
                          <Id.Char_Literals 
'\t    standard output is expected to match either the contents\n'
                          >
                          <Id.Char_Literals '\t    of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' or the line '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'OUTPUT -n'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' does not\n'>
                          <Id.Char_Literals '\t    append a newline to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals filter>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a shell command\n'>
                          <Id.Char_Literals 
'\t    or pipeline that reads standard input and writes standard\n'
                          >
                          <Id.Char_Literals 
'\t    output that is applied to ERROR before comparison with the\n'
                          >
                          <Id.Char_Literals '\t    expected contents.]\n'>
                          <Id.Char_Literals '        [+PIPE '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'INPUT|OUTPUT|ERROR'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -n>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' | - '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals data>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?The\n'>
                          <Id.Char_Literals '\t    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals IO>
                          <Id.Unknown_Backslash '\\'>
                          <Id.Char_Literals 'B file is a pipe.]\n'>
                          <Id.Char_Literals '        [+PROG '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is run with\n'>
                          <Id.Char_Literals '            optional arguments.]\n'>
                          <Id.Char_Literals '        [+REMOVE '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... are removed after the\n'>
                          <Id.Char_Literals '            current test is done.]\n'>
                          <Id.Char_Literals '        [+RUN?Called by '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals regress>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' to run the current test.]\n'>
                          <Id.Char_Literals '        [+SAME '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'new old'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals new>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is expected to be the same as\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals old>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' after the current test completes.]\n'>
                          <Id.Char_Literals '        [+SET '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '['>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals no>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ']]'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '[='>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals value>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]?Set the command line\n'>
                          <Id.Char_Literals '            option --'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. The setting is in effect for all tests until\n'>
                          <Id.Char_Literals '            the next explicit '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals SET>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+TALLY?Called by '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals regress>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' display the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals TEST>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' results.]\n'>
                          <Id.Char_Literals '        [+TEST '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals number>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals description>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?Define a new test\n'>
                          <Id.Char_Literals '            group labelled '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals number>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' with optional '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals descripion>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+TITLE '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[+]] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals text>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Set the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals TEST>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' output title to\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals text>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '+'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is specified then '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals text>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is appended to\n'>
                          <Id.Char_Literals 
'            the default title. The default title is the test file base\n'
                          >
                          <Id.Char_Literals 
'            name, and, if different from the test file base name, the test\n'
                          >
                          <Id.Char_Literals '            unit base name.]\n'>
                          <Id.Char_Literals '        [+TWD '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?Set the temporary test dir to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.\n'>
                          <Id.Char_Literals '            The default is '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .tmp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', where '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is the test\n'>
                          <Id.Char_Literals '            input file sans directory and suffix. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' matches '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '/*'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            then it is the directory name; if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is non-null then the\n'>
                          <Id.Char_Literals '            prefix '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '${TMPDIR:-/tmp}'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is added; otherwise if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals '            omitted then\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '${TMPDIR:-/tmp}/tst-'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '-$$-$RANDOM.'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals unit>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals '            used.]\n'>
                          <Id.Char_Literals '        [+UMASK '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '[ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals mask>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?Run subsequent tests with '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals umask>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1)\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals mask>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals mask>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is omitted then the original '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals umask>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals '            used.]\n'>
                          <Id.Char_Literals '        [+UNIT '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?Define the command and\n'>
                          <Id.Char_Literals '            optional default arguments to be tested. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals UNIT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' explicitly\n'>
                          <Id.Char_Literals 
'            overrides the default command name derived from the test script\n'
                          >
                          <Id.Char_Literals '            file name. A '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' operand with optional arguments\n'>
                          <Id.Char_Literals '            overrides the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals UNIT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' and arguments, with the\n'>
                          <Id.Char_Literals '            exception that if the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals UNIT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '+'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals UNIT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' arguments are appended to the operand or default\n'>
                          <Id.Char_Literals '            unit command and arguments.]\n'>
                          <Id.Char_Literals '        [+VIEW '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals var>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals var>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is set to the full\n'>
                          <Id.Char_Literals '            pathname of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals var>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]] in the current '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$VPATH'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            view if defined.]\n'>
                          <Id.Char_Literals '    }\n'>
                          <Id.Char_Literals '[+SEE ALSO?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ksh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1)]\n'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'USAGE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'USAGE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE)
                  op: assign_op.Equal
                  rhs: {(SQ <'ko:[[no]name[=value]]t:[test]v unit [path [arg ...]]'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <FATAL>
      name: FATAL
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <print>
              more_env: []
              words: [
                {<print>}
                {<-r>}
                {<-u2>}
                {(DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_Star '*'))}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GROUP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GROUP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GROUP='> name:GROUP)
                  op: assign_op.Equal
                  rhs: {<FINI>}
                )
              ]
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <EMPTY>
      name: EMPTY
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<i>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<-n>} {<Id.Lit_VarLike 'ARRAY='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name ARRAY>
                        var_name: ARRAY
                        prefix_op: <Id.VSub_Bang '!'>
                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <unset>
                      more_env: []
                      words: [
                        {<unset>}
                        {<Id.Lit_ArrayLhsOpen 'ARRAY['> ($ Id.VSub_DollarName i) <Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <INITIALIZE>
      name: INITIALIZE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<i>} {<j>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {(DQ ($ Id.VSub_DollarName TWD))}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName KEEP)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <RM>
                      more_env: []
                      words: [{<RM>} {<Id.Lit_Star '*'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{<Id.Lit_Star '*'>}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.ExtGlob_Bang '!('>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {
                                          (word_part.ExtGlob
                                            op: <Id.ExtGlob_Bang '!('>
                                            arms: [{($ Id.VSub_DollarName KEEP)}]
                                            right: <Id.Right_ExtGlob _>
                                          )
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'j='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'j='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'j='> name:j)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName j) <' '> 
                                                ($ Id.VSub_DollarName i)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName j)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <RM>
                              more_env: []
                              words: [{<RM>} {($ Id.VSub_DollarName j)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>}]
              redirects: [
                (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<INPUT>})
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<OUTPUT.ex>}
                )
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<ERROR.ex>}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'BODY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'BODY='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BODY='> name:BODY)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COPY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COPY='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COPY='> name:COPY)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DIAGNOSTICS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DIAGNOSTICS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIAGNOSTICS='> name:DIAGNOSTICS)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DONE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DONE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DONE='> name:DONE)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ERROR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ERROR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'EXIT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'EXIT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT='> name:EXIT)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IGNORE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IGNORE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IGNORE='> name:IGNORE)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'INIT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'INIT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INIT='> name:INIT)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'INPUT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'INPUT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MOVE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MOVE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MOVE='> name:MOVE)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'OUTPUT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'OUTPUT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OUTPUT='> name:OUTPUT)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <EMPTY>
              more_env: []
              words: [{<EMPTY>} {<FILE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <EMPTY>
              more_env: []
              words: [{<EMPTY>} {<FILTER>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <EMPTY>
              more_env: []
              words: [{<EMPTY>} {<SAME>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <EMPTY>
              more_env: []
              words: [{<EMPTY>} {<TYPE>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <INTRO>
      name: INTRO
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<base>} {<command>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalNot
                              child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_quiet)})
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'base='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'base='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name REGRESS>
                                var_name: REGRESS
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'base='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'base='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name base>
                                var_name: base
                                suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{<.tst>})
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'command='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'command='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name COMMAND>
                                var_name: COMMAND
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'command='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'command='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name command>
                                var_name: command
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Percent '%'>
                                    arg_word: {(SQ <' '>) <Id.Lit_Other '*'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<-->} {($ Id.VSub_DollarName TITLE)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TITLE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TITLE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TITLE='> name:TITLE)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )} {<Id.Lit_Other '+'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {($ Id.VSub_DollarName command)}
                                              right: {($ Id.VSub_DollarName base)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'TITLE='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'TITLE='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'TITLE='>
                                              name: TITLE
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName COMMAND)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1654 1667]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'TITLE='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'TITLE='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'TITLE='>
                                          name: TITLE
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName COMMAND) <', '> 
                                            ($ Id.VSub_DollarName base)
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DParen
                                          left: <Id.Op_DLeftParen _>
                                          child: {($ Id.VSub_Pound '#')}
                                          right: <Id.Op_DRightParen _>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1686 1696]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: {($ Id.VSub_Pound '#')}
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TITLE)})
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'TITLE='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'TITLE='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'TITLE='>
                                              name: TITLE
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName TITLE) <', '> 
                                                ($ Id.VSub_Number 1)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1722 1731]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'TITLE='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'TITLE='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'TITLE='>
                                          name: TITLE
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number 1))}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [{<print>} {<-u2>} {(DQ <'TEST\t'> ($ Id.VSub_DollarName TITLE))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1581 1592]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <TALLY>
      name: TALLY
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<msg>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName GROUP)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <INIT>
                  pattern: (pat.Words words:[{<INIT>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'msg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'msg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msg='> name:msg)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'TEST\t'> ($ Id.VSub_DollarName TITLE) <', '> 
                                ($ Id.VSub_DollarName TESTS) <' test'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName TESTS)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'msg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'msg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msg='> name:msg)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name msg) <s>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'msg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'msg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msg='> name:msg)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName msg) <', '> ($ Id.VSub_DollarName ERRORS) 
                                <' error'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName ERRORS)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'msg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'msg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msg='> name:msg)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name msg) <s>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DParen
                                  left: <Id.Op_DLeftParen _>
                                  child: {($ Id.VSub_Pound '#')}
                                  right: <Id.Op_DRightParen _>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'msg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'msg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msg='> name:msg)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName msg) <', '> ($ Id.VSub_Star '*'))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1879 1889]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [{<print>} {<-u2>} {(DQ ($ Id.VSub_DollarName msg))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'GROUP='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'GROUP='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GROUP='> name:GROUP)
                          op: assign_op.Equal
                          rhs: {<INIT>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TESTS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TESTS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TESTS='> name:TESTS)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERRORS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERRORS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERRORS='> name:ERRORS)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <TITLE>
      name: TITLE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TITLE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TITLE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TITLE='> name:TITLE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_At '@')}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <UNWIND>
      name: UNWIND
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Great
                          left: ($ Id.Lit_ArithVarLike COND)
                          right: {<Id.Lit_Digits 1>}
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [
                        {<print>}
                        {<-r>}
                        {<-u2>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': line '> ($ Id.VSub_DollarName LINE) 
                            <': no matching FI for IF on line '> 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name COND_LINE>
                              var_name: COND_LINE
                              bracket_op: (bracket_op.ArrayIndex expr:($ Id.Lit_ArithVarLike COND))
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDMinus
                          child: ($ Id.Lit_ArithVarLike COND)
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Great
                              left: ($ Id.Lit_ArithVarLike COND)
                              right: {<Id.Lit_Digits 0>}
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike COND)
                          right: {<Id.Lit_Digits 0>}
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <FATAL>
                      more_env: []
                      words: [
                        {<FATAL>}
                        {
                          (DQ <'line '> ($ Id.VSub_DollarName LINE) 
                            <': no matching FI for IF on line '> 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name COND_LINE>
                              var_name: COND_LINE
                              bracket_op: 
                                (bracket_op.ArrayIndex
                                  expr: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Plus
                                      left: ($ Id.Lit_ArithVarLike COND)
                                      right: {<Id.Lit_Digits 1>}
                                    )
                                )
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2002 2016]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBPID)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {($ Id.VSub_DollarName JOBPID)}
                                      right: {<0>}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <kill>
                              more_env: []
                              words: [{<kill>} {<-KILL>} {($ Id.VSub_DollarName JOBPID)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <wait>
                              more_env: []
                              words: [{<wait>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [2061 2074]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'JOBPID='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'JOBPID='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBPID='> name:JOBPID)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2050 2059]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'JOBSTATUS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'JOBSTATUS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBSTATUS='> name:JOBSTATUS)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'JOBOP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'JOBOP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBOP='> name:JOBOP)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <wait>
              more_env: []
              words: [{<wait>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <CLEANUP>
      name: CLEANUP
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<note>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobNEqual
                              left: {($ Id.VSub_DollarName GROUP)}
                              right: {<INIT>}
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.LogicalNot
                                      child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_keep)})
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <cd>
                              more_env: []
                              words: [{<cd>} {($ Id.VSub_DollarName SOURCE)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName TEST_local)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <RM>
                                      more_env: []
                                      words: [{<RM>} {(${ Id.VSub_Name TEST_local)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [2158 2167]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <RM>
                              more_env: []
                              words: [{<RM>} {(DQ ($ Id.VSub_DollarName TWD))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [2140 2151]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.AndOr
                                  children: [
                                    (command.DParen
                                      left: <Id.Op_DLeftParen _>
                                      child: {($ Id.VSub_Number 1)}
                                      right: <Id.Op_DRightParen _>
                                      redirects: []
                                    )
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobNEqual
                                          left: {($ Id.VSub_DollarName GROUP)}
                                          right: {<FINI>}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'note='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'note='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'note='> name:note)
                                  op: assign_op.Equal
                                  rhs: {<terminated>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2189 2211]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [2125 2138]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <TALLY>
              more_env: []
              words: [{<TALLY>} {($ Id.VSub_DollarName note)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_keep)})
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <UNWIND>
                  more_env: []
                  words: [{<UNWIND>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_Number 1)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <RUN>
      name: RUN
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<i>} {<Id.Lit_VarLike 'r='> <1>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobNEqual
                      left: {($ Id.VSub_DollarName UMASK)}
                      right: {($ Id.VSub_DollarName UMASK_ORIG)}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <umask>
                  more_env: []
                  words: [{<umask>} {($ Id.VSub_DollarName UMASK_ORIG)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName GROUP)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <INIT>
                  pattern: (pat.Words words:[{<INIT>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <RM>
                      more_env: []
                      words: [{<RM>} {(DQ ($ Id.VSub_DollarName TWD))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_local)})
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'TEST_local='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'TEST_local='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'TEST_local='>
                                      name: TEST_local
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name TMPDIR>
                                        var_name: TMPDIR
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonHyphen _>
                                            arg_word: {<Id.Lit_Slash '/'> <tmp>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <'/rt-'> ($ Id.VSub_Dollar '$') <'/'> 
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name TWD>
                                        var_name: TWD
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_DPound '##'>
                                            arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <mkdir>
                                  more_env: []
                                  words: [{<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName TEST_local))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <ln>
                                  more_env: []
                                  words: [
                                    {<ln>}
                                    {<-s>}
                                    {(DQ ($ Id.VSub_DollarName TEST_local))}
                                    {(DQ ($ Id.VSub_DollarName TWD))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <FATAL>
                                  more_env: []
                                  words: [
                                    {<FATAL>}
                                    {(DQ ($ Id.VSub_DollarName TWD)) <Id.Lit_Colon ':'>}
                                    {<cannot>}
                                    {<create>}
                                    {<directory>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'TEST_local='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'TEST_local='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'TEST_local='>
                                      name: TEST_local
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name TEST_local>
                                        var_name: TEST_local
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Percent '%'>
                                            arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2301 2310]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <mkdir>
                              more_env: []
                              words: [{<mkdir>} {(DQ ($ Id.VSub_DollarName TWD))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <FATAL>
                              more_env: []
                              words: [
                                {<FATAL>}
                                {(DQ ($ Id.VSub_DollarName TWD)) <Id.Lit_Colon ':'>}
                                {<cannot>}
                                {<create>}
                                {<directory>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {(DQ ($ Id.VSub_DollarName TWD))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TWD='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TWD='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TWD='> name:TWD)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName PWD)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<rmu>})]
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <rm>
                                  more_env: []
                                  words: [{<rm>} {<-u>} {<rmu>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                    (Redir
                                      op: <Id.Redir_GreatAnd '2>&'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<1>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'TEST_rmu='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'TEST_rmu='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'TEST_rmu='>
                                      name: TEST_rmu
                                    )
                                  op: assign_op.Equal
                                  rhs: {<-u>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2422 2437]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <rm>
                          more_env: []
                          words: [{<rm>} {<rmu>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName UNIT)})
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {<-->}
                                {
                                  (DQ 
                                    (BracedVarSub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name ARGV>
                                      var_name: ARGV
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {(DQ )}
                                        {<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <UNIT>
                                      more_env: []
                                      words: [
                                        {<UNIT>}
                                        {($ Id.VSub_DollarName UNIT)}
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name ARGV>
                                              var_name: ARGV
                                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                              right: <Id.Right_DollarBrace '}'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <UNIT>
                                      more_env: []
                                      words: [
                                        {<UNIT>}
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name ARGV>
                                              var_name: ARGV
                                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                              right: <Id.Right_DollarBrace '}'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [2453 2462]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <INTRO>
                      more_env: []
                      words: [{<INTRO>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <FINI>
                  pattern: (pat.Words words:[{<FINI>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.VSub_DollarName '$TEST_select'>
                  pattern: (pat.Words words:[{($ Id.VSub_DollarName TEST_select)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {($ Id.VSub_DollarName ITEM)}
                                      right: {($ Id.VSub_DollarName FLUSHED)}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [2553 2566]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'FLUSHED='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'FLUSHED='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLUSHED='> name:FLUSHED)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName ITEM)}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DParen
                                  left: <Id.Op_DLeftParen _>
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_LBracket
                                      left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                      right: ($ Id.Lit_ArithVarLike COND)
                                    )
                                  right: <Id.Op_DRightParen _>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [2580 2593]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike COUNT)
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DParen
                                  left: <Id.Op_DLeftParen _>
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_LessEqual
                                      left: {($ Id.VSub_DollarName ITEM)}
                                      right: {($ Id.VSub_DollarName LASTITEM)}
                                    )
                                  right: <Id.Op_DRightParen _>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'LABEL='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'LABEL='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LABEL='> name:LABEL)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName TEST) <Id.Lit_Pound '#'> 
                                      ($ Id.VSub_DollarName COUNT)
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2610 2624]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'LASTITEM='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'LASTITEM='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LASTITEM='> name:LASTITEM)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName ITEM)}
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'LABEL='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'LABEL='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LABEL='> name:LABEL)
                              op: assign_op.Equal
                              rhs: 
                                {($ Id.VSub_DollarName TEST) <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName ITEM)
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TEST_file='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TEST_file='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_file='> name:TEST_file)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <exec>
                      more_env: []
                      words: [{<exec>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName INPUT)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName OUTPUT) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName i) <' '>) 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_f
                                                      child: {($ Id.VSub_DollarName i) <.sav>}
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <cp>
                                              more_env: []
                                              words: [
                                                {<cp>}
                                                {($ Id.VSub_DollarName i) <.sav>}
                                                {($ Id.VSub_DollarName i)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'COMPARE='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'COMPARE='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'COMPARE='>
                                                      name: COMPARE
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName COMPARE) <' '> 
                                                        ($ Id.VSub_DollarName i)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [2690 2702]
                                        )
                                        (IfArm
                                          keyword: <Id.KW_Elif elif>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_f
                                                      child: {($ Id.VSub_DollarName i)}
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <cp>
                                              more_env: []
                                              words: [
                                                {<cp>}
                                                {($ Id.VSub_DollarName i)}
                                                {($ Id.VSub_DollarName i) <.sav>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'COMPARE='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'COMPARE='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'COMPARE='>
                                                      name: COMPARE
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName COMPARE) <' '> 
                                                        ($ Id.VSub_DollarName i)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [2720 2731]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName OUTPUT)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName COMPARE) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName i) <' '>) 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'COMPARE='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'COMPARE='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'COMPARE='>
                                              name: COMPARE
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName COMPARE) <' '> 
                                                ($ Id.VSub_DollarName i)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName INIT)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$i'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName i)} {($ Id.VSub_DollarName TEST)} {<INIT>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobNEqual
                                          left: {($ Id.VSub_DollarName JOBPID)}
                                          right: {<0>}
                                        )
                                      right: 
                                        (bool_expr.LogicalOr
                                          left: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBPID)})
                                          right: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName JOBSTATUS)}
                                            )
                                        )
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.LogicalNot
                                              child: 
                                                (bool_expr.WordTest
                                                  w: {($ Id.VSub_DollarName TEST_quiet)}
                                                )
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <print>
                                      more_env: []
                                      words: [{<print>} {<-nu2>} {(DQ ($ Id.VSub_DollarName LABEL))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [2867 2878]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <RESULTS>
                              more_env: []
                              words: [{<RESULTS>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [2840 2865]
                        )
                        (IfArm
                          keyword: <Id.KW_Elif elif>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName BODY)})
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'SHOW='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'SHOW='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHOW='> name:SHOW)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName NOTE)}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.LogicalNot
                                              child: 
                                                (bool_expr.WordTest
                                                  w: {($ Id.VSub_DollarName TEST_quiet)}
                                                )
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <print>
                                      more_env: []
                                      words: [
                                        {<print>}
                                        {<-r>}
                                        {<-u2>}
                                        {(DQ <'\t'> ($ Id.VSub_DollarName SHOW))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [2910 2921]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName BODY)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$i'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName i)}
                                        {($ Id.VSub_DollarName TEST)}
                                        {<BODY>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [2895 2904]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'SHOW='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'SHOW='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHOW='> name:SHOW)
                              op: assign_op.Equal
                              rhs: (rhs_word__Empty)
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name TYPE>
                                                var_name: TYPE
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: ($ Id.Lit_ArithVarLike INPUT)
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          right: {<PIPE>}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.If
                                  if_kw: <Id.KW_If if>
                                  arms: [
                                    (IfArm
                                      keyword: <Id.KW_If if>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.DBracket
                                              left: <Id.KW_DLeftBracket '[['>
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: 
                                                    {
                                                      (BracedVarSub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name TYPE>
                                                        var_name: TYPE
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: ($ Id.Lit_ArithVarLike OUTPUT)
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                  right: {<PIPE>}
                                                )
                                              right: <Id.Lit_DRightBracket ']]'>
                                              redirects: []
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.If
                                          if_kw: <Id.KW_If if>
                                          arms: [
                                            (IfArm
                                              keyword: <Id.KW_If if>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.DBracket
                                                      left: <Id.KW_DLeftBracket '[['>
                                                      expr: 
                                                        (bool_expr.LogicalNot
                                                          child: 
                                                            (bool_expr.WordTest
                                                              w: {($ Id.VSub_DollarName TEST_quiet)}
                                                            )
                                                        )
                                                      right: <Id.Lit_DRightBracket ']]'>
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.Simple
                                                  blame_tok: <print>
                                                  more_env: []
                                                  words: [
                                                    {<print>}
                                                    {<-nu2>}
                                                    {(DQ ($ Id.VSub_DollarName LABEL))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              spids: [3004 3015]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                        (command.Pipeline
                                          children: [
                                            (command.Simple
                                              blame_tok: <cat>
                                              more_env: []
                                              words: [{<cat>}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {($ Id.VSub_DollarName TWD) <'/INPUT'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <COMMAND>
                                              more_env: []
                                              words: [
                                                {<COMMAND>}
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name ARGS>
                                                      var_name: ARGS
                                                      bracket_op: 
                                                        (bracket_op.WholeArray
                                                          op_id: Id.Lit_At
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <cat>
                                              more_env: []
                                              words: [{<cat>}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName TWD) <'/OUTPUT'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                        )
                                        (command.Simple
                                          blame_tok: <RESULTS>
                                          more_env: []
                                          words: [{<RESULTS>} {(SQ <'pipe input'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      spids: [2984 3002]
                                    )
                                  ]
                                  else_kw: <Id.KW_Else else>
                                  else_action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.LogicalNot
                                                      child: 
                                                        (bool_expr.WordTest
                                                          w: {($ Id.VSub_DollarName TEST_quiet)}
                                                        )
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <print>
                                              more_env: []
                                              words: [
                                                {<print>}
                                                {<-nu2>}
                                                {(DQ ($ Id.VSub_DollarName LABEL))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [3066 3077]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <cat>
                                          more_env: []
                                          words: [{<cat>}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName TWD) <'/INPUT'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <COMMAND>
                                          more_env: []
                                          words: [
                                            {<COMMAND>}
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name ARGS>
                                                  var_name: ARGS
                                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName TWD) <'/OUTPUT'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _>]
                                    )
                                    (command.Simple
                                      blame_tok: <RESULTS>
                                      more_env: []
                                      words: [{<RESULTS>} {(SQ <'pipe io'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              spids: [2964 2982]
                            )
                            (IfArm
                              keyword: <Id.KW_Elif elif>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name TYPE>
                                                var_name: TYPE
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: ($ Id.Lit_ArithVarLike OUTPUT)
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          right: {<PIPE>}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.If
                                  if_kw: <Id.KW_If if>
                                  arms: [
                                    (IfArm
                                      keyword: <Id.KW_If if>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.DBracket
                                              left: <Id.KW_DLeftBracket '[['>
                                              expr: 
                                                (bool_expr.LogicalNot
                                                  child: 
                                                    (bool_expr.WordTest
                                                      w: {($ Id.VSub_DollarName TEST_quiet)}
                                                    )
                                                )
                                              right: <Id.Lit_DRightBracket ']]'>
                                              redirects: []
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Simple
                                          blame_tok: <print>
                                          more_env: []
                                          words: [{<print>} {<-nu2>} {(DQ ($ Id.VSub_DollarName LABEL))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      spids: [3145 3156]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                                (command.Pipeline
                                  children: [
                                    (command.Simple
                                      blame_tok: <COMMAND>
                                      more_env: []
                                      words: [
                                        {<COMMAND>}
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name ARGS>
                                              var_name: ARGS
                                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                              right: <Id.Right_DollarBrace '}'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Less '<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: {($ Id.VSub_DollarName TWD) <'/INPUT'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <cat>
                                      more_env: []
                                      words: [{<cat>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName TWD) <'/OUTPUT'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_Pipe _>]
                                )
                                (command.Simple
                                  blame_tok: <RESULTS>
                                  more_env: []
                                  words: [{<RESULTS>} {(SQ <'pipe output'>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [3125 3143]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName TEST_regular)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.LogicalNot
                                                      child: 
                                                        (bool_expr.WordTest
                                                          w: {($ Id.VSub_DollarName TEST_quiet)}
                                                        )
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <print>
                                              more_env: []
                                              words: [
                                                {<print>}
                                                {<-nu2>}
                                                {(DQ ($ Id.VSub_DollarName LABEL))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [3214 3225]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobDEqual
                                                      left: 
                                                        {
                                                          (BracedVarSub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name TYPE>
                                                            var_name: TYPE
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: ($ Id.Lit_ArithVarLike INPUT)
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        }
                                                      right: {<FIFO>}
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <COMMAND>
                                              more_env: []
                                              words: [
                                                {<COMMAND>}
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name ARGS>
                                                      var_name: ARGS
                                                      bracket_op: 
                                                        (bracket_op.WholeArray
                                                          op_id: Id.Lit_At
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName TWD) <'/OUTPUT'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [3239 3257]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <COMMAND>
                                          more_env: []
                                          words: [
                                            {<COMMAND>}
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name ARGS>
                                                  var_name: ARGS
                                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName TWD) <'/INPUT'>}
                                            )
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName TWD) <'/OUTPUT'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <RESULTS>
                                      more_env: []
                                      words: [{<RESULTS>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [3203 3212]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName TEST_pipe_input)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.LogicalNot
                                                      child: 
                                                        (bool_expr.WordTest
                                                          w: {($ Id.VSub_DollarName TEST_quiet)}
                                                        )
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <print>
                                              more_env: []
                                              words: [
                                                {<print>}
                                                {<-nu2>}
                                                {(DQ ($ Id.VSub_DollarName LABEL))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [3317 3328]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Pipeline
                                      children: [
                                        (command.Subshell
                                          left: <Id.Op_LParen _>
                                          child: 
                                            (command.CommandList
                                              children: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <trap>
                                                      more_env: []
                                                      words: [{<trap>} {(SQ )} {<PIPE>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <cat>
                                                      more_env: []
                                                      words: [{<cat>}]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: {($ Id.VSub_DollarName TWD) <'/INPUT'>}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_Great '2>'>
                                                          loc: (redir_loc.Fd fd:2)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Exit exit>
                                                  arg_word: {<0>}
                                                )
                                              ]
                                            )
                                          right: <Id.Right_Subshell _>
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <COMMAND>
                                          more_env: []
                                          words: [
                                            {<COMMAND>}
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name ARGS>
                                                  var_name: ARGS
                                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName TWD) <'/OUTPUT'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'STATUS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'STATUS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'STATUS='>
                                              name: STATUS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <RESULTS>
                                      more_env: []
                                      words: [{<RESULTS>} {(SQ <'pipe input'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [3306 3315]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName TEST_pipe_output)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.LogicalNot
                                                      child: 
                                                        (bool_expr.WordTest
                                                          w: {($ Id.VSub_DollarName TEST_quiet)}
                                                        )
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <print>
                                              more_env: []
                                              words: [
                                                {<print>}
                                                {<-nu2>}
                                                {(DQ ($ Id.VSub_DollarName LABEL))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [3409 3420]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <COMMAND>
                                          more_env: []
                                          words: [
                                            {<COMMAND>}
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name ARGS>
                                                  var_name: ARGS
                                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName TWD) <'/INPUT'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <cat>
                                          more_env: []
                                          words: [{<cat>}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName TWD) <'/OUTPUT'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'STATUS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'STATUS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'STATUS='>
                                              name: STATUS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <RESULTS>
                                      more_env: []
                                      words: [{<RESULTS>} {(SQ <'pipe output'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [3398 3407]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName TEST_pipe_io)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.LogicalNot
                                                      child: 
                                                        (bool_expr.WordTest
                                                          w: {($ Id.VSub_DollarName TEST_quiet)}
                                                        )
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <print>
                                              more_env: []
                                              words: [
                                                {<print>}
                                                {<-nu2>}
                                                {(DQ ($ Id.VSub_DollarName LABEL))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [3483 3494]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Pipeline
                                      children: [
                                        (command.Subshell
                                          left: <Id.Op_LParen _>
                                          child: 
                                            (command.CommandList
                                              children: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <trap>
                                                      more_env: []
                                                      words: [{<trap>} {(SQ )} {<PIPE>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <cat>
                                                      more_env: []
                                                      words: [{<cat>}]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: {($ Id.VSub_DollarName TWD) <'/INPUT'>}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_Great '2>'>
                                                          loc: (redir_loc.Fd fd:2)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Exit exit>
                                                  arg_word: {<0>}
                                                )
                                              ]
                                            )
                                          right: <Id.Right_Subshell _>
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <COMMAND>
                                          more_env: []
                                          words: [
                                            {<COMMAND>}
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name ARGS>
                                                  var_name: ARGS
                                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <cat>
                                          more_env: []
                                          words: [{<cat>}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName TWD) <'/OUTPUT'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'STATUS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'STATUS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'STATUS='>
                                              name: STATUS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <RESULTS>
                                      more_env: []
                                      words: [{<RESULTS>} {(SQ <'pipe io'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [3472 3481]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [{<set>} {<-->} {($ Id.VSub_DollarName COPY)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'COPY='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'COPY='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COPY='> name:COPY)
                              op: assign_op.Equal
                              rhs: {(DQ )}
                            )
                          ]
                          redirects: []
                        )
                        (command.WhileUntil
                          keyword: <Id.KW_While while>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <Id.Lit_Colon ':'>
                                  more_env: []
                                  words: [{<Id.Lit_Colon ':'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          body: 
                            (command.DoGroup
                              left: <Id.KW_Do do>
                              children: [
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <0>
                                      pattern: (pat.Words words:[{<0>} {<1>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Break break>
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <cp>
                                          more_env: []
                                          words: [{<cp>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>} {<2>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.KW_Done done>
                            )
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [{<set>} {<-->} {($ Id.VSub_DollarName MOVE)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'MOVE='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'MOVE='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MOVE='> name:MOVE)
                              op: assign_op.Equal
                              rhs: {(DQ )}
                            )
                          ]
                          redirects: []
                        )
                        (command.WhileUntil
                          keyword: <Id.KW_While while>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DParen
                                  left: <Id.Op_DLeftParen _>
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: {($ Id.VSub_Pound '#')}
                                      right: {<Id.Lit_Digits 1>}
                                    )
                                  right: <Id.Op_DRightParen _>
                                  redirects: []
                                )
                              ]
                            )
                          body: 
                            (command.DoGroup
                              left: <Id.KW_Do do>
                              children: [
                                (command.Simple
                                  blame_tok: <mv>
                                  more_env: []
                                  words: [{<mv>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>} {<2>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.KW_Done done>
                            )
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName DONE)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$i'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName i)}
                                {($ Id.VSub_DollarName TEST)}
                                {<DONE>}
                                {($ Id.VSub_DollarName STATUS)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMPARE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMPARE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPARE='> name:COMPARE)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'r='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'r='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName COMMAND_ORIG)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMMAND='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMMAND='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMAND='> name:COMMAND)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName COMMAND_ORIG)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMMAND_ORIG='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMMAND_ORIG='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'COMMAND_ORIG='>
                              name: COMMAND_ORIG
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ARGS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ARGS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS='> name:ARGS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (ShArrayLiteral
                                left: <Id.Op_LParen _>
                                words: [
                                  {
                                    (BracedVarSub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name ARGS_ORIG>
                                      var_name: ARGS_ORIG
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  }
                                ]
                                right: <Id.Right_ShArrayLiteral _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3714 3723]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName r)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <DO>
      name: DO
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName GROUP)}
                      right: {($ Id.VSub_DollarName TEST_select)}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.ControlFlow
                  keyword: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: 
                    (arith_expr.Binary
                      op_id: Id.Arith_LBracket
                      left: ($ Id.Lit_ArithVarLike COND_SKIP)
                      right: ($ Id.Lit_ArithVarLike COND)
                    )
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
                (command.ControlFlow
                  keyword: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobNEqual
                      left: {($ Id.VSub_DollarName UMASK)}
                      right: {($ Id.VSub_DollarName UMASK_ORIG)}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <umask>
                  more_env: []
                  words: [{<umask>} {($ Id.VSub_DollarName UMASK)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <UNIT>
      name: UNIT
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<Id.Lit_VarLike 'cmd='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cmd)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_LBracket '['>
                  pattern: 
                    (pat.Words
                      words: [{<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DParen
                                  left: <Id.Op_DLeftParen _>
                                  child: ($ Id.Lit_ArithVarLike UNIT_READONLY)
                                  right: <Id.Op_DRightParen _>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'COMMAND='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'COMMAND='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'COMMAND='>
                                      name: COMMAND
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName COMMAND) <' '> ($ Id.VSub_Star '*'))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [3853 3863]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {<-->}
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name ARGV>
                                  var_name: ARGV
                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                            {(DQ ($ Id.VSub_At '@'))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'ARGV='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'ARGV='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGV='> name:ARGV)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (ShArrayLiteral
                                    left: <Id.Op_LParen _>
                                    words: [{(DQ ($ Id.VSub_At '@'))}]
                                    right: <Id.Right_ShArrayLiteral _>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: ($ Id.Lit_ArithVarLike UNIT_READONLY)
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName UNIT)})
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LessEqual
                                  left: {($ Id.VSub_Pound '#')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [
                        {<set>}
                        {<-->}
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name ARGV>
                              var_name: ARGV
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {<-->} {(DQ ($ Id.VSub_DollarName cmd))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_LBracket '['>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {<-->}
                                {(DQ ($ Id.VSub_DollarName cmd))}
                                {
                                  (DQ 
                                    (BracedVarSub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name ARGV>
                                      var_name: ARGV
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cmd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cmd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [3929 3951]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'UNIT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'UNIT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UNIT='> name:UNIT)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COMMAND='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COMMAND='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMAND='> name:COMMAND)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName cmd)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [
                {<typeset>}
                {<Id.Lit_VarLike 'cmd='> 
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <whence>
                        more_env: []
                        words: [{<whence>} {($ Id.VSub_DollarName COMMAND)}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalNot
                              child: (bool_expr.WordTest w:{($ Id.VSub_DollarName cmd)})
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <FATAL>
                      more_env: []
                      words: [
                        {<FATAL>}
                        {($ Id.VSub_DollarName COMMAND) <Id.Lit_Colon ':'>}
                        {<not>}
                        {<found>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [4051 4062]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalNot
                              child: (bool_expr.WordTest w:{($ Id.VSub_DollarName cmd)})
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <FATAL>
                      more_env: []
                      words: [{<FATAL>} {($ Id.VSub_DollarName cmd) <Id.Lit_Colon ':'>} {<not>} {<found>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [4074 4085]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMMAND='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMMAND='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMAND='> name:COMMAND)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName COMMAND) <' '> ($ Id.VSub_Star '*'))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <TWD>
      name: TWD
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'TWD='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'TWD='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TWD='> name:TWD)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name TWD>
                                    var_name: TWD
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_DPound '##'>
                                        arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TWD='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TWD='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TWD='> name:TWD)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name TMPDIR>
                                var_name: TMPDIR
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_ColonHyphen _>
                                    arg_word: {<Id.Lit_Slash '/'> <tmp>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              ) <'/tst-'> 
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name TWD>
                                var_name: TWD
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Percent '%'>
                                    arg_word: {<.> <Id.Lit_Other '*'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              ) <-> ($ Id.VSub_Dollar '$') <-> ($ Id.VSub_DollarName RANDOM)
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <'/'>
                  pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TWD='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TWD='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TWD='> name:TWD)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TWD='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TWD='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TWD='> name:TWD)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name TMPDIR>
                                var_name: TMPDIR
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_ColonHyphen _>
                                    arg_word: {<Id.Lit_Slash '/'> <tmp>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              ) <'/'> ($ Id.VSub_Number 1)
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <TEST>
      name: TEST
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <RUN>
              more_env: []
              words: [{<RUN>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LINE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LINE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LINE='> name:LINE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName TESTLINE)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <UNWIND>
              more_env: []
              words: [{<UNWIND>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COUNT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COUNT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COUNT='> name:COUNT)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LASTITEM='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LASTITEM='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LASTITEM='> name:LASTITEM)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: ($ Id.Lit_ArithVarLike LAST)
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TEST='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TEST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST='> name:TEST)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName LAST)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.ExtGlob_Plus '+('>
                  pattern: 
                    (pat.Words
                      words: [
                        {
                          (word_part.ExtGlob
                            op: <Id.ExtGlob_Plus '+('>
                            arms: [{<'[0123456789]'>}]
                            right: <Id.Right_ExtGlob _>
                          )
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'LAST='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'LAST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LAST='> name:LAST)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'TEST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST='> name:TEST)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'LAST='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'LAST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LAST='> name:LAST)
                          op: assign_op.Equal
                          rhs: 
                            {<0> 
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.PatSub
                                    pat: {<'['> <Id.Lit_Other '!'> <'0123456789]'>}
                                    replace: {}
                                    replace_mode: Id.Undefined_Tok
                                    slash_tok: <Id.VOp2_Slash _>
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'TEST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST='> name:TEST)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NOTE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NOTE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOTE='> name:NOTE)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.LogicalNot
                                      child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_quiet)})
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {($ Id.VSub_DollarName TEST)}
                                      right: {($ Id.VSub_DollarName TEST_select)}
                                    )
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_LBracket
                                      left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                      right: ($ Id.Lit_ArithVarLike COND)
                                    )
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [
                        {<print>}
                        {<-r>}
                        {<-u2>}
                        {(DQ ($ Id.VSub_DollarName TEST) <'\t'> ($ Id.VSub_Number 2))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [4305 4338]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <unset>
              more_env: []
              words: [{<unset>} {<ARGS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <unset>
              more_env: []
              words: [{<unset>} {<EXPORT>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'EXPORTS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'EXPORTS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXPORTS='> name:EXPORTS)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TEST_file='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TEST_file='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_file='> name:TEST_file)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobNEqual
                              left: {($ Id.VSub_DollarName TEST)}
                              right: {(${ Id.VSub_Name GROUP) <Id.Lit_Other '*'>}
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'GROUP='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'GROUP='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GROUP='> name:GROUP)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name TEST>
                                var_name: TEST
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_DPercent '%%'>
                                    arg_word: 
                                      {
                                        (word_part.ExtGlob
                                          op: <Id.ExtGlob_Plus '+('>
                                          arms: [
                                            {
                                              <
'[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]'
                                              >
                                            }
                                          ]
                                          right: <Id.Right_ExtGlob _>
                                        )
                                      }
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.AndOr
                                  children: [
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName GROUP)}
                                          right: {($ Id.VSub_DollarName TEST_select)}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                    (command.DParen
                                      left: <Id.Op_DLeftParen _>
                                      child: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_LBracket
                                              left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                              right: ($ Id.Lit_ArithVarLike COND)
                                            )
                                        )
                                      right: <Id.Op_DRightParen _>
                                      redirects: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <INITIALIZE>
                              more_env: []
                              words: [{<INITIALIZE>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [4403 4430]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [4375 4391]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.DParen
              left: <Id.Op_DLeftParen _>
              child: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: ($ Id.Lit_ArithVarLike SUBTESTS)
                  right: {<Id.Lit_Digits 0>}
                )
              right: <Id.Op_DRightParen _>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName TEST)}
                      right: {($ Id.VSub_DollarName TEST_select)}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: 
                    (arith_expr.Unary
                      op_id: Id.Arith_Bang
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LBracket
                          left: ($ Id.Lit_ArithVarLike COND_SKIP)
                          right: ($ Id.Lit_ArithVarLike COND)
                        )
                    )
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <EXEC>
      name: EXEC
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {($ Id.VSub_DollarName GROUP)}
                                  right: {($ Id.VSub_DollarName TEST_select)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LBracket
                                  left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                  right: ($ Id.Lit_ArithVarLike COND)
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                  spids: [4486 4511]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: ($ Id.Lit_ArithVarLike SUBTESTS)
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <RUN>
                      more_env: []
                      words: [{<RUN>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [4519 4528]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [
                        {<set>}
                        {<-->}
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name ARGS>
                              var_name: ARGS
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ITEM='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ITEM='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ITEM='> name:ITEM)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName LINE)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NOTE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NOTE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOTE='> name:NOTE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <print>
                              more_env: []
                              words: [
                                {<print>}
                                {<-r>}
                                {<-f>}
                                {(SQ <'%q '>)}
                                {<-->}
                                {($ Id.VSub_DollarName COMMAND_ORIG)}
                                {(DQ ($ Id.VSub_At '@'))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name JOBPID>
                          var_name: JOBPID
                          suffix_op: (suffix_op.Unary op:<Id.VTest_ColonPlus _> arg_word:{<'&'>})
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS='> name:ARGS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [{(DQ ($ Id.VSub_At '@'))}]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <JOB>
      name: JOB
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'JOBPID='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'JOBPID='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBPID='> name:JOBPID)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <EXEC>
              more_env: []
              words: [{<EXEC>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <CONTINUE>
      name: CONTINUE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <RUN>
                  more_env: []
                  words: [{<RUN>}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'JOBOP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'JOBOP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBOP='> name:JOBOP)
                  op: assign_op.Equal
                  rhs: {<CONTINUE>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ITEM='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ITEM='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ITEM='> name:ITEM)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName LINE)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NOTE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NOTE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOTE='> name:NOTE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <print>
                              more_env: []
                              words: [
                                {<print>}
                                {<-r>}
                                {<-f>}
                                {(SQ <'%q '>)}
                                {<-->}
                                {($ Id.VSub_DollarName JOBOP)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <EXITED>
      name: EXITED
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <RUN>
                  more_env: []
                  words: [{<RUN>}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'JOBOP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'JOBOP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBOP='> name:JOBOP)
                  op: assign_op.Equal
                  rhs: {<EXITED>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ITEM='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ITEM='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ITEM='> name:ITEM)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName LINE)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NOTE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NOTE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOTE='> name:NOTE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <print>
                              more_env: []
                              words: [
                                {<print>}
                                {<-r>}
                                {<-f>}
                                {(SQ <'%q '>)}
                                {<-->}
                                {($ Id.VSub_DollarName JOBOP)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <KILL>
      name: KILL
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <RUN>
                  more_env: []
                  words: [{<RUN>}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'JOBOP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'JOBOP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBOP='> name:JOBOP)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBOP)})
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'JOBOP='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'JOBOP='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBOP='> name:JOBOP)
                      op: assign_op.Equal
                      rhs: {<KILL>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ITEM='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ITEM='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ITEM='> name:ITEM)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName LINE)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NOTE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NOTE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOTE='> name:NOTE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <print>
                              more_env: []
                              words: [
                                {<print>}
                                {<-r>}
                                {<-f>}
                                {(SQ <'%q '>)}
                                {<-->}
                                {($ Id.VSub_DollarName JOBOP)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <CD>
      name: CD
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <RUN>
              more_env: []
              words: [{<RUN>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName GROUP)}
                                  right: {($ Id.VSub_DollarName TEST_select)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_LBracket
                                      left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                      right: ($ Id.Lit_ArithVarLike COND)
                                    )
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <mkdir>
                          more_env: []
                          words: [{<mkdir>} {<-p>} {(DQ ($ Id.VSub_At '@'))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cd>
                          more_env: []
                          words: [{<cd>} {(DQ ($ Id.VSub_At '@'))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <FATAL>
                          more_env: []
                          words: [
                            {<FATAL>}
                            {<cannot>}
                            {<initialize>}
                            {<working>}
                            {<directory>}
                            {(DQ ($ Id.VSub_At '@'))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
                    )
                  ]
                  spids: [4794 4821]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <EXPORT>
      name: EXPORT
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<x>} {<n>} {<v>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {($ Id.VSub_DollarName GROUP)}
                              right: {<INIT>}
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [x]
                      iterable: (for_iter__Args)
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'n='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'n='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name x>
                                        var_name: x
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_DPercent '%%'>
                                            arg_word: {<'='> <Id.Lit_Other '*'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'v='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'v='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name x>
                                        var_name: x
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Pound '#'>
                                            arg_word: {<Id.Lit_Other '*'> <'='>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_ArrayLhsOpen 'ENVIRON['>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_ArrayLhsOpen 'ENVIRON['>
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'ENVIRON['>
                                      name: ENVIRON
                                      index: 
                                        (arith_expr.UnaryAssign
                                          op_id: Id.Node_PostDPlus
                                          child: ($ Id.Lit_ArithVarLike ENVIRONS)
                                        )
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> 
                                      (DQ <'\''> ($ Id.VSub_DollarName v) <'\''>)
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [4877 4890]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <RUN>
                  more_env: []
                  words: [{<RUN>}]
                  redirects: []
                  do_fork: T
                )
                (command.If
                  if_kw: <Id.KW_If if>
                  arms: [
                    (IfArm
                      keyword: <Id.KW_If if>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.AndOr
                              children: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {($ Id.VSub_DollarName GROUP)}
                                      right: {($ Id.VSub_DollarName TEST_select)}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                                (command.DParen
                                  left: <Id.Op_DLeftParen _>
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_LBracket
                                      left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                      right: ($ Id.Lit_ArithVarLike COND)
                                    )
                                  right: <Id.Op_DRightParen _>
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                      spids: [4942 4967]
                    )
                  ]
                  else_action: []
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
                (command.ForEach
                  keyword: <Id.KW_For for>
                  iter_names: [x]
                  iterable: (for_iter__Args)
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'n='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'n='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name x>
                                    var_name: x
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_DPercent '%%'>
                                        arg_word: {<'='> <Id.Lit_Other '*'>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'v='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'v='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name x>
                                    var_name: x
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_Pound '#'>
                                        arg_word: {<Id.Lit_Other '*'> <'='>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_ArrayLhsOpen 'EXPORT['>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_ArrayLhsOpen 'EXPORT['>
                              lhs: 
                                (sh_lhs_expr.IndexedName
                                  left: <Id.Lit_ArrayLhsOpen 'EXPORT['>
                                  name: EXPORT
                                  index: 
                                    (arith_expr.UnaryAssign
                                      op_id: Id.Node_PostDPlus
                                      child: ($ Id.Lit_ArithVarLike EXPORTS)
                                    )
                                )
                              op: assign_op.Equal
                              rhs: 
                                {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> 
                                  (DQ <'\''> ($ Id.VSub_DollarName v) <'\''>)
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <FLUSH>
      name: FLUSH
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {($ Id.VSub_DollarName GROUP)}
                                  right: {($ Id.VSub_DollarName TEST_select)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LBracket
                                  left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                  right: ($ Id.Lit_ArithVarLike COND)
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                  spids: [5032 5057]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: ($ Id.Lit_ArithVarLike SUBTESTS)
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <RUN>
                      more_env: []
                      words: [{<RUN>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [5065 5074]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <PROG>
      name: PROG
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<command>} {<args>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {($ Id.VSub_DollarName GROUP)}
                                  right: {($ Id.VSub_DollarName TEST_select)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LBracket
                                  left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                  right: ($ Id.Lit_ArithVarLike COND)
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                  spids: [5101 5126]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ITEM='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ITEM='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ITEM='> name:ITEM)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName LINE)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NOTE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NOTE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOTE='> name:NOTE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <print>
                              more_env: []
                              words: [
                                {<print>}
                                {<-r>}
                                {<-f>}
                                {(SQ <'%q '>)}
                                {<-->}
                                {(DQ ($ Id.VSub_At '@'))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COMMAND_ORIG='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COMMAND_ORIG='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMAND_ORIG='> name:COMMAND_ORIG)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName COMMAND)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COMMAND='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COMMAND='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMAND='> name:COMMAND)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGS_ORIG='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGS_ORIG='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS_ORIG='> name:ARGS_ORIG)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [
                          {
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name ARGS>
                              var_name: ARGS
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              right: <Id.Right_DollarBrace '}'>
                            )
                          }
                        ]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS='> name:ARGS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [{(DQ ($ Id.VSub_At '@'))}]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <NOTE>
      name: NOTE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NOTE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NOTE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOTE='> name:NOTE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '*')}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <IO>
      name: IO
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<op>} {<i>} {<v>} {<f>} {<file>} {<type>} {<x>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {($ Id.VSub_DollarName GROUP)}
                                  right: {($ Id.VSub_DollarName TEST_select)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LBracket
                                  left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                  right: ($ Id.Lit_ArithVarLike COND)
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                  spids: [5235 5260]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobNEqual
                      left: {($ Id.VSub_DollarName UMASK)}
                      right: {($ Id.VSub_DollarName UMASK_ORIG)}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <umask>
                  more_env: []
                  words: [{<umask>} {($ Id.VSub_DollarName UMASK_ORIG)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <FIFO>
                          pattern: (pat.Words words:[{<FIFO>} {<PIPE>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'type='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'type='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'type='> name:type)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number 1)}
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'op='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'op='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName type)})
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_ArrayLhsOpen 'TYPE['>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_ArrayLhsOpen 'TYPE['>
                      lhs: 
                        (sh_lhs_expr.IndexedName
                          left: <Id.Lit_ArrayLhsOpen 'TYPE['>
                          name: TYPE
                          index: {($ Id.VSub_DollarName op)}
                        )
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName type)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_ArrayLhsOpen 'FILTER['>
              pairs: [
                (AssignPair
                  left: <Id.Lit_ArrayLhsOpen 'FILTER['>
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      left: <Id.Lit_ArrayLhsOpen 'FILTER['>
                      name: FILTER
                      index: {($ Id.VSub_DollarName op)}
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'file='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'file='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName TWD) <'/'> ($ Id.VSub_DollarName op)}
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-x>
                          pattern: (pat.Words words:[{<-x>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'x='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'x='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-e>
                          pattern: (pat.Words words:[{<-e>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.DParen
                                  left: <Id.Op_DLeftParen _>
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: {($ Id.VSub_Pound '#')}
                                      right: {<Id.Lit_Digits 1>}
                                    )
                                  right: <Id.Op_DRightParen _>
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_ArrayLhsOpen 'FILTER['>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_ArrayLhsOpen 'FILTER['>
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'FILTER['>
                                      name: FILTER
                                      index: {($ Id.VSub_DollarName op)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-e>
                          pattern: (pat.Words words:[{<-e> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_ArrayLhsOpen 'FILTER['>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_ArrayLhsOpen 'FILTER['>
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'FILTER['>
                                      name: FILTER
                                      index: {($ Id.VSub_DollarName op)}
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Number 1>
                                        var_name: 1
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Pound '#'>
                                            arg_word: {<-e>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-f>
                          pattern: (pat.Words words:[{<-f> <Id.Lit_Star '*'>} {<-n>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'f='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'f='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<->}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'file='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'file='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'i='> (SQ <'$'>) ($ Id.VSub_DollarName op)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName i) <' '>)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName file) <' '>) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {($ Id.VSub_DollarName op) <Id.Lit_Equals '='> (SQ <'"$'>) 
                                          ($ Id.VSub_DollarName op) (SQ <' $file"'>)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName IGNORE) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName file) <' '>) 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName IGNORE)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.VSub_DollarName '$file'>
                                  pattern: (pat.Words words:[{($ Id.VSub_DollarName file)}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'v='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'v='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName v) <' '> 
                                                ($ Id.VSub_DollarName i)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IGNORE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IGNORE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IGNORE='> name:IGNORE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName v)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_ArrayLhsOpen 'FILE['>
              pairs: [
                (AssignPair
                  left: <Id.Lit_ArrayLhsOpen 'FILE['>
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      left: <Id.Lit_ArrayLhsOpen 'FILE['>
                      name: FILE
                      index: {($ Id.VSub_DollarName op)}
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName file)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <OUTPUT>
                  pattern: (pat.Words words:[{<OUTPUT>} {<ERROR>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'file='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'file='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName file) <.ex>}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {($ Id.VSub_DollarName file)}
                                      right: {<'/'> <Id.Lit_Other '*'>}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'file='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'file='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName TWD) <'/'> ($ Id.VSub_DollarName file)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [5682 5696]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_ArrayLhsOpen 'SAME['>
              pairs: [
                (AssignPair
                  left: <Id.Lit_ArrayLhsOpen 'SAME['>
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      left: <Id.Lit_ArrayLhsOpen 'SAME['>
                      name: SAME
                      index: {($ Id.VSub_DollarName op)}
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {($ Id.VSub_DollarName file)}
                              right: {<'/'> <Id.Lit_Other '*'>}
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <RM>
                      more_env: []
                      words: [{<RM>} {($ Id.VSub_DollarName file) <.sav>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [5724 5738]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <RM>
                  more_env: []
                  words: [{<RM>} {($ Id.VSub_DollarName TWD) <'/'> ($ Id.VSub_DollarName file) <.sav>}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {($ Id.VSub_DollarName file)}
                              right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>}
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <mkdir>
                      more_env: []
                      words: [
                        {<mkdir>}
                        {<-p>}
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name file>
                            var_name: file
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VOp1_Percent '%'>
                                arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [5759 5774]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobNEqual
                              left: {($ Id.VSub_DollarName file)}
                              right: {<Id.Lit_Other '*'> <'/'>}
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {($ Id.VSub_DollarName type)}
                                      right: {<FIFO>}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <rm>
                              more_env: []
                              words: [{<rm>} {<-f>} {($ Id.VSub_DollarName file)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <mkfifo>
                              more_env: []
                              words: [{<mkfifo>} {($ Id.VSub_DollarName file)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [5807 5820]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: 
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name TYPE>
                                            var_name: TYPE
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName op)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                      right: {<FIFO>}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBOP)})
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_Pound '#') <Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName f)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <0>
                                          pattern: (pat.Words words:[{<0> <Id.Lit_Colon ':'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <-f>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <printf>
                                              more_env: []
                                              words: [{<printf>} {<-->} {(DQ ($ Id.VSub_At '@'))}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <-f> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <printf>
                                              more_env: []
                                              words: [
                                                {<printf>}
                                                {<-->}
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name f>
                                                      var_name: f
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op: <Id.VOp1_Pound '#'>
                                                          arg_word: {<-f>}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    )
                                                  ) (DQ ($ Id.VSub_At '@'))
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <print>
                                              more_env: []
                                              words: [
                                                {<print>}
                                                {($ Id.VSub_DollarName f)}
                                                {<-r>}
                                                {<-->}
                                                {(DQ ($ Id.VSub_At '@'))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName file)}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [5857 5866]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: 
                                    (case_arg.Word
                                      w: 
                                        {($ Id.VSub_Pound '#') <Id.Lit_Colon ':'> 
                                          ($ Id.VSub_DollarName f)
                                        }
                                    )
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <0>
                                      pattern: (pat.Words words:[{<0> <Id.Lit_Colon ':'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: []
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: 
                                        (pat.Words
                                          words: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <-f>}]
                                        )
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <printf>
                                          more_env: []
                                          words: [{<printf>} {<-->} {(DQ ($ Id.VSub_At '@'))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: 
                                        (pat.Words
                                          words: [
                                            {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <-f> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                        )
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <printf>
                                          more_env: []
                                          words: [
                                            {<printf>}
                                            {<-->}
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name f>
                                                  var_name: f
                                                  suffix_op: 
                                                    (suffix_op.Unary
                                                      op: <Id.VOp1_Pound '#'>
                                                      arg_word: {<-f>}
                                                    )
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              ) (DQ ($ Id.VSub_At '@'))
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <print>
                                          more_env: []
                                          words: [
                                            {<print>}
                                            {($ Id.VSub_DollarName f)}
                                            {<-r>}
                                            {<-->}
                                            {(DQ ($ Id.VSub_At '@'))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {($ Id.VSub_DollarName file)}
                                    )
                                  ]
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [5837 5855]
                        )
                        (IfArm
                          keyword: <Id.KW_Elif elif>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: 
                                        {($ Id.VSub_Pound '#') <Id.Lit_Colon ':'> 
                                          ($ Id.VSub_DollarName f)
                                        }
                                      right: {<0> <Id.Lit_Colon ':'>}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: 
                                    (case_arg.Word
                                      w: 
                                        {($ Id.VSub_Pound '#') <Id.Lit_Colon ':'> 
                                          ($ Id.VSub_DollarName f)
                                        }
                                    )
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: 
                                        (pat.Words
                                          words: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <-f>}]
                                        )
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <printf>
                                          more_env: []
                                          words: [{<printf>} {<-->} {(DQ ($ Id.VSub_At '@'))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: 
                                        (pat.Words
                                          words: [
                                            {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <-f> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                        )
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <printf>
                                          more_env: []
                                          words: [
                                            {<printf>}
                                            {<-->}
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name f>
                                                  var_name: f
                                                  suffix_op: 
                                                    (suffix_op.Unary
                                                      op: <Id.VOp1_Pound '#'>
                                                      arg_word: {<-f>}
                                                    )
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              ) (DQ ($ Id.VSub_At '@'))
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <print>
                                          more_env: []
                                          words: [
                                            {<print>}
                                            {($ Id.VSub_DollarName f)}
                                            {<-r>}
                                            {<-->}
                                            {(DQ ($ Id.VSub_At '@'))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_DGreat '>>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {($ Id.VSub_DollarName file)}
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Amp _>
                            )
                          ]
                          spids: [6035 6051]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName x)})
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <chmod>
                              more_env: []
                              words: [{<chmod>} {<Id.Lit_Other '+'> <x>} {($ Id.VSub_DollarName file)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [6132 6141]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [5791 5805]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <INPUT>
      name: INPUT
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <IO>
              more_env: []
              words: [{<IO>} {($ Id.VSub_Number 0)} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <COPY>
      name: COPY
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {($ Id.VSub_DollarName GROUP)}
                                  right: {($ Id.VSub_DollarName TEST_select)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LBracket
                                  left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                  right: ($ Id.Lit_ArithVarLike COND)
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                  spids: [6190 6215]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COPY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COPY='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COPY='> name:COPY)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName COPY) <' '> ($ Id.VSub_At '@'))}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <MOVE>
      name: MOVE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<f>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {($ Id.VSub_DollarName GROUP)}
                                  right: {($ Id.VSub_DollarName TEST_select)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LBracket
                                  left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                  right: ($ Id.Lit_ArithVarLike COND)
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                  spids: [6248 6273]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [f]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName f)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <INPUT>
                          pattern: (pat.Words words:[{<INPUT>} {<OUTPUT>} {<ERROR>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'f='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'f='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName TWD) <'/'> ($ Id.VSub_DollarName f)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <'/'>
                          pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'f='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'f='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName f)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'MOVE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'MOVE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MOVE='> name:MOVE)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName MOVE) <' '> ($ Id.VSub_DollarName f))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <SAME>
      name: SAME
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<i>} {<file>} {<v>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {($ Id.VSub_DollarName GROUP)}
                                  right: {($ Id.VSub_DollarName TEST_select)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LBracket
                                  left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                  right: ($ Id.Lit_ArithVarLike COND)
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                  spids: [6366 6391]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <2>
                  pattern: (pat.Words words:[{<2>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <INPUT>
                          pattern: (pat.Words words:[{<INPUT>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <cat>
                                  more_env: []
                                  words: [{<cat>} {($ Id.VSub_Number 2)}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {($ Id.VSub_Number 1)}
                                    )
                                  ]
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_ArrayLhsOpen 'SAME['>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_ArrayLhsOpen 'SAME['>
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              left: <Id.Lit_ArrayLhsOpen 'SAME['>
                              name: SAME
                              index: {($ Id.VSub_Number 1)}
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 2)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'file='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'file='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMPARE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMPARE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPARE='> name:COMPARE)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName COMPARE) <' '> ($ Id.VSub_Number 1))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <3>
                  pattern: (pat.Words words:[{<3>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_ArrayLhsOpen 'SAME['>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_ArrayLhsOpen 'SAME['>
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              left: <Id.Lit_ArrayLhsOpen 'SAME['>
                              name: SAME
                              index: {($ Id.VSub_Number 2)}
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 3)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'file='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'file='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 2)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {<Id.Lit_VarLike 'i='> (SQ <'$'>) ($ Id.VSub_Number 1)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName i) <' '>)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_Number 2) <' '>) 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {($ Id.VSub_Number 1) <Id.Lit_Equals '='> (SQ <'"$'>) 
                                  ($ Id.VSub_Number 1) (SQ <' $2"'>)
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMPARE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMPARE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPARE='> name:COMPARE)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName COMPARE) <' '> ($ Id.VSub_Number 2))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName IGNORE) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName file) <' '>) 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName IGNORE)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.VSub_DollarName '$file'>
                                  pattern: (pat.Words words:[{($ Id.VSub_DollarName file)}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'v='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'v='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName v) <' '> 
                                                ($ Id.VSub_DollarName i)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IGNORE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IGNORE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IGNORE='> name:IGNORE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName v)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <OUTPUT>
      name: OUTPUT
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <IO>
              more_env: []
              words: [{<IO>} {($ Id.VSub_Number 0)} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <ERROR>
      name: ERROR
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <IO>
              more_env: []
              words: [{<IO>} {($ Id.VSub_Number 0)} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <RM>
      name: RM
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalNot
                              child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_rmu)})
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <chmod>
                      more_env: []
                      words: [{<chmod>} {<-R>} {<u> <Id.Lit_Other '+'> <rwx>} {(DQ ($ Id.VSub_At '@'))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                        (Redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [6671 6682]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [
                {<rm>}
                {($ Id.VSub_DollarName TEST_rmu)}
                {($ Id.VSub_DollarName TEST_rmflags)}
                {(DQ ($ Id.VSub_At '@'))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <REMOVE>
      name: REMOVE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<i>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <RM>
                      more_env: []
                      words: [{<RM>} {($ Id.VSub_DollarName i)} {($ Id.VSub_DollarName i) <.sav>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <IGNORE>
      name: IGNORE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<i>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <INPUT>
                          pattern: (pat.Words words:[{<INPUT>} {<OUTPUT>} {<ERROR>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'i='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'i='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName TWD) <'/'> ($ Id.VSub_DollarName i)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName IGNORE) <' '>)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName i) <' '>) 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IGNORE='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IGNORE='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IGNORE='> name:IGNORE)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName IGNORE) <' '> ($ Id.VSub_DollarName i))
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <KEEP>
      name: KEEP
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<i>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName KEEP)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'KEEP='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'KEEP='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEEP='> name:KEEP)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName i))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'KEEP='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'KEEP='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEEP='> name:KEEP)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ ($ Id.VSub_DollarName KEEP) <'|'> ($ Id.VSub_DollarName i))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <DIAGNOSTICS>
      name: DIAGNOSTICS
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: {($ Id.VSub_Pound '#') <Id.Lit_Colon ':'> ($ Id.VSub_Number 1)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0> <Id.Lit_Colon ':'>} {<1> <Id.Lit_Colon ':'> <1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DIAGNOSTICS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DIAGNOSTICS='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'DIAGNOSTICS='>
                              name: DIAGNOSTICS
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'EXIT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'EXIT='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT='> name:EXIT)
                          op: assign_op.Equal
                          rhs: {(SQ <'*'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1> <Id.Lit_Colon ':'>} {<1> <Id.Lit_Colon ':'> <0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DIAGNOSTICS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DIAGNOSTICS='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'DIAGNOSTICS='>
                              name: DIAGNOSTICS
                            )
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'EXIT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'EXIT='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT='> name:EXIT)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DIAGNOSTICS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DIAGNOSTICS='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'DIAGNOSTICS='>
                              name: DIAGNOSTICS
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'EXIT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'EXIT='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT='> name:EXIT)
                          op: assign_op.Equal
                          rhs: {(SQ <'*'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <IGNORESPACE>
      name: IGNORESPACE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name IGNORESPACE>
                    var_name: IGNORESPACE
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<-b>})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <EXIT>
      name: EXIT
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'EXIT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'EXIT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT='> name:EXIT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <INFO>
      name: INFO
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<-R15>} {<Id.Lit_VarLike 'info='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalNot
                              child: (bool_expr.WordTest w:{($ Id.VSub_Number 1)})
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'info='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'info='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'info='> name:info)
                          op: assign_op.Equal
                          rhs: {<no>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7044 7055]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalNot
                              child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_quiet)})
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [
                        {<print>}
                        {<-r>}
                        {<-u2>}
                        {(DQ ($ Id.VSub_DollarName info) <' '>)}
                        {(DQ ($ Id.VSub_At '@'))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [7067 7078]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <COMMAND>
      name: COMMAND
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<input>}]
              redirects: []
              do_fork: T
            )
            (command.DParen
              left: <Id.Op_DLeftParen _>
              child: 
                (arith_expr.UnaryAssign
                  op_id: Id.Node_PostDPlus
                  child: ($ Id.Lit_ArithVarLike TESTS)
                )
              right: <Id.Op_DRightParen _>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {
                      (DQ <' '> 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name ENVIRON>
                          var_name: ENVIRON
                          bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star)
                          right: <Id.Right_DollarBrace '}'>
                        ) <' '> 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name EXPORT>
                          var_name: EXPORT
                          bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star)
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (SQ <' '>) <Id.Lit_VarLike 'LC_ALL='> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (SQ <' '>) <LC_> 
                          (word_part.ExtGlob
                            op: <Id.ExtGlob_Plus '+('>
                            arms: [{<'[A-Z]'>}]
                            right: <Id.Right_ExtGlob _>
                          ) <Id.Lit_Equals '='> <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_ArrayLhsOpen 'EXPORT['>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_ArrayLhsOpen 'EXPORT['>
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              left: <Id.Lit_ArrayLhsOpen 'EXPORT['>
                              name: EXPORT
                              index: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: ($ Id.Lit_ArithVarLike EXPORTS)
                                )
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <'LC_ALL='>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_keep)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Pipeline
                      children: [
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.CommandList
                              children: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'PS4='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'PS4='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PS4='> name:PS4)
                                      op: assign_op.Equal
                                      rhs: {(SQ )}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <set>
                                  more_env: []
                                  words: [{<set>} {<-x>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <print>
                                  more_env: []
                                  words: [
                                    {<print>}
                                    {<-r>}
                                    {<-->}
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name ENVIRON>
                                          var_name: ENVIRON
                                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name EXPORT>
                                          var_name: EXPORT
                                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                    {(DQ <'PATH='> ($ Id.VSub_DollarName PATH))}
                                    {($ Id.VSub_DollarName COMMAND)}
                                    {(DQ ($ Id.VSub_At '@'))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          right: <Id.Right_Subshell _>
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {<-e>} {(SQ <'s,^print -r -- ,,'>)} {<-e>} {(SQ <'s,$, "$@",'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName TWD) <'/COMMAND'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                    (command.Simple
                      blame_tok: <chmod>
                      more_env: []
                      words: [
                        {<chmod>}
                        {<Id.Lit_Other '+'> <x>}
                        {($ Id.VSub_DollarName TWD) <'/COMMAND'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [7189 7198]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobNEqual
                              left: {($ Id.VSub_DollarName UMASK)}
                              right: {($ Id.VSub_DollarName UMASK_ORIG)}
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName TWD) <'/ERROR'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <umask>
                      more_env: []
                      words: [{<umask>} {($ Id.VSub_DollarName UMASK)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [7291 7304]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name TYPE>
                                        var_name: TYPE
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: ($ Id.Lit_ArithVarLike INPUT)
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  right: {<FIFO>}
                                )
                              right: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name FILE>
                                        var_name: FILE
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: ($ Id.Lit_ArithVarLike INPUT)
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  right: {<Id.Lit_Other '*'> <'/INPUT'>}
                                )
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'input='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'input='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'input='> name:input)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'< '> 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name FILE>
                                  var_name: FILE
                                  bracket_op: 
                                    (bracket_op.ArrayIndex
                                      expr: ($ Id.Lit_ArithVarLike INPUT)
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7321 7353]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_trace)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<Id.Lit_Other '+'> <x>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<print>}
                        {<-u2>}
                        {(DQ ($ Id.VSub_DollarName PS4))}
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name ENVIRON>
                              var_name: ENVIRON
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name EXPORT>
                              var_name: EXPORT
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                        {<Id.Lit_VarLike 'PATH='> (SQ <'$PATH'>)}
                        {(SQ <'$'>) <COMMAND>}
                        {(SQ <'"$@"'>)}
                        {(SQ <'$input'>)}
                        {(SQ <'"2>$TWD/ERROR"'>)}
                        {(SQ <'"${JOBPID:+&}"'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [7370 7379]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name ENVIRON>
                      var_name: ENVIRON
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name EXPORT>
                      var_name: EXPORT
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
                {<Id.Lit_VarLike 'PATH='> (SQ <'$PATH'>)}
                {(SQ <'$'>) <COMMAND>}
                {(SQ <'"$@"'>)}
                {($ Id.VSub_DollarName input)}
                {(DQ <'2>'> ($ Id.VSub_DollarName TWD) <'/ERROR'>)}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name JOBPID>
                      var_name: JOBPID
                      suffix_op: (suffix_op.Unary op:<Id.VTest_ColonPlus _> arg_word:{<'&'>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'STATUS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'STATUS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STATUS='> name:STATUS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_trace)})
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <set>
                  more_env: []
                  words: [{<set>} {<-x>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBPID)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'JOBPID='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'JOBPID='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBPID='> name:JOBPID)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Bang '!')}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7513 7522]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobNEqual
                      left: {($ Id.VSub_DollarName UMASK)}
                      right: {($ Id.VSub_DollarName UMASK_ORIG)}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <umask>
                  more_env: []
                  words: [{<umask>} {($ Id.VSub_DollarName UMASK_ORIG)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName STATUS)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <RESULTS>
      name: RESULTS
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<i>} {<j>} {<k>} {<s>} {<failed>} {<ignore>} {<io>} {<op>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_Number 1)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'io='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'io='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'io='> name:io)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number 1) <' '>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7584 7593]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.LogicalOr
                      left: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBOP)})
                      right: 
                        (bool_expr.LogicalOr
                          left: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBPID)})
                          right: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBSTATUS)})
                        )
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <sleep>
                  more_env: []
                  words: [{<sleep>} {<1>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: 
                (for_iter.Words
                  words: [
                    {($ Id.VSub_DollarName COMPARE)}
                    {($ Id.VSub_DollarName TWD) <'/OUTPUT'>}
                    {($ Id.VSub_DollarName TWD) <'/ERROR'>}
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName IGNORE) <' '> 
                                ($ Id.VSub_DollarName ignore) <' '> ($ Id.VSub_DollarName MOVE) <' '>
                              )
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName i) <' '>) 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ignore='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ignore='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ignore='> name:ignore)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName ignore) <' '> ($ Id.VSub_DollarName i))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'op='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'op='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name i>
                                var_name: i
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.WordTest
                                      w: 
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name FILTER>
                                            var_name: FILTER
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName op)}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {
                                  (DQ <'{ '> 
                                    (BracedVarSub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name FILTER>
                                      var_name: FILTER
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName op)}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) <' ;} < '> ($ Id.VSub_DollarName i) <' > '> ($ Id.VSub_DollarName i) <.fi>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <mv>
                              more_env: []
                              words: [{<mv>} {($ Id.VSub_DollarName i) <.fi>} {($ Id.VSub_DollarName i)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [7692 7706]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'j='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'j='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'j='> name:j)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name SAME>
                                var_name: SAME
                                bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName op)})
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.LogicalNot
                                      child: (bool_expr.WordTest w:{($ Id.VSub_DollarName j)})
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {($ Id.VSub_DollarName i)}
                                              right: {<'/'> <Id.Lit_Other '*'>}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'k='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'k='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName i)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [7759 7773]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'k='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'k='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName TWD) <'/'> ($ Id.VSub_DollarName i)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [s]
                              iterable: (for_iter.Words words:[{<ex>} {<sav>} {<err>}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.AndOr
                                      children: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_f
                                              child: 
                                                {($ Id.VSub_DollarName k) <.> ($ Id.VSub_DollarName s)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Break break>
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'j='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'j='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'j='> name:j)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName k) <.> ($ Id.VSub_DollarName s)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7746 7757]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.WordTest
                                          w: {(DQ ($ Id.VSub_DollarName DIAGNOSTICS))}
                                        )
                                      right: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName i)}
                                          right: {<Id.Lit_Other '*'> <'/ERROR'>}
                                        )
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.LogicalOr
                                              left: 
                                                (bool_expr.LogicalAnd
                                                  left: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobDEqual
                                                      left: {($ Id.VSub_DollarName STATUS)}
                                                      right: {<0>}
                                                    )
                                                  right: 
                                                    (bool_expr.LogicalNot
                                                      child: 
                                                        (bool_expr.Unary
                                                          op_id: Id.BoolUnary_s
                                                          child: 
                                                            {($ Id.VSub_DollarName TWD) <'/ERROR'>}
                                                        )
                                                    )
                                                )
                                              right: 
                                                (bool_expr.LogicalAnd
                                                  left: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {($ Id.VSub_DollarName DIAGNOSTICS)}
                                                      right: {<1>}
                                                    )
                                                  right: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: 
                                                        {
                                                          (CommandSub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            child: 
                                                              (command.Simple
                                                                blame_tok: <Id.Redir_Less '<'>
                                                                more_env: []
                                                                words: []
                                                                redirects: [
                                                                  (Redir
                                                                    op: <Id.Redir_Less '<'>
                                                                    loc: (redir_loc.Fd fd:0)
                                                                    arg: {($ Id.VSub_DollarName i)}
                                                                  )
                                                                ]
                                                                do_fork: F
                                                              )
                                                            right: <Id.Eof_RParen _>
                                                          )
                                                        }
                                                      right: {($ Id.VSub_DollarName DIAGNOSTICS)}
                                                    )
                                                )
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'failed='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'failed='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'failed='>
                                              name: failed
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName failed) 
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name failed>
                                                var_name: failed
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VTest_ColonPlus _>
                                                    arg_word: {<','>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <DIAGNOSTICS>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.LogicalAnd
                                                      left: 
                                                        (bool_expr.WordTest
                                                          w: {($ Id.VSub_DollarName TEST_verbose)}
                                                        )
                                                      right: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobNEqual
                                                          left: {($ Id.VSub_DollarName DIAGNOSTICS)}
                                                          right: {<1>}
                                                        )
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <print>
                                              more_env: []
                                              words: [
                                                {<print>}
                                                {<-u2>}
                                                {(DQ <'\t==='>)}
                                                {
                                                  (DQ <'diagnostic pattern \''> 
                                                    ($ Id.VSub_DollarName DIAGNOSTICS) <'\' did not match'>
                                                  )
                                                }
                                                {
                                                  (BracedVarSub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name i>
                                                    var_name: i
                                                    suffix_op: 
                                                      (suffix_op.Unary
                                                        op: <Id.VOp1_Pound '#'>
                                                        arg_word: 
                                                          {($ Id.VSub_DollarName TWD) 
                                                            <Id.Lit_Slash '/'>
                                                          }
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                                {(DQ <'==='>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <cat>
                                              more_env: []
                                              words: [{<cat>} {($ Id.VSub_DollarName i)}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [7907 7924]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [7854 7895]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [7832 7852]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <diff>
                      more_env: []
                      words: [
                        {<diff>}
                        {($ Id.VSub_DollarName IGNORESPACE)}
                        {($ Id.VSub_DollarName i)}
                        {($ Id.VSub_DollarName j)}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName i) <.diff>}
                        )
                        (Redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_s
                                      child: {($ Id.VSub_DollarName i) <.diff>}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'failed='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'failed='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'failed='> name:failed)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName failed) 
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name failed>
                                        var_name: failed
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonPlus _>
                                            arg_word: {<','>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      ) 
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name i>
                                        var_name: i
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Pound '#'>
                                            arg_word: {($ Id.VSub_DollarName TWD) <Id.Lit_Slash '/'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName TEST_verbose)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <print>
                                      more_env: []
                                      words: [
                                        {<print>}
                                        {<-u2>}
                                        {(DQ <'\t==='>)}
                                        {<diff>}
                                        {($ Id.VSub_DollarName IGNORESPACE)}
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name i>
                                            var_name: i
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VOp1_Pound '#'>
                                                arg_word: 
                                                  {($ Id.VSub_DollarName TWD) <Id.Lit_Slash '/'>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                        {(DQ <'<actual >expected ==='>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <cat>
                                      more_env: []
                                      words: [{<cat>} {($ Id.VSub_DollarName i) <.diff>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [8017 8026]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [7988 8000]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBOP)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.AndOr
                                  children: [
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBPID)})
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                    (command.Pipeline
                                      negated: <Id.KW_Bang '!'>
                                      children: [
                                        (command.Simple
                                          blame_tok: <kill>
                                          more_env: []
                                          words: [{<kill>} {<-0>} {($ Id.VSub_DollarName JOBPID)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <wait>
                              more_env: []
                              words: [{<wait>} {($ Id.VSub_DollarName JOBPID)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'JOBSTATUS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'JOBSTATUS='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'JOBSTATUS='>
                                      name: JOBSTATUS
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'JOBPID='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'JOBPID='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBPID='> name:JOBPID)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [8081 8103]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName JOBOP)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <CONTINUE>
                          pattern: (pat.Words words:[{<CONTINUE>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.LogicalNot
                                              child: 
                                                (bool_expr.WordTest
                                                  w: {($ Id.VSub_DollarName JOBPID)}
                                                )
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'failed='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'failed='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'failed='>
                                              name: failed
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName failed) 
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name failed>
                                                var_name: failed
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VTest_ColonPlus _>
                                                    arg_word: {<','>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <EXITED>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [8134 8145]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <EXITED>
                          pattern: (pat.Words words:[{<EXITED>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName JOBPID)})
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'failed='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'failed='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'failed='>
                                              name: failed
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName failed) 
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name failed>
                                                var_name: failed
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VTest_ColonPlus _>
                                                    arg_word: {<','>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <RUNNING>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [8166 8175]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.LogicalNot
                                              child: 
                                                (bool_expr.WordTest
                                                  w: {($ Id.VSub_DollarName JOBPID)}
                                                )
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'failed='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'failed='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'failed='>
                                              name: failed
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName failed) 
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name failed>
                                                var_name: failed
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VTest_ColonPlus _>
                                                    arg_word: {<','>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <EXITED>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [8196 8207]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Pipeline
                                          negated: <Id.KW_Bang '!'>
                                          children: [
                                            (command.Simple
                                              blame_tok: <kill>
                                              more_env: []
                                              words: [
                                                {<kill>}
                                                {<-> ($ Id.VSub_DollarName JOBOP)}
                                                {($ Id.VSub_DollarName JOBPID)}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '2>'>
                                                  loc: (redir_loc.Fd fd:2)
                                                  arg: {<'/dev/null'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          ops: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'failed='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'failed='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'failed='>
                                              name: failed
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName failed) 
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name failed>
                                                var_name: failed
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VTest_ColonPlus _>
                                                    arg_word: {<','>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <KILL-> ($ Id.VSub_DollarName JOBOP)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [8222 8237]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'JOBOP='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'JOBOP='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JOBOP='> name:JOBOP)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [8070 8079]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.LogicalNot
                                  child: (bool_expr.WordTest w:{($ Id.VSub_DollarName failed)})
                                )
                              right: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {($ Id.VSub_DollarName STATUS)}
                                  right: {($ Id.VSub_DollarName EXIT)}
                                )
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'failed='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'failed='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'failed='> name:failed)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'exit code '> ($ Id.VSub_DollarName EXIT) <' expected -- got '> 
                                ($ Id.VSub_DollarName STATUS)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [8265 8284]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName failed)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike ERRORS)
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.LogicalNot
                                      child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_quiet)})
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'SHOW='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'SHOW='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHOW='> name:SHOW)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'FAILED '> (${ Id.VSub_Name io) <'[ '> 
                                        ($ Id.VSub_DollarName failed) <' ] '> ($ Id.VSub_DollarName NOTE)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <print>
                              more_env: []
                              words: [{<print>} {<-r>} {<-u2>} {(DQ <'\t'> ($ Id.VSub_DollarName SHOW))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [8316 8327]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_keep)})
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'GROUP='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'GROUP='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GROUP='> name:GROUP)
                                  op: assign_op.Equal
                                  rhs: {<FINI>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                            )
                          ]
                          spids: [8357 8366]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [8298 8307]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalNot
                              child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_quiet)})
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SHOW='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SHOW='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHOW='> name:SHOW)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName NOTE)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [{<print>} {<-r>} {<-u2>} {(DQ <'\t'> ($ Id.VSub_DollarName SHOW))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [8378 8389]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <SET>
      name: SET
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<i>} {<r>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <RUN>
                      more_env: []
                      words: [{<RUN>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [8429 8438]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {($ Id.VSub_DollarName i)}
                                      right: {<->}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'r='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'r='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [8453 8466]
                        )
                        (IfArm
                          keyword: <Id.KW_Elif elif>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {($ Id.VSub_DollarName i)}
                                      right: {<Id.Lit_Other '+'>}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'r='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'r='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [8472 8485]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName i)}
                                          right: {<no> <Id.Lit_Other '?'> <Id.Lit_Other '*'>}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'i='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'i='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name i>
                                            var_name: i
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VOp1_Pound '#'>
                                                arg_word: {<no>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'v='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'v='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [8492 8507]
                            )
                            (IfArm
                              keyword: <Id.KW_Elif elif>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName i)}
                                          right: 
                                            {<Id.Lit_Other '*'> <Id.BoolBinary_GlobEqual '='> 
                                              <Id.Lit_Other '*'>
                                            }
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'v='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'v='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name i>
                                            var_name: i
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VOp1_Pound '#'>
                                                arg_word: {<Id.Lit_Other '*'> <'='>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.If
                                  if_kw: <Id.KW_If if>
                                  arms: [
                                    (IfArm
                                      keyword: <Id.KW_If if>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.DBracket
                                              left: <Id.KW_DLeftBracket '[['>
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {($ Id.VSub_DollarName v)}
                                                  right: {<0>}
                                                )
                                              right: <Id.Lit_DRightBracket ']]'>
                                              redirects: []
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'v='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'v='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'v='>
                                                  name: v
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [8546 8559]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'i='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'i='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name i>
                                            var_name: i
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VOp1_DPercent '%%'>
                                                arg_word: {<'='> <Id.Lit_Other '*'>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [8520 8535]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'v='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'v='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'i='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'i='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name i>
                                    var_name: i
                                    suffix_op: 
                                      (suffix_op.PatSub
                                        pat: {<->}
                                        replace: {<_>}
                                        replace_mode: Id.Lit_Slash
                                        slash_tok: <Id.VOp2_Slash _>
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName r)})
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_ArrayLhsOpen 'READONLY['>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_ArrayLhsOpen 'READONLY['>
                                      lhs: 
                                        (sh_lhs_expr.IndexedName
                                          left: <Id.Lit_ArrayLhsOpen 'READONLY['>
                                          name: READONLY
                                          index: {($ Id.VSub_DollarName i)}
                                        )
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [8596 8605]
                            )
                            (IfArm
                              keyword: <Id.KW_Elif elif>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.WordTest
                                          w: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name READONLY>
                                                var_name: READONLY
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {($ Id.VSub_DollarName i)}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Continue continue>
                                )
                              ]
                              spids: [8615 8629]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <eval>
                          more_env: []
                          words: [
                            {<eval>}
                            {<TEST_> ($ Id.VSub_DollarName i) <Id.Lit_Equals '='> 
                              ($ Id.VSub_DollarName v)
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <VIEW>
      name: VIEW
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <nameref>
              more_env: []
              words: [{<nameref>} {<Id.Lit_VarLike 'var='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<i>} {<bwd>} {<file>} {<pwd>} {<view>} {<root>} {<offset>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName var)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})]
                  spids: [8686 8695]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'file='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'file='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'file='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'file='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 2)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pwd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pwd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pwd='> name:pwd)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name TWD>
                        var_name: TWD
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VOp1_Percent '%'>
                            arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'bwd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'bwd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bwd='> name:bwd)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PMP>
                        var_name: PMP
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VOp1_Percent '%'>
                            arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_r
                              child: {($ Id.VSub_DollarName file)}
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_d
                                          child: {($ Id.VSub_DollarName file)}
                                        )
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'var='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'var='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'var='> name:var)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName file)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [8764 8777]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: 
                        (for_iter.Words
                          words: [{($ Id.VSub_DollarName file) <'/'> <Id.Lit_Star '*'>}]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_r
                                              child: {($ Id.VSub_DollarName i)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'var='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'var='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'var='>
                                              name: var
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName PWD) <'/'> 
                                              ($ Id.VSub_DollarName file)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Return return>
                                      arg_word: {<0>}
                                    )
                                  ]
                                  spids: [8806 8817]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [8751 8762]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [view]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name VIEWS>
                        var_name: VIEWS
                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName view)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <'/'>
                          pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'view='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'view='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'view='> name:view)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName pwd) <'/'> ($ Id.VSub_DollarName view)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName offset)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName pwd)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.VSub_DollarName '$view'>
                                  pattern: 
                                    (pat.Words
                                      words: [{($ Id.VSub_DollarName view) <'/'> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'offset='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'offset='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'offset='>
                                              name: offset
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name pwd>
                                                var_name: pwd
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_Pound '#'>
                                                    arg_word: {($ Id.VSub_DollarName view)}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'offset='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'offset='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'offset='>
                                              name: offset
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name bwd>
                                                var_name: bwd
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_Pound '#'>
                                                    arg_word: {($ Id.VSub_DollarName view)}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_r
                                      child: 
                                        {($ Id.VSub_DollarName view) ($ Id.VSub_DollarName offset) 
                                          <'/'> ($ Id.VSub_DollarName file)
                                        }
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.LogicalNot
                                              child: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_d
                                                  child: 
                                                    {($ Id.VSub_DollarName view) 
                                                      ($ Id.VSub_DollarName offset) <'/'> ($ Id.VSub_DollarName file)
                                                    }
                                                )
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'var='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'var='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'var='>
                                              name: var
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName view) 
                                              ($ Id.VSub_DollarName offset) <'/'> ($ Id.VSub_DollarName file)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Return return>
                                      arg_word: {<0>}
                                    )
                                  ]
                                  spids: [8957 8973]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {($ Id.VSub_DollarName view) ($ Id.VSub_DollarName offset) <'/'> 
                                      ($ Id.VSub_DollarName file) <'/'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_f
                                                      child: {($ Id.VSub_DollarName i)}
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'var='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'var='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'var='>
                                                      name: var
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName view) 
                                                      ($ Id.VSub_DollarName offset) <'/'> ($ Id.VSub_DollarName file)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Return return>
                                              arg_word: {<0>}
                                            )
                                          ]
                                          spids: [9006 9017]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [8941 8955]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'var='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'var='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'var='> name:var)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <INCLUDE>
      name: INCLUDE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<f>} {<v>} {<x>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [f]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <VIEW>
                                      more_env: []
                                      words: [{<VIEW>} {<v>} {($ Id.VSub_DollarName f)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: (bool_expr.WordTest w:{($ Id.VSub_DollarName PREFIX)})
                                          right: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: {($ Id.VSub_DollarName f)}
                                              right: {<'/'> <Id.Lit_Other '*'>}
                                            )
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <VIEW>
                                      more_env: []
                                      words: [
                                        {<VIEW>}
                                        {<v>}
                                        {($ Id.VSub_DollarName PREFIX) ($ Id.VSub_DollarName f)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DPipe _> <Id.Op_DAmp _>]
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'x='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'x='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName x) 
                                      (SingleQuoted
                                        left: <Id.Left_DollarSingleQuote '$\''>
                                        tokens: [<Id.Char_OneChar '\\n'>]
                                        right: <Id.Right_SingleQuote '\''>
                                      ) (DQ <'. '> ($ Id.VSub_DollarName v))
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [9082 9117]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <FATAL>
                          more_env: []
                          words: [
                            {<FATAL>}
                            {($ Id.VSub_DollarName f) <Id.Lit_Colon ':'>}
                            {<not>}
                            {<found>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName x)})
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <trap>
                  more_env: []
                  words: [{<trap>} {(DQ ($ Id.VSub_DollarName x))} {<0>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <UMASK>
      name: UMASK
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: {($ Id.VSub_Pound '#')}
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'UMASK='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'UMASK='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UMASK='> name:UMASK)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9177 9187]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'UMASK='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'UMASK='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UMASK='> name:UMASK)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName UMASK_ORIG)}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <PIPE>
      name: PIPE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <IO>
              more_env: []
              words: [{<IO>} {($ Id.VSub_Number 0)} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <FIFO>
      name: FIFO
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <IO>
              more_env: []
              words: [{<IO>} {($ Id.VSub_Number 0)} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <IF>
      name: IF
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName GROUP)}
                      right: {($ Id.VSub_DollarName TEST_select)}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <RUN>
              more_env: []
              words: [{<RUN>}]
              redirects: []
              do_fork: T
            )
            (command.DParen
              left: <Id.Op_DLeftParen _>
              child: 
                (arith_expr.UnaryAssign
                  op_id: Id.Node_PostDPlus
                  child: ($ Id.Lit_ArithVarLike COND)
                )
              right: <Id.Op_DRightParen _>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_ArrayLhsOpen 'COND_LINE['>
              pairs: [
                (AssignPair
                  left: <Id.Lit_ArrayLhsOpen 'COND_LINE['>
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      left: <Id.Lit_ArrayLhsOpen 'COND_LINE['>
                      name: COND_LINE
                      index: ($ Id.Lit_ArithVarLike COND)
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName LINE)}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DAmp
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Great
                                  left: ($ Id.Lit_ArithVarLike COND)
                                  right: {<Id.Lit_Digits 1>}
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LBracket
                                  left: ($ Id.Lit_ArithVarLike COND_SKIP)
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Minus
                                      left: ($ Id.Lit_ArithVarLike COND)
                                      right: {<Id.Lit_Digits 1>}
                                    )
                                )
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LBracket
                              left: ($ Id.Lit_ArithVarLike COND_KEPT)
                              right: ($ Id.Lit_ArithVarLike COND)
                            )
                          right: {<Id.Lit_Digits 1>}
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LBracket
                              left: ($ Id.Lit_ArithVarLike COND_SKIP)
                              right: ($ Id.Lit_ArithVarLike COND)
                            )
                          right: {<Id.Lit_Digits 1>}
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                  spids: [9291 9314]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <eval>
                          more_env: []
                          words: [{<eval>} {(DQ <'{ '> ($ Id.VSub_Number 1) <' ;} >/dev/null 2>&1'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LBracket
                              left: ($ Id.Lit_ArithVarLike COND_KEPT)
                              right: ($ Id.Lit_ArithVarLike COND)
                            )
                          right: {<Id.Lit_Digits 1>}
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LBracket
                              left: ($ Id.Lit_ArithVarLike COND_SKIP)
                              right: ($ Id.Lit_ArithVarLike COND)
                            )
                          right: {<Id.Lit_Digits 0>}
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalAnd
                              left: (bool_expr.WordTest w:{($ Id.VSub_Number 2)})
                              right: 
                                (bool_expr.LogicalNot
                                  child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_quiet)})
                                )
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <print>
                          more_env: []
                          words: [{<print>} {<-u2>} {(DQ <'NOTE\t'> ($ Id.VSub_Number 2))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  spids: [9346 9357]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: 
                    (arith_expr.BinaryAssign
                      op_id: Id.Arith_Equal
                      left: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LBracket
                          left: ($ Id.Lit_ArithVarLike COND_KEPT)
                          right: ($ Id.Lit_ArithVarLike COND)
                        )
                      right: {<Id.Lit_Digits 0>}
                    )
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: 
                    (arith_expr.BinaryAssign
                      op_id: Id.Arith_Equal
                      left: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LBracket
                          left: ($ Id.Lit_ArithVarLike COND_SKIP)
                          right: ($ Id.Lit_ArithVarLike COND)
                        )
                      right: {<Id.Lit_Digits 1>}
                    )
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <ELIF>
      name: ELIF
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName GROUP)}
                      right: {($ Id.VSub_DollarName TEST_select)}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <RUN>
              more_env: []
              words: [{<RUN>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LessEqual
                              left: ($ Id.Lit_ArithVarLike COND)
                              right: {<Id.Lit_Digits 0>}
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <FATAL>
                      more_env: []
                      words: [
                        {<FATAL>}
                        {<line>}
                        {($ Id.VSub_DollarName LINE) <Id.Lit_Colon ':'>}
                        {<no>}
                        {<matching>}
                        {<IF>}
                        {<Id.KW_For for>}
                        {<ELIF>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [9478 9492]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LBracket
                              left: ($ Id.Lit_ArithVarLike COND_KEPT)
                              right: ($ Id.Lit_ArithVarLike COND)
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LBracket
                              left: ($ Id.Lit_ArithVarLike COND_SKIP)
                              right: ($ Id.Lit_ArithVarLike COND)
                            )
                          right: {<Id.Lit_Digits 0>}
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                  spids: [9515 9528]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <eval>
                          more_env: []
                          words: [{<eval>} {(DQ ($ Id.VSub_Star '*') <' > /dev/null 2>&1'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LBracket
                              left: ($ Id.Lit_ArithVarLike COND_KEPT)
                              right: ($ Id.Lit_ArithVarLike COND)
                            )
                          right: {<Id.Lit_Digits 1>}
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LBracket
                              left: ($ Id.Lit_ArithVarLike COND_SKIP)
                              right: ($ Id.Lit_ArithVarLike COND)
                            )
                          right: {<Id.Lit_Digits 0>}
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalAnd
                              left: (bool_expr.WordTest w:{($ Id.VSub_Number 2)})
                              right: 
                                (bool_expr.LogicalNot
                                  child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_quiet)})
                                )
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <print>
                          more_env: []
                          words: [{<print>} {<-u2>} {(DQ <'NOTE\t'> ($ Id.VSub_Number 2))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  spids: [9545 9555]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: 
                    (arith_expr.BinaryAssign
                      op_id: Id.Arith_Equal
                      left: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LBracket
                          left: ($ Id.Lit_ArithVarLike COND_SKIP)
                          right: ($ Id.Lit_ArithVarLike COND)
                        )
                      right: {<Id.Lit_Digits 1>}
                    )
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <ELSE>
      name: ELSE
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName GROUP)}
                      right: {($ Id.VSub_DollarName TEST_select)}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <RUN>
              more_env: []
              words: [{<RUN>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LessEqual
                              left: ($ Id.Lit_ArithVarLike COND)
                              right: {<Id.Lit_Digits 0>}
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <FATAL>
                      more_env: []
                      words: [
                        {<FATAL>}
                        {<line>}
                        {($ Id.VSub_DollarName LINE) <Id.Lit_Colon ':'>}
                        {<no>}
                        {<matching>}
                        {<IF>}
                        {<Id.KW_For for>}
                        {<ELSE>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [9661 9675]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LBracket
                              left: ($ Id.Lit_ArithVarLike COND_KEPT)
                              right: ($ Id.Lit_ArithVarLike COND)
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LBracket
                              left: ($ Id.Lit_ArithVarLike COND_SKIP)
                              right: ($ Id.Lit_ArithVarLike COND)
                            )
                          right: {<Id.Lit_Digits 1>}
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                  spids: [9698 9711]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: 
                    (arith_expr.BinaryAssign
                      op_id: Id.Arith_Equal
                      left: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LBracket
                          left: ($ Id.Lit_ArithVarLike COND_KEPT)
                          right: ($ Id.Lit_ArithVarLike COND)
                        )
                      right: {<Id.Lit_Digits 1>}
                    )
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: 
                    (arith_expr.BinaryAssign
                      op_id: Id.Arith_Equal
                      left: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LBracket
                          left: ($ Id.Lit_ArithVarLike COND_SKIP)
                          right: ($ Id.Lit_ArithVarLike COND)
                        )
                      right: {<Id.Lit_Digits 0>}
                    )
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
                (command.AndOr
                  children: [
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.LogicalAnd
                          left: (bool_expr.WordTest w:{($ Id.VSub_Number 1)})
                          right: 
                            (bool_expr.LogicalNot
                              child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_quiet)})
                            )
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [{<print>} {<-u2>} {(DQ <'NOTE\t'> ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DAmp _>]
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <FI>
      name: FI
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName GROUP)}
                      right: {($ Id.VSub_DollarName TEST_select)}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <RUN>
              more_env: []
              words: [{<RUN>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_LessEqual
                              left: ($ Id.Lit_ArithVarLike COND)
                              right: {<Id.Lit_Digits 0>}
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <FATAL>
                      more_env: []
                      words: [
                        {<FATAL>}
                        {<line>}
                        {($ Id.VSub_DollarName LINE) <Id.Lit_Colon ':'>}
                        {<no>}
                        {<matching>}
                        {<IF>}
                        {<Id.KW_For for>}
                        {<FI>}
                        {<on>}
                        {<line>}
                        {($ Id.VSub_DollarName LINE)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [9814 9828]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: 
                    (arith_expr.Unary
                      op_id: Id.Arith_Bang
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LBracket
                          left: ($ Id.Lit_ArithVarLike COND_KEPT)
                          right: ($ Id.Lit_ArithVarLike COND)
                        )
                    )
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.LogicalAnd
                      left: (bool_expr.WordTest w:{($ Id.VSub_Number 1)})
                      right: 
                        (bool_expr.LogicalNot
                          child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_quiet)})
                        )
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <print>
                  more_env: []
                  words: [{<print>} {<-u2>} {(DQ <'NOTE\t'> ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.DParen
              left: <Id.Op_DLeftParen _>
              child: 
                (arith_expr.UnaryAssign
                  op_id: Id.Node_PostDMinus
                  child: ($ Id.Lit_ArithVarLike COND)
                )
              right: <Id.Op_DRightParen _>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <integer>
      more_env: []
      words: [
        {<integer>}
        {<Id.Lit_VarLike 'ERRORS='> <0>}
        {<Id.Lit_VarLike 'ENVIRONS='> <0>}
        {<Id.Lit_VarLike 'EXPORTS='> <0>}
        {<Id.Lit_VarLike 'TESTS='> <0>}
        {<Id.Lit_VarLike 'SUBTESTS='> <0>}
        {<Id.Lit_VarLike 'LINE='> <0>}
        {<Id.Lit_VarLike 'TESTLINE='> <0>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <integer>
      more_env: []
      words: [
        {<integer>}
        {<Id.Lit_VarLike 'ITEM='> <0>}
        {<Id.Lit_VarLike 'LASTITEM='> <0>}
        {<Id.Lit_VarLike 'COND='> <0>}
        {<Id.Lit_VarLike 'UNIT_READONLY='> <0>}
        {<COUNT>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [
        {<typeset>}
        {<ARGS>}
        {<COMMAND>}
        {<COPY>}
        {<DIAGNOSTICS>}
        {<ERROR>}
        {<EXEC>}
        {<Id.Lit_VarLike 'FLUSHED='> <0>}
        {<Id.Lit_VarLike 'GROUP='> <INIT>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [
        {<typeset>}
        {<IGNORE>}
        {<INPUT>}
        {<KEEP>}
        {<OUTPUT>}
        {<TEST>}
        {<SOURCE>}
        {<MOVE>}
        {<NOTE>}
        {<UMASK>}
        {<UMASK_ORIG>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [
        {<typeset>}
        {<ARGS_ORIG>}
        {<COMMAND_ORIG>}
        {<TITLE>}
        {<UNIT>}
        {<ARGV>}
        {<PREFIX>}
        {<OFFSET>}
        {<IGNORESPACE>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [
        {<typeset>}
        {<COMPARE>}
        {<MAIN>}
        {<Id.Lit_VarLike 'JOBPID='> (SQ )}
        {<Id.Lit_VarLike 'JOBSTATUS='> (SQ )}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [
        {<typeset>}
        {<TEST_file>}
        {<TEST_keep>}
        {<TEST_pipe_input>}
        {<TEST_pipe_io>}
        {<TEST_pipe_output>}
        {<TEST_local>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [
        {<typeset>}
        {<TEST_quiet>}
        {<Id.Lit_VarLike 'TEST_regular='> <1>}
        {<Id.Lit_VarLike 'TEST_rmflags='> (SQ <'-rf --'>)}
        {<TEST_rmu>}
        {<TEST_select>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [{<typeset>} {<-A>} {<SAME>} {<VIEWS>} {<FILE>} {<TYPE>} {<READONLY>} {<FILTER>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [{<typeset>} {<-a>} {<COND_LINE>} {<COND_SKIP>} {<COND_KEPT>} {<ENVIRON>} {<EXPORT>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [{<typeset>} {<-Z>} {<Id.Lit_VarLike 'LAST='> <00>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [{<unset>} {<FIGNORE>}]
      redirects: []
      do_fork: T
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <getopts>
              more_env: []
              words: [
                {<getopts>}
                {<-a>}
                {($ Id.VSub_DollarName command)}
                {(DQ ($ Id.VSub_DollarName USAGE))}
                {<OPT>}
              ]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName OPT)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <b>
                  pattern: (pat.Words words:[{<b>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.AndOr
                      children: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: {($ Id.VSub_DollarName OPTARG)}
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'IGNORESPACE='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'IGNORESPACE='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'IGNORESPACE='>
                                  name: IGNORESPACE
                                )
                              op: assign_op.Equal
                              rhs: {<-b>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <i>
                  pattern: (pat.Words words:[{<i>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <SET>
                      more_env: []
                      words: [
                        {<SET>}
                        {<->}
                        {<pipe-input> <Id.Lit_Equals '='> ($ Id.VSub_DollarName OPTARG)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <k>
                  pattern: (pat.Words words:[{<k>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <SET>
                      more_env: []
                      words: [{<SET>} {<->} {<Id.Lit_VarLike 'keep='> ($ Id.VSub_DollarName OPTARG)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <l>
                  pattern: (pat.Words words:[{<l>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <SET>
                      more_env: []
                      words: [{<SET>} {<->} {<local>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <o>
                  pattern: (pat.Words words:[{<o>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <SET>
                      more_env: []
                      words: [
                        {<SET>}
                        {<->}
                        {<pipe-output> <Id.Lit_Equals '='> ($ Id.VSub_DollarName OPTARG)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <p>
                  pattern: (pat.Words words:[{<p>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <SET>
                      more_env: []
                      words: [
                        {<SET>}
                        {<->}
                        {<pipe-io> <Id.Lit_Equals '='> ($ Id.VSub_DollarName OPTARG)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <q>
                  pattern: (pat.Words words:[{<q>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <SET>
                      more_env: []
                      words: [{<SET>} {<->} {<Id.Lit_VarLike 'quiet='> ($ Id.VSub_DollarName OPTARG)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <r>
                  pattern: (pat.Words words:[{<r>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <SET>
                      more_env: []
                      words: [{<SET>} {<->} {<Id.Lit_VarLike 'regular='> ($ Id.VSub_DollarName OPTARG)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <t>
                  pattern: (pat.Words words:[{<t>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_select)})
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'TEST_select='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'TEST_select='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'TEST_select='>
                                      name: TEST_select
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName TEST_select) <'|'> 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name OPTARG>
                                          var_name: OPTARG
                                          suffix_op: 
                                            (suffix_op.PatSub
                                              pat: {<','>}
                                              replace: 
                                                {
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\|'>
                                                    ch: '|'
                                                  )
                                                }
                                              replace_mode: Id.Lit_Slash
                                              slash_tok: <Id.VOp2_Slash _>
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10242 10251]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'TEST_select='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'TEST_select='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'TEST_select='>
                                  name: TEST_select
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name OPTARG>
                                      var_name: OPTARG
                                      suffix_op: 
                                        (suffix_op.PatSub
                                          pat: {<','>}
                                          replace: 
                                            {
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\|'>
                                                ch: '|'
                                              )
                                            }
                                          replace_mode: Id.Lit_Slash
                                          slash_tok: <Id.VOp2_Slash _>
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <x>
                  pattern: (pat.Words words:[{<x>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <SET>
                      more_env: []
                      words: [{<SET>} {<->} {<Id.Lit_VarLike 'trace='> ($ Id.VSub_DollarName OPTARG)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <v>
                  pattern: (pat.Words words:[{<v>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <SET>
                      more_env: []
                      words: [{<SET>} {<->} {<Id.Lit_VarLike 'verbose='> ($ Id.VSub_DollarName OPTARG)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'GROUP='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'GROUP='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GROUP='> name:GROUP)
                          op: assign_op.Equal
                          rhs: {<FINI>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<2>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <shift>
      more_env: []
      words: [{<shift>} {($ Id.VSub_DollarName OPTIND) <-1>}]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <0>
          pattern: (pat.Words words:[{<0>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <FATAL>
              more_env: []
              words: [{<FATAL>} {<test>} {<unit>} {<name>} {<omitted>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<Id.Lit_VarLike 'COLUMNS='> <80>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SOURCE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SOURCE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOURCE='> name:SOURCE)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName PWD)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PATH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PATH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
          op: assign_op.Equal
          rhs: 
            {($ Id.VSub_DollarName SOURCE) <Id.Lit_Colon ':'> 
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name PATH>
                var_name: PATH
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VOp1_Pound '#'>
                    arg_word: 
                      {
                        (word_part.ExtGlob
                          op: <Id.ExtGlob_QMark '?('>
                          arms: [{<.>}]
                          right: <Id.Right_ExtGlob _>
                        ) <':'>
                      }
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PATH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PATH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name PATH>
                var_name: PATH
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VOp1_DPercent '%%'>
                    arg_word: 
                      {<':'> 
                        (word_part.ExtGlob
                          op: <Id.ExtGlob_QMark '?('>
                          arms: [{<.>}]
                          right: <Id.Right_ExtGlob _>
                        )
                      }
                  )
                right: <Id.Right_DollarBrace '}'>
              ) <Id.Lit_Colon ':'> <'/usr/5bin'> <Id.Lit_Colon ':'> <'/bin'> <Id.Lit_Colon ':'> <'/usr/bin'>
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'UNIT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'UNIT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UNIT='> name:UNIT)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 1)}
        )
      ]
      redirects: []
    )
    (command.Simple blame_tok:<shift> more_env:[] words:[{<shift>}] redirects:[] do_fork:T)
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.LogicalAnd
                      left: (bool_expr.Unary op_id:Id.BoolUnary_f child:{($ Id.VSub_DollarName UNIT)})
                      right: 
                        (bool_expr.LogicalNot
                          child: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_x
                              child: {($ Id.VSub_DollarName UNIT)}
                            )
                        )
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'REGRESS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'REGRESS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REGRESS='> name:REGRESS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName UNIT)}
                )
              ]
              redirects: []
            )
          ]
          spids: [10405 10423]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'REGRESS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'REGRESS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REGRESS='> name:REGRESS)
              op: assign_op.Equal
              rhs: 
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name UNIT>
                    var_name: UNIT
                    suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{<.tst>})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
            )
          ]
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'REGRESS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'REGRESS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REGRESS='> name:REGRESS)
              op: assign_op.Equal
              rhs: {($ Id.VSub_DollarName REGRESS) <.tst>}
            )
          ]
          redirects: []
        )
        (command.AndOr
          children: [
            (command.DBracket
              left: <Id.KW_DLeftBracket '[['>
              expr: (bool_expr.Unary op_id:Id.BoolUnary_f child:{($ Id.VSub_DollarName REGRESS)})
              right: <Id.Lit_DRightBracket ']]'>
              redirects: []
            )
            (command.Simple
              blame_tok: <FATAL>
              more_env: []
              words: [
                {<FATAL>}
                {($ Id.VSub_DollarName REGRESS) <Id.Lit_Colon ':'>}
                {<regression>}
                {<tests>}
                {<not>}
                {<found>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          ops: [<Id.Op_DPipe _>]
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'UNIT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'UNIT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UNIT='> name:UNIT)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name UNIT>
                var_name: UNIT
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VOp1_DPound '##'>
                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'UNIT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'UNIT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UNIT='> name:UNIT)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name UNIT>
                var_name: UNIT
                suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{<.tst>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MAIN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MAIN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAIN='> name:MAIN)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName UNIT)}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName VPATH)})
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [
                {<set>}
                {<-A>}
                {<VIEWS>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name VPATH>
                    var_name: VPATH
                    suffix_op: 
                      (suffix_op.PatSub
                        pat: {<':'>}
                        replace: {(SQ <' '>)}
                        replace_mode: Id.Lit_Slash
                        slash_tok: <Id.VOp2_Slash _>
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'OFFSET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'OFFSET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OFFSET='> name:OFFSET)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name SOURCE>
                        var_name: SOURCE
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VOp1_Pound '#'>
                            arg_word: 
                              {
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name VIEWS>
                                  var_name: VIEWS
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              }
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName OFFSET)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'OFFSET='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'OFFSET='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OFFSET='> name:OFFSET)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name OFFSET>
                                var_name: OFFSET
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Pound '#'>
                                    arg_word: {<Id.Lit_Slash '/'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              ) <'/'>
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [10527 10536]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [10486 10494]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName REGRESS)}
                      right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>}
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PREFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PREFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PREFIX='> name:PREFIX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name REGRESS>
                        var_name: REGRESS
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VOp1_Percent '%'>
                            arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.WordTest
                              w: 
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name VIEWS>
                                    var_name: VIEWS
                                    prefix_op: <Id.VSub_Pound '#'>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name VIEWS>
                                var_name: VIEWS
                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'PREFIX='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PREFIX='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PREFIX='> name:PREFIX)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name PREFIX>
                                        var_name: PREFIX
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Pound '#'>
                                            arg_word: {($ Id.VSub_DollarName i) <Id.Lit_Slash '/'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [10576 10591]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PREFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PREFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PREFIX='> name:PREFIX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PREFIX>
                        var_name: PREFIX
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VOp1_Pound '#'>
                            arg_word: {($ Id.VSub_DollarName OFFSET)}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName PREFIX)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'PREFIX='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'PREFIX='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PREFIX='> name:PREFIX)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName PREFIX) <'/'>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [10632 10641]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [10551 10565]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TWD='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TWD='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TWD='> name:TWD)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName UNIT) <.tmp>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PMP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PMP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PMP='> name:PMP)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <pwd>
                    more_env: []
                    words: [{<pwd>} {<-P>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              ) <'/'> ($ Id.VSub_DollarName UNIT) <.tmp>
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'UMASK_ORIG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'UMASK_ORIG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UMASK_ORIG='> name:UMASK_ORIG)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <umask>
                    more_env: []
                    words: [{<umask>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'UMASK='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'UMASK='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UMASK='> name:UMASK)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName UMASK_ORIG)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ARGV='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ARGV='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGV='> name:ARGV)
          op: assign_op.Equal
          rhs: 
            {
              (ShArrayLiteral
                left: <Id.Op_LParen _>
                words: [{(DQ ($ Id.VSub_At '@'))}]
                right: <Id.Right_ShArrayLiteral _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.LogicalAnd
                      left: 
                        (bool_expr.WordTest
                          w: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name ARGV>
                                var_name: ARGV
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      right: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobNEqual
                          left: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name ARGV>
                                var_name: ARGV
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          right: 
                            {<Id.Lit_Other '['> <-> <Id.Lit_Other '+'> <Id.Lit_Other ']'> 
                              <Id.Lit_Other '*'>
                            }
                        )
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <UNIT>
              more_env: []
              words: [
                {<UNIT>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name ARGV>
                      var_name: ARGV
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'UNIT_READONLY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'UNIT_READONLY='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UNIT_READONLY='> name:UNIT_READONLY)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          spids: [10683 10713]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <trap>
      more_env: []
      words: [{<trap>} {(SQ <'code=$?; CLEANUP $code'>)} {<EXIT>}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.LogicalNot
                      child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_select)})
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TEST_select='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TEST_select='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_select='> name:TEST_select)
                  op: assign_op.Equal
                  rhs: {(DQ <'[0123456789]*'>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [10740 10750]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TEST_select='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TEST_select='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_select='> name:TEST_select)
          op: assign_op.Equal
          rhs: {(DQ <'@('> ($ Id.VSub_DollarName TEST_select) <'|+(0))'>)}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_trace)})
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'PS4='> (SQ <':$LINENO: '>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [
                {<typeset>}
                {<-ft>}
                {
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <typeset>
                        more_env: []
                        words: [{<typeset>} {<Id.Lit_Other '+'> <f>}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<-x>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [10766 10774]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_verbose)})
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<SHOW>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [10802 10810]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <typeset>
          more_env: []
          words: [{<typeset>} {<-L70>} {<SHOW>}]
          redirects: []
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.AndOr
                  children: [
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.LogicalNot
                          child: (bool_expr.WordTest w:{($ Id.VSub_DollarName TEST_keep)})
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                    (command.Subshell
                      left: <Id.Op_LParen _>
                      child: 
                        (command.Simple
                          blame_tok: <ulimit>
                          more_env: []
                          words: [{<ulimit>} {<-c>} {<0>}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Right_Subshell _>
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                        (Redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                    )
                  ]
                  ops: [<Id.Op_DAmp _>]
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <ulimit>
              more_env: []
              words: [{<ulimit>} {<-c>} {<0>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [10826 10852]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<--pipefail>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'BODY='> (SQ <'BODY=BODY; function BODY'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'CONTINUE='> (SQ <'LINE=$LINENO; CONTINUE'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'DO='> (SQ <'(( $ITEM != $FLUSHED )) && RUN DO; DO &&'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'DONE='> (SQ <'DONE=DONE; function DONE'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'EXEC='> (SQ <'LINE=$LINENO; EXEC'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'EXITED='> (SQ <'LINE=$LINENO; EXITED'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'INIT='> (SQ <'INIT=INIT; function INIT'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'JOB='> (SQ <'LINE=$LINENO; JOB'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'KILL='> (SQ <'LINE=$LINENO; KILL'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'PROG='> (SQ <'LINE=$LINENO; FLUSH; PROG'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'TEST='> (SQ <'TESTLINE=$LINENO; TEST'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'IF='> (SQ <'LINE=$LINENO; FLUSH; IF'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'ELIF='> (SQ <'LINE=$LINENO; FLUSH; ELIF'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'ELSE='> (SQ <'LINE=$LINENO; FLUSH; ELSE'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <alias>
      more_env: []
      words: [{<alias>} {<Id.Lit_VarLike 'FI='> (SQ <'LINE=$LINENO; FLUSH; FI'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {($ Id.VSub_DollarName REGRESS)}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<RUN> more_env:[] words:[{<RUN>}] redirects:[] do_fork:T)
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GROUP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GROUP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GROUP='> name:GROUP)
          op: assign_op.Equal
          rhs: {<FINI>}
        )
      ]
      redirects: []
    )
  ]
)