(CommandList
  children: [
    (C {(set)} {(-e)})
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(EOF)}
                  here_end_span_id: 84
                  stdin_parts: [
                    ('Usage:\n')
                    ($ VSub_Number '$0')
                    (' [-o <file>] [-u <uid>] [-g <gid>] {-d | <cpio_source>} ...\n')
                    ('\t-o <file>      Create compressed initramfs file named <file> using\n')
                    ('\t\t       gen_init_cpio and compressor depending on the extension\n')
                    ('\t-u <uid>       User ID to map to user ID 0 (root).\n')
                    ('\t\t       <uid> is only meaningful if <cpio_source> is a\n')
                    ('\t\t       directory.  ')
                    (Right_DoubleQuote '"')
                    (squash)
                    (Right_DoubleQuote '"')
                    (' forces all files to uid 0.\n')
                    ('\t-g <gid>       Group ID to map to group ID 0 (root).\n')
                    ('\t\t       <gid> is only meaningful if <cpio_source> is a\n')
                    ('\t\t       directory.  ')
                    (Right_DoubleQuote '"')
                    (squash)
                    (Right_DoubleQuote '"')
                    (' forces all files to gid 0.\n')
                    ('\t<cpio_source>  File list or directory for cpio archive.\n')
                    ('\t\t       If <cpio_source> is a .cpio file it will be used\n')
                    ('\t\t       as direct input to initramfs.\n')
                    ('\t-d             Output the default cpio list.\n')
                    ('\n')
                    ('All options except -o and -l may be repeated and are interpreted\n')
                    ('sequentially and immediately.  -u and -g states are preserved across\n')
                    ('<cpio_source> options so an explicit ')
                    (Right_DoubleQuote '"')
                    ('-u 0 -g 0')
                    (Right_DoubleQuote '"')
                    (' is required\n')
                    ('to reset the root/group mapping.\n')
                  ]
                )
              ]
            )
          ]
          spids: [43]
        )
      spids: [39 42]
    )
    (FuncDef
      name: field
      body: 
        (BraceGroup
          children: [
            (Sentence child:(C {(shift)} {($ VSub_Number '$1')}) terminator:<Op_Semi ';'>)
            (C {(echo)} {($ VSub_Number '$1')})
          ]
          spids: [98]
        )
      spids: [94 97]
    )
    (FuncDef
      name: list_default_initramfs
      body: (BraceGroup children:[(C {(Lit_Other ':')})] spids:[118])
      spids: [114 117]
    )
    (FuncDef
      name: default_initramfs
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLessDash '<<-'>
                  fd: 16777215
                  here_begin: {(EOF)}
                  here_end_span_id: 156
                  stdin_parts: [
                    ('# This is a very simple, default initramfs\n')
                    ('\n')
                    ('dir /dev 0755 0 0\n')
                    ('nod /dev/console 0600 0 0 c 5 1\n')
                    ('dir /root 0700 0 0\n')
                    ('# file /kinit usr/kinit/kinit 0755 0 0\n')
                    ('# slink /init kinit 0755 0 0\n')
                  ]
                )
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(${ VSub_Name output)}
                )
              ]
            )
          ]
          spids: [134]
        )
      spids: [130 133]
    )
    (FuncDef
      name: filetype
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:argv1)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [169]
                )
              ]
              spids: [167]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-L)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ (slink))})]
                  spids: [16777215 195]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ (file))})]
                  spids: [205 220]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ (dir))})]
                  spids: [230 245]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-b)} {(DQ (${ VSub_Name argv1))} {(-o)} {(-c)} 
                          {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ (nod))})]
                  spids: [255 280]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-p)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ (pipe))})]
                  spids: [290 305]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-S)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ (sock))})]
                  spids: [315 330]
                )
              ]
              else_action: [(C {(echo)} {(DQ (invalid))})]
              spids: [340 350]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [164]
        )
      spids: [160 163]
    )
    (FuncDef
      name: list_print_mtime
      body: (BraceGroup children:[(C {(Lit_Other ':')})] spids:[364])
      spids: [360 363]
    )
    (FuncDef
      name: print_mtime
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:my_mtime) op:Equal rhs:{(DQ (0))} spids:[381])]
              spids: [379]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:my_mtime)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(find)} {(DQ ($ VSub_Number '$1'))} {(-printf)} 
                                            {(DQ ('%T@') (Lit_Other '\\') (n))}
                                          )
                                          (C {(sort)} {(-r)})
                                          (C {(head)} {(-n)} {(1)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [405 433]
                              )
                            }
                          spids: [404]
                        )
                      ]
                      spids: [404]
                    )
                  ]
                  spids: [16777215 401]
                )
              ]
              spids: [16777215 436]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('# Last modified: ') (${ VSub_Name my_mtime))}]
              redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(${ VSub_Name output)})]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ )}]
              redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(${ VSub_Name output)})]
            )
          ]
          spids: [376]
        )
      spids: [372 375]
    )
    (FuncDef
      name: list_parse
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp Op_DPipe]
              children: [
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-L)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                (C {(echo)} 
                  {
                    (DQ ($ VSub_Number '$1') (' ') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>))
                  }
                )
                (C {(Lit_Other ':')})
              ]
            )
          ]
          spids: [474]
        )
      spids: [470 473]
    )
    (FuncDef
      name: parse
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:location)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [524]
                )
              ]
              spids: [522]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (DQ (/) 
                        (BracedVarSub
                          token: <VSub_Name location>
                          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(${ VSub_Name srcdir)})
                          spids: [535 541]
                        )
                      )
                    }
                  spids: [532]
                )
              ]
              spids: [530]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name '$name'))})
                                  (C {(sed)} {(-e)} {(SQ <'s://*:/:g'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [550 566]
                      )
                    }
                  spids: [549]
                )
              ]
              spids: [549]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mode)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [571]
                )
              ]
              spids: [569]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:uid)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [579]
                )
              ]
              spids: [577]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:gid)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$4'))}
                  spids: [587]
                )
              ]
              spids: [585]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ftype)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(filetype)} {(DQ (${ VSub_Name location))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [596 604]
                      )
                    }
                  spids: [595]
                )
              ]
              spids: [593]
            )
            (AndOr
              ops: [Op_DAmp Op_DPipe Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$root_uid'))} {(Lit_Other '=')} {(DQ (squash))} 
                  {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:uid) op:Equal rhs:{(0)} spids:[627])]
                  spids: [627]
                )
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$uid'))} {(-eq)} {(DQ ($ VSub_Name '$root_uid'))} 
                  {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:uid) op:Equal rhs:{(0)} spids:[648])]
                  spids: [648]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DPipe Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$root_gid'))} {(Lit_Other '=')} {(DQ (squash))} 
                  {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:gid) op:Equal rhs:{(0)} spids:[668])]
                  spids: [668]
                )
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$gid'))} {(-eq)} {(DQ ($ VSub_Name '$root_gid'))} 
                  {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:gid) op:Equal rhs:{(0)} spids:[689])]
                  spids: [689]
                )
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:str)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name mode) (' ') (${ VSub_Name uid) (' ') (${ VSub_Name gid))}
                  spids: [695]
                )
              ]
              spids: [693]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(DQ (${ VSub_Name ftype))} {(Lit_Other '=')} {(DQ (invalid))} 
                  {(Lit_Other ']')}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(DQ (${ VSub_Name location))} {(Lit_Other '=')} 
                  {(DQ (${ VSub_Name srcdir))} {(Lit_Other ']')}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
              ]
            )
            (Case
              to_match: {(DQ (${ VSub_Name ftype))}
              arms: [
                (case_arm
                  pat_list: [{(DQ (file))}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:str)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name ftype) (' ') (${ VSub_Name name) (' ') 
                                (${ VSub_Name location) (' ') (${ VSub_Name str)
                              )
                            }
                          spids: [778]
                        )
                      ]
                      spids: [778]
                    )
                  ]
                  spids: [772 775 798 16777215]
                )
                (case_arm
                  pat_list: [{(DQ (nod))}]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:dev)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [{(ls)} {(-l)} {(DQ (${ VSub_Name location))}]
                                        more_env: [(env_pair name:LC_ALL val:{(C)} spids:[811])]
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [810 823]
                              )
                            }
                          spids: [809]
                        )
                      ]
                      spids: [807]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:maj)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(field)} {(5)} {(${ VSub_Name dev)})]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [829 837]
                              )
                            }
                          spids: [828]
                        )
                      ]
                      spids: [826]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:min)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(field)} {(6)} {(${ VSub_Name dev)})]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [843 851]
                              )
                            }
                          spids: [842]
                        )
                      ]
                      spids: [840]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:maj)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name maj>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(',')})
                                spids: [855 859]
                              )
                            }
                          spids: [854]
                        )
                      ]
                      spids: [854]
                    )
                    (AndOr
                      ops: [Op_DAmp Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(-b)} {(DQ (${ VSub_Name location))} {(Lit_Other ']')})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:dev)
                              op: Equal
                              rhs: {(DQ (b))}
                              spids: [877]
                            )
                          ]
                          spids: [877]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:dev)
                              op: Equal
                              rhs: {(DQ (c))}
                              spids: [884]
                            )
                          ]
                          spids: [884]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:str)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name ftype) (' ') (${ VSub_Name name) (' ') (${ VSub_Name str) 
                                (' ') (${ VSub_Name dev) (' ') (${ VSub_Name maj) (' ') (${ VSub_Name min)
                              )
                            }
                          spids: [891]
                        )
                      ]
                      spids: [891]
                    )
                  ]
                  spids: [801 804 919 16777215]
                )
                (case_arm
                  pat_list: [{(DQ (slink))}]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:target)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(readlink)} {(DQ (${ VSub_Name location))})]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [931 939]
                              )
                            }
                          spids: [930]
                        )
                      ]
                      spids: [928]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:str)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name ftype) (' ') (${ VSub_Name name) (' ') 
                                (${ VSub_Name target) (' ') (${ VSub_Name str)
                              )
                            }
                          spids: [942]
                        )
                      ]
                      spids: [942]
                    )
                  ]
                  spids: [922 925 962 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:str)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name ftype) (' ') (${ VSub_Name name) (' ') (${ VSub_Name str))
                            }
                          spids: [969]
                        )
                      ]
                      spids: [969]
                    )
                  ]
                  spids: [965 966 985 16777215]
                )
              ]
              spids: [761 769 988]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ (${ VSub_Name str))}]
              redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(${ VSub_Name output)})]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [519]
        )
      spids: [515 518]
    )
    (FuncDef
      name: unknown_option
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(printf)}
                {
                  (DQ ('ERROR: unknown option ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                    ($ VSub_Name '$arg') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (Lit_Other '\\') (n)
                  )
                }
              ]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (SimpleCommand
              words: [{(printf)} {(DQ ("If the filename validly begins with '-', "))}]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (SimpleCommand
              words: [{(printf)} {(DQ ('then it must be prefixed') (Lit_Other '\\') (n))}]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (SimpleCommand
              words: [{(printf)} {(DQ ("by './' so that it won't be interpreted as an option."))}]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (SimpleCommand
              words: [{(printf)} {(DQ (Lit_Other '\\') (n))}]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (SimpleCommand
              words: [{(usage)}]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [1019]
        )
      spids: [1015 1018]
    )
    (FuncDef
      name: list_header
      body: (BraceGroup children:[(C {(Lit_Other ':')})] spids:[1097])
      spids: [1093 1096]
    )
    (FuncDef
      name: header
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(printf)}
                {
                  (DQ (Lit_Other '\\') ('n#####################') (Lit_Other '\\') ('n# ') 
                    ($ VSub_Number '$1') (Lit_Other '\\') (n)
                  )
                }
              ]
              redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(${ VSub_Name output)})]
            )
          ]
          spids: [1109]
        )
      spids: [1105 1108]
    )
    (FuncDef
      name: dir_filelist
      body: 
        (BraceGroup
          children: [
            (C {(${ VSub_Name dep_list) (header)} {(DQ ($ VSub_Number '$1'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:srcdir)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Number '$1'))})
                                  (C {(sed)} {(-e)} {(SQ <'s://*:/:g'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1155 1171]
                      )
                    }
                  spids: [1154]
                )
              ]
              spids: [1154]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dirlist)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(find)} {(DQ (${ VSub_Name srcdir))} {(-printf)} 
                                {(DQ ('%p %m %U %G') (Lit_Other '\\') (n))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1175 1191]
                      )
                    }
                  spids: [1174]
                )
              ]
              spids: [1174]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ (${ VSub_Name dirlist))})
                                          (C {(wc)} {(-l)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1204 1218]
                              )
                            )
                          } {(-gt)} {(1)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(${ VSub_Name dep_list) (print_mtime)} {(DQ ($ VSub_Number '$1'))})
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name dirlist))})
                        (WhileUntil
                          keyword: <KW_While while>
                          cond: [(Sentence child:(C {(read)} {(x)}) terminator:<Op_Semi ';'>)]
                          body: 
                            (DoGroup
                              children: [(C {(${ VSub_Name dep_list) (parse)} {(${ VSub_Name x)})]
                              spids: [1261 1274]
                            )
                        )
                      ]
                      negated: F
                    )
                  ]
                  spids: [16777215 1228]
                )
              ]
              spids: [16777215 1277]
            )
          ]
          spids: [1140]
        )
      spids: [1136 1139]
    )
    (FuncDef
      name: input_file
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:source)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [1298]
                )
              ]
              spids: [1298]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(${ VSub_Name dep_list) (header)} {(DQ ($ VSub_Number '$1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:is_cpio)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Number '$1'))})
                                            (C {(sed)} {(SQ <'s/^.*\\.cpio\\(\\..*\\)\\?/cpio/'>)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [1332 1346]
                                )
                              )
                            }
                          spids: [1330]
                        )
                      ]
                      spids: [1330]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {($ VSub_Number '$2')} {(-eq)} {(0)} {(-a)} 
                                  {(${ VSub_Name is_cpio)} {(Lit_Other '=')} {(DQ (cpio))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:cpio_file)
                                  op: Equal
                                  rhs: {($ VSub_Number '$1')}
                                  spids: [1378]
                                )
                              ]
                              spids: [1378]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Number '$1'))})
                                    (C {(grep)} {(-q)} {(SQ <'^.*\\.cpio\\..*'>)})
                                  ]
                                  negated: F
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:is_cpio_compressed)
                                      op: Equal
                                      rhs: {(DQ (compressed))}
                                      spids: [1400]
                                    )
                                  ]
                                  spids: [1400]
                                )
                              ]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(${ VSub_Name dep_list)} 
                                  {(Lit_Other ']')}
                                )
                                (C {(echo)} {(DQ ($ VSub_Number '$1'))})
                              ]
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [16777215 1375]
                        )
                      ]
                      spids: [16777215 1432]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name dep_list)} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(print_mtime)} {(DQ ($ VSub_Number '$1'))}]
                              redirects: [
                                (Redir
                                  op: <Redir_DGreat '>>'>
                                  fd: 16777215
                                  arg_word: {(${ VSub_Name output)}
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(cat)} {(DQ ($ VSub_Number '$1'))}]
                              redirects: [
                                (Redir
                                  op: <Redir_DGreat '>>'>
                                  fd: 16777215
                                  arg_word: {(${ VSub_Name output)}
                                )
                              ]
                            )
                          ]
                          spids: [16777215 1448]
                        )
                      ]
                      else_action: [
                        (C {(echo)} 
                          {
                            (DQ ($ VSub_Number '$1') (' ') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\\\'>
                              )
                            )
                          }
                        )
                        (Pipeline
                          children: [
                            (C {(cat)} {(DQ ($ VSub_Number '$1'))})
                            (WhileUntil
                              keyword: <KW_While while>
                              cond: [
                                (Sentence
                                  child: (C {(read)} {(type)} {(dir)} {(file)} {(perm)})
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$type'))} 
                                                  {(Lit_Other '=')} {(DQ (file))} {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Sentence
                                              child: 
                                                (C {(echo)} 
                                                  {
                                                    (DQ ($ VSub_Name '$file') (' ') 
                                                      (EscapedLiteralPart
                                                        token: <Lit_EscapedChar '\\\\'>
                                                      )
                                                    )
                                                  }
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [16777215 1531]
                                        )
                                      ]
                                      spids: [16777215 1544]
                                    )
                                  ]
                                  spids: [1511 1547]
                                )
                            )
                          ]
                          negated: F
                        )
                      ]
                      spids: [1477 1550]
                    )
                  ]
                  spids: [16777215 1317]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(dir_filelist)} {(DQ ($ VSub_Number '$1'))})]
                  spids: [1553 1566]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [
                    {(echo)}
                    {(DQ ('  ') (${ VSub_Name prog) (": Cannot open '") ($ VSub_Number '$1') ("'"))}
                  ]
                  redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                )
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
              spids: [1576 1600]
            )
          ]
          spids: [1295]
        )
      spids: [1291 1294]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:prog) op:Equal rhs:{($ VSub_Number '$0')} spids:[1605])]
      spids: [1605]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:root_uid) op:Equal rhs:{(0)} spids:[1608])]
      spids: [1608]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:root_gid) op:Equal rhs:{(0)} spids:[1611])]
      spids: [1611]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:dep_list) op:Equal rhs:{(EmptyPart)} spids:[1614])]
      spids: [1614]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:cpio_file) op:Equal rhs:{(EmptyPart)} spids:[1616])]
      spids: [1616]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:cpio_list) op:Equal rhs:{(EmptyPart)} spids:[1618])]
      spids: [1618]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:output) op:Equal rhs:{(DQ (/dev/stdout))} spids:[1620])]
      spids: [1620]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:output_file) op:Equal rhs:{(DQ )} spids:[1625])]
      spids: [1625]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:is_cpio_compressed)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [1629]
        )
      ]
      spids: [1629]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:compr)
          op: Equal
          rhs: {(DQ ('gzip -n -9 -f'))}
          spids: [1631]
        )
      ]
      spids: [1631]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:arg)
          op: Equal
          rhs: {(DQ ($ VSub_Number '$1'))}
          spids: [1637]
        )
      ]
      spids: [1637]
    )
    (Case
      to_match: {(DQ ($ VSub_Name '$arg'))}
      arms: [
        (case_arm
          pat_list: [{(DQ (-l))}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dep_list)
                  op: Equal
                  rhs: {(DQ (list_))}
                  spids: [1660]
                )
              ]
              spids: [1660]
            )
            (C {(echo)} 
              {
                (DQ ('deps_initramfs := ') ($ VSub_Number '$0') (' ') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>)
                )
              }
            )
            (C {(shift)})
          ]
          spids: [1651 1654 1679 16777215]
        )
        (case_arm
          pat_list: [{(DQ (-o))}]
          action: [
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:output_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [1694]
                )
              ]
              spids: [1694]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cpio_list)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(mktemp)} 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Name TMPDIR>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(Lit_Slash /) (tmp)}
                                        )
                                      spids: [1705 1710]
                                    ) (/cpiolist.XXXXXX)
                                  }
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [1702 1712]
                        )
                      )
                    }
                  spids: [1700]
                )
              ]
              spids: [1700]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:output)
                  op: Equal
                  rhs: {(${ VSub_Name cpio_list)}
                  spids: [1716]
                )
              ]
              spids: [1716]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name '$output_file'))})
                    (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.gz) (Lit_Other '$'))})
                  ]
                  negated: F
                )
                (C {(Lit_Other '[')} {(-x)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(which)} {(gzip)}]
                                redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [1749 1757]
                      )
                    )
                  } {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:compr)
                      op: Equal
                      rhs: {(DQ ('gzip -n -9 -f'))}
                      spids: [1766]
                    )
                  ]
                  spids: [1766]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name '$output_file'))})
                    (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.bz2) (Lit_Other '$'))})
                  ]
                  negated: F
                )
                (C {(Lit_Other '[')} {(-x)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(which)} {(bzip2)}]
                                redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [1799 1807]
                      )
                    )
                  } {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:compr)
                      op: Equal
                      rhs: {(DQ ('bzip2 -9 -f'))}
                      spids: [1816]
                    )
                  ]
                  spids: [1816]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name '$output_file'))})
                    (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.lzma) (Lit_Other '$'))})
                  ]
                  negated: F
                )
                (C {(Lit_Other '[')} {(-x)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(which)} {(lzma)}]
                                redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [1849 1857]
                      )
                    )
                  } {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:compr)
                      op: Equal
                      rhs: {(DQ ('lzma -9 -f'))}
                      spids: [1866]
                    )
                  ]
                  spids: [1866]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name '$output_file'))})
                    (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.xz) (Lit_Other '$'))})
                  ]
                  negated: F
                )
                (C {(Lit_Other '[')} {(-x)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(which)} {(xz)}]
                                redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [1899 1907]
                      )
                    )
                  } {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:compr)
                      op: Equal
                      rhs: {(DQ ('xz --check=crc32 --lzma2=dict=1MiB'))}
                      spids: [1916]
                    )
                  ]
                  spids: [1916]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name '$output_file'))})
                    (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.lzo) (Lit_Other '$'))})
                  ]
                  negated: F
                )
                (C {(Lit_Other '[')} {(-x)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(which)} {(lzop)}]
                                redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [1949 1957]
                      )
                    )
                  } {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:compr)
                      op: Equal
                      rhs: {(DQ ('lzop -9 -f'))}
                      spids: [1966]
                    )
                  ]
                  spids: [1966]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name '$output_file'))})
                    (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.lz4) (Lit_Other '$'))})
                  ]
                  negated: F
                )
                (C {(Lit_Other '[')} {(-x)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(which)} {(lz4)}]
                                redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [1999 2007]
                      )
                    )
                  } {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:compr)
                      op: Equal
                      rhs: {(DQ ('lz4 -l -9 -f'))}
                      spids: [2016]
                    )
                  ]
                  spids: [2016]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name '$output_file'))})
                    (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.cpio) (Lit_Other '$'))})
                  ]
                  negated: F
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:compr)
                      op: Equal
                      rhs: {(DQ (cat))}
                      spids: [2042]
                    )
                  ]
                  spids: [2042]
                )
              ]
            )
            (C {(shift)})
          ]
          spids: [1682 1685 2051 16777215]
        )
      ]
      spids: [1642 1648 2053]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [
        (Sentence
          child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
          terminator: <Op_Semi ';'>
        )
      ]
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:arg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [2071]
                )
              ]
              spids: [2071]
            )
            (C {(shift)})
            (Case
              to_match: {(DQ ($ VSub_Name '$arg'))}
              arms: [
                (case_arm
                  pat_list: [{(DQ (-u))}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:root_uid)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [2098]
                        )
                      ]
                      spids: [2098]
                    )
                    (C {(shift)})
                  ]
                  spids: [2089 2092 2107 16777215]
                )
                (case_arm
                  pat_list: [{(DQ (-g))}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:root_gid)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [2119]
                        )
                      ]
                      spids: [2119]
                    )
                    (C {(shift)})
                  ]
                  spids: [2110 2113 2128 16777215]
                )
                (case_arm
                  pat_list: [{(DQ (-d))}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:default_list)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$arg'))}
                          spids: [2140]
                        )
                      ]
                      spids: [2140]
                    )
                    (C {(${ VSub_Name dep_list) (default_initramfs)})
                  ]
                  spids: [2131 2134 2152 16777215]
                )
                (case_arm
                  pat_list: [{(DQ (-h))}]
                  action: [(C {(usage)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})]
                  spids: [2155 2158 2169 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$arg'))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ (-)) (Lit_Other '*')}]
                          action: [(C {(unknown_option)})]
                          spids: [2185 2189 2195 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(input_file)} {(DQ ($ VSub_Name '$arg'))} {(DQ ($ VSub_Pound '$#'))})
                          ]
                          spids: [2198 2199 2216 16777215]
                        )
                      ]
                      spids: [2176 2182 2219]
                    )
                  ]
                  spids: [2172 2173 2222 16777215]
                )
              ]
              spids: [2080 2086 2225]
            )
          ]
          spids: [2068 2227]
        )
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(${ VSub_Name output_file)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name cpio_file)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:timestamp)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [2270]
                        )
                      ]
                      spids: [2270]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$KBUILD_BUILD_TIMESTAMP'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:timestamp)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (AndOr
                                                  ops: [Op_DPipe]
                                                  children: [
                                                    (C {(date)} 
                                                      {(-d) 
                                                        (DQ ($ VSub_Name '$KBUILD_BUILD_TIMESTAMP'))
                                                      } {(Lit_Other '+') (Lit_Other '%') (s)}
                                                    )
                                                    (C {(Lit_Other ':')})
                                                  ]
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [2289 2304]
                                        )
                                      )
                                    }
                                  spids: [2287]
                                )
                              ]
                              spids: [2287]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$timestamp'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:timestamp)
                                          op: Equal
                                          rhs: {(DQ ('-t ') ($ VSub_Name '$timestamp'))}
                                          spids: [2322]
                                        )
                                      ]
                                      spids: [2322]
                                    )
                                  ]
                                  spids: [16777215 2319]
                                )
                              ]
                              spids: [16777215 2329]
                            )
                          ]
                          spids: [16777215 2284]
                        )
                      ]
                      spids: [16777215 2332]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cpio_tfile)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(mktemp)} 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name TMPDIR>
                                              suffix_op: 
                                                (StringUnary
                                                  op_id: VTest_ColonHyphen
                                                  arg_word: {(Lit_Slash /) (tmp)}
                                                )
                                              spids: [2340 2345]
                                            ) (/cpiofile.XXXXXX)
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2337 2347]
                                )
                              )
                            }
                          spids: [2335]
                        )
                      ]
                      spids: [2335]
                    )
                    (SimpleCommand
                      words: [
                        {(usr/gen_init_cpio)}
                        {($ VSub_Name '$timestamp')}
                        {(${ VSub_Name cpio_list)}
                      ]
                      redirects: [
                        (Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(${ VSub_Name cpio_tfile)}
                        )
                      ]
                    )
                  ]
                  spids: [16777215 2267]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cpio_tfile)
                      op: Equal
                      rhs: {(${ VSub_Name cpio_file)}
                      spids: [2369]
                    )
                  ]
                  spids: [2369]
                )
              ]
              spids: [2366 2375]
            )
            (C {(rm)} {(${ VSub_Name cpio_list)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name is_cpio_compressed))} {(Lit_Other '=')} 
                          {(DQ (compressed))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)} {(${ VSub_Name cpio_tfile)}]
                      redirects: [
                        (Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(${ VSub_Name output_file)}
                        )
                      ]
                    )
                  ]
                  spids: [16777215 2404]
                )
              ]
              else_action: [
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (Subshell
                      child: 
                        (Pipeline
                          children: [
                            (C {(cat)} {(${ VSub_Name cpio_tfile)})
                            (SimpleCommand
                              words: [{(${ VSub_Name compr)} {(-)}]
                              redirects: [
                                (Redir
                                  op: <Redir_Great '>'>
                                  fd: 16777215
                                  arg_word: {(${ VSub_Name output_file)}
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                      spids: [2423 2443]
                    )
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (Sentence
                              child: (C {(rm)} {(-f)} {(${ VSub_Name output_file)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(false)})
                          ]
                        )
                      spids: [2449 2461]
                    )
                  ]
                )
              ]
              spids: [2420 2464]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name cpio_file)} {(Lit_Other ']')})
                (C {(rm)} {(${ VSub_Name cpio_tfile)})
              ]
            )
          ]
          spids: [16777215 2251]
        )
      ]
      spids: [16777215 2485]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)