(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: {(DQ <'/sbin:/bin:/usr/sbin:/usr/bin'>)}
          spids: [35]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NAME)
          op: assign_op.Equal
          rhs: {(DQ <plymouth>)}
          spids: [40]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DESC)
          op: assign_op.Equal
          rhs: {(DQ <'Boot splash manager'>)}
          spids: [45]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-x>} {<'/sbin/plymouthd'>})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-r>} {(DQ <'/etc/default/'> (${ Id.VSub_Name NAME))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [(C {<.>} {(DQ <'/etc/default/'> (${ Id.VSub_Name NAME))})]
          spids: [64 79]
        )
      ]
    )
    (C {<.>} {<'/lib/lsb/init-functions'>})
    (C {<set>} {<-e>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SPLASH)
          op: assign_op.Equal
          rhs: {(DQ <true>)}
          spids: [104]
        )
      ]
    )
    (command.ForEach
      iter_name: ARGUMENT
      iter_words: [
        {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<cat>} {<'/proc/cmdline'>}))}
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {(DQ (${ Id.VSub_Name ARGUMENT))}
              arms: [
                (case_arm
                  pat_list: [{<splash> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SPLASH)
                          op: assign_op.Equal
                          rhs: {(DQ <true>)}
                          spids: [140]
                        )
                      ]
                    )
                  ]
                  spids: [135 137 146 -1]
                )
                (case_arm
                  pat_list: [{<nosplash> <Id.Lit_Star '*'>} {<plymouth.enable> <Id.Lit_Equals '='> <0>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SPLASH)
                          op: assign_op.Equal
                          rhs: {(DQ <false>)}
                          spids: [159]
                        )
                      ]
                    )
                  ]
                  spids: [150 156 165 -1]
                )
              ]
            )
          ]
        )
    )
    (command.Case
      to_match: {(DQ (${ Id.VSub_Number 1))}
      arms: [
        (case_arm
          pat_list: [{<start>}]
          action: [
            (command.Case
              to_match: {(DQ (${ Id.VSub_Name SPLASH))}
              arms: [
                (case_arm
                  pat_list: [{<true>}]
                  action: [(C {<'/bin/plymouth'>} {<quit>} {<--retain-splash>})]
                  spids: [199 200 210 -1]
                )
              ]
            )
          ]
          spids: [184 185 216 -1]
        )
        (case_arm
          pat_list: [{<stop>}]
          action: [
            (command.Case
              to_match: {(DQ (${ Id.VSub_Name SPLASH))}
              arms: [
                (case_arm
                  pat_list: [{<true>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Pipeline
                                  children: [(C {<plymouth>} {<--ping>})]
                                  negated: T
                                )
                              ]
                            )
                          action: [(C {<'/sbin/plymouthd'>} {<--mode> <Id.Lit_Equals '='> <shutdown>})]
                          spids: [239 248]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:RUNLEVEL)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<'/sbin/runlevel'>})
                                        (C {<cut>} {<-d>} {(DQ <' '>)} {<-f>} {<2>})
                                      ]
                                      negated: F
                                    )
                                )
                              )
                            }
                          spids: [262]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name RUNLEVEL))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TEXT)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'Shutting down system...'>)}
                                  spids: [300]
                                )
                              ]
                            )
                          ]
                          spids: [296 297 306 -1]
                        )
                        (case_arm
                          pat_list: [{<6>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TEXT)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'Restarting system...'>)}
                                  spids: [314]
                                )
                              ]
                            )
                          ]
                          spids: [310 311 320 -1]
                        )
                      ]
                    )
                    (C {<'/bin/plymouth'>} {<message>} 
                      {<--text> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name TEXT))}
                    )
                    (C {<'/bin/plymouth'>} {<--show-splash>})
                  ]
                  spids: [235 236 346 -1]
                )
              ]
            )
          ]
          spids: [220 221 352 -1]
        )
        (case_arm pat_list:[{<restart>} {<force-reload>}] spids:[356 359 363 -1])
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.Simple
              words: [
                {<echo>}
                {(DQ <'Usage: '> (${ Id.VSub_Number 0) <' {start|stop|restart|force-reload}'>)}
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [367 368 390 -1]
        )
      ]
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)