(command.CommandList
  children: [
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<gawk>} {<--version>}]
          redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
          more_env: []
          do_fork: T
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                      {(DQ <--version>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<printf>} {(SQ <'0.23\\n'>)})
                (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
              ]
            )
          ]
          spids: [119 136]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShFunction
      name: usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [
                {<printf>}
                {(SQ <'%s\\n'>)}
                {
                  (SQ <'This utility converts ANSI codes in data passed to stdin\n'> 
                    <'It has 4 optional parameters:\n'> <'--bg=dark --palette=linux|solarized|tango|xterm --css-only|--body-only\n'> 
                    <'E.g.: ls -l --color=always | ansi2html.sh --bg=dark > ls.html'>
                  )
                }
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                      {(DQ <--help>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<usage>})]
          spids: [181 198]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShFunction
      name: processArg
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                  {(DQ <'--bg=dark'>)} {<Id.Lit_RBracket ']'>}
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dark_bg='> name:dark_bg)
                              op: assign_op.Equal
                              rhs: {<yes>}
                              spids: [231]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                  {(DQ <--css-only>)} {<Id.Lit_RBracket ']'>}
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'css_only='> name:css_only)
                              op: assign_op.Equal
                              rhs: {<yes>}
                              spids: [259]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                  {(DQ <--body-only>)} {<Id.Lit_RBracket ']'>}
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'body_only='>
                                  name: body_only
                                )
                              op: assign_op.Equal
                              rhs: {<yes>}
                              spids: [287]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                              {(DQ <'--palette=solarized'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P0='> name:P0)
                              op: assign_op.Equal
                              rhs: {<073642>}
                              spids: [321]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P1='> name:P1)
                              op: assign_op.Equal
                              rhs: {<D30102>}
                              spids: [325]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P2='> name:P2)
                              op: assign_op.Equal
                              rhs: {<859900>}
                              spids: [329]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P3='> name:P3)
                              op: assign_op.Equal
                              rhs: {<B58900>}
                              spids: [333]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P4='> name:P4)
                              op: assign_op.Equal
                              rhs: {<268BD2>}
                              spids: [338]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P5='> name:P5)
                              op: assign_op.Equal
                              rhs: {<D33682>}
                              spids: [342]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P6='> name:P6)
                              op: assign_op.Equal
                              rhs: {<2AA198>}
                              spids: [346]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P7='> name:P7)
                              op: assign_op.Equal
                              rhs: {<EEE8D5>}
                              spids: [350]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P8='> name:P8)
                              op: assign_op.Equal
                              rhs: {<002B36>}
                              spids: [355]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P9='> name:P9)
                              op: assign_op.Equal
                              rhs: {<CB4B16>}
                              spids: [359]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P10='> name:P10)
                              op: assign_op.Equal
                              rhs: {<586E75>}
                              spids: [363]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P11='> name:P11)
                              op: assign_op.Equal
                              rhs: {<657B83>}
                              spids: [367]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P12='> name:P12)
                              op: assign_op.Equal
                              rhs: {<839496>}
                              spids: [372]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P13='> name:P13)
                              op: assign_op.Equal
                              rhs: {<6C71C4>}
                              spids: [376]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P14='> name:P14)
                              op: assign_op.Equal
                              rhs: {<93A1A1>}
                              spids: [380]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P15='> name:P15)
                              op: assign_op.Equal
                              rhs: {<FDF6E3>}
                              spids: [384]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [297 314]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                              {(DQ <'--palette=solarized-xterm'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P0='> name:P0)
                              op: assign_op.Equal
                              rhs: {<262626>}
                              spids: [417]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P1='> name:P1)
                              op: assign_op.Equal
                              rhs: {<AF0000>}
                              spids: [421]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P2='> name:P2)
                              op: assign_op.Equal
                              rhs: {<5F8700>}
                              spids: [425]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P3='> name:P3)
                              op: assign_op.Equal
                              rhs: {<AF8700>}
                              spids: [429]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P4='> name:P4)
                              op: assign_op.Equal
                              rhs: {<0087FF>}
                              spids: [434]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P5='> name:P5)
                              op: assign_op.Equal
                              rhs: {<AF005F>}
                              spids: [438]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P6='> name:P6)
                              op: assign_op.Equal
                              rhs: {<00AFAF>}
                              spids: [442]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P7='> name:P7)
                              op: assign_op.Equal
                              rhs: {<E4E4E4>}
                              spids: [446]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P8='> name:P8)
                              op: assign_op.Equal
                              rhs: {<1C1C1C>}
                              spids: [451]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P9='> name:P9)
                              op: assign_op.Equal
                              rhs: {<D75F00>}
                              spids: [455]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P10='> name:P10)
                              op: assign_op.Equal
                              rhs: {<585858>}
                              spids: [459]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P11='> name:P11)
                              op: assign_op.Equal
                              rhs: {<626262>}
                              spids: [463]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P12='> name:P12)
                              op: assign_op.Equal
                              rhs: {<808080>}
                              spids: [468]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P13='> name:P13)
                              op: assign_op.Equal
                              rhs: {<5F5FAF>}
                              spids: [472]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P14='> name:P14)
                              op: assign_op.Equal
                              rhs: {<8A8A8A>}
                              spids: [476]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P15='> name:P15)
                              op: assign_op.Equal
                              rhs: {<FFFFD7>}
                              spids: [480]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [393 410]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                              {(DQ <'--palette=tango'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P0='> name:P0)
                              op: assign_op.Equal
                              rhs: {<000000>}
                              spids: [513]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P1='> name:P1)
                              op: assign_op.Equal
                              rhs: {<CC0000>}
                              spids: [517]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P2='> name:P2)
                              op: assign_op.Equal
                              rhs: {<4E9A06>}
                              spids: [521]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P3='> name:P3)
                              op: assign_op.Equal
                              rhs: {<C4A000>}
                              spids: [525]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P4='> name:P4)
                              op: assign_op.Equal
                              rhs: {<3465A4>}
                              spids: [530]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P5='> name:P5)
                              op: assign_op.Equal
                              rhs: {<75507B>}
                              spids: [534]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P6='> name:P6)
                              op: assign_op.Equal
                              rhs: {<06989A>}
                              spids: [538]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P7='> name:P7)
                              op: assign_op.Equal
                              rhs: {<D3D7CF>}
                              spids: [542]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P8='> name:P8)
                              op: assign_op.Equal
                              rhs: {<555753>}
                              spids: [547]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P9='> name:P9)
                              op: assign_op.Equal
                              rhs: {<EF2929>}
                              spids: [551]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P10='> name:P10)
                              op: assign_op.Equal
                              rhs: {<8AE234>}
                              spids: [555]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P11='> name:P11)
                              op: assign_op.Equal
                              rhs: {<FCE94F>}
                              spids: [559]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P12='> name:P12)
                              op: assign_op.Equal
                              rhs: {<729FCF>}
                              spids: [564]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P13='> name:P13)
                              op: assign_op.Equal
                              rhs: {<AD7FA8>}
                              spids: [568]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P14='> name:P14)
                              op: assign_op.Equal
                              rhs: {<34E2E2>}
                              spids: [572]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P15='> name:P15)
                              op: assign_op.Equal
                              rhs: {<EEEEEC>}
                              spids: [576]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [489 506]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                              {(DQ <'--palette=xterm'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P0='> name:P0)
                              op: assign_op.Equal
                              rhs: {<000000>}
                              spids: [605]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P1='> name:P1)
                              op: assign_op.Equal
                              rhs: {<CD0000>}
                              spids: [609]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P2='> name:P2)
                              op: assign_op.Equal
                              rhs: {<00CD00>}
                              spids: [613]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P3='> name:P3)
                              op: assign_op.Equal
                              rhs: {<CDCD00>}
                              spids: [617]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P4='> name:P4)
                              op: assign_op.Equal
                              rhs: {<0000EE>}
                              spids: [622]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P5='> name:P5)
                              op: assign_op.Equal
                              rhs: {<CD00CD>}
                              spids: [626]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P6='> name:P6)
                              op: assign_op.Equal
                              rhs: {<00CDCD>}
                              spids: [630]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P7='> name:P7)
                              op: assign_op.Equal
                              rhs: {<E5E5E5>}
                              spids: [634]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P8='> name:P8)
                              op: assign_op.Equal
                              rhs: {<7F7F7F>}
                              spids: [639]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P9='> name:P9)
                              op: assign_op.Equal
                              rhs: {<FF0000>}
                              spids: [643]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P10='> name:P10)
                              op: assign_op.Equal
                              rhs: {<00FF00>}
                              spids: [647]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P11='> name:P11)
                              op: assign_op.Equal
                              rhs: {<FFFF00>}
                              spids: [651]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P12='> name:P12)
                              op: assign_op.Equal
                              rhs: {<5C5CFF>}
                              spids: [656]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P13='> name:P13)
                              op: assign_op.Equal
                              rhs: {<FF00FF>}
                              spids: [660]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P14='> name:P14)
                              op: assign_op.Equal
                              rhs: {<00FFFF>}
                              spids: [664]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P15='> name:P15)
                              op: assign_op.Equal
                              rhs: {<FFFFFF>}
                              spids: [668]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow token:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [585 602]
                )
              ]
              else_action: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P0='> name:P0)
                          op: assign_op.Equal
                          rhs: {<000000>}
                          spids: [683]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P1='> name:P1)
                          op: assign_op.Equal
                          rhs: {<AA0000>}
                          spids: [687]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P2='> name:P2)
                          op: assign_op.Equal
                          rhs: {<00AA00>}
                          spids: [691]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P3='> name:P3)
                          op: assign_op.Equal
                          rhs: {<AA5500>}
                          spids: [695]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P4='> name:P4)
                          op: assign_op.Equal
                          rhs: {<0000AA>}
                          spids: [700]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P5='> name:P5)
                          op: assign_op.Equal
                          rhs: {<AA00AA>}
                          spids: [704]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P6='> name:P6)
                          op: assign_op.Equal
                          rhs: {<00AAAA>}
                          spids: [708]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P7='> name:P7)
                          op: assign_op.Equal
                          rhs: {<AAAAAA>}
                          spids: [712]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P8='> name:P8)
                          op: assign_op.Equal
                          rhs: {<555555>}
                          spids: [717]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P9='> name:P9)
                          op: assign_op.Equal
                          rhs: {<FF5555>}
                          spids: [721]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P10='> name:P10)
                          op: assign_op.Equal
                          rhs: {<55FF55>}
                          spids: [725]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P11='> name:P11)
                          op: assign_op.Equal
                          rhs: {<FFFF55>}
                          spids: [729]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P12='> name:P12)
                          op: assign_op.Equal
                          rhs: {<5555FF>}
                          spids: [734]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P13='> name:P13)
                          op: assign_op.Equal
                          rhs: {<FF55FF>}
                          spids: [738]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P14='> name:P14)
                          op: assign_op.Equal
                          rhs: {<55FFFF>}
                          spids: [742]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P15='> name:P15)
                          op: assign_op.Equal
                          rhs: {<FFFFFF>}
                          spids: [746]
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                          {(DQ <'--palette=linux'>)} {<Id.Lit_RBracket ']'>}
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (C {<processArg>})
    (command.ForEach
      iter_names: [var]
      iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}])
      body: 
        (command.DoGroup
          children: [
            (command.Sentence
              child: (C {<processArg>} {($ Id.VSub_DollarName var)})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName css_only))} {<Id.Lit_RBracket ']'>})
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} {<Id.Lit_RBracket ']'>})
        (C {<usage>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      children: [
                        (command.Simple
                          words: [{<sed>} {<--version>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                      negated: T
                      stderr_indices: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              words: [{<gsed>} {<--version>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                                (redir
                                  op: <Id.Redir_GreatAnd '2>&'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<1>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<alias>} {<Id.Lit_VarLike 'sed='> <gsed>})]
                  spids: [848 861]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<echo>} {(DQ <'Error, can\'t find an acceptable GNU sed.'>)}]
                  redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  more_env: []
                  do_fork: T
                )
                (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              redirects: []
            )
          ]
          spids: [830 845]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName css_only))} {<Id.Lit_RBracket ']'>})
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} {<Id.Lit_RBracket ']'>})
        (C {<printf>} {(SQ <'%s'>)} 
          {
            (DQ <'<html>\n'> <'<head>\n'> <'<meta http-equiv='> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <Content-Type> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' content='> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'text/html; charset=utf-8'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
              <'/>\n'> <'<style type='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'text/css'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>\n'>
            )
          }
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} {<Id.Lit_RBracket ']'>})
        (C {<printf>} 
          {
            (DQ <'.ef0,.f0 { color: #'> ($ Id.VSub_DollarName P0) 
              <'; } .eb0,.b0 { background-color: #'> ($ Id.VSub_DollarName P0) <'; }\n'> <'.ef1,.f1 { color: #'> ($ Id.VSub_DollarName P1) 
              <'; } .eb1,.b1 { background-color: #'> ($ Id.VSub_DollarName P1) <'; }\n'> <'.ef2,.f2 { color: #'> ($ Id.VSub_DollarName P2) 
              <'; } .eb2,.b2 { background-color: #'> ($ Id.VSub_DollarName P2) <'; }\n'> <'.ef3,.f3 { color: #'> ($ Id.VSub_DollarName P3) 
              <'; } .eb3,.b3 { background-color: #'> ($ Id.VSub_DollarName P3) <'; }\n'> <'.ef4,.f4 { color: #'> ($ Id.VSub_DollarName P4) 
              <'; } .eb4,.b4 { background-color: #'> ($ Id.VSub_DollarName P4) <'; }\n'> <'.ef5,.f5 { color: #'> ($ Id.VSub_DollarName P5) 
              <'; } .eb5,.b5 { background-color: #'> ($ Id.VSub_DollarName P5) <'; }\n'> <'.ef6,.f6 { color: #'> ($ Id.VSub_DollarName P6) 
              <'; } .eb6,.b6 { background-color: #'> ($ Id.VSub_DollarName P6) <'; }\n'> <'.ef7,.f7 { color: #'> ($ Id.VSub_DollarName P7) 
              <'; } .eb7,.b7 { background-color: #'> ($ Id.VSub_DollarName P7) <'; }\n'> <'.ef8, .f0 > .bold,.bold > .f0 { color: #'> 
              ($ Id.VSub_DollarName P8) <'; font-weight: normal; }\n'> <'.ef9, .f1 > .bold,.bold > .f1 { color: #'> ($ Id.VSub_DollarName P9) 
              <'; font-weight: normal; }\n'> <'.ef10,.f2 > .bold,.bold > .f2 { color: #'> ($ Id.VSub_DollarName P10) <'; font-weight: normal; }\n'> 
              <'.ef11,.f3 > .bold,.bold > .f3 { color: #'> ($ Id.VSub_DollarName P11) <'; font-weight: normal; }\n'> <'.ef12,.f4 > .bold,.bold > .f4 { color: #'> 
              ($ Id.VSub_DollarName P12) <'; font-weight: normal; }\n'> <'.ef13,.f5 > .bold,.bold > .f5 { color: #'> ($ Id.VSub_DollarName P13) 
              <'; font-weight: normal; }\n'> <'.ef14,.f6 > .bold,.bold > .f6 { color: #'> ($ Id.VSub_DollarName P14) <'; font-weight: normal; }\n'> 
              <'.ef15,.f7 > .bold,.bold > .f7 { color: #'> ($ Id.VSub_DollarName P15) <'; font-weight: normal; }\n'> <'.eb8  { background-color: #'> 
              ($ Id.VSub_DollarName P8) <'; }\n'> <'.eb9  { background-color: #'> ($ Id.VSub_DollarName P9) <'; }\n'> 
              <'.eb10 { background-color: #'> ($ Id.VSub_DollarName P10) <'; }\n'> <'.eb11 { background-color: #'> ($ Id.VSub_DollarName P11) <'; }\n'> 
              <'.eb12 { background-color: #'> ($ Id.VSub_DollarName P12) <'; }\n'> <'.eb13 { background-color: #'> ($ Id.VSub_DollarName P13) <'; }\n'> 
              <'.eb14 { background-color: #'> ($ Id.VSub_DollarName P14) <'; }\n'> <'.eb15 { background-color: #'> ($ Id.VSub_DollarName P15) <'; }\n'>
            )
          }
        )
      ]
    )
    (command.ForEach
      iter_names: [red]
      iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>} {<4>} {<5>}])
      body: 
        (command.DoGroup
          children: [
            (command.ForEach
              iter_names: [green]
              iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>} {<4>} {<5>}])
              body: 
                (command.DoGroup
                  children: [
                    (command.ForEach
                      iter_names: [blue]
                      iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>} {<4>} {<5>}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Plus
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Plus
                                                    left: {<Id.Lit_Digits 16>}
                                                    right: 
                                                      (arith_expr.Binary
                                                        op_id: Id.Arith_Star
                                                        left: {($ Id.VSub_DollarName red)}
                                                        right: {<Id.Lit_Digits 36>}
                                                      )
                                                  )
                                                right: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: {($ Id.VSub_DollarName green)}
                                                    right: {<Id.Lit_Digits 6>}
                                                  )
                                              )
                                            right: {($ Id.VSub_DollarName blue)}
                                          )
                                      )
                                    }
                                  spids: [1113]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Star
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: {($ Id.VSub_DollarName red)}
                                                    right: {<Id.Lit_Digits 40>}
                                                  )
                                                right: {<Id.Lit_Digits 55>}
                                              )
                                            right: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Great
                                                left: {($ Id.VSub_DollarName red)}
                                                right: {<Id.Lit_Digits 0>}
                                              )
                                          )
                                      )
                                    }
                                  spids: [1144]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'g='> name:g)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Star
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: {($ Id.VSub_DollarName green)}
                                                    right: {<Id.Lit_Digits 40>}
                                                  )
                                                right: {<Id.Lit_Digits 55>}
                                              )
                                            right: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Great
                                                left: {($ Id.VSub_DollarName green)}
                                                right: {<Id.Lit_Digits 0>}
                                              )
                                          )
                                      )
                                    }
                                  spids: [1171]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Star
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: {($ Id.VSub_DollarName blue)}
                                                    right: {<Id.Lit_Digits 40>}
                                                  )
                                                right: {<Id.Lit_Digits 55>}
                                              )
                                            right: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Great
                                                left: {($ Id.VSub_DollarName blue)}
                                                right: {<Id.Lit_Digits 0>}
                                              )
                                          )
                                      )
                                    }
                                  spids: [1198]
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                                (C {<printf>} {(DQ <'.ef%d { color: #%2.2x%2.2x%2.2x; } '>)} 
                                  {($ Id.VSub_DollarName c)} {($ Id.VSub_DollarName r)} {($ Id.VSub_DollarName g)} {($ Id.VSub_DollarName b)}
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                                (C {<printf>} 
                                  {
                                    (DQ <'.eb%d { background-color: #%2.2x%2.2x%2.2x; }'> 
                                      <Id.Lit_BadBackslash '\\'> <n>
                                    )
                                  } {($ Id.VSub_DollarName c)} {($ Id.VSub_DollarName r)} {($ Id.VSub_DollarName g)} 
                                  {($ Id.VSub_DollarName b)}
                                )
                              ]
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
          ]
        )
      redirects: []
    )
    (command.ForEach
      iter_names: [gray]
      iterable: 
        (for_iter.Words
          words: [
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<seq>} {<0>} {<23>})
                right: <Id.Eof_RParen _>
              )
            }
          ]
        )
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: {($ Id.VSub_DollarName gray)}
                            right: {<Id.Lit_Digits 232>}
                          )
                      )
                    }
                  spids: [1302]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'l='> name:l)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Star
                                left: {($ Id.VSub_DollarName gray)}
                                right: {<Id.Lit_Digits 10>}
                              )
                            right: {<Id.Lit_Digits 8>}
                          )
                      )
                    }
                  spids: [1311]
                )
              ]
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} 
                  {<Id.Lit_RBracket ']'>}
                )
                (C {<printf>} {(DQ <'.ef%d { color: #%2.2x%2.2x%2.2x; } '>)} {($ Id.VSub_DollarName c)} 
                  {($ Id.VSub_DollarName l)} {($ Id.VSub_DollarName l)} {($ Id.VSub_DollarName l)}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} 
                  {<Id.Lit_RBracket ']'>}
                )
                (C {<printf>} 
                  {
                    (DQ <'.eb%d { background-color: #%2.2x%2.2x%2.2x; }'> <Id.Lit_BadBackslash '\\'> 
                      <n>
                    )
                  } {($ Id.VSub_DollarName c)} {($ Id.VSub_DollarName l)} {($ Id.VSub_DollarName l)} 
                  {($ Id.VSub_DollarName l)}
                )
              ]
            )
          ]
        )
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} {<Id.Lit_RBracket ']'>})
        (C {<printf>} {(SQ <'%s'>)} 
          {(SQ <'\n'> <'.f9 { color: '>) 
            (command_sub
              left_token: <Id.Left_Backtick '`'>
              child: 
                (command.AndOr
                  ops: [Id.Op_DAmp Id.Op_DPipe]
                  children: [
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName dark_bg))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                    (C {<printf>} {(DQ <'#'> ($ Id.VSub_DollarName P7) <';'>)})
                    (C {<printf>} {(DQ <'#'> ($ Id.VSub_DollarName P0) <';'>)})
                  ]
                )
              right: <Id.Backtick_Right '`'>
            ) (SQ <' }\n'> <'.b9 { background-color: #'>) 
            (command_sub
              left_token: <Id.Left_Backtick '`'>
              child: 
                (command.AndOr
                  ops: [Id.Op_DAmp Id.Op_DPipe]
                  children: [
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName dark_bg))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                    (C {<printf>} {($ Id.VSub_DollarName P0)})
                    (C {<printf>} {($ Id.VSub_DollarName P15)})
                  ]
                )
              right: <Id.Backtick_Right '`'>
            ) 
            (SQ <'; }\n'> <'.f9 > .bold,.bold > .f9, body.f9 > pre > .bold {\n'> 
              <'  /* Bold is heavy black on white, or bright white\n'> <'     depending on the default background */\n'> <'  color: '>
            ) 
            (command_sub
              left_token: <Id.Left_Backtick '`'>
              child: 
                (command.AndOr
                  ops: [Id.Op_DAmp Id.Op_DPipe]
                  children: [
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName dark_bg))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                    (C {<printf>} {(DQ <'#'> ($ Id.VSub_DollarName P15) <';'>)})
                    (C {<printf>} {(DQ <'#'> ($ Id.VSub_DollarName P0) <';'>)})
                  ]
                )
              right: <Id.Backtick_Right '`'>
            ) (SQ <'\n'> <'  font-weight: '>) 
            (command_sub
              left_token: <Id.Left_Backtick '`'>
              child: 
                (command.AndOr
                  ops: [Id.Op_DAmp Id.Op_DPipe]
                  children: [
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName dark_bg))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                    (C {<printf>} {(SQ <'normal;'>)})
                    (C {<printf>} {(SQ <'bold;'>)})
                  ]
                )
              right: <Id.Backtick_Right '`'>
            ) 
            (SQ <'\n'> <'}\n'> <'.reverse {\n'> 
              <'  /* CSS does not support swapping fg and bg colours unfortunately,\n'> <'     so just hardcode something that will look OK on all backgrounds. */\n'> <'  '>
            ) (DQ <'color: #'> ($ Id.VSub_DollarName P0) <'; background-color: #'> ($ Id.VSub_DollarName P7) <';'>) 
            (SQ <'\n'> <'}\n'> <'.underline { text-decoration: underline; }\n'> 
              <'.line-through { text-decoration: line-through; }\n'> <'.blink { text-decoration: blink; }\n'> <'\n'> <'/* Avoid pixels between adjacent span elements.\n'> 
              <'   Note this only works for lines less than 80 chars\n'> <'   where we close span elements on the same line.\n'> <'span { display: inline-block; }\n'> <'*/\n'>
            )
          }
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} {<Id.Lit_RBracket ']'>})
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName css_only))} {<Id.Lit_RBracket ']'>})
        (command.Simple
          words: [
            {<printf>}
            {(SQ <'%s\\n'>)}
            {(SQ <'To use the css generated from --css-only, do: '>) 
              (SQ <'<head><link rel="stylesheet" type="text/css" href="style.css"></head>'>)
            }
          ]
          redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          more_env: []
          do_fork: T
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName css_only))} {<Id.Lit_RBracket ']'>})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} {<Id.Lit_RBracket ']'>})
        (C {<printf>} {(SQ <'%s'>)} 
          {(SQ <'</style>\n'> <'</head>\n'> <'\n'> <'<body class="f9 b9">\n'> <'<pre>\n'>)}
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} {<Id.Lit_RBracket ']'>})
        (command.Simple
          words: [{<printf>} {(SQ <'%s\\n'>)} {(SQ <'Be sure to use <body class="f9 b9"> and <pre>'>)}]
          redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          more_env: []
          do_fork: T
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
          op: assign_op.Equal
          rhs: {(SQ <'\\x1b\\['>)}
          spids: [1652]
        )
      ]
      redirects: []
    )
    (command.Pipeline
      children: [
        (C {<sed>} 
          {
            (DQ <'\n'> <'# escape ampersand and quote\n'> <'s#&#'> <Id.Lit_BadBackslash '\\'> 
              <'&amp;#g; s#'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'#'> <Id.Lit_BadBackslash '\\'> 
              <'&quot;#g;\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x1b[^'> <Id.Lit_BadBackslash '\\'> <'x1b]*'> 
              <Id.Lit_BadBackslash '\\'> <x1b> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <Id.Lit_BadBackslash '\\'> 
              <'##g  # strip anything between '> <Id.Lit_BadBackslash '\\'> <'e and ST\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x1b][0-9]*;[^'> 
              <Id.Lit_BadBackslash '\\'> <'a]*'> <Id.Lit_BadBackslash '\\'> <'a##g # strip any OSC (xterm title etc.)\n'> <'\n'> <'s#'> 
              <Id.Lit_BadBackslash '\\'> <r> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'## # strip trailing '> 
              <Id.Lit_BadBackslash '\\'> <'r\n'> <'\n'> <'# strip other non SGR escape sequences\n'> <'s#['> <Id.Lit_BadBackslash '\\'> 
              <'x07]##g\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x1b[]>='> <Id.Lit_BadBackslash '\\'> <'][0-9;]*##g\n'> <'s#'> 
              <Id.Lit_BadBackslash '\\'> <'x1bP+.'> <Id.Lit_BadBackslash '\\'> <'{5'> <Id.Lit_BadBackslash '\\'> <'}##g\n'> 
              <'# Mark cursor positioning codes '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Jr;c;\n'> <'s#'> 
              (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> <'{1,2'> <Id.Lit_BadBackslash '\\'> <'}'> 
              <Id.Lit_BadBackslash '\\'> <')G#'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'J;'> 
              <Id.Lit_BadBackslash '\\'> <'1;#g\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> 
              <'{1,2'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <');'> <Id.Lit_BadBackslash '\\'> <'([0-9]'> 
              <Id.Lit_BadBackslash '\\'> <'{1,2'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')H#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <J> <Id.Lit_BadBackslash '\\'> <'1;'> <Id.Lit_BadBackslash '\\'> <'2;#g\n'> <'\n'> <'# Mark clear as '> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Cn where n=1 is screen and n=0 is to end-of-line\n'> <'s#'> (${ Id.VSub_Name p) <'H#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'C1;#g\n'> <'s#'> (${ Id.VSub_Name p) <'K#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'C0;#g\n'> <'# Mark Cursor move columns as '> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Mn where n is +ve for right, -ve for left\n'> <'s#'> (${ Id.VSub_Name p) <'C#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'M1;#g\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> 
              <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')C#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <M> <Id.Lit_BadBackslash '\\'> <'1;#g\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> 
              <Id.Lit_BadBackslash '\\'> <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')D#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <M-> <Id.Lit_BadBackslash '\\'> <'1;#g\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> 
              <Id.Lit_BadBackslash '\\'> <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')P#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <X> <Id.Lit_BadBackslash '\\'> <'1;#g\n'> <'\n'> <'s#'> (${ Id.VSub_Name p) <'[0-9;?]*[^0-9;?m]##g\n'> 
              <'\n'>
            )
          }
        )
        (C {<sed>} 
          {
            (DQ <'\n'> <'# escape HTML (ampersand and quote done above)\n'> <'s#>#'> 
              <Id.Lit_BadBackslash '\\'> <'&gt;#g; s#<#'> <Id.Lit_BadBackslash '\\'> <'&lt;#g;\n'> <'\n'> <'# normalize SGR codes a little\n'> 
              <'\n'> <'# split 256 colors out and mark so that they\'re not\n'> 
              <'# recognised by the following \'split combined\' line\n'> <':e\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9;]'> <Id.Lit_BadBackslash '\\'> 
              <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <');'> <Id.Lit_BadBackslash '\\'> 
              <'([34]8;5;[0-9]'> <Id.Lit_BadBackslash '\\'> <'{1,3'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#'> 
              (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <1m> (${ Id.VSub_Name p) <'¬'> <Id.Lit_BadBackslash '\\'> <'2m#g; t e\n'> 
              <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([34]8;5;[0-9]'> <Id.Lit_BadBackslash '\\'> <'{1,3'> 
              <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#'> (${ Id.VSub_Name p) <'¬'> <Id.Lit_BadBackslash '\\'> <'1m#g;\n'> 
              <'\n'> <':c\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> 
              <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <');'> <Id.Lit_BadBackslash '\\'> <'([0-9;]'> 
              <Id.Lit_BadBackslash '\\'> <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#'> (${ Id.VSub_Name p) 
              <Id.Lit_BadBackslash '\\'> <1m> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'2m#g; t c   # split combined\n'> <'s#'> 
              (${ Id.VSub_Name p) <0> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> <')#'> (${ Id.VSub_Name p) 
              <Id.Lit_BadBackslash '\\'> <'1#g                                 #strip leading 0\n'> <'s#'> (${ Id.VSub_Name p) <1m> 
              <Id.Lit_BadBackslash '\\'> <'('> <Id.Lit_BadBackslash '\\'> <'('> (${ Id.VSub_Name p) <'[4579]m'> <Id.Lit_BadBackslash '\\'> <')*'> 
              <Id.Lit_BadBackslash '\\'> <')#'> <Id.Lit_BadBackslash '\\'> <1> (${ Id.VSub_Name p) 
              <'1m#g                   #bold last (with clr)\n'> <'s#'> (${ Id.VSub_Name p) <'m#'> (${ Id.VSub_Name p) 
              <'0m#g                                          #add leading 0 to norm\n'> <'\n'> <'# undo any 256 color marking\n'> <'s#'> (${ Id.VSub_Name p) <'¬'> <Id.Lit_BadBackslash '\\'> 
              <'([34]8;5;[0-9]'> <Id.Lit_BadBackslash '\\'> <'{1,3'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#'> 
              (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'1m#g;\n'> <'\n'> <'# map 16 color codes to color + bold\n'> <'s#'> 
              (${ Id.VSub_Name p) <9> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> <')m#'> (${ Id.VSub_Name p) <3> 
              <Id.Lit_BadBackslash '\\'> <1m> (${ Id.VSub_Name p) <'1m#g;\n'> <'s#'> (${ Id.VSub_Name p) <10> <Id.Lit_BadBackslash '\\'> <'([0-7]'> 
              <Id.Lit_BadBackslash '\\'> <')m#'> (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <1m> (${ Id.VSub_Name p) <'1m#g;\n'> <'\n'> 
              <'# change \'reset\' code to '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'R\n'> <'s#'> (${ Id.VSub_Name p) 
              <'0m#'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'R;#g\n'>
            )
          }
        )
        (C {<sed>} 
          {
            (DQ <'\n'> <'# common combinations to minimise html (optional)\n'> <':f\n'> <'s#'> 
              (${ Id.VSub_Name p) <'3[0-7]m'> (${ Id.VSub_Name p) <3> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> 
              <')m#'> (${ Id.VSub_Name p) <3> <Id.Lit_BadBackslash '\\'> <'1m#g; t f\n'> <':b\n'> <'s#'> (${ Id.VSub_Name p) 
              <'4[0-7]m'> (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> <')m#'> 
              (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <'1m#g; t b\n'> <'s#'> (${ Id.VSub_Name p) <3> <Id.Lit_BadBackslash '\\'> 
              <'([0-7]'> <Id.Lit_BadBackslash '\\'> <')m'> (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <'([0-7]'> 
              <Id.Lit_BadBackslash '\\'> <')m#<span class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <f> 
              <Id.Lit_BadBackslash '\\'> <'1 b'> <Id.Lit_BadBackslash '\\'> <2> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> 
              <')m'> (${ Id.VSub_Name p) <3> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> 
              <')m#<span class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <f> <Id.Lit_BadBackslash '\\'> 
              <'2 b'> <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
              <'>#g\n'> <'\n'> <'s#'> (${ Id.VSub_Name p) <'1m#<span class='> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <bold> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> 
              (${ Id.VSub_Name p) <'4m#<span class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <underline> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> (${ Id.VSub_Name p) <'5m#<span class='> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <blink> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> 
              (${ Id.VSub_Name p) <'7m#<span class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <reverse> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> (${ Id.VSub_Name p) <'9m#<span class='> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <line-through> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> 
              (${ Id.VSub_Name p) <3> <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> <')m#<span class='> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <f> <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
              <'>#g\n'> <'s#'> (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> 
              <')m#<span class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <b> <Id.Lit_BadBackslash '\\'> <1> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'\n'> <'s#'> (${ Id.VSub_Name p) <'38;5;'> <Id.Lit_BadBackslash '\\'> <'([0-9]'> 
              <Id.Lit_BadBackslash '\\'> <'{1,3'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#<span class='> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <ef> <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
              <'>#g\n'> <'s#'> (${ Id.VSub_Name p) <'48;5;'> <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> 
              <'{1,3'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#<span class='> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <eb> <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
              <'>#g\n'> <'\n'> <'s#'> (${ Id.VSub_Name p) <'[0-9;]*m##g # strip unhandled codes\n'>
            )
          }
        )
        (C {<sed>} 
          {
            (DQ <'\n'> <'# change \'smacs\' and \'rmacs\' to '> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'T1 and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
              <'T0 to simplify matching.\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x1b(0#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'T1;#g;\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x0E#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'T1;#g;\n'> <'\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x1b(B#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'T0;#g\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x0F#'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'T0;#g\n'>
            )
          }
        )
        (command.Subshell
          child: 
            (C {<gawk>} 
              {
                (SQ <'\n'> <'function dump_line(l,del,c,blanks,ret) {\n'> <'  for(c=1;c<maxX;c++) {\n'> 
                  <'    if ((c SUBSEP l) in attr || length(cur)) {\n'> <'      ret = ret blanks fixas(cur,attr[c,l])\n'> <'      if(del) delete attr[c,l]\n'> 
                  <'      blanks=""\n'> <'    }\n'> <'    if ((c SUBSEP l) in dump) {\n'> <'      ret=ret blanks dump[c,l]\n'> 
                  <'      if(del) delete dump[c,l]\n'> <'      blanks=""\n'> <'    } else blanks=blanks " "\n'> <'  }\n'> 
                  <'  if(length(cur)) ret=ret blanks\n'> <'  return ret\n'> <'}\n'> <'\n'> <'function dump_screen(l,ret) {\n'> <'  for(l=1;l<=maxY;l++)\n'> 
                  <'    ret=ret dump_line(l,0) "\\n"\n'> <'  return ret fixas(cur, "")\n'> <'}\n'> <'\n'> <'function atos(a,i,ret) {\n'> 
                  <'  for(i=1;i<=length(a);i++) if(i in a) ret=ret a[i]\n'> <'  return ret\n'> <'}\n'> <'\n'> <'function fixas(a,s,spc,i,attr,rm,ret) {\n'> <'  spc=length(a)\n'> 
                  <'  l=split(s,attr,">")\n'> <'  for(i=1;i<=spc;i++) {\n'> <'    rm=rm?rm:(a[i]!=attr[i]">")\n'> <'    if(rm) {\n'> 
                  <'      ret=ret "</span>"\n'> <'      delete a[i];\n'> <'    }\n'> <'  }\n'> <'  for(i=1;i<l;i++) {\n'> <'    attr[i]=attr[i]">"\n'> 
                  <'    if(a[i]!=attr[i]) {\n'> <'      a[i]=attr[i]\n'> <'      ret = ret attr[i]\n'> <'    }\n'> <'  }\n'> <'  return ret\n'> <'}\n'> 
                  <'\n'> <'function encode(string,start,end,i,ret,pos,sc,buf) {\n'> <'   if(!end) end=length(string);\n'> 
                  <'   if(!start) start=1;\n'> <'   state=3\n'> <'   for(i=1;i<=length(string);i++) {\n'> <'     c=substr(string,i,1)\n'> 
                  <'     if(state==2) {\n'> <'       sc=sc c\n'> <'       if(c==";") {\n'> <'          c=sc\n'> <'          state=last_mode\n'> 
                  <'       } else continue\n'> <'     } else {\n'> <'       if(c=="\\r") { x=1; continue }\n'> <'       if(c=="<") {\n'> 
                  <'         # Change attributes - store current active\n'> <'         # attributes in span array\n'> <'         split(substr(string,i),cord,">");\n'> 
                  <'         i+=length(cord[1])\n'> <'         span[++spc]=cord[1] ">"\n'> <'         continue\n'> <'       }\n'> 
                  <'       else if(c=="&") {\n'> <'         # All goes to single position till we see a semicolon\n'> <'         sc=c\n'> 
                  <'         state=2\n'> <'         continue\n'> <'       }\n'> <'       else if(c=="\\b") {\n'> 
                  <'          # backspace move insertion point back 1\n'> <'          if(spc) attr[x,y]=atos(span)\n'> <'          x=x>1?x-1:1\n'> <'          continue\n'> 
                  <'       }\n'> <'       else if(c=="\\"") {\n'> <'          split(substr(string,i+2),cord,";")\n'> 
                  <'          cc=substr(string,i+1,1);\n'> <'          if(cc=="T") {\n'> <'              # Transliterate on/off\n'> 
                  <'              if(cord[1]==1&&state==3) last_mode=state=4\n'> <'              if(cord[1]==0&&state==4) last_mode=state=3\n'> <'          }\n'> 
                  <'          else if(cc=="C") {\n'> <'              # Clear\n'> <'              if(cord[1]+0) {\n'> 
                  <'                # Screen - if Recording dump screen\n'> <'                if(dumpStatus==dsActive) ret=ret dump_screen()\n'> 
                  <'                dumpStatus=dsActive\n'> <'                delete dump\n'> <'                delete attr\n'> <'                x=y=1\n'> 
                  <'              } else {\n'> <'                # To end of line\n'> <'                for(pos=x;pos<maxX;pos++) {\n'> 
                  <'                  dump[pos,y]=" "\n'> <'                  if (!spc) delete attr[pos,y]\n'> 
                  <'                  else attr[pos,y]=atos(span)\n'> <'                }\n'> <'              }\n'> <'          }\n'> <'          else if(cc=="J") {\n'> 
                  <'              # Jump to x,y\n'> <'              i+=length(cord[2])+1\n'> 
                  <'              # If line is higher - dump previous screen\n'> <'              if(dumpStatus==dsActive&&cord[1]<y) {\n'> <'                ret=ret dump_screen();\n'> 
                  <'                dumpStatus=dsNew;\n'> <'              }\n'> <'              x=cord[2]\n'> 
                  <'              if(length(cord[1]) && y!=cord[1]){\n'> <'                y=cord[1]\n'> <'                if(y>maxY) maxY=y\n'> 
                  <'                # Change y - start recording\n'> <'                dumpStatus=dumpStatus?dumpStatus:dsReset\n'> <'              }\n'> <'          }\n'> 
                  <'          else if(cc=="M") {\n'> <'              # Move left/right on current line\n'> <'              x+=cord[1]\n'> <'          }\n'> 
                  <'          else if(cc=="X") {\n'> <'              # delete on right\n'> <'              for(pos=x;pos<=maxX;pos++) {\n'> 
                  <'                nx=pos+cord[1]\n'> <'                if(nx<maxX) {\n'> 
                  <'                  if((nx SUBSEP y) in attr) attr[pos,y] = attr[nx,y]\n'> <'                  else delete attr[pos,y]\n'> 
                  <'                  if((nx SUBSEP y) in dump) dump[pos,y] = dump[nx,y]\n'> <'                  else delete dump[pos,y]\n'> <'                } else if(spc) {\n'> 
                  <'                  attr[pos,y]=atos(span)\n'> <'                  dump[pos,y]=" "\n'> <'                }\n'> <'              }\n'> <'          }\n'> 
                  <'          else if(cc=="R") {\n'> <'              # Reset attributes\n'> <'              while(spc) delete span[spc--]\n'> 
                  <'          }\n'> <'          i+=length(cord[1])+2\n'> <'          continue\n'> <'       }\n'> 
                  <'       else if(state==4&&i>=start&&i<=end&&c in Trans) c=Trans[c]\n'> <'     }\n'> <'     if(dumpStatus==dsReset) {\n'> <'       delete dump\n'> <'       delete attr\n'> 
                  <'       ret=ret"\\n"\n'> <'       dumpStatus=dsActive\n'> <'     }\n'> <'     if(dumpStatus==dsNew) {\n'> 
                  <'       # After moving/clearing we are now ready to write\n'> <'       # somthing to the screen so start recording now\n'> <'       ret=ret"\\n"\n'> 
                  <'       dumpStatus=dsActive\n'> <'     }\n'> <'     if(dumpStatus==dsActive||dumpStatus==dsOff) {\n'> <'       dump[x,y] = c\n'> 
                  <'       if(!spc) delete attr[x,y]\n'> <'       else attr[x,y] = atos(span)\n'> <'       if(++x>maxX) maxX=x;\n'> <'     }\n'> <'    }\n'> 
                  <'    # End of line if dumping increment y and set x back to first col\n'> <'    x=1\n'> <'    if(!dumpStatus) return ret dump_line(y,1);\n'> <'    else if(++y>maxY) maxY=y;\n'> 
                  <'    return ret\n'> <'}\n'> <'BEGIN{\n'> <'  OFS=FS\n'> <'  # dump screen status\n'> 
                  <'  dsOff=0    # Not dumping screen contents just write output direct\n'> <'  dsNew=1    # Just after move/clear waiting for activity to start recording\n'> 
                  <'  dsReset=2  # Screen cleared build new empty buffer and record\n'> <'  dsActive=3 # Currently recording\n'> <'  F="abcdefghijklmnopqrstuvwxyz{}`~"\n'> 
                  <
'  T="▒␉␌␍␊°±␤␋┘┐┌└┼⎺⎻─⎼⎽├┤┴┬│≤≥π£◆·"\n'
                  > <'  maxX=80\n'> <'  delete cur;\n'> <'  x=y=1\n'> 
                  <'  for(i=1;i<=length(F);i++)Trans[substr(F,i,1)]=substr(T,i,1);\n'> <'}\n'> <'\n'> <'{ $0=encode($0) }\n'> <'1\n'> <'END {\n'> <'  if(dumpStatus) {\n'> 
                  <'    print dump_screen();\n'> <'  }\n'> <'}'>
                )
              }
            )
          redirects: []
        )
      ]
      negated: F
      stderr_indices: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName body_only))} {<Id.Lit_RBracket ']'>})
        (C {<printf>} {(SQ <'</pre>\n'> <'</body>\n'> <'</html>\\n'>)})
      ]
    )
  ]
)