(command.CommandList
  children: [
    (C {(.)} {(/lib/lsb/init-functions)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: 
            {(/sbin) (Id.Lit_Other ':') (/usr/sbin) (Id.Lit_Other ':') (/bin) (Id.Lit_Other ':') 
              (/usr/bin)
            }
          spids: [39]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$DELAYLOGIN'))} {(Id.Lit_RBracket ']')})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:DELAYLOGIN)
              op: assign_op.Equal
              rhs: {(yes)}
              spids: [58]
            )
          ]
        )
      ]
    )
    (C {(.)} {(/lib/init/vars.sh)})
    (command.ShFunction
      name: do_start
      body: 
        (command.BraceGroup
          children: [
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$DELAYLOGIN'))}
              arms: [
                (case_arm
                  pat_list: [{(Y) (Id.Lit_Star '*')} {(y) (Id.Lit_Star '*')}]
                  action: [
                    (command.Simple
                      words: [{(echo)} {(DQ ('System bootup in progress - please wait'))}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_Great val:'>' span_id:113)
                          fd: -1
                          arg_word: {(/var/lib/initscripts/nologin)}
                        )
                      ]
                    )
                  ]
                  spids: [99 104 118 -1]
                )
              ]
            )
            (command.Simple
              words: [{(Id.Lit_Other ':')}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:131)
                  fd: -1
                  arg_word: {(/var/run/utmp)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (C {(grep)} {(-q)} {(Id.Lit_Other '^') (utmp) (Id.Lit_Other ':')} {(/etc/group)})
                  ]
                  action: [
                    (C {(chmod)} {(664)} {(/var/run/utmp)})
                    (C {(chgrp)} {(utmp)} {(/var/run/utmp)})
                  ]
                  spids: [136 149]
                )
              ]
            )
            (C {(rm)} {(-f)} {(/tmp/.clean)} {(/run/.clean)} {(/run/lock/.clean)})
            (C {(rm)} {(-f)} {(/tmp/.tmpfs)} {(/run/.tmpfs)} {(/run/lock/.tmpfs)})
          ]
        )
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_Number '$1'))}
      arms: [
        (case_arm
          pat_list: [{(start)} {(DQ )}]
          action: [(C {(do_start)})]
          spids: [211 215 221 -1]
        )
        (case_arm
          pat_list: [{(restart)} {(reload)} {(force-reload)}]
          action: [
            (command.Simple
              words: [{(echo)} {(DQ ("Error: argument '") ($ Id.VSub_Number '$1') ("' not supported"))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:240)
                  fd: -1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:244)
              arg_word: {(3)}
            )
          ]
          spids: [224 229 249 -1]
        )
        (case_arm pat_list:[{(stop)} {(status)}] spids:[252 255 262 -1])
        (case_arm
          pat_list: [{(Id.Lit_Star '*')}]
          action: [
            (command.Simple
              words: [{(echo)} {(DQ ('Usage: bootmisc.sh [start|stop]'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:275)
                  fd: -1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:279)
              arg_word: {(3)}
            )
          ]
          spids: [265 266 284 -1]
        )
      ]
    )
    (C {(Id.Lit_Other ':')})
  ]
)