(CommandList
  children: [
    (AndOr
      children: [
        (SimpleCommand
          words: [{(gawk)} {(--version)}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[109])]
        )
        (C {(exit)} {(1)})
      ]
      op_id: Op_DPipe
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} {(DQ (--version))} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(AndOr children:[(C {(printf)} {(SQ <"0.23\\n">)})(C {(exit)})] op_id:Op_DAmp)]
          spids: [-1 136]
        )
      ]
      spids: [-1 149]
    )
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              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 fd:-1 arg_word:{(2)} spids:[172])]
            )
            (C {(exit)})
          ]
          spids: [156]
        )
      spids: [152 155]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} {(DQ (--help))} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(usage)})]
          spids: [-1 198]
        )
      ]
      spids: [-1 203]
    )
    (FuncDef
      name: processArg
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} {(DQ ("--bg=dark"))} 
                  {(Lit_Other "]")}
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:dark_bg)
                              op: Equal
                              rhs: {(yes)}
                              spids: [231]
                            )
                          ]
                          spids: [231]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return>)
                      terminator: <Op_Semi ";">
                    )
                  ]
                  spids: [229]
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} {(DQ (--css-only))} 
                  {(Lit_Other "]")}
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:css_only)
                              op: Equal
                              rhs: {(yes)}
                              spids: [259]
                            )
                          ]
                          spids: [259]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return>)
                      terminator: <Op_Semi ";">
                    )
                  ]
                  spids: [257]
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} {(DQ (--body-only))} 
                  {(Lit_Other "]")}
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:body_only)
                              op: Equal
                              rhs: {(yes)}
                              spids: [287]
                            )
                          ]
                          spids: [287]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return>)
                      terminator: <Op_Semi ";">
                    )
                  ]
                  spids: [285]
                )
              ]
              op_id: Op_DAmp
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} 
                          {(DQ ("--palette=solarized"))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P0)
                              op: Equal
                              rhs: {(073642)}
                              spids: [321]
                            )
                          ]
                          spids: [321]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P1)
                              op: Equal
                              rhs: {(D30102)}
                              spids: [325]
                            )
                          ]
                          spids: [325]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P2)
                              op: Equal
                              rhs: {(859900)}
                              spids: [329]
                            )
                          ]
                          spids: [329]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P3)
                              op: Equal
                              rhs: {(B58900)}
                              spids: [333]
                            )
                          ]
                          spids: [333]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P4)
                              op: Equal
                              rhs: {(268BD2)}
                              spids: [338]
                            )
                          ]
                          spids: [338]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P5)
                              op: Equal
                              rhs: {(D33682)}
                              spids: [342]
                            )
                          ]
                          spids: [342]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P6)
                              op: Equal
                              rhs: {(2AA198)}
                              spids: [346]
                            )
                          ]
                          spids: [346]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P7)
                              op: Equal
                              rhs: {(EEE8D5)}
                              spids: [350]
                            )
                          ]
                          spids: [350]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P8)
                              op: Equal
                              rhs: {(002B36)}
                              spids: [355]
                            )
                          ]
                          spids: [355]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P9)
                              op: Equal
                              rhs: {(CB4B16)}
                              spids: [359]
                            )
                          ]
                          spids: [359]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P10)
                              op: Equal
                              rhs: {(586E75)}
                              spids: [363]
                            )
                          ]
                          spids: [363]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P11)
                              op: Equal
                              rhs: {(657B83)}
                              spids: [367]
                            )
                          ]
                          spids: [367]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P12)
                              op: Equal
                              rhs: {(839496)}
                              spids: [372]
                            )
                          ]
                          spids: [372]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P13)
                              op: Equal
                              rhs: {(6C71C4)}
                              spids: [376]
                            )
                          ]
                          spids: [376]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P14)
                              op: Equal
                              rhs: {(93A1A1)}
                              spids: [380]
                            )
                          ]
                          spids: [380]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P15)
                              op: Equal
                              rhs: {(FDF6E3)}
                              spids: [384]
                            )
                          ]
                          spids: [384]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return>)
                      terminator: <Op_Semi ";">
                    )
                  ]
                  spids: [-1 314]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} 
                          {(DQ ("--palette=solarized-xterm"))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P0)
                              op: Equal
                              rhs: {(262626)}
                              spids: [417]
                            )
                          ]
                          spids: [417]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P1)
                              op: Equal
                              rhs: {(AF0000)}
                              spids: [421]
                            )
                          ]
                          spids: [421]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P2)
                              op: Equal
                              rhs: {(5F8700)}
                              spids: [425]
                            )
                          ]
                          spids: [425]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P3)
                              op: Equal
                              rhs: {(AF8700)}
                              spids: [429]
                            )
                          ]
                          spids: [429]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P4)
                              op: Equal
                              rhs: {(0087FF)}
                              spids: [434]
                            )
                          ]
                          spids: [434]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P5)
                              op: Equal
                              rhs: {(AF005F)}
                              spids: [438]
                            )
                          ]
                          spids: [438]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P6)
                              op: Equal
                              rhs: {(00AFAF)}
                              spids: [442]
                            )
                          ]
                          spids: [442]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P7)
                              op: Equal
                              rhs: {(E4E4E4)}
                              spids: [446]
                            )
                          ]
                          spids: [446]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P8)
                              op: Equal
                              rhs: {(1C1C1C)}
                              spids: [451]
                            )
                          ]
                          spids: [451]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P9)
                              op: Equal
                              rhs: {(D75F00)}
                              spids: [455]
                            )
                          ]
                          spids: [455]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P10)
                              op: Equal
                              rhs: {(585858)}
                              spids: [459]
                            )
                          ]
                          spids: [459]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P11)
                              op: Equal
                              rhs: {(626262)}
                              spids: [463]
                            )
                          ]
                          spids: [463]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P12)
                              op: Equal
                              rhs: {(808080)}
                              spids: [468]
                            )
                          ]
                          spids: [468]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P13)
                              op: Equal
                              rhs: {(5F5FAF)}
                              spids: [472]
                            )
                          ]
                          spids: [472]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P14)
                              op: Equal
                              rhs: {(8A8A8A)}
                              spids: [476]
                            )
                          ]
                          spids: [476]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P15)
                              op: Equal
                              rhs: {(FFFFD7)}
                              spids: [480]
                            )
                          ]
                          spids: [480]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return>)
                      terminator: <Op_Semi ";">
                    )
                  ]
                  spids: [393 410]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} 
                          {(DQ ("--palette=tango"))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P0)
                              op: Equal
                              rhs: {(000000)}
                              spids: [513]
                            )
                          ]
                          spids: [513]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P1)
                              op: Equal
                              rhs: {(CC0000)}
                              spids: [517]
                            )
                          ]
                          spids: [517]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P2)
                              op: Equal
                              rhs: {(4E9A06)}
                              spids: [521]
                            )
                          ]
                          spids: [521]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P3)
                              op: Equal
                              rhs: {(C4A000)}
                              spids: [525]
                            )
                          ]
                          spids: [525]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P4)
                              op: Equal
                              rhs: {(3465A4)}
                              spids: [530]
                            )
                          ]
                          spids: [530]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P5)
                              op: Equal
                              rhs: {(75507B)}
                              spids: [534]
                            )
                          ]
                          spids: [534]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P6)
                              op: Equal
                              rhs: {(06989A)}
                              spids: [538]
                            )
                          ]
                          spids: [538]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P7)
                              op: Equal
                              rhs: {(D3D7CF)}
                              spids: [542]
                            )
                          ]
                          spids: [542]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P8)
                              op: Equal
                              rhs: {(555753)}
                              spids: [547]
                            )
                          ]
                          spids: [547]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P9)
                              op: Equal
                              rhs: {(EF2929)}
                              spids: [551]
                            )
                          ]
                          spids: [551]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P10)
                              op: Equal
                              rhs: {(8AE234)}
                              spids: [555]
                            )
                          ]
                          spids: [555]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P11)
                              op: Equal
                              rhs: {(FCE94F)}
                              spids: [559]
                            )
                          ]
                          spids: [559]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P12)
                              op: Equal
                              rhs: {(729FCF)}
                              spids: [564]
                            )
                          ]
                          spids: [564]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P13)
                              op: Equal
                              rhs: {(AD7FA8)}
                              spids: [568]
                            )
                          ]
                          spids: [568]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P14)
                              op: Equal
                              rhs: {(34E2E2)}
                              spids: [572]
                            )
                          ]
                          spids: [572]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P15)
                              op: Equal
                              rhs: {(EEEEEC)}
                              spids: [576]
                            )
                          ]
                          spids: [576]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return>)
                      terminator: <Op_Semi ";">
                    )
                  ]
                  spids: [489 506]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} 
                          {(DQ ("--palette=xterm"))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P0)
                              op: Equal
                              rhs: {(000000)}
                              spids: [605]
                            )
                          ]
                          spids: [605]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P1)
                              op: Equal
                              rhs: {(CD0000)}
                              spids: [609]
                            )
                          ]
                          spids: [609]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P2)
                              op: Equal
                              rhs: {(00CD00)}
                              spids: [613]
                            )
                          ]
                          spids: [613]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P3)
                              op: Equal
                              rhs: {(CDCD00)}
                              spids: [617]
                            )
                          ]
                          spids: [617]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P4)
                              op: Equal
                              rhs: {(0000EE)}
                              spids: [622]
                            )
                          ]
                          spids: [622]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P5)
                              op: Equal
                              rhs: {(CD00CD)}
                              spids: [626]
                            )
                          ]
                          spids: [626]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P6)
                              op: Equal
                              rhs: {(00CDCD)}
                              spids: [630]
                            )
                          ]
                          spids: [630]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P7)
                              op: Equal
                              rhs: {(E5E5E5)}
                              spids: [634]
                            )
                          ]
                          spids: [634]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P8)
                              op: Equal
                              rhs: {(7F7F7F)}
                              spids: [639]
                            )
                          ]
                          spids: [639]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P9)
                              op: Equal
                              rhs: {(FF0000)}
                              spids: [643]
                            )
                          ]
                          spids: [643]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P10)
                              op: Equal
                              rhs: {(00FF00)}
                              spids: [647]
                            )
                          ]
                          spids: [647]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P11)
                              op: Equal
                              rhs: {(FFFF00)}
                              spids: [651]
                            )
                          ]
                          spids: [651]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P12)
                              op: Equal
                              rhs: {(5C5CFF)}
                              spids: [656]
                            )
                          ]
                          spids: [656]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P13)
                              op: Equal
                              rhs: {(FF00FF)}
                              spids: [660]
                            )
                          ]
                          spids: [660]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P14)
                              op: Equal
                              rhs: {(00FFFF)}
                              spids: [664]
                            )
                          ]
                          spids: [664]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:P15)
                              op: Equal
                              rhs: {(FFFFFF)}
                              spids: [668]
                            )
                          ]
                          spids: [668]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return>)
                      terminator: <Op_Semi ";">
                    )
                  ]
                  spids: [585 602]
                )
              ]
              else_action: [
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:P0) op:Equal rhs:{(000000)} spids:[683])]
                      spids: [683]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:P1) op:Equal rhs:{(AA0000)} spids:[687])]
                      spids: [687]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:P2) op:Equal rhs:{(00AA00)} spids:[691])]
                      spids: [691]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:P3) op:Equal rhs:{(AA5500)} spids:[695])]
                      spids: [695]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:P4) op:Equal rhs:{(0000AA)} spids:[700])]
                      spids: [700]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:P5) op:Equal rhs:{(AA00AA)} spids:[704])]
                      spids: [704]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:P6) op:Equal rhs:{(00AAAA)} spids:[708])]
                      spids: [708]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:P7) op:Equal rhs:{(AAAAAA)} spids:[712])]
                      spids: [712]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:P8) op:Equal rhs:{(555555)} spids:[717])]
                      spids: [717]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:P9) op:Equal rhs:{(FF5555)} spids:[721])]
                      spids: [721]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:P10)
                          op: Equal
                          rhs: {(55FF55)}
                          spids: [725]
                        )
                      ]
                      spids: [725]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:P11)
                          op: Equal
                          rhs: {(FFFF55)}
                          spids: [729]
                        )
                      ]
                      spids: [729]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:P12)
                          op: Equal
                          rhs: {(5555FF)}
                          spids: [734]
                        )
                      ]
                      spids: [734]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:P13)
                          op: Equal
                          rhs: {(FF55FF)}
                          spids: [738]
                        )
                      ]
                      spids: [738]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:P14)
                          op: Equal
                          rhs: {(55FFFF)}
                          spids: [742]
                        )
                      ]
                      spids: [742]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:P15)
                          op: Equal
                          rhs: {(FFFFFF)}
                          spids: [746]
                        )
                      ]
                      spids: [746]
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=")} 
                          {(DQ ("--palette=linux"))} {(Lit_Other "]")}
                        )
                        (ControlFlow token:<ControlFlow_Return return>)
                      ]
                      op_id: Op_DAmp
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              spids: [677 771]
            )
          ]
          spids: [210]
        )
      spids: [206 209]
    )
    (C {(processArg)})
    (ForEach
      iter_name: var
      iter_words: [{(DQ ($ VSub_At "$@"))}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Sentence
              child: (C {(processArg)} {($ VSub_Name "$var")})
              terminator: <Op_Semi ";">
            )
          ]
          spids: [792 799]
        )
      spids: [786 790]
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$css_only"))} {(Lit_Other "]")})
        (AndOr
          children: [
            (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
            (C {(usage)})
          ]
          op_id: Op_DAmp
        )
      ]
      op_id: Op_DAmp
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (SimpleCommand
                      words: [{(sed)} {(--version)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(/dev/null)}
                          spids: [838]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(1)}
                          spids: [841]
                        )
                      ]
                    )
                  ]
                  negated: True
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(gsed)} {(--version)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(/dev/null)}
                              spids: [854]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [857]
                            )
                          ]
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(alias)} {(Lit_VarLike "sed=") (gsed)})]
                  spids: [-1 861]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [{(echo)} {(DQ ("Error, can't find an acceptable GNU sed."))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[879])]
                )
                (C {(exit)} {(1)})
              ]
              spids: [870 888]
            )
          ]
          spids: [-1 845]
        )
      ]
      spids: [-1 890]
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$css_only"))} {(Lit_Other "]")})
        (AndOr
          children: [
            (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
            (C {(printf)} {(SQ <"%s">)} 
              {
                (DQ ("<html>\n") ("<head>\n") ("<meta http-equiv=") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (Content-Type) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" content=") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("text/html; charset=utf-8") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("/>\n") 
                  ("<style type=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (text/css) 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">\n")
                )
              }
            )
          ]
          op_id: Op_DPipe
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
        (C {(printf)} 
          {
            (DQ (".ef0,.f0 { color: #") ($ VSub_Name "$P0") ("; } .eb0,.b0 { background-color: #") 
              ($ VSub_Name "$P0") ("; }\n") (".ef1,.f1 { color: #") ($ VSub_Name "$P1") ("; } .eb1,.b1 { background-color: #") 
              ($ VSub_Name "$P1") ("; }\n") (".ef2,.f2 { color: #") ($ VSub_Name "$P2") ("; } .eb2,.b2 { background-color: #") 
              ($ VSub_Name "$P2") ("; }\n") (".ef3,.f3 { color: #") ($ VSub_Name "$P3") ("; } .eb3,.b3 { background-color: #") 
              ($ VSub_Name "$P3") ("; }\n") (".ef4,.f4 { color: #") ($ VSub_Name "$P4") ("; } .eb4,.b4 { background-color: #") 
              ($ VSub_Name "$P4") ("; }\n") (".ef5,.f5 { color: #") ($ VSub_Name "$P5") ("; } .eb5,.b5 { background-color: #") 
              ($ VSub_Name "$P5") ("; }\n") (".ef6,.f6 { color: #") ($ VSub_Name "$P6") ("; } .eb6,.b6 { background-color: #") 
              ($ VSub_Name "$P6") ("; }\n") (".ef7,.f7 { color: #") ($ VSub_Name "$P7") ("; } .eb7,.b7 { background-color: #") 
              ($ VSub_Name "$P7") ("; }\n") (".ef8, .f0 > .bold,.bold > .f0 { color: #") ($ VSub_Name "$P8") 
              ("; font-weight: normal; }\n") (".ef9, .f1 > .bold,.bold > .f1 { color: #") ($ VSub_Name "$P9") ("; font-weight: normal; }\n") 
              (".ef10,.f2 > .bold,.bold > .f2 { color: #") ($ VSub_Name "$P10") ("; font-weight: normal; }\n") (".ef11,.f3 > .bold,.bold > .f3 { color: #") 
              ($ VSub_Name "$P11") ("; font-weight: normal; }\n") (".ef12,.f4 > .bold,.bold > .f4 { color: #") ($ VSub_Name "$P12") 
              ("; font-weight: normal; }\n") (".ef13,.f5 > .bold,.bold > .f5 { color: #") ($ VSub_Name "$P13") ("; font-weight: normal; }\n") 
              (".ef14,.f6 > .bold,.bold > .f6 { color: #") ($ VSub_Name "$P14") ("; font-weight: normal; }\n") (".ef15,.f7 > .bold,.bold > .f7 { color: #") 
              ($ VSub_Name "$P15") ("; font-weight: normal; }\n") (".eb8  { background-color: #") ($ VSub_Name "$P8") ("; }\n") 
              (".eb9  { background-color: #") ($ VSub_Name "$P9") ("; }\n") (".eb10 { background-color: #") ($ VSub_Name "$P10") ("; }\n") 
              (".eb11 { background-color: #") ($ VSub_Name "$P11") ("; }\n") (".eb12 { background-color: #") ($ VSub_Name "$P12") ("; }\n") 
              (".eb13 { background-color: #") ($ VSub_Name "$P13") ("; }\n") (".eb14 { background-color: #") ($ VSub_Name "$P14") ("; }\n") 
              (".eb15 { background-color: #") ($ VSub_Name "$P15") ("; }\n")
            )
          }
        )
      ]
      op_id: Op_DPipe
    )
    (ForEach
      iter_name: red
      iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (ForEach
              iter_name: green
              iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: blue
                      iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:c)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArithSubPart
                                        anode: 
                                          (ArithBinary
                                            op_id: Arith_Plus
                                            left: 
                                              (ArithBinary
                                                op_id: Arith_Plus
                                                left: 
                                                  (ArithBinary
                                                    op_id: Arith_Plus
                                                    left: (ArithWord w:{(Lit_Digits 16)})
                                                    right: 
                                                      (ArithBinary
                                                        op_id: Arith_Star
                                                        left: (ArithWord w:{($ VSub_Name "$red")})
                                                        right: (ArithWord w:{(Lit_Digits 36)})
                                                      )
                                                  )
                                                right: 
                                                  (ArithBinary
                                                    op_id: Arith_Star
                                                    left: (ArithWord w:{($ VSub_Name "$green")})
                                                    right: (ArithWord w:{(Lit_Digits 6)})
                                                  )
                                              )
                                            right: (ArithWord w:{($ VSub_Name "$blue")})
                                          )
                                        spids: [1114 1141]
                                      )
                                    }
                                  spids: [1113]
                                )
                              ]
                              spids: [1113]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:r)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArithSubPart
                                        anode: 
                                          (ArithBinary
                                            op_id: Arith_Star
                                            left: 
                                              (ArithBinary
                                                op_id: Arith_Plus
                                                left: 
                                                  (ArithBinary
                                                    op_id: Arith_Star
                                                    left: (ArithWord w:{($ VSub_Name "$red")})
                                                    right: (ArithWord w:{(Lit_Digits 40)})
                                                  )
                                                right: (ArithWord w:{(Lit_Digits 55)})
                                              )
                                            right: 
                                              (ArithBinary
                                                op_id: Arith_Great
                                                left: (ArithWord w:{($ VSub_Name "$red")})
                                                right: (ArithWord w:{(Lit_Digits 0)})
                                              )
                                          )
                                        spids: [1145 1168]
                                      )
                                    }
                                  spids: [1144]
                                )
                              ]
                              spids: [1144]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:g)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArithSubPart
                                        anode: 
                                          (ArithBinary
                                            op_id: Arith_Star
                                            left: 
                                              (ArithBinary
                                                op_id: Arith_Plus
                                                left: 
                                                  (ArithBinary
                                                    op_id: Arith_Star
                                                    left: (ArithWord w:{($ VSub_Name "$green")})
                                                    right: (ArithWord w:{(Lit_Digits 40)})
                                                  )
                                                right: (ArithWord w:{(Lit_Digits 55)})
                                              )
                                            right: 
                                              (ArithBinary
                                                op_id: Arith_Great
                                                left: (ArithWord w:{($ VSub_Name "$green")})
                                                right: (ArithWord w:{(Lit_Digits 0)})
                                              )
                                          )
                                        spids: [1172 1195]
                                      )
                                    }
                                  spids: [1171]
                                )
                              ]
                              spids: [1171]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:b)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArithSubPart
                                        anode: 
                                          (ArithBinary
                                            op_id: Arith_Star
                                            left: 
                                              (ArithBinary
                                                op_id: Arith_Plus
                                                left: 
                                                  (ArithBinary
                                                    op_id: Arith_Star
                                                    left: (ArithWord w:{($ VSub_Name "$blue")})
                                                    right: (ArithWord w:{(Lit_Digits 40)})
                                                  )
                                                right: (ArithWord w:{(Lit_Digits 55)})
                                              )
                                            right: 
                                              (ArithBinary
                                                op_id: Arith_Great
                                                left: (ArithWord w:{($ VSub_Name "$blue")})
                                                right: (ArithWord w:{(Lit_Digits 0)})
                                              )
                                          )
                                        spids: [1199 1222]
                                      )
                                    }
                                  spids: [1198]
                                )
                              ]
                              spids: [1198]
                            )
                            (AndOr
                              children: [
                                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
                                (C {(printf)} {(DQ (".ef%d { color: #%2.2x%2.2x%2.2x; } "))} 
                                  {($ VSub_Name "$c")} {($ VSub_Name "$r")} {($ VSub_Name "$g")} {($ VSub_Name "$b")}
                                )
                              ]
                              op_id: Op_DPipe
                            )
                            (AndOr
                              children: [
                                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
                                (C {(printf)} 
                                  {
                                    (DQ (".eb%d { background-color: #%2.2x%2.2x%2.2x; }") 
                                      (EscapedLiteralPart
                                        token: <Lit_EscapedChar "\\n">
                                      )
                                    )
                                  } {($ VSub_Name "$c")} {($ VSub_Name "$r")} {($ VSub_Name "$g")} {($ VSub_Name "$b")}
                                )
                              ]
                              op_id: Op_DPipe
                            )
                          ]
                          spids: [1110 1276]
                        )
                      spids: [1095 1108]
                    )
                  ]
                  spids: [1087 1279]
                )
              spids: [1072 1085]
            )
          ]
          spids: [1064 1281]
        )
      spids: [1049 1062]
    )
    (ForEach
      iter_name: gray
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(seq)} {(0)} {(23)})])
            left_token: <Left_CommandSub "$(">
            spids: [1289 1295]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:c)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Plus
                            left: (ArithWord w:{($ VSub_Name "$gray")})
                            right: (ArithWord w:{(Lit_Digits 232)})
                          )
                        spids: [1302 1307]
                      )
                    }
                  spids: [1301]
                )
              ]
              spids: [1301]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:l)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Plus
                            left: 
                              (ArithBinary
                                op_id: Arith_Star
                                left: (ArithWord w:{($ VSub_Name "$gray")})
                                right: (ArithWord w:{(Lit_Digits 10)})
                              )
                            right: (ArithWord w:{(Lit_Digits 8)})
                          )
                        spids: [1311 1320]
                      )
                    }
                  spids: [1310]
                )
              ]
              spids: [1310]
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
                (C {(printf)} {(DQ (".ef%d { color: #%2.2x%2.2x%2.2x; } "))} {($ VSub_Name "$c")} 
                  {($ VSub_Name "$l")} {($ VSub_Name "$l")} {($ VSub_Name "$l")}
                )
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
                (C {(printf)} 
                  {
                    (DQ (".eb%d { background-color: #%2.2x%2.2x%2.2x; }") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\n">)
                    )
                  } {($ VSub_Name "$c")} {($ VSub_Name "$l")} {($ VSub_Name "$l")} {($ VSub_Name "$l")}
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [1298 1373]
        )
      spids: [1288 1296]
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
        (C {(printf)} {(SQ <"%s">)} 
          {(SQ <"\n"> <".f9 { color: ">) 
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$dark_bg"))} {(Lit_Other "]")})
                        (AndOr
                          children: [
                            (C {(printf)} {(DQ ("#") ($ VSub_Name "$P7") (";"))})
                            (C {(printf)} {(DQ ("#") ($ VSub_Name "$P0") (";"))})
                          ]
                          op_id: Op_DPipe
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                )
              left_token: <Left_Backtick "`">
              spids: [1396 1424]
            ) (SQ <" }\n"> <".b9 { background-color: #">) 
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$dark_bg"))} {(Lit_Other "]")})
                        (AndOr
                          children: [
                            (C {(printf)} {($ VSub_Name "$P0")})
                            (C {(printf)} {($ VSub_Name "$P15")})
                          ]
                          op_id: Op_DPipe
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                )
              left_token: <Left_Backtick "`">
              spids: [1429 1449]
            ) 
            (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: ">
            ) 
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$dark_bg"))} {(Lit_Other "]")})
                        (AndOr
                          children: [
                            (C {(printf)} {(DQ ("#") ($ VSub_Name "$P15") (";"))})
                            (C {(printf)} {(DQ ("#") ($ VSub_Name "$P0") (";"))})
                          ]
                          op_id: Op_DPipe
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                )
              left_token: <Left_Backtick "`">
              spids: [1457 1485]
            ) (SQ <"\n"> <"  font-weight: ">) 
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$dark_bg"))} {(Lit_Other "]")})
                        (AndOr
                          children: [(C {(printf)} {(SQ <"normal;">)}) (C {(printf)} {(SQ <"bold;">)})]
                          op_id: Op_DPipe
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                )
              left_token: <Left_Backtick "`">
              spids: [1490 1514]
            ) 
            (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: #") ($ VSub_Name "$P0") ("; background-color: #") ($ VSub_Name "$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">
            )
          }
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
        (AndOr
          children: [
            (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$css_only"))} {(Lit_Other "]")})
            (SimpleCommand
              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 fd:-1 arg_word:{(2)} spids:[1579])]
            )
          ]
          op_id: Op_DAmp
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [(C {(Lit_Other "[")} {(DQ ($ VSub_Name "$css_only"))} {(Lit_Other "]")}) (C {(exit)})]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
        (C {(printf)} {(SQ <"%s">)} 
          {(SQ <"</style>\n"> <"</head>\n"> <"\n"> <"<body class=\"f9 b9\">\n"> <"<pre>\n">)}
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
        (SimpleCommand
          words: [{(printf)} {(SQ <"%s\\n">)} {(SQ <"Be sure to use <body class=\"f9 b9\"> and <pre>">)}]
          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1638])]
        )
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:p) op:Equal rhs:{(SQ <"\\x1b\\[">)} spids:[1642])]
      spids: [1642]
    )
    (Pipeline
      children: [
        (C {(sed)} 
          {
            (DQ ("\n") ("# escape ampersand and quote\n") ("s#&#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\&">) ("amp;#g; s#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\&">) ("quot;#g;\n") ("s#") (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) ("1b[^") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) ("1b]*") (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) (1b) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (EscapedLiteralPart token:<Lit_EscapedChar "\\#">) ("#g  # strip anything between ") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\e">) (" and ST\n") ("s#") (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) ("1b][0-9]*;[^") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\a">) ("]*") (EscapedLiteralPart token:<Lit_EscapedChar "\\a">) ("##g # strip any OSC (xterm title etc.)\n") 
              ("\n") ("s#") (EscapedLiteralPart token:<Lit_EscapedChar "\\r">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("## # strip trailing ") (EscapedLiteralPart token:<Lit_EscapedChar "\\r">) ("\n") ("\n") 
              ("# strip other non SGR escape sequences\n") ("s#[") (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) ("07]##g\n") ("s#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) ("1b[]>=") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) ("[0-9;]*##g\n") ("s#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) ("1bP+.") (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) (5) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) ("##g\n") ("# Mark cursor positioning codes ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
              ("Jr;c;\n") ("s#") (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,2") (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("G#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("J;") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (";#g\n") ("s#") (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,2") (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) (";") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,2") (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("H#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (J) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (";") (EscapedLiteralPart token:<Lit_EscapedChar "\\2">) (";#g\n") ("\n") ("# Mark clear as ") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("Cn where n=1 is screen and n=0 is to end-of-line\n") ("s#") (${ VSub_Name p) ("H#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("C1;#g\n") ("s#") (${ VSub_Name p) ("K#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("C0;#g\n") 
              ("# Mark Cursor move columns as ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("Mn where n is +ve for right, -ve for left\n") 
              ("s#") (${ VSub_Name p) ("C#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("M1;#g\n") ("s#") 
              (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,") (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("C#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (M) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (";#g\n") ("s#") (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,") (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("D#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (M-) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (";#g\n") ("s#") (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,") (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("P#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (X) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (";#g\n") ("\n") ("s#") (${ VSub_Name p) ("[0-9;?]*[^0-9;?m]##g\n") ("\n")
            )
          }
        )
        (C {(sed)} 
          {
            (DQ ("\n") ("# escape HTML (ampersand and quote done above)\n") ("s#>#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\&">) ("gt;#g; s#<#") (EscapedLiteralPart token:<Lit_EscapedChar "\\&">) ("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#") (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9;]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,") (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) (";") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[34]8;5;[0-9]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,3") (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#") (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (m) (${ VSub_Name p) ("\u00ac") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\2">) ("m#g; t e\n") ("s#") (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) 
              ("[34]8;5;[0-9]") (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,3") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#") (${ VSub_Name p) ("\u00ac") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) ("m#g;\n") ("\n") (":c\n") ("s#") (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) 
              ("[0-9]") (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) (";") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9;]") (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#") (${ VSub_Name p) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (m) (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\2">) 
              ("m#g; t c   # split combined\n") ("s#") (${ VSub_Name p) (0) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-7]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("#") (${ VSub_Name p) (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) 
              ("#g                                 #strip leading 0\n") ("s#") (${ VSub_Name p) (1m) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (${ VSub_Name p) ("[4579]m") (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("*") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("#") (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (${ VSub_Name p) 
              ("1m#g                   #bold last (with clr)\n") ("s#") (${ VSub_Name p) ("m#") (${ VSub_Name p) 
              ("0m#g                                          #add leading 0 to norm\n") ("\n") ("# undo any 256 color marking\n") ("s#") (${ VSub_Name p) ("\u00ac") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[34]8;5;[0-9]") (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,3") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#") (${ VSub_Name p) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) ("m#g;\n") ("\n") ("# map 16 color codes to color + bold\n") ("s#") (${ VSub_Name p) (9) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-7]") (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#") (${ VSub_Name p) (3) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (m) (${ VSub_Name p) ("1m#g;\n") ("s#") (${ VSub_Name p) (10) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-7]") (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#") (${ VSub_Name p) (4) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (m) (${ VSub_Name p) ("1m#g;\n") ("\n") ("# change 'reset' code to ") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("R\n") ("s#") (${ VSub_Name p) ("0m#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("R;#g\n")
            )
          }
        )
        (C {(sed)} 
          {
            (DQ ("\n") ("# common combinations to minimise html (optional)\n") (":f\n") ("s#") 
              (${ VSub_Name p) ("3[0-7]m") (${ VSub_Name p) (3) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-7]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#") (${ VSub_Name p) (3) (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) ("m#g; t f\n") (":b\n") 
              ("s#") (${ VSub_Name p) ("4[0-7]m") (${ VSub_Name p) (4) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) 
              ("[0-7]") (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#") (${ VSub_Name p) (4) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) ("m#g; t b\n") ("s#") (${ VSub_Name p) (3) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-7]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) (m) (${ VSub_Name p) (4) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-7]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#<span class=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (f) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (" b") (EscapedLiteralPart token:<Lit_EscapedChar "\\2">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("s#") (${ VSub_Name p) (4) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-7]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) (m) (${ VSub_Name p) (3) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-7]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#<span class=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (f) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\2">) (" b") (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("\n") ("s#") (${ VSub_Name p) ("1m#<span class=") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (bold) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("s#") (${ VSub_Name p) 
              ("4m#<span class=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (underline) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("s#") (${ VSub_Name p) ("5m#<span class=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
              (blink) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("s#") (${ VSub_Name p) ("7m#<span class=") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (reverse) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("s#") (${ VSub_Name p) 
              ("9m#<span class=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (line-through) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("s#") (${ VSub_Name p) (3) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#<span class=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (f) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("s#") (${ VSub_Name p) (4) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9]") (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#<span class=") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (b) (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("\n") ("s#") (${ VSub_Name p) ("38;5;") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) 
              ("[0-9]") (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,3") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#<span class=") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (ef) (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("s#") (${ VSub_Name p) ("48;5;") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9]") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\{">) ("1,3") (EscapedLiteralPart token:<Lit_EscapedChar "\\}">) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("m#<span class=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (eb) 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">#g\n") ("\n") ("s#") (${ VSub_Name p) 
              ("[0-9;]*m##g # strip unhandled codes\n")
            )
          }
        )
        (C {(sed)} 
          {
            (DQ ("\n") ("# change 'smacs' and 'rmacs' to ") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("T1 and ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("T0 to simplify matching.\n") ("s#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) ("1b(0#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("T1;#g;\n") ("s#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) ("0E#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("T1;#g;\n") ("\n") ("s#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) ("1b(B#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("T0;#g\n") ("s#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\x">) ("0F#") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("T0;#g\n")
            )
          }
        )
        (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=\"\u2592\u2409\u240c\u240d\u240a\u00b0\u00b1\u2424\u240b\u2518\u2510\u250c\u2514\u253c\u23ba\u23bb\u2500\u23bc\u23bd\u251c\u2524\u2534\u252c\u2502\u2264\u2265\u03c0\u00a3\u25c6\u00b7\"\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"> <"}">
                )
              }
            )
          spids: [2344 2551]
        )
      ]
      negated: False
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$body_only"))} {(Lit_Other "]")})
        (C {(printf)} {(SQ <"</pre>\n"> <"</body>\n"> <"</html>\\n">)})
      ]
      op_id: Op_DPipe
    )
  ]
)