(command.CommandList
  children: [
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./build.conf'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<MKFLG>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [
        {<export>}
        {<Id.Lit_VarLike 'MWD='> 
          (CommandSub
            left_token: <Id.Left_Backtick '`'>
            child: 
              (command.Simple
                blame_tok: <pwd>
                more_env: []
                words: [{<pwd>}]
                redirects: []
                do_fork: T
              )
            right: <Id.Backtick_Right '`'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ARCH_LIST='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ARCH_LIST='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARCH_LIST='> name:ARCH_LIST)
          op: assign_op.Equal
          rhs: {(DQ <'default i686 x86_64 arm'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ARCH_LIST_EX='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ARCH_LIST_EX='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARCH_LIST_EX='> name:ARCH_LIST_EX)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'i486 i586 i686 x86_64 armv4l armv4tl armv5l armv6l m68k mips mips64 mipsel powerpc powerpc-440fp sh2eb sh2elf sh4 sparc'
                >
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DEFAULT_x86='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DEFAULT_x86='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEFAULT_x86='> name:DEFAULT_x86)
          op: assign_op.Equal
          rhs: {<i686>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DEFAULT_ARM='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DEFAULT_ARM='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEFAULT_ARM='> name:DEFAULT_ARM)
          op: assign_op.Equal
          rhs: {<armv6l>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PREBUILT_BINARIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PREBUILT_BINARIES='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PREBUILT_BINARIES='> name:PREBUILT_BINARIES)
          op: assign_op.Equal
          rhs: {(DQ <'http://01micko.com/wdlkmpx/woof-CE/initrd_progs-20170322-static.tar.xz'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ARCH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ARCH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARCH='> name:ARCH)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <uname>
                    more_env: []
                    words: [{<uname>} {<-m>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OS_ARCH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OS_ARCH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OS_ARCH='> name:OS_ARCH)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName ARCH)}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <get_initrd_progs>
      name: get_initrd_progs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'var='> <INITRD_PROGS>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_Number 1))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <-pkg>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (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: {<PACKAGES>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'arch='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName arch))}
                    {<Id.Lit_Equals '='>}
                    {(DQ )}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'arch='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'arch='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <uname>
                                more_env: []
                                words: [{<uname>} {<-m>}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName arch))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <i>
                  pattern: (pat.Words words:[{<i> <Id.Lit_QMark '?'> <86>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'arch='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'arch='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                          op: assign_op.Equal
                          rhs: {(DQ <x86>)}
                        )
                      ]
                      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 arch))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <arm>
                  pattern: (pat.Words words:[{<arm> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'arch='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'arch='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                          op: assign_op.Equal
                          rhs: {(SQ <arm>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<echo>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                  ($ Id.VSub_DollarName var)
                }
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                  (${ Id.VSub_Name var) <Id.Lit_Underscore _> (${ Id.VSub_Name arch)
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <release>
          pattern: (pat.Words words:[{<release>} {<tarball>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'If you made changes then don\'t forget to remove all 00_* directories first'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<4>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [a]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name ARCH_LIST>
                        var_name: ARCH_LIST
                        suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<'default '>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.VSub_Number '$0'>
                          more_env: []
                          words: [
                            {($ Id.VSub_Number 0)}
                            {<-nord>}
                            {<-auto>}
                            {<-arch>}
                            {($ Id.VSub_DollarName a)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pkgx='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pkgx='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgx='> name:pkgx)
                  op: assign_op.Equal
                  rhs: 
                    {<initrd_progs-> 
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <date>
                            more_env: []
                            words: [{<date>} {(DQ <'+%Y%m%d'>)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      ) <-static.tar.xz>
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<-e>}
                {
                  (DQ <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> 
                    <Id.Lit_BadBackslash '\\'> <'n*** Creating '> ($ Id.VSub_DollarName pkgx)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <read>
                          more_env: []
                          words: [{<read>} {<ARCH>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [PROG]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <get_initrd_progs>
                                    more_env: []
                                    words: [
                                      {<get_initrd_progs>}
                                      {
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name ARCH>
                                          var_name: ARCH
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op: <Id.VOp1_Pound '#'>
                                              arg_word: {<00_>}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          ]
                        )
                      semi_tok: <Id.Op_Semi _>
                      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 PROG)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ )} {(SQ <'#'>) <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 'progs2tar+='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'progs2tar+='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'progs2tar+='>
                                      name: progs2tar
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (DQ <' '> (${ Id.VSub_Name ARCH) <'/bin/'> (${ Id.VSub_Name PROG))
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: [
                (Redir
                  op: <Id.Redir_TLess '<<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <ls>
                              more_env: []
                              words: [{<ls>} {<-d>} {<00_> <Id.Lit_Star '*'>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
            )
            (command.Simple
              blame_tok: <tar>
              more_env: []
              words: [{<tar>} {<-Jcf>} {($ Id.VSub_DollarName pkgx)} {(${ Id.VSub_Name progs2tar)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <Done.>)}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
          ]
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <w>
          pattern: (pat.Words words:[{<w>} {<w_apps>} {<c>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [a]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name ARCH_LIST>
                        var_name: ARCH_LIST
                        suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<'default '>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.VSub_Number '$0'>
                          more_env: []
                          words: [
                            {($ Id.VSub_Number 0)}
                            {<-nord>}
                            {<-auto>}
                            {<-arch>}
                            {($ Id.VSub_DollarName a)}
                            {<-pkg>}
                            {<w_apps>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
          ]
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <fatal_error>
      name: fatal_error
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_At '@'))}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <help_msg>
      name: help_msg
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'Build static apps in the queue defined in build.conf\n'> <'\n'> <'Usage:\n'> 
                    <'  '> ($ Id.VSub_Number 0) <' [options]\n'> <'\n'> <'Options:\n'> 
                    <'  -pkg pkg    : compile specific pkg only\n'> <'  -all        : force building all *_static pkgs\n'> <'  -arch target: compile for target arch\n'> 
                    <'  -sysgcc     : use system gcc\n'> <'  -cross      : use the cross compilers from Aboriginal Linux\n'> 
                    <'  -download   : download pkgs only, this overrides other options\n'> <'  -specs file : DISTRO_SPECS file to use\n'> <'  -prebuilt   : use prebuilt binaries\n'> 
                    <'  -lang locale: set locale\n'> <'  -keymap km  : set keyboard layout\n'> <'  -auto       : don\'t prompt for input\n'> 
                    <'  -gz|-xz     : compression method for the initrd\n'> <'  -help       : show help and exit\n'> <'\n'> <'  Valid <targets> for -arch:\n'> <'      '> 
                    ($ Id.VSub_DollarName ARCH_LIST_EX) <'\n'> <'\n'> <'  The most relevant <targets> for Puppy are:\n'> <'      '> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name ARCH_LIST>
                      var_name: ARCH_LIST
                      suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<'default '>})
                      right: <Id.Right_DollarBrace '}'>
                    ) <'\n'> <'\n'> <'  Note that one target not yet supported by musl is aarch64 (arm64)\n'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'USE_SYS_GCC='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'USE_SYS_GCC='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USE_SYS_GCC='> name:USE_SYS_GCC)
          op: assign_op.Equal
          rhs: {<no>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CROSS_COMPILE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CROSS_COMPILE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CROSS_COMPILE='> name:CROSS_COMPILE)
          op: assign_op.Equal
          rhs: {<no>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'FORCE_BUILD_ALL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'FORCE_BUILD_ALL='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FORCE_BUILD_ALL='> name:FORCE_BUILD_ALL)
          op: assign_op.Equal
          rhs: {<no>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<Id.Lit_VarLike 'DLD_ONLY='> <no>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'INITRD_CREATE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'INITRD_CREATE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INITRD_CREATE='> name:INITRD_CREATE)
          op: assign_op.Equal
          rhs: {<yes>}
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(${ Id.VSub_Name INITRD_COMP)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <gz>
          pattern: (pat.Words words:[{<gz>} {<xz>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ok='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ok='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ok='> name:ok)
                  op: assign_op.Equal
                  rhs: {<yes>}
                )
              ]
              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 'INITRD_COMP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'INITRD_COMP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INITRD_COMP='> name:INITRD_COMP)
                  op: assign_op.Equal
                  rhs: {(DQ <gz>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [{<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
          ]
        )
      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: <-sysgcc>
                  pattern: (pat.Words words:[{<-sysgcc>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'USE_SYS_GCC='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'USE_SYS_GCC='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'USE_SYS_GCC='>
                                  name: USE_SYS_GCC
                                )
                              op: assign_op.Equal
                              rhs: {<yes>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'USE_PREBUILT='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'USE_PREBUILT='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'USE_PREBUILT='>
                                  name: USE_PREBUILT
                                )
                              op: assign_op.Equal
                              rhs: {<no>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-cross>
                  pattern: (pat.Words words:[{<-cross>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'CROSS_COMPILE='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'CROSS_COMPILE='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'CROSS_COMPILE='>
                                  name: CROSS_COMPILE
                                )
                              op: assign_op.Equal
                              rhs: {<yes>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'USE_PREBUILT='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'USE_PREBUILT='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'USE_PREBUILT='>
                                  name: USE_PREBUILT
                                )
                              op: assign_op.Equal
                              rhs: {<no>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-all>
                  pattern: (pat.Words words:[{<-all>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'FORCE_BUILD_ALL='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'FORCE_BUILD_ALL='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'FORCE_BUILD_ALL='>
                                  name: FORCE_BUILD_ALL
                                )
                              op: assign_op.Equal
                              rhs: {<yes>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-gz>
                  pattern: (pat.Words words:[{<-gz>} {<-xz>} {<gz>} {<xz>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'INITRD_COMP='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'INITRD_COMP='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'INITRD_COMP='>
                                  name: INITRD_COMP
                                )
                              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:{<->})
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-download>
                  pattern: (pat.Words words:[{<-download>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'DLD_ONLY='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'DLD_ONLY='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DLD_ONLY='> name:DLD_ONLY)
                              op: assign_op.Equal
                              rhs: {<yes>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-prebuilt>
                  pattern: (pat.Words words:[{<-prebuilt>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'USE_PREBUILT='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'USE_PREBUILT='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'USE_PREBUILT='>
                                  name: USE_PREBUILT
                                )
                              op: assign_op.Equal
                              rhs: {<yes>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-nord>
                  pattern: (pat.Words words:[{<-nord>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'INITRD_CREATE='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'INITRD_CREATE='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'INITRD_CREATE='>
                                  name: INITRD_CREATE
                                )
                              op: assign_op.Equal
                              rhs: {<no>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-auto>
                  pattern: (pat.Words words:[{<-auto>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'PROMPT='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'PROMPT='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROMPT='> name:PROMPT)
                              op: assign_op.Equal
                              rhs: {<no>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-v>
                  pattern: (pat.Words words:[{<-v>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (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: {<-v>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-lang>
                  pattern: (pat.Words words:[{<-lang>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'LOCALE='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'LOCALE='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LOCALE='> name:LOCALE)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number 2))}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>} {<2>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_DollarName LOCALE))}
                            {<Id.Lit_Equals '='>}
                            {(DQ )}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <fatal_error>
                          more_env: []
                          words: [
                            {<fatal_error>}
                            {(DQ ($ Id.VSub_Number 0) <' -locale: No locale specified'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-keymap>
                  pattern: (pat.Words words:[{<-keymap>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'KEYMAP='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'KEYMAP='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEYMAP='> name:KEYMAP)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number 2))}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>} {<2>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_DollarName KEYMAP))}
                            {<Id.Lit_Equals '='>}
                            {(DQ )}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <fatal_error>
                          more_env: []
                          words: [
                            {<fatal_error>}
                            {(DQ ($ Id.VSub_Number 0) <' -locale: No keymap specified'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-pkg>
                  pattern: (pat.Words words:[{<-pkg>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'BUILD_PKG='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'BUILD_PKG='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'BUILD_PKG='>
                                  name: BUILD_PKG
                                )
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number 2))}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>} {<2>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_DollarName BUILD_PKG))}
                            {<Id.Lit_Equals '='>}
                            {(DQ )}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <fatal_error>
                          more_env: []
                          words: [
                            {<fatal_error>}
                            {(DQ ($ Id.VSub_Number 0) <' -pkg: Specify a pkg to compile'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-arch>
                  pattern: (pat.Words words:[{<-arch>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'TARGET_ARCH='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'TARGET_ARCH='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'TARGET_ARCH='>
                                  name: TARGET_ARCH
                                )
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number 2))}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>} {<2>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_DollarName TARGET_ARCH))}
                            {<Id.Lit_Equals '='>}
                            {(DQ )}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <fatal_error>
                          more_env: []
                          words: [
                            {<fatal_error>}
                            {(DQ ($ Id.VSub_Number 0) <' -arch: Specify a target arch'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-specs>
                  pattern: (pat.Words words:[{<-specs>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                                  name: DISTRO_SPECS
                                )
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number 2))}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>} {<2>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<Id.KW_Bang '!'>}
                            {<-f>}
                            {(DQ ($ Id.VSub_DollarName DISTRO_SPECS))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <fatal_error>
                          more_env: []
                          words: [
                            {<fatal_error>}
                            {
                              (DQ ($ Id.VSub_Number 0) <' -specs: \''> (${ Id.VSub_Name DISTRO_SPECS) 
                                <'\' is not a regular file'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-h>
                  pattern: (pat.Words words:[{<-h>} {<-help>} {<--help>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <help_msg>
                          more_env: []
                          words: [{<help_msg>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-clean>
                  pattern: (pat.Words words:[{<-clean>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {<-e>}
                            {
                              (DQ 
                                <
'Press P and hit enter to proceed, any other combination to cancel..'
                                >
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <read>
                      more_env: []
                      words: [{<read>} {<zz>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName zz)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <p>
                          pattern: (pat.Words words:[{<p>} {<P>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {<rm>}
                                {<-rf>}
                                {<initrd.> <Id.Lit_LBracket '['> <gx> <Id.Lit_RBracket ']'> <z>}
                                {<initrd_progs-> <Id.Lit_Star '*'> <.tar.> <Id.Lit_Star '*'>}
                                {<ZZ_initrd-expanded>}
                                {<00_> <Id.Lit_Star '*'>}
                                {<0sources>}
                                {<cross-compiler> <Id.Lit_Star '*'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
                  ]
                  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: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Unrecognized option: '> ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <use_prebuilt_binaries>
      name: use_prebuilt_binaries
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<Id.KW_Bang '!'>}
                    {(DQ ($ Id.VSub_DollarName PREBUILT_BINARIES))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <ERROR>)}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'zfile='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'zfile='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'zfile='> name:zfile)
                  op: assign_op.Equal
                  rhs: 
                    {<'0sources/'> 
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PREBUILT_BINARIES>
                        var_name: PREBUILT_BINARIES
                        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.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-f>}
                                {(DQ ($ Id.VSub_DollarName zfile))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <tar>
                          more_env: []
                          words: [{<tar>} {<-taf>} {(DQ ($ Id.VSub_DollarName zfile))}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_AndGreat '&>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <rm>
                          more_env: []
                          words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName zfile))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [1125 1139]
                )
              ]
              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.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<Id.KW_Bang '!'>}
                                {<-f>}
                                {(DQ ($ Id.VSub_DollarName zfile))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <mkdir>
                      more_env: []
                      words: [{<mkdir>} {<-p>} {<0sources>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <wget>
                      more_env: []
                      words: [
                        {<wget>}
                        {<-P>}
                        {<0sources>}
                        {<--no-check-certificate>}
                        {(DQ ($ Id.VSub_DollarName PREBUILT_BINARIES))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_QMark '?')}
                            {<-eq>}
                            {<0>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <rm>
                                  more_env: []
                                  words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName zfile))}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(DQ <ERROR>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                  arg_word: {<1>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [1171 1187]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'* Extracting '> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name zfile>
                      var_name: zfile
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VOp1_DPound '##'>
                          arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    ) <...>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <tar>
                  more_env: []
                  words: [{<tar>} {<-xaf>} {(DQ ($ Id.VSub_DollarName zfile))}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <rm>
                          more_env: []
                          words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName zfile))}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <ERROR>)}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <set_compiler>
      name: set_compiler
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <which>
                  more_env: []
                  words: [{<which>} {<make>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_AndGreat '&>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <fatal_error>
                  more_env: []
                  words: [
                    {<fatal_error>}
                    {<echo>}
                    {(DQ <'It looks like development tools are not installed.. stopping'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName USE_SYS_GCC))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <no>)}
                                {<-a>}
                                {(DQ ($ Id.VSub_DollarName CROSS_COMPILE))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <no>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName ARCH)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <i>
                          pattern: (pat.Words words:[{<i> <Id.Lit_QMark '?'> <86>} {<x86_64>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'CROSS_COMPILE='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'CROSS_COMPILE='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CROSS_COMPILE='>
                                      name: CROSS_COMPILE
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              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 'USE_SYS_GCC='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'USE_SYS_GCC='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'USE_SYS_GCC='>
                                      name: USE_SYS_GCC
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [1336 1366]
                )
              ]
              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.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName USE_SYS_GCC))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <yes>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <which>
                          more_env: []
                          words: [{<which>} {<gcc>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_AndGreat '&>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <fatal_error>
                          more_env: []
                          words: [{<fatal_error>} {(DQ <'No gcc, aborting...'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'nBuilding in: '> ($ Id.VSub_DollarName ARCH))
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'n* Using system gcc'> 
                            <Id.Lit_BadBackslash '\\'> <n>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sleep>
                      more_env: []
                      words: [{<sleep>} {<1.5>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1420 1438]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'CROSS_COMPILE='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'CROSS_COMPILE='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'CROSS_COMPILE='>
                          name: CROSS_COMPILE
                        )
                      op: assign_op.Equal
                      rhs: {<yes>}
                    )
                  ]
                  redirects: []
                )
                (command.Case
                  case_kw: <Id.KW_Case case>
                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName ARCH)})
                  arms_start: <Id.KW_In in>
                  arms: [
                    (CaseArm
                      left: <i>
                      pattern: (pat.Words words:[{<i> <Id.Lit_QMark '?'> <86>} {<x86_64>}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'ok='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'ok='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ok='> name:ok)
                              op: assign_op.Equal
                              rhs: {<yes>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      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: <fatal_error>
                          more_env: []
                          words: [
                            {<fatal_error>}
                            {
                              (DQ <'*** Only use x86 systems to cross-compile'> 
                                <Id.Lit_BadBackslash '\\'> <'n* Run '> ($ Id.VSub_Number 0) <' -sysgcc to use the system gcc ... '> <Id.Lit_BadBackslash '\\'> <n>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <select_target_arch>
      name: select_target_arch
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName CROSS_COMPILE))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <no>)}
                    {<-a>}
                    {(DQ ($ Id.VSub_DollarName USE_PREBUILT))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <no>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName TARGET_ARCH)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <default>
                  pattern: (pat.Words words:[{<default>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TARGET_ARCH='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TARGET_ARCH='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'TARGET_ARCH='>
                              name: TARGET_ARCH
                            )
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name ARCH)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <x86>
                  pattern: (pat.Words words:[{<x86>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TARGET_ARCH='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TARGET_ARCH='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'TARGET_ARCH='>
                              name: TARGET_ARCH
                            )
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name DEFAULT_x86)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <arm>
                  pattern: (pat.Words words:[{<arm>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TARGET_ARCH='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TARGET_ARCH='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'TARGET_ARCH='>
                              name: TARGET_ARCH
                            )
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name DEFAULT_ARM)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'VALID_TARGET_ARCH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'VALID_TARGET_ARCH='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'VALID_TARGET_ARCH='>
                      name: VALID_TARGET_ARCH
                    )
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName TARGET_ARCH))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ )}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [a]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName ARCH_LIST_EX)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(DQ ($ Id.VSub_DollarName TARGET_ARCH))}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName a))}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'VALID_TARGET_ARCH='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'VALID_TARGET_ARCH='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'VALID_TARGET_ARCH='>
                                          name: VALID_TARGET_ARCH
                                        )
                                      op: assign_op.Equal
                                      rhs: {<yes>}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Break break>
                                )
                              ]
                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                            )
                          ]
                          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.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ ($ Id.VSub_DollarName VALID_TARGET_ARCH))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ <no>)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {(DQ <'Invalid target arch: '> ($ Id.VSub_DollarName TARGET_ARCH))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [1708 1726]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName TARGET_ARCH))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ <default>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ARCH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ARCH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARCH='> name:ARCH)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name TARGET_ARCH)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [1644 1662]
                )
              ]
              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.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName VALID_TARGET_ARCH))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <no>)}
                                {<-a>}
                                {(DQ ($ Id.VSub_DollarName PROMPT))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <yes>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> 
                            <'nWe\'re going to compile apps for the init ram disk'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'Select the arch you want to compile to'> <Id.Lit_BadBackslash '\\'> <n>)
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (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.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [a]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName ARCH_LIST)}])
                      semi_tok: <Id.Op_Semi _>
                      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 a)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <default>
                                  pattern: (pat.Words words:[{<default>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'\t'> (${ Id.VSub_Name x) <') default ['> 
                                            (${ Id.VSub_Name ARCH) <']'>
                                          )
                                        }
                                      ]
                                      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: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'\t'> (${ Id.VSub_Name x) <') '> ($ Id.VSub_DollarName a))
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <let>
                              more_env: []
                              words: [{<let>} {<x> <Id.Lit_Other '+'> <Id.Lit_Other '+'>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'\t*) default ['> (${ Id.VSub_Name ARCH) <']'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {<-en>}
                            {(DQ <Id.Lit_BadBackslash '\\'> <'nEnter your choice: '>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <read>
                      more_env: []
                      words: [{<read>} {<choice>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: []
                      do_fork: T
                    )
                    (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.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [a]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName ARCH_LIST)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ ($ Id.VSub_DollarName x))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName choice))}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'selected_arch='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'selected_arch='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'selected_arch='>
                                              name: selected_arch
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName a)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <let>
                                  more_env: []
                                  words: [{<let>} {<x> <Id.Lit_Other '+'> <Id.Lit_Other '+'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [a]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName ARCH_LIST_EX)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ ($ Id.VSub_DollarName a))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName choice))}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'selected_arch='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'selected_arch='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'selected_arch='>
                                              name: selected_arch
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName a)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName selected_arch)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <default>
                          pattern: (pat.Words words:[{<default>} {(DQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ok='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ok='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ok='> name:ok)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              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 'ARCH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ARCH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARCH='> name:ARCH)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName selected_arch)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [1778 1808]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName USE_PREBUILT))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <yes>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'Arch: '> ($ Id.VSub_DollarName ARCH))}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName DLD_ONLY))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <no>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName OS_ARCH)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <64>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ok='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ok='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ok='> name:ok)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          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_DollarName ARCH)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <64>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <fatal_error>
                                      more_env: []
                                      words: [
                                        {<fatal_error>}
                                        {
                                          (DQ <Id.Lit_BadBackslash '\\'> 
                                            <
'n*** Trying to compile for a 64bit arch in a 32bit system?'
                                            > <Id.Lit_BadBackslash '\\'> <'n*** That\'s not possible.. exiting..'>
                                          )
                                        }
                                      ]
                                      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: []
                    )
                  ]
                  spids: [2093 2111]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Arch: '> ($ Id.VSub_DollarName ARCH))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<1.5>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <setup_cross_compiler>
      name: setup_cross_compiler
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName CROSS_COMPILE))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <no>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CCOMP_DIR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CCOMP_DIR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CCOMP_DIR='> name:CCOMP_DIR)
                  op: assign_op.Equal
                  rhs: {<cross-compiler-> (${ Id.VSub_Name ARCH)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'URL='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'URL='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'URL='> name:URL)
                  op: assign_op.Equal
                  rhs: {<http> <Id.Lit_Colon ':'> <'//landley.net/aboriginal/downloads/binaries'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PACKAGE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PACKAGE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PACKAGE='> name:PACKAGE)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name CCOMP_DIR) <.tar.gz>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<Id.KW_Bang '!'>}
                                {<-f>}
                                {(DQ <'0sources/'> (${ Id.VSub_Name PACKAGE))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Download cross compiler from Aboriginal Linux'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_DollarName PROMPT))}
                            {<Id.Lit_Equals '='>}
                            {(DQ <yes>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<-n>} {(DQ <'Press enter to continue, CTRL-C to cancel...'>)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <read>
                          more_env: []
                          words: [{<read>} {<zzz>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                    (command.Simple
                      blame_tok: <wget>
                      more_env: []
                      words: [
                        {<wget>}
                        {<-c>}
                        {<-P>}
                        {<0sources>}
                        {(${ Id.VSub_Name URL) <'/'> (${ Id.VSub_Name PACKAGE)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_QMark '?')}
                                        {<-ne>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <rm>
                              more_env: []
                              words: [{<rm>} {<-rf>} {(${ Id.VSub_Name CCOMP_DIR)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'failed to download '> (${ Id.VSub_Name PACKAGE))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [2319 2333]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [2244 2261]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ ($ Id.VSub_DollarName DLD_ONLY))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <yes>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Already downloaded '> (${ Id.VSub_Name PACKAGE))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DAmp _>]
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName DLD_ONLY))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <yes>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (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.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<Id.KW_Bang '!'>}
                                {<-d>}
                                {(DQ ($ Id.VSub_DollarName CCOMP_DIR))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <tar>
                      more_env: []
                      words: [
                        {<tar>}
                        {<--directory> <Id.Lit_Equals '='> ($ Id.VSub_DollarName PWD)}
                        {<-xaf>}
                        {<'0sources/'> (${ Id.VSub_Name PACKAGE)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_QMark '?')}
                                        {<-ne>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <rm>
                              more_env: []
                              words: [{<rm>} {<-rf>} {(${ Id.VSub_Name CCOMP_DIR)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <rm>
                              more_env: []
                              words: [{<rm>} {<-fv>} {<'0sources/'> (${ Id.VSub_Name PACKAGE)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'failed to extract '> (${ Id.VSub_Name PACKAGE))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [2451 2465]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [2418 2434]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<Id.KW_Bang '!'>}
                    {<-d>}
                    {(DQ ($ Id.VSub_DollarName CCOMP_DIR))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ ($ Id.VSub_DollarName CCOMP_DIR) <' not found'>)}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-d>}
                                {<cross-compiler-> (${ Id.VSub_Name ARCH) <'/cc/lib'>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cp>
                      more_env: []
                      words: [
                        {<cp>}
                        {<cross-compiler-> (${ Id.VSub_Name ARCH) <'/cc/lib/'> <Id.Lit_Star '*'>}
                        {<cross-compiler-> (${ Id.VSub_Name ARCH) <'/lib'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2544 2560]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<-e>}
                {
                  (DQ <Id.Lit_BadBackslash '\\'> <'nUsing cross compiler from Aboriginal Linux'> 
                    <Id.Lit_BadBackslash '\\'> <n>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'OVERRIDE_ARCH='> (${ Id.VSub_Name ARCH)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [
                {<export>}
                {<Id.Lit_VarLike 'XPATH='> (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name CCOMP_DIR)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <check_bin>
      name: check_bin
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName init_pkg)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )} {(SQ <'#'>) <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <coreutils_static>
                  pattern: (pat.Words words:[{<coreutils_static>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'static_bins='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'static_bins='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'static_bins='>
                              name: static_bins
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <cp>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <dosfstools_static>
                  pattern: (pat.Words words:[{<dosfstools_static>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'static_bins='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'static_bins='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'static_bins='>
                              name: static_bins
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <fsck.fat>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <e2fsprogs_static>
                  pattern: (pat.Words words:[{<e2fsprogs_static>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'static_bins='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'static_bins='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'static_bins='>
                              name: static_bins
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <'e2fsck resize2fs'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <exfat-utils_static>
                  pattern: (pat.Words words:[{<exfat-utils_static>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'static_bins='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'static_bins='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'static_bins='>
                              name: static_bins
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <exfatfsck>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <fuse-exfat_static>
                  pattern: (pat.Words words:[{<fuse-exfat_static>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'static_bins='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'static_bins='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'static_bins='>
                              name: static_bins
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <mount.exfat-fuse>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <findutils_static>
                  pattern: (pat.Words words:[{<findutils_static>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'static_bins='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'static_bins='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'static_bins='>
                              name: static_bins
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <find>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <util-linux_static>
                  pattern: (pat.Words words:[{<util-linux_static>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'static_bins='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'static_bins='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'static_bins='>
                              name: static_bins
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <losetup>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <util-linux-222_static>
                  pattern: (pat.Words words:[{<util-linux-222_static>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'static_bins='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'static_bins='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'static_bins='>
                              name: static_bins
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <losetup-222>)}
                        )
                      ]
                      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 'static_bins='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'static_bins='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'static_bins='>
                              name: static_bins
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name init_pkg>
                                var_name: init_pkg
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Percent '%'>
                                    arg_word: {<_> <Id.Lit_Other '*'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [sbin]
              iterable: (for_iter.Words words:[{(${ Id.VSub_Name static_bins)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<-f>}
                            {<'./00_'> (${ Id.VSub_Name ARCH) <'/bin/'> (${ Id.VSub_Name sbin)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <build_pkgs>
      name: build_pkgs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {<.fatal>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [
                {<mkdir>}
                {<-p>}
                {<00_> (${ Id.VSub_Name ARCH) <'/bin'>}
                {<00_> (${ Id.VSub_Name ARCH) <'/log'>}
                {<0sources>}
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName DLD_ONLY))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <no>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ 
                            <
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
                            >
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> 
                            <'nbuilding packages for the initial ram disk'> <Id.Lit_BadBackslash '\\'> <n>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sleep>
                      more_env: []
                      words: [{<sleep>} {<1>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2838 2856]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName BUILD_PKG))}
                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                    {(DQ )}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'PACKAGES='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'PACKAGES='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PACKAGES='> name:PACKAGES)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName BUILD_PKG))}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName FORCE_BUILD_ALL))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <yes>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'PACKAGES='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'PACKAGES='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PACKAGES='> name:PACKAGES)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <find>
                                        more_env: []
                                        words: [
                                          {<find>}
                                          {<pkg>}
                                          {<-maxdepth>}
                                          {<1>}
                                          {<-type>}
                                          {<d>}
                                          {<-name>}
                                          {(SQ <'*_static'>)}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {(SQ <'s|.*/||'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sort>
                                        more_env: []
                                        words: [{<sort>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2912 2930]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'PACKAGES='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'PACKAGES='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PACKAGES='> name:PACKAGES)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                blame_tok: <get_initrd_progs>
                                more_env: []
                                words: [{<get_initrd_progs>} {<-pkg>} {($ Id.VSub_DollarName ARCH)}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [init_pkg]
              iterable: (for_iter.Words words:[{(${ Id.VSub_Name PACKAGES)}])
              semi_tok: <Id.Op_Semi _>
              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 init_pkg)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ )} {(SQ <'#'>) <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.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [{<Id.Lit_LBracket '['>} {<-f>} {<.fatal>} {<Id.Lit_RBracket ']'>}]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(DQ <Exiting..>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <rm>
                                  more_env: []
                                  words: [{<rm>} {<-f>} {<.fatal>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                  arg_word: {<1>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<-d>}
                            {<'pkg/'> (DQ (${ Id.VSub_Name init_pkg) <_static>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'init_pkg='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'init_pkg='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'init_pkg='> name:init_pkg)
                              op: assign_op.Equal
                              rhs: {(${ Id.VSub_Name init_pkg) <_static>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ ($ Id.VSub_DollarName DLD_ONLY))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ <no>)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <check_bin>
                              more_env: []
                              words: [{<check_bin>} {($ Id.VSub_DollarName init_pkg)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {($ Id.VSub_QMark '?')}
                                    {<-eq>}
                                    {<0>}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {
                                              (DQ ($ Id.VSub_DollarName init_pkg) 
                                                <' exists ... skipping'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Continue continue>
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ <Id.Lit_BadBackslash '\\'> 
                                    <
'n+=============================================================================+'
                                    >
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ <Id.Lit_BadBackslash '\\'> <'nbuilding '> 
                                    ($ Id.VSub_DollarName init_pkg)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <sleep>
                              more_env: []
                              words: [{<sleep>} {<1>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [3084 3102]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {<'pkg/'> (${ Id.VSub_Name init_pkg)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <mkdir>
                      more_env: []
                      words: [
                        {<mkdir>}
                        {<-p>}
                        {(${ Id.VSub_Name MWD) <'/00_'> (${ Id.VSub_Name ARCH) <'/log'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <sh>
                          more_env: []
                          words: [{<sh>} {(${ Id.VSub_Name init_pkg) <.petbuild>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <tee>
                          more_env: []
                          words: [
                            {<tee>}
                            {(${ Id.VSub_Name MWD) <'/00_'> (${ Id.VSub_Name ARCH) <'/log/'> 
                              (${ Id.VSub_Name init_pkg) <build.log>
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {(${ Id.VSub_Name MWD)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_DollarName DLD_ONLY))}
                            {<Id.Lit_Equals '='>}
                            {(DQ <yes>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Continue continue>
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.Simple
                      blame_tok: <check_bin>
                      more_env: []
                      words: [{<check_bin>} {($ Id.VSub_DollarName init_pkg)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_QMark '?')}
                            {<-ne>}
                            {<0>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(DQ <'target binary does not exist...'>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                  arg_word: {<1>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {<.fatal>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <set_lang>
      name: set_lang
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name LOCALE>
                          var_name: LOCALE
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VOp1_Percent '%'>
                              arg_word: {<_> <Id.Lit_Other '*'>}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                    {<Id.Lit_Equals '='>}
                    {(DQ <en>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'LOCALE='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'LOCALE='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LOCALE='> name:LOCALE)
                      op: assign_op.Equal
                      rhs: {(DQ )}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<Id.KW_Bang '!'>}
                    {(DQ ($ Id.VSub_DollarName LOCALE))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {<-e>}
                            {(DQ <Id.Lit_BadBackslash '\\'> <'n* Using default locale'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <rm>
                          more_env: []
                          words: [{<rm>} {<-f>} {<'ZZ_initrd-expanded/PUPPYLANG'>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<-e>}
                {
                  (DQ <'* LANG set to: '> ($ Id.VSub_DollarName LOCALE) <Id.Lit_BadBackslash '\\'> <n>)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<-n>} {(DQ ($ Id.VSub_DollarName LOCALE))}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'ZZ_initrd-expanded/PUPPYLANG'>}
                )
              ]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <set_keymap>
      name: set_keymap
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<Id.KW_Bang '!'>}
                    {<-f>}
                    {<'0initrd/lib/keymaps/'> (${ Id.VSub_Name KEYMAP) <.gz>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'KEYMAP='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'KEYMAP='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEYMAP='> name:KEYMAP)
                      op: assign_op.Equal
                      rhs: {(DQ )}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName KEYMAP)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <default>
                  pattern: (pat.Words words:[{<default>} {<en>} {<us>} {(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <'* Using default keymap'>)}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <rm>
                          more_env: []
                          words: [{<rm>} {<-f>} {<'ZZ_initrd-expanded/PUPPYKEYMAP'>}]
                          redirects: []
                          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.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<-e>} {(DQ <'* Keymap set to: \''> (${ Id.VSub_Name KEYMAP) <'\''>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<-n>} {(DQ ($ Id.VSub_DollarName KEYMAP))}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'ZZ_initrd-expanded/PUPPYKEYMAP'>}
                )
              ]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <generate_initrd>
      name: generate_initrd
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName DLD_ONLY))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <yes>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName INITRD_CREATE))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <no>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'INITRD_FILE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'INITRD_FILE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INITRD_FILE='> name:INITRD_FILE)
                  op: assign_op.Equal
                  rhs: {(DQ <initrd.> (${ Id.VSub_Name INITRD_COMP))}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName INITRD_GZ))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <yes>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'INITRD_FILE='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'INITRD_FILE='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INITRD_FILE='> name:INITRD_FILE)
                      op: assign_op.Equal
                      rhs: {(DQ <initrd.gz>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName USE_PREBUILT))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <no>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_DollarName PROMPT))}
                            {<Id.Lit_Equals '='>}
                            {(DQ <yes>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {<-en>}
                            {
                              (DQ <Id.Lit_BadBackslash '\\'> <'nPress enter to create '> 
                                (${ Id.VSub_Name INITRD_FILE) <', CTRL-C to end here..'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <read>
                          more_env: []
                          words: [{<read>} {<zzz>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> 
                            <'n============================================'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'Now creating the initial ramdisk ('> (${ Id.VSub_Name INITRD_FILE) 
                            <')'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'============================================='> 
                            <Id.Lit_BadBackslash '\\'> <n>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [3581 3599]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-rf>} {<ZZ_initrd-expanded>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {<ZZ_initrd-expanded>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cp>
              more_env: []
              words: [{<cp>} {<-rf>} {<'0initrd/'> <Id.Lit_Star '*'>} {<ZZ_initrd-expanded>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <find>
              more_env: []
              words: [
                {<find>}
                {<ZZ_initrd-expanded>}
                {<-type>}
                {<f>}
                {<-name>}
                {(SQ <'*MARKER'>)}
                {<-delete>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <set_lang>
              more_env: []
              words: [{<set_lang>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <set_keymap>
              more_env: []
              words: [{<set_keymap>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {<ZZ_initrd-expanded>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [PROG]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <get_initrd_progs>
                            more_env: []
                            words: [{<get_initrd_progs>} {(${ Id.VSub_Name ARCH)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              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 PROG)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ )} {(SQ <'#'>) <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.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {<-f>}
                                        {<'../00_'> (${ Id.VSub_Name ARCH) <'/bin/'> 
                                          (${ Id.VSub_Name PROG)
                                        }
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Pipeline
                                  children: [
                                    (command.Simple
                                      blame_tok: <file>
                                      more_env: []
                                      words: [
                                        {<file>}
                                        {<'../00_'> (${ Id.VSub_Name ARCH) <'/bin/'> 
                                          (${ Id.VSub_Name PROG)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <grep>
                                      more_env: []
                                      words: [{<grep>} {<-E>} {(SQ <'dynamically|shared'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_Pipe _>]
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                  arg_word: {<1>}
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.Simple
                              blame_tok: <cp>
                              more_env: []
                              words: [
                                {<cp>}
                                {<-a>}
                                {(${ Id.VSub_Name V)}
                                {<--remove-destination>}
                                {<'../00_'> (${ Id.VSub_Name ARCH) <'/bin/'> (${ Id.VSub_Name PROG)}
                                {<bin>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [3776 3795]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ <00_> (${ Id.VSub_Name ARCH) <'/bin/'> (${ Id.VSub_Name PROG) 
                                <' not found'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<Id.KW_Bang '!'>}
                    {<-f>}
                    {<'bin/nano'>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-rf>} {<usr>} {<'lib/terminfo'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<Id.KW_Bang '!'>}
                                {<-f>}
                                {(DQ ($ Id.VSub_DollarName DISTRO_SPECS))}
                                {<-a>}
                                {<-f>}
                                {<'../DISTRO_SPECS'>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                              name: DISTRO_SPECS
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <'../DISTRO_SPECS'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3903 3925]
                )
              ]
              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.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<Id.KW_Bang '!'>}
                                {<-f>}
                                {(DQ ($ Id.VSub_DollarName DISTRO_SPECS))}
                                {<-a>}
                                {<Id.KW_Bang '!'>}
                                {<-f>}
                                {<'../0initrd/DISTRO_SPECS'>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<-f>}
                            {<'/etc/DISTRO_SPECS'>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                                  name: DISTRO_SPECS
                                )
                              op: assign_op.Equal
                              rhs: {(SQ <'/etc/DISTRO_SPECS'>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<-f>}
                            {<'/initrd/DISTRO_SPECS'>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'DISTRO_SPECS='>
                                  name: DISTRO_SPECS
                                )
                              op: assign_op.Equal
                              rhs: {(SQ <'/initrd/DISTRO_SPECS'>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  spids: [3937 3961]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-f>}
                    {(DQ ($ Id.VSub_DollarName DISTRO_SPECS))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <cp>
                  more_env: []
                  words: [{<cp>} {<-f>} {(${ Id.VSub_Name V)} {(DQ (${ Id.VSub_Name DISTRO_SPECS))} {<.>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [{<Id.Lit_LBracket '['>} {<-x>} {<'../init'>} {<Id.Lit_RBracket ']'>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <cp>
                  more_env: []
                  words: [{<cp>} {<-f>} {(${ Id.VSub_Name V)} {<'../init'>} {<.>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <.>
              more_env: []
              words: [{<.>} {<'./DISTRO_SPECS'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cp>
              more_env: []
              words: [
                {<cp>}
                {<-f>}
                {(${ Id.VSub_Name V)}
                {<'../pkg/busybox_static/bb-'> <Id.Lit_Star '*'> <-symlinks>}
                {<bin>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.CommandList
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <cd>
                          more_env: []
                          words: [{<cd>} {<bin>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <sh>
                      more_env: []
                      words: [{<sh>} {<bb-create-symlinks>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
            (command.Simple
              blame_tok: <sed>
              more_env: []
              words: [{<sed>} {<-i>} {(SQ <'s|^PUPDESKFLG=.*|PUPDESKFLG=0|'>)} {<init>}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <find>
                  more_env: []
                  words: [{<find>} {<.>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <cpio>
                  more_env: []
                  words: [{<cpio>} {<-o>} {<-H>} {<newc>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'../initrd'>}
                    )
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {<..>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-f>}
                    {<initrd.> <Id.Lit_LBracket '['> <gx> <Id.Lit_RBracket ']'> <z>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<initrd.> <Id.Lit_LBracket '['> <gx> <Id.Lit_RBracket ']'> <z>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(${ Id.VSub_Name INITRD_COMP)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <gz>
                  pattern: (pat.Words words:[{<gz>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <gzip>
                      more_env: []
                      words: [{<gzip>} {<-f>} {<initrd>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <xz>
                  pattern: (pat.Words words:[{<xz>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <xz>
                      more_env: []
                      words: [{<xz>} {<--check> <Id.Lit_Equals '='> <crc32>} {<--lzma2>} {<initrd>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {($ Id.VSub_QMark '?')}
                    {<-eq>}
                    {<0>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <ERROR>)}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName INITRD_GZ))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <yes>)}
                    {<-a>}
                    {<-f>}
                    {<initrd.xz>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <mv>
                  more_env: []
                  words: [{<mv>} {<-f>} {<initrd.xz>} {<initrd.gz>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<-e>}
                {
                  (DQ <Id.Lit_BadBackslash '\\'> <'n***        INITRD: '> (${ Id.VSub_Name INITRD_FILE) 
                    <' ['> (${ Id.VSub_Name ARCH) <']'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<-e>}
                {
                  (DQ <'*** /DISTRO_SPECS: '> (${ Id.VSub_Name DISTRO_NAME) <' '> 
                    (${ Id.VSub_Name DISTRO_VERSION) <' '> (${ Id.VSub_Name DISTRO_TARGETARCH)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName USE_PREBUILT))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <yes>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<-e>}
                {
                  (DQ <Id.Lit_BadBackslash '\\'> 
                    <'n@@ -- You can inspect ZZ_initrd-expanded to see the final results -- @@'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<-e>} {(DQ <Finished.> <Id.Lit_BadBackslash '\\'> <n>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ ($ Id.VSub_DollarName USE_PREBUILT))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <yes>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <use_prebuilt_binaries>
              more_env: []
              words: [{<use_prebuilt_binaries>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <select_target_arch>
              more_env: []
              words: [{<select_target_arch>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [4352 4370]
        )
      ]
      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: {(DQ <-v>)}
            )
          ]
          redirects: []
        )
        (command.Simple
          blame_tok: <set_compiler>
          more_env: []
          words: [{<set_compiler>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <select_target_arch>
          more_env: []
          words: [{<select_target_arch>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <setup_cross_compiler>
          more_env: []
          words: [{<setup_cross_compiler>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <build_pkgs>
          more_env: []
          words: [{<build_pkgs>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <cd>
          more_env: []
          words: [{<cd>} {(${ Id.VSub_Name MWD)}]
          redirects: []
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <generate_initrd>
      more_env: []
      words: [{<generate_initrd>}]
      redirects: []
      do_fork: T
    )
  ]
)