(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:MAXDISKUSAGE) op:Equal rhs:{(1)} spids:[14])]
      spids: [14]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:violators)
          op: Equal
          rhs: {(DQ (/tmp/diskhogs0.) ($ VSub_Dollar '$$'))}
          spids: [17]
        )
      ]
      spids: [17]
    )
    (C {(trap)} 
      {
        (DQ 
          (CommandSubPart
            command_list: (CommandList children:[(C {(which)} {(rm)})])
            left_token: <Left_Backtick '`'>
            spids: [27 31]
          ) (' -f ') ($ VSub_Name '$violators')
        )
      } {(0)}
    )
    (Pipeline
      children: [
        (ForEach
          iter_name: name
          iter_words: [
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(cut)} {(-d) (Lit_Other ':')} {(-f1) (Lit_Comma ',') (3)} {(/etc/passwd)})
                          (C {(awk)} {(-F) (Lit_Other ':')} {(SQ <'$2 > 99 { print $1 }'>)})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [45 67]
              )
            }
          ]
          do_arg_iter: F
          body: 
            (DoGroup
              children: [
                (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$name') (' '))})
                (Pipeline
                  children: [
                    (C {(find)} {(/)} {(/usr)} {(/var)} {(/Users)} {(-xdev)} {(-user)} 
                      {($ VSub_Name '$name')} {(-type)} {(f)} {(-ls)}
                    )
                    (C {(awk)} {(SQ <'{ sum += $7 } END { print sum / (1024*1024) }'>)})
                  ]
                  negated: F
                )
              ]
              spids: [69 123]
            )
          spids: [44 16777215]
        )
        (SimpleCommand
          words: [
            {(awk)}
            {
              (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('2 > ') 
                ($ VSub_Name '$MAXDISKUSAGE') (' { print ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('0 }')
              )
            }
          ]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$violators')})]
        )
      ]
      negated: F
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-s)} {($ VSub_Name '$violators')} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('No users exceed the disk quota of ') (${ VSub_Name MAXDISKUSAGE) (MB))})
            (C {(cat)} {($ VSub_Name '$violators')})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [16777215 157]
        )
      ]
      spids: [16777215 180]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [(Sentence child:(C {(read)} {(account)} {(usage)}) terminator:<Op_Semi ';'>)]
      body: 
        (DoGroup
          children: [
            (Pipeline
              children: [
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op: <Redir_DLess '<<'>
                      fd: 16777215
                      here_begin: {(EOF)}
                      here_end_span_id: 237
                      stdin_parts: [
                        ('Your disk usage is ')
                        (${ VSub_Name usage)
                        ('MB, but you have been allocated only\n')
                        (${ VSub_Name MAXDISKUSAGE)
                        ('MB. This means that you need to either delete some of \n')
                        (
"your files, compress your files (see 'gzip' or 'bzip2' for powerful and\n"
                        )
                        ('easy-to-use compression programs), or talk with us about increasing\n')
                        ('your disk allocation.\n')
                        ('\n')
                        ('Thanks for your cooperation in this matter.\n')
                        ('\n')
                        ('Dave Taylor @ x554\n')
                      ]
                    )
                  ]
                )
                (C {(fmt)})
                (C {(mail)} {(-s)} {(DQ ('Warning: ') ($ VSub_Name '$account') (' Exceeds Quota'))} 
                  {($ VSub_Name '$account')}
                )
              ]
              negated: F
            )
            (C {(echo)} 
              {
                (DQ ('Account ') ($ VSub_Name '$account') (' has ') ($ VSub_Name '$usage') 
                  (' MB of disk space. User notified.')
                )
              }
            )
          ]
          spids: [193 250]
        )
      redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Name '$violators')})]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)