(CommandList
  children: [
    (FuncDef
      name: add_to_manpath
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Name '$manpath'))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (Lit_Other ':') ($ VSub_Number '$1')}]
                  action: [
                    (C {(decho)} {(DQ ('  Skipping duplicate manpath entry ') ($ VSub_Number '$1'))} 
                      {(2)}
                    )
                  ]
                  spids: [107 110 121 -1]
                )
                (case_arm
                  pat_list: [{($ VSub_Number '$1') (Lit_Other ':') (Lit_Other '*')}]
                  action: [
                    (C {(decho)} {(DQ ('  Skipping duplicate manpath entry ') ($ VSub_Number '$1'))} 
                      {(2)}
                    )
                  ]
                  spids: [124 127 138 -1]
                )
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (Lit_Other ':') ($ VSub_Number '$1') (Lit_Other ':') 
                      (Lit_Other '*')
                    }
                  ]
                  action: [
                    (C {(decho)} {(DQ ('  Skipping duplicate manpath entry ') ($ VSub_Number '$1'))} 
                      {(2)}
                    )
                  ]
                  spids: [141 146 157 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(decho)} {(DQ ('  Adding ') ($ VSub_Number '$1') (' to manpath'))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:manpath)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$manpath') (':') ($ VSub_Number '$1'))}
                                  spids: [188]
                                )
                              ]
                              spids: [188]
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [-1 176]
                        )
                      ]
                      spids: [-1 201]
                    )
                  ]
                  spids: [160 161 204 -1]
                )
              ]
              spids: [98 104 207]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [95]
        )
      spids: [91 94]
    )
    (FuncDef
      name: build_manlocales
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$MANLOCALES'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return>)]
                  spids: [-1 248]
                )
              ]
              spids: [-1 254]
            )
            (C {(parse_configs)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:MANLOCALES)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name manlocales>
                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(':')})
                        spids: [267 271]
                      )
                    }
                  spids: [266]
                )
              ]
              spids: [266]
            )
            (C {(decho)} {(DQ ('Available manual locales: ') ($ VSub_Name '$MANLOCALES'))})
          ]
          spids: [228]
        )
      spids: [224 227]
    )
    (FuncDef
      name: build_manpath
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal spids:[300])]
              spids: [298]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$MANPATH'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$MANPATH'))}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '*') (Lit_Other ':')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:PREPEND_MANPATH)
                                  op: Equal
                                  rhs: {(${ VSub_Name MANPATH)}
                                  spids: [337]
                                )
                              ]
                              spids: [337]
                            )
                          ]
                          spids: [333 335 342 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other ':') (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:APPEND_MANPATH)
                                  op: Equal
                                  rhs: {(${ VSub_Name MANPATH)}
                                  spids: [349]
                                )
                              ]
                              spids: [349]
                            )
                          ]
                          spids: [345 347 354 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*') (Lit_Other ':') (Lit_Other ':') (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:PREPEND_MANPATH)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name MANPATH>
                                        suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('::*')})
                                        spids: [365 369]
                                      )
                                    }
                                  spids: [364]
                                )
                              ]
                              spids: [364]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:APPEND_MANPATH)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name MANPATH>
                                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*::')})
                                        spids: [373 377]
                                      )
                                    }
                                  spids: [372]
                                )
                              ]
                              spids: [372]
                            )
                          ]
                          spids: [357 361 380 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(ControlFlow token:<ControlFlow_Return return>)]
                          spids: [383 384 388 -1]
                        )
                      ]
                      spids: [324 330 391]
                    )
                  ]
                  spids: [-1 321]
                )
              ]
              spids: [-1 394]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$PREPEND_MANPATH'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {(Lit_Other ':')}
                          spids: [414]
                        )
                      ]
                      spids: [414]
                    )
                    (ForEach
                      iter_name: path
                      iter_words: [{($ VSub_Name '$PREPEND_MANPATH')}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [(C {(add_to_manpath)} {(DQ ($ VSub_Name '$path'))})]
                          spids: [427 437]
                        )
                      spids: [423 425]
                    )
                    (C {(unset)} {(IFS)})
                  ]
                  spids: [-1 411]
                )
              ]
              spids: [-1 445]
            )
            (C {(search_path)})
            (C {(decho)} {(DQ ('Adding default manpath entries'))})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(Lit_Other ':')} spids:[460])]
              spids: [460]
            )
            (ForEach
              iter_name: path
              iter_words: [{($ VSub_Name '$man_default_path')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [(C {(add_to_manpath)} {(DQ ($ VSub_Name '$path'))})]
                  spids: [473 483]
                )
              spids: [469 471]
            )
            (C {(unset)} {(IFS)})
            (C {(parse_configs)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$APPEND_MANPATH'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {(Lit_Other ':')}
                          spids: [512]
                        )
                      ]
                      spids: [512]
                    )
                    (ForEach
                      iter_name: path
                      iter_words: [{($ VSub_Name '$APPEND_MANPATH')}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [(C {(add_to_manpath)} {(DQ ($ VSub_Name '$path'))})]
                          spids: [525 535]
                        )
                      spids: [521 523]
                    )
                    (C {(unset)} {(IFS)})
                  ]
                  spids: [-1 509]
                )
              ]
              spids: [-1 543]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:MANPATH)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name manpath>
                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(':')})
                        spids: [551 555]
                      )
                    }
                  spids: [550]
                )
              ]
              spids: [550]
            )
            (C {(decho)} {(DQ ('Using manual path: ') ($ VSub_Name '$MANPATH'))})
          ]
          spids: [295]
        )
      spids: [291 294]
    )
    (FuncDef
      name: check_cat
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(exists)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use_cat)
                          op: Equal
                          rhs: {(yes)}
                          spids: [594]
                        )
                      ]
                      spids: [594]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:catpage)
                          op: Equal
                          rhs: {($ VSub_Name '$found')}
                          spids: [598]
                        )
                      ]
                      spids: [598]
                    )
                    (C {(setup_cattool)} {($ VSub_Name '$catpage')})
                    (C {(decho)} {(DQ ('    Found catpage ') ($ VSub_Name '$catpage'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [-1 591]
                )
              ]
              else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
              spids: [620 628]
            )
          ]
          spids: [579]
        )
      spids: [575 578]
    )
    (FuncDef
      name: check_man
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(exists)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:manpage)
                          op: Equal
                          rhs: {($ VSub_Name '$found')}
                          spids: [665]
                        )
                      ]
                      spids: [665]
                    )
                    (C {(setup_cattool)} {($ VSub_Name '$manpage')})
                    (C {(decho)} {(DQ ('    Found manpage ') ($ VSub_Name '$manpage'))})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name use_width))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(unset)} {(use_cat)})
                            (C {(decho)} {(DQ ('    Skipping catpage: non-standard page width'))})
                          ]
                          spids: [-1 698]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(exists)} {(DQ ($ VSub_Number '$2'))})
                                    (C {(is_newer)} {($ VSub_Name '$found')} {($ VSub_Name '$manpage')})
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:use_cat)
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [741]
                                )
                              ]
                              spids: [741]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:catpage)
                                  op: Equal
                                  rhs: {($ VSub_Name '$found')}
                                  spids: [745]
                                )
                              ]
                              spids: [745]
                            )
                            (C {(setup_cattool)} {($ VSub_Name '$catpage')})
                            (C {(decho)} {(DQ ('    Using catpage ') ($ VSub_Name '$catpage'))})
                          ]
                          spids: [717 734]
                        )
                      ]
                      else_action: [
                        (C {(unset)} {(use_cat)})
                        (C {(decho)} {(DQ ('    Skipping catpage: not found or old'))})
                      ]
                      spids: [762 781]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [-1 658]
                )
              ]
              spids: [-1 789]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [646]
        )
      spids: [642 645]
    )
    (FuncDef
      name: decho
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Name '$debug')} {(-ge)} 
                          {
                            (BracedVarSub
                              token: <VSub_Number 2>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)})
                              spids: [821 825]
                            )
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('-- ') ($ VSub_Number '$1'))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[840])]
                    )
                  ]
                  spids: [-1 830]
                )
              ]
              spids: [-1 844]
            )
          ]
          spids: [810]
        )
      spids: [806 809]
    )
    (FuncDef
      name: exists
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal spids:[864])]
              spids: [862]
            )
            (C {(unset)} {(IFS)})
            (C {(set)} {(Lit_Other '+') (f)})
            (C {(set)} {(--)} {(DQ ($ VSub_Number '$1'))} {($ VSub_Number '$1')})
            (C {(set)} {(-f)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(KW_Bang '!') (Lit_Other '=')} 
                          {(DQ ($ VSub_Number '$2'))} {(-a)} {(-r)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:found)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$2'))}
                          spids: [938]
                        )
                      ]
                      spids: [938]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [-1 935]
                )
              ]
              spids: [-1 949]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [859]
        )
      spids: [855 858]
    )
    (FuncDef
      name: find_file
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:manroot) op:Equal spids:[978])
                (assign_pair lhs:(LhsName name:catroot) op:Equal spids:[980])
                (assign_pair lhs:(LhsName name:mann) op:Equal spids:[982])
                (assign_pair lhs:(LhsName name:man0) op:Equal spids:[984])
                (assign_pair lhs:(LhsName name:catn) op:Equal spids:[986])
                (assign_pair lhs:(LhsName name:cat0) op:Equal spids:[988])
              ]
              spids: [976]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:manroot)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1') (/man) ($ VSub_Number '$2'))}
                  spids: [992]
                )
              ]
              spids: [992]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:catroot)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1') (/cat) ($ VSub_Number '$2'))}
                  spids: [1000]
                )
              ]
              spids: [1000]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Number '$3'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:manroot)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$manroot') (/) ($ VSub_Number '$3'))}
                          spids: [1024]
                        )
                      ]
                      spids: [1024]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:catroot)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$catroot') (/) ($ VSub_Number '$3'))}
                          spids: [1032]
                        )
                      ]
                      spids: [1032]
                    )
                  ]
                  spids: [-1 1021]
                )
              ]
              spids: [-1 1040]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_Name '$manroot'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                  spids: [-1 1059]
                )
              ]
              spids: [-1 1067]
            )
            (C {(decho)} {(DQ ('  Searching directory ') ($ VSub_Name '$manroot'))} {(2)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mann)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$manroot') (/) ($ VSub_Number '$4') (.) ($ VSub_Number '$2') ('*'))
                    }
                  spids: [1081]
                )
              ]
              spids: [1081]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:man0)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$manroot') (/) ($ VSub_Number '$4') ('.0*'))}
                  spids: [1092]
                )
              ]
              spids: [1092]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:catn)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$catroot') (/) ($ VSub_Number '$4') (.) ($ VSub_Number '$2') ('*'))
                    }
                  spids: [1101]
                )
              ]
              spids: [1101]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cat0)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$catroot') (/) ($ VSub_Number '$4') ('.0*'))}
                  spids: [1112]
                )
              ]
              spids: [1112]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(check_man)} {(DQ ($ VSub_Name '$mann'))} {(DQ ($ VSub_Name '$catn'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [-1 1143]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(check_man)} {(DQ ($ VSub_Name '$man0'))} {(DQ ($ VSub_Name '$cat0'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [1151 1164]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(check_cat)} {(DQ ($ VSub_Name '$catn'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [1172 1181]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(check_cat)} {(DQ ($ VSub_Name '$cat0'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [1189 1198]
                )
              ]
              spids: [-1 1206]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [973]
        )
      spids: [969 972]
    )
    (FuncDef
      name: is_newer
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(-ot)} 
                              {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                            )
                          ]
                          negated: True
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(decho)} 
                      {
                        (DQ ('    mtime: ') ($ VSub_Number '$1') (' not older than ') 
                          ($ VSub_Number '$2')
                        )
                      } {(3)}
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [-1 1249]
                )
              ]
              else_action: [
                (C {(decho)} 
                  {(DQ ('    mtime: ') ($ VSub_Number '$1') (' older than ') ($ VSub_Number '$2'))} {(3)}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              spids: [1269 1289]
            )
          ]
          spids: [1227]
        )
      spids: [1223 1226]
    )
    (FuncDef
      name: manpath_parse_args
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:cmd_arg) op:Equal spids:[1309])]
              spids: [1307]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(getopts)} {(SQ <Ldq>)} {(cmd_arg)})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ (${ VSub_Name cmd_arg))}
                      arms: [
                        (case_arm
                          pat_list: [{(L)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:Lflag)
                                  op: Equal
                                  rhs: {(Lflag)}
                                  spids: [1341]
                                )
                              ]
                              spids: [1341]
                            )
                          ]
                          spids: [1338 1339 1344 -1]
                        )
                        (case_arm
                          pat_list: [{(d)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:debug)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArithSubPart
                                        anode: 
                                          (ArithBinary
                                            op_id: Arith_Plus
                                            left: (ArithWord w:{($ VSub_Name '$debug')})
                                            right: (ArithWord w:{(Lit_Digits 1)})
                                          )
                                        spids: [1351 1360]
                                      )
                                    }
                                  spids: [1350]
                                )
                              ]
                              spids: [1350]
                            )
                          ]
                          spids: [1347 1348 1362 -1]
                        )
                        (case_arm
                          pat_list: [{(q)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:qflag)
                                  op: Equal
                                  rhs: {(qflag)}
                                  spids: [1368]
                                )
                              ]
                              spids: [1368]
                            )
                          ]
                          spids: [1365 1366 1371 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(C {(manpath_usage)})]
                          spids: [1374 1375 1379 -1]
                        )
                      ]
                      spids: [1327 1335 1382]
                    )
                  ]
                  spids: [1324 1385]
                )
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1387])]
            )
          ]
          spids: [1304]
        )
      spids: [1300 1303]
    )
    (FuncDef
      name: manpath_usage
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(echo)} {(SQ <'usage: manpath [-Ldq]'>)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1412])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [1403]
        )
      spids: [1399 1402]
    )
    (FuncDef
      name: manpath_warnings
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$Lflag'))} {(-a)} {(-n)} 
                          {(DQ ($ VSub_Name '$MANLOCALES'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('(Warning: MANLOCALES environment variable set)'))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1466])]
                    )
                  ]
                  spids: [-1 1457]
                )
              ]
              spids: [-1 1470]
            )
          ]
          spids: [1433]
        )
      spids: [1429 1432]
    )
    (FuncDef
      name: man_check_for_so
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[1496])
                (assign_pair lhs:(LhsName name:line) op:Equal spids:[1498])
                (assign_pair lhs:(LhsName name:tstr) op:Equal spids:[1500])
              ]
              spids: [1494]
            )
            (C {(unset)} {(IFS)})
            (While
              cond: [(C {(true)})]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:line)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {($ VSub_Name '$cattool')} {($ VSub_Name '$manpage')})
                                          (C {(head)} {(-1)})
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1523 1533]
                              )
                            }
                          spids: [1522]
                        )
                      ]
                      spids: [1522]
                    )
                    (Case
                      to_match: {(DQ ($ VSub_Name '$line'))}
                      arms: [
                        (case_arm
                          pat_list: [{(.so) (Lit_Other '*')}]
                          action: [
                            (C {(trim)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name line>
                                    suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.so)})
                                    spids: [1552 1556]
                                  )
                                )
                              }
                            )
                            (C {(decho)} 
                              {(DQ ($ VSub_Name '$manpage') (' includes ') ($ VSub_Name '$tstr'))}
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(check_man)} 
                                              {
                                                (DQ ($ VSub_Name '$path') (/) ($ VSub_Name '$tstr') 
                                                  ('*')
                                                )
                                              } {(DQ )}
                                            )
                                          ]
                                          negated: True
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(decho)} {(DQ ('  Unable to find ') ($ VSub_Name '$tstr'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [-1 1590]
                                )
                              ]
                              spids: [-1 1606]
                            )
                          ]
                          spids: [1545 1547 1609 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [1612 1613 1617 -1]
                        )
                      ]
                      spids: [1536 1542 1620]
                    )
                  ]
                  spids: [1519 1623]
                )
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [1491]
        )
      spids: [1487 1490]
    )
    (FuncDef
      name: man_display_page
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[1649])
                (assign_pair lhs:(LhsName name:pipeline) op:Equal spids:[1651])
                (assign_pair lhs:(LhsName name:testline) op:Equal spids:[1653])
              ]
              spids: [1647]
            )
            (C {(unset)} {(IFS)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$tflag'))} {(-a)} {(-n)} 
                          {(DQ ($ VSub_Name '$use_cat'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$wflag'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ ($ VSub_Name '$catpage') (' (source: ') ($ VSub_Name '$manpage') 
                                  (')')
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ret)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [1729]
                                )
                              ]
                              spids: [1729]
                            )
                          ]
                          spids: [-1 1716]
                        )
                      ]
                      else_action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {($ VSub_Name '$debug')} {(-gt)} {(0)} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(decho)} 
                                  {
                                    (DQ ('Command: ') ($ VSub_Name '$cattool') (' ') 
                                      ($ VSub_Name '$catpage') (' | ') ($ VSub_Name '$MANPAGER')
                                    )
                                  }
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:ret)
                                      op: Equal
                                      rhs: {(0)}
                                      spids: [1764]
                                    )
                                  ]
                                  spids: [1764]
                                )
                              ]
                              spids: [-1 1749]
                            )
                          ]
                          else_action: [
                            (C {(eval)} 
                              {
                                (DQ ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$catpage') (' | ') 
                                  ($ VSub_Name '$MANPAGER')
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ret)
                                  op: Equal
                                  rhs: {($ VSub_QMark '$?')}
                                  spids: [1782]
                                )
                              ]
                              spids: [1782]
                            )
                          ]
                          spids: [1768 1786]
                        )
                      ]
                      spids: [1733 1789]
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 1700]
                )
              ]
              spids: [-1 1795]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$wflag'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ($ VSub_Name '$manpage'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[1830])]
                      spids: [1830]
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 1820]
                )
              ]
              spids: [-1 1837]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$use_width'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:mandoc_args)
                          op: Equal
                          rhs: {(DQ ('-O width=') (${ VSub_Name use_width))}
                          spids: [1857]
                        )
                      ]
                      spids: [1857]
                    )
                  ]
                  spids: [-1 1854]
                )
              ]
              spids: [-1 1866]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:testline)
                  op: Equal
                  rhs: {(DQ ('mandoc -Tlint -Wunsupp >/dev/null 2>&1'))}
                  spids: [1869]
                )
              ]
              spids: [1869]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$tflag'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pipeline)
                          op: Equal
                          rhs: {(DQ ('mandoc -Tps ') ($ VSub_Name '$mandoc_args'))}
                          spids: [1891]
                        )
                      ]
                      spids: [1891]
                    )
                  ]
                  spids: [-1 1888]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:pipeline)
                      op: Equal
                      rhs: 
                        {
                          (DQ ('mandoc ') ($ VSub_Name '$mandoc_args') (' | ') ($ VSub_Name '$MANPAGER'))
                        }
                      spids: [1901]
                    )
                  ]
                  spids: [1901]
                )
              ]
              spids: [1898 1910]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (C {(eval)} 
                              {
                                (DQ ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$manpage') (' | ') 
                                  ($ VSub_Name '$testline')
                                )
                              }
                            )
                          ]
                          negated: True
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(which)} {(-s)} {(groff)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(man_display_page_groff)})]
                          spids: [-1 1941]
                        )
                      ]
                      else_action: [
                        (SimpleCommand
                          words: [{(echo)} {(DQ ('This manpage needs groff(1) to be rendered'))}]
                          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1956])]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(DQ ('First install groff(1): '))}]
                          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1966])]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(DQ ('pkg install groff '))}]
                          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1976])]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ret)
                              op: Equal
                              rhs: {(1)}
                              spids: [1980]
                            )
                          ]
                          spids: [1980]
                        )
                      ]
                      spids: [1947 1984]
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 1929]
                )
              ]
              spids: [-1 1990]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Name '$debug')} {(-gt)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(decho)} 
                      {
                        (DQ ('Command: ') ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$manpage') (' | ') 
                          ($ VSub_Name '$pipeline')
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[2022])]
                      spids: [2022]
                    )
                  ]
                  spids: [-1 2007]
                )
              ]
              else_action: [
                (C {(eval)} 
                  {
                    (DQ ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$manpage') (' | ') 
                      ($ VSub_Name '$pipeline')
                    )
                  }
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ret)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [2040]
                    )
                  ]
                  spids: [2040]
                )
              ]
              spids: [2026 2044]
            )
          ]
          spids: [1644]
        )
      spids: [1640 1643]
    )
    (FuncDef
      name: man_display_page_groff
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:EQN) op:Equal spids:[2064])
                (assign_pair lhs:(LhsName name:NROFF) op:Equal spids:[2066])
                (assign_pair lhs:(LhsName name:PIC) op:Equal spids:[2068])
                (assign_pair lhs:(LhsName name:TBL) op:Equal spids:[2070])
                (assign_pair lhs:(LhsName name:TROFF) op:Equal spids:[2072])
                (assign_pair lhs:(LhsName name:REFER) op:Equal spids:[2074])
                (assign_pair lhs:(LhsName name:VGRIND) op:Equal spids:[2076])
              ]
              spids: [2062]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[2081])
                (assign_pair lhs:(LhsName name:l) op:Equal spids:[2083])
                (assign_pair lhs:(LhsName name:nroff_dev) op:Equal spids:[2085])
                (assign_pair lhs:(LhsName name:pipeline) op:Equal spids:[2087])
                (assign_pair lhs:(LhsName name:preproc_arg) op:Equal spids:[2089])
                (assign_pair lhs:(LhsName name:tool) op:Equal spids:[2091])
              ]
              spids: [2079]
            )
            (Case
              to_match: {(DQ (${ VSub_Name manpage))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (.) (${ VSub_Name man_charset) (/) (Lit_Other '*')}]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$man_charset'))}
                      arms: [
                        (case_arm
                          pat_list: [{(KOI8-R)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:nroff_dev)
                                  op: Equal
                                  rhs: {(DQ (koi8-r))}
                                  spids: [2157]
                                )
                              ]
                              spids: [2157]
                            )
                          ]
                          spids: [2154 2155 2162 -1]
                        )
                        (case_arm
                          pat_list: [{(ISO8859-1)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:nroff_dev)
                                  op: Equal
                                  rhs: {(DQ (latin1))}
                                  spids: [2168]
                                )
                              ]
                              spids: [2168]
                            )
                          ]
                          spids: [2165 2166 2173 -1]
                        )
                        (case_arm
                          pat_list: [{(ISO8859-15)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:nroff_dev)
                                  op: Equal
                                  rhs: {(DQ (latin1))}
                                  spids: [2179]
                                )
                              ]
                              spids: [2179]
                            )
                          ]
                          spids: [2176 2177 2184 -1]
                        )
                        (case_arm
                          pat_list: [{(UTF-8)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:nroff_dev)
                                  op: Equal
                                  rhs: {(DQ (utf8))}
                                  spids: [2190]
                                )
                              ]
                              spids: [2190]
                            )
                          ]
                          spids: [2187 2188 2195 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:nroff_dev)
                                  op: Equal
                                  rhs: {(DQ (ascii))}
                                  spids: [2201]
                                )
                              ]
                              spids: [2201]
                            )
                          ]
                          spids: [2198 2199 2206 -1]
                        )
                      ]
                      spids: [2145 2151 2209]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NROFF)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$NROFF') (' -T') ($ VSub_Name '$nroff_dev'))}
                          spids: [2213]
                        )
                      ]
                      spids: [2213]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:EQN)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$EQN') (' -T') ($ VSub_Name '$nroff_dev'))}
                          spids: [2221]
                        )
                      ]
                      spids: [2221]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name manpage))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other '*') (/) (${ VSub_Name man_lang) (_) (${ VSub_Name man_country) 
                              (.) (${ VSub_Name man_charset) (/) (Lit_Other '*')
                            }
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:NROFF)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$NROFF') (' -dlocale=') 
                                        ($ VSub_Name '$man_lang') (.) ($ VSub_Name '$man_charset')
                                      )
                                    }
                                  spids: [2267]
                                )
                              ]
                              spids: [2267]
                            )
                          ]
                          spids: [2249 2264 2277 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(Lit_Other '*') (/) (${ VSub_Name man_lang) (.) (${ VSub_Name man_charset) 
                              (/) (Lit_Other '*')
                            }
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:NROFF)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$NROFF') (' -dlocale=') 
                                        ($ VSub_Name '$man_lang') (.) ($ VSub_Name '$man_charset')
                                      )
                                    }
                                  spids: [2294]
                                )
                              ]
                              spids: [2294]
                            )
                          ]
                          spids: [2280 2291 2304 -1]
                        )
                      ]
                      spids: [2238 2246 2307]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:l)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {($ VSub_Name '$man_lang')})
                                          (C {(tr)} 
                                            {(Lit_Other '[') (Lit_Other ':') (lower) (Lit_Other ':') 
                                              (Lit_Other ']')
                                            } {(Lit_Other '[') (Lit_Other ':') (upper) (Lit_Other ':') (Lit_Other ']')}
                                          )
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2320 2340]
                              )
                            }
                          spids: [2319]
                        )
                      ]
                      spids: [2319]
                    )
                    (ForEach
                      iter_name: tool
                      iter_words: [{(EQN)} {(NROFF)} {(PIC)} {(TBL)} {(TROFF)} {(REFER)} {(VGRIND)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (C {(eval)} 
                              {
                                (DQ ($ VSub_Name '$tool') ('=') 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\$'>
                                  ) ('{') (${ VSub_Name tool) (_) ($ VSub_Name '$l') (':-') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                  ($ VSub_Name '$tool') ('}')
                                )
                              }
                            )
                          ]
                          spids: [2364 2386]
                        )
                      spids: [2348 2362]
                    )
                  ]
                  spids: [2127 2134 2389 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NROFF)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$NROFF') (' -Tascii'))}
                          spids: [2395]
                        )
                      ]
                      spids: [2395]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:EQN)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$EQN') (' -Tascii'))}
                          spids: [2402]
                        )
                      ]
                      spids: [2402]
                    )
                  ]
                  spids: [2392 2393 2409 -1]
                )
              ]
              spids: [2116 2124 2412]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MANCOLOR'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NROFF)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$NROFF') (' -P-c'))}
                          spids: [2432]
                        )
                      ]
                      spids: [2432]
                    )
                  ]
                  spids: [-1 2429]
                )
              ]
              spids: [-1 2439]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name use_width))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NROFF)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$NROFF') (' -rLL=') (${ VSub_Name use_width) ('n -rLT=') 
                                (${ VSub_Name use_width) (n)
                              )
                            }
                          spids: [2461]
                        )
                      ]
                      spids: [2461]
                    )
                  ]
                  spids: [-1 2458]
                )
              ]
              spids: [-1 2476]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$MANROFFSEQ'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(set)} {(--)} {(-) ($ VSub_Name '$MANROFFSEQ')})
                    (While
                      cond: [
                        (Sentence
                          child: (C {(getopts)} {(SQ <egprtv>)} {(preproc_arg)})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (Case
                              to_match: {(DQ (${ VSub_Name preproc_arg))}
                              arms: [
                                (case_arm
                                  pat_list: [{(e)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:pipeline)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name '$pipeline') (' | ') 
                                                ($ VSub_Name '$EQN')
                                              )
                                            }
                                          spids: [2532]
                                        )
                                      ]
                                      spids: [2532]
                                    )
                                  ]
                                  spids: [2529 2530 2539 -1]
                                )
                                (case_arm
                                  pat_list: [{(g)}]
                                  spids: [2542 2543 2545 -1]
                                )
                                (case_arm
                                  pat_list: [{(p)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:pipeline)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name '$pipeline') (' | ') 
                                                ($ VSub_Name '$PIC')
                                              )
                                            }
                                          spids: [2554]
                                        )
                                      ]
                                      spids: [2554]
                                    )
                                  ]
                                  spids: [2551 2552 2561 -1]
                                )
                                (case_arm
                                  pat_list: [{(r)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:pipeline)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name '$pipeline') (' | ') 
                                                ($ VSub_Name '$REFER')
                                              )
                                            }
                                          spids: [2567]
                                        )
                                      ]
                                      spids: [2567]
                                    )
                                  ]
                                  spids: [2564 2565 2574 -1]
                                )
                                (case_arm
                                  pat_list: [{(t)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:pipeline)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name '$pipeline') (' | ') 
                                                ($ VSub_Name '$TBL')
                                              )
                                            }
                                          spids: [2580]
                                        )
                                      ]
                                      spids: [2580]
                                    )
                                  ]
                                  spids: [2577 2578 2587 -1]
                                )
                                (case_arm
                                  pat_list: [{(v)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:pipeline)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name '$pipeline') (' | ') 
                                                ($ VSub_Name '$VGRIND')
                                              )
                                            }
                                          spids: [2593]
                                        )
                                      ]
                                      spids: [2593]
                                    )
                                  ]
                                  spids: [2590 2591 2600 -1]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [(C {(usage)})]
                                  spids: [2603 2604 2608 -1]
                                )
                              ]
                              spids: [2518 2526 2611]
                            )
                          ]
                          spids: [2515 2614]
                        )
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pipeline)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name pipeline>
                                  suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(DQ (' | '))})
                                  spids: [2623 2629]
                                )
                              )
                            }
                          spids: [2621]
                        )
                      ]
                      spids: [2621]
                    )
                  ]
                  spids: [-1 2493]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:pipeline)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$TBL'))}
                      spids: [2636]
                    )
                  ]
                  spids: [2636]
                )
              ]
              spids: [2633 2642]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$tflag'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pipeline)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$pipeline') (' | ') ($ VSub_Name '$TROFF'))}
                          spids: [2662]
                        )
                      ]
                      spids: [2662]
                    )
                  ]
                  spids: [-1 2659]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:pipeline)
                      op: Equal
                      rhs: 
                        {
                          (DQ ($ VSub_Name '$pipeline') (' | ') ($ VSub_Name '$NROFF') (' | ') 
                            ($ VSub_Name '$MANPAGER')
                          )
                        }
                      spids: [2673]
                    )
                  ]
                  spids: [2673]
                )
              ]
              spids: [2670 2683]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Name '$debug')} {(-gt)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(decho)} 
                      {
                        (DQ ('Command: ') ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$manpage') (' | ') 
                          ($ VSub_Name '$pipeline')
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[2715])]
                      spids: [2715]
                    )
                  ]
                  spids: [-1 2700]
                )
              ]
              else_action: [
                (C {(eval)} 
                  {
                    (DQ ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$manpage') (' | ') 
                      ($ VSub_Name '$pipeline')
                    )
                  }
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ret)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [2733]
                    )
                  ]
                  spids: [2733]
                )
              ]
              spids: [2719 2737]
            )
          ]
          spids: [2059]
        )
      spids: [2055 2058]
    )
    (FuncDef
      name: man_find_and_display
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:found_page) op:Equal spids:[2757])
                (assign_pair lhs:(LhsName name:locpath) op:Equal spids:[2759])
                (assign_pair lhs:(LhsName name:p) op:Equal spids:[2761])
                (assign_pair lhs:(LhsName name:path) op:Equal spids:[2763])
                (assign_pair lhs:(LhsName name:sect) op:Equal spids:[2765])
              ]
              spids: [2755]
            )
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (/) (Lit_Other '*')}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Number '$1'))} {(-a)} {(-r)} 
                                  {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(decho)} {(DQ ('Found a usable page, displaying that'))})
                            (C {(unset)} {(use_cat)})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:manpage)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$1'))}
                                  spids: [2827]
                                )
                              ]
                              spids: [2827]
                            )
                            (C {(setup_cattool)} {($ VSub_Name '$manpage')})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(man_check_for_so)} {($ VSub_Name '$manpage')} 
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [(C {(dirname)} {($ VSub_Name '$manpage')})]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [2844 2848]
                                            )
                                          }
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:found_page)
                                          op: Equal
                                          rhs: {(yes)}
                                          spids: [2854]
                                        )
                                      ]
                                      spids: [2854]
                                    )
                                    (C {(man_display_page)})
                                  ]
                                  spids: [-1 2851]
                                )
                              ]
                              spids: [-1 2861]
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                            )
                          ]
                          spids: [-1 2812]
                        )
                      ]
                      spids: [-1 2867]
                    )
                  ]
                  spids: [2786 2789 2870 -1]
                )
              ]
              spids: [2777 2783 2873]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [2877]
                )
              ]
              spids: [2877]
            )
            (ForEach
              iter_name: sect
              iter_words: [{($ VSub_Name '$MANSECT')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(decho)} {(DQ ('Searching section ') ($ VSub_Name '$sect'))} {(2)})
                    (ForEach
                      iter_name: path
                      iter_words: [{($ VSub_Name '$MANPATH')}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (ForEach
                              iter_name: locpath
                              iter_words: [{($ VSub_Name '$locpaths')}]
                              do_arg_iter: False
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:p)
                                          op: Equal
                                          rhs: {($ VSub_Name '$path') (/) ($ VSub_Name '$locpath')}
                                          spids: [2927]
                                        )
                                      ]
                                      spids: [2927]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:p)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name p>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Percent
                                                    arg_word: {(Lit_Slash /) (.)}
                                                  )
                                                spids: [2934 2939]
                                              )
                                            }
                                          spids: [2933]
                                        )
                                      ]
                                      spids: [2933]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(find_file)} {($ VSub_Name '$p')} 
                                                  {($ VSub_Name '$sect')} {($ VSub_Name '$MACHINE')} {(DQ ($ VSub_Number '$1'))}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (C {(man_check_for_so)} 
                                                          {($ VSub_Name '$manpage')} {($ VSub_Name '$p')}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:found_page)
                                                          op: Equal
                                                          rhs: {(yes)}
                                                          spids: [2980]
                                                        )
                                                      ]
                                                      spids: [2980]
                                                    )
                                                    (C {(man_display_page)})
                                                    (If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (Sentence
                                                              child: 
                                                                (C {(Lit_Other '[')} {(-n)} 
                                                                  {(DQ ($ VSub_Name '$aflag'))} {(Lit_Other ']')}
                                                                )
                                                              terminator: <Op_Semi ';'>
                                                            )
                                                          ]
                                                          action: [
                                                            (ControlFlow
                                                              token: <ControlFlow_Continue continue>
                                                              arg_word: {(2)}
                                                            )
                                                          ]
                                                          spids: [-1 3000]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (ControlFlow
                                                          token: <ControlFlow_Return return>
                                                        )
                                                      ]
                                                      spids: [3008 3014]
                                                    )
                                                  ]
                                                  spids: [-1 2977]
                                                )
                                              ]
                                              spids: [-1 3017]
                                            )
                                          ]
                                          spids: [-1 2965]
                                        )
                                      ]
                                      spids: [-1 3020]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(find_file)} {($ VSub_Name '$p')} 
                                                  {($ VSub_Name '$sect')} {($ VSub_Name '$MACHINE_ARCH')} {(DQ ($ VSub_Number '$1'))}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (C {(man_check_for_so)} 
                                                          {($ VSub_Name '$manpage')} {($ VSub_Name '$p')}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:found_page)
                                                          op: Equal
                                                          rhs: {(yes)}
                                                          spids: [3062]
                                                        )
                                                      ]
                                                      spids: [3062]
                                                    )
                                                    (C {(man_display_page)})
                                                    (If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (Sentence
                                                              child: 
                                                                (C {(Lit_Other '[')} {(-n)} 
                                                                  {(DQ ($ VSub_Name '$aflag'))} {(Lit_Other ']')}
                                                                )
                                                              terminator: <Op_Semi ';'>
                                                            )
                                                          ]
                                                          action: [
                                                            (ControlFlow
                                                              token: <ControlFlow_Continue continue>
                                                              arg_word: {(2)}
                                                            )
                                                          ]
                                                          spids: [-1 3082]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (ControlFlow
                                                          token: <ControlFlow_Return return>
                                                        )
                                                      ]
                                                      spids: [3090 3096]
                                                    )
                                                  ]
                                                  spids: [-1 3059]
                                                )
                                              ]
                                              spids: [-1 3099]
                                            )
                                          ]
                                          spids: [-1 3047]
                                        )
                                      ]
                                      spids: [-1 3102]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(find_file)} {($ VSub_Name '$p')} 
                                                  {($ VSub_Name '$sect')} {(SQ )} {(DQ ($ VSub_Number '$1'))}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (C {(man_check_for_so)} 
                                                          {($ VSub_Name '$manpage')} {($ VSub_Name '$p')}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:found_page)
                                                          op: Equal
                                                          rhs: {(yes)}
                                                          spids: [3141]
                                                        )
                                                      ]
                                                      spids: [3141]
                                                    )
                                                    (C {(man_display_page)})
                                                    (If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (Sentence
                                                              child: 
                                                                (C {(Lit_Other '[')} {(-n)} 
                                                                  {(DQ ($ VSub_Name '$aflag'))} {(Lit_Other ']')}
                                                                )
                                                              terminator: <Op_Semi ';'>
                                                            )
                                                          ]
                                                          action: [
                                                            (ControlFlow
                                                              token: <ControlFlow_Continue continue>
                                                              arg_word: {(2)}
                                                            )
                                                          ]
                                                          spids: [-1 3161]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (ControlFlow
                                                          token: <ControlFlow_Return return>
                                                        )
                                                      ]
                                                      spids: [3169 3175]
                                                    )
                                                  ]
                                                  spids: [-1 3138]
                                                )
                                              ]
                                              spids: [-1 3178]
                                            )
                                          ]
                                          spids: [-1 3126]
                                        )
                                      ]
                                      spids: [-1 3181]
                                    )
                                  ]
                                  spids: [2924 3184]
                                )
                              spids: [2920 2922]
                            )
                          ]
                          spids: [2912 3187]
                        )
                      spids: [2908 2910]
                    )
                  ]
                  spids: [2890 3190]
                )
              spids: [2886 2888]
            )
            (C {(unset)} {(IFS)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$found_page'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('No manual entry for ') ($ VSub_Number '$1'))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[3226])]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(1)} spids:[3230])]
                      spids: [3230]
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 3216]
                )
              ]
              spids: [-1 3237]
            )
          ]
          spids: [2752]
        )
      spids: [2748 2751]
    )
    (FuncDef
      name: man_parse_args
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[3257])
                (assign_pair lhs:(LhsName name:cmd_arg) op:Equal spids:[3259])
              ]
              spids: [3255]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(getopts)} {(SQ <'M:P:S:adfhkm:op:tw'>)} {(cmd_arg)})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ (${ VSub_Name cmd_arg))}
                      arms: [
                        (case_arm
                          pat_list: [{(M)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:MANPATH)
                                  op: Equal
                                  rhs: {($ VSub_Name '$OPTARG')}
                                  spids: [3291]
                                )
                              ]
                              spids: [3291]
                            )
                          ]
                          spids: [3288 3289 3294 -1]
                        )
                        (case_arm
                          pat_list: [{(P)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:MANPAGER)
                                  op: Equal
                                  rhs: {($ VSub_Name '$OPTARG')}
                                  spids: [3300]
                                )
                              ]
                              spids: [3300]
                            )
                          ]
                          spids: [3297 3298 3303 -1]
                        )
                        (case_arm
                          pat_list: [{(S)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:MANSECT)
                                  op: Equal
                                  rhs: {($ VSub_Name '$OPTARG')}
                                  spids: [3309]
                                )
                              ]
                              spids: [3309]
                            )
                          ]
                          spids: [3306 3307 3312 -1]
                        )
                        (case_arm
                          pat_list: [{(a)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:aflag)
                                  op: Equal
                                  rhs: {(aflag)}
                                  spids: [3318]
                                )
                              ]
                              spids: [3318]
                            )
                          ]
                          spids: [3315 3316 3321 -1]
                        )
                        (case_arm
                          pat_list: [{(d)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:debug)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArithSubPart
                                        anode: 
                                          (ArithBinary
                                            op_id: Arith_Plus
                                            left: (ArithWord w:{($ VSub_Name '$debug')})
                                            right: (ArithWord w:{(Lit_Digits 1)})
                                          )
                                        spids: [3328 3337]
                                      )
                                    }
                                  spids: [3327]
                                )
                              ]
                              spids: [3327]
                            )
                          ]
                          spids: [3324 3325 3339 -1]
                        )
                        (case_arm
                          pat_list: [{(f)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:fflag)
                                  op: Equal
                                  rhs: {(fflag)}
                                  spids: [3345]
                                )
                              ]
                              spids: [3345]
                            )
                          ]
                          spids: [3342 3343 3348 -1]
                        )
                        (case_arm
                          pat_list: [{(h)}]
                          action: [(C {(man_usage)} {(0)})]
                          spids: [3351 3352 3358 -1]
                        )
                        (case_arm
                          pat_list: [{(k)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:kflag)
                                  op: Equal
                                  rhs: {(kflag)}
                                  spids: [3364]
                                )
                              ]
                              spids: [3364]
                            )
                          ]
                          spids: [3361 3362 3367 -1]
                        )
                        (case_arm
                          pat_list: [{(m)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:mflag)
                                  op: Equal
                                  rhs: {($ VSub_Name '$OPTARG')}
                                  spids: [3373]
                                )
                              ]
                              spids: [3373]
                            )
                          ]
                          spids: [3370 3371 3376 -1]
                        )
                        (case_arm
                          pat_list: [{(o)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:oflag)
                                  op: Equal
                                  rhs: {(oflag)}
                                  spids: [3382]
                                )
                              ]
                              spids: [3382]
                            )
                          ]
                          spids: [3379 3380 3385 -1]
                        )
                        (case_arm
                          pat_list: [{(p)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:MANROFFSEQ)
                                  op: Equal
                                  rhs: {($ VSub_Name '$OPTARG')}
                                  spids: [3391]
                                )
                              ]
                              spids: [3391]
                            )
                          ]
                          spids: [3388 3389 3394 -1]
                        )
                        (case_arm
                          pat_list: [{(t)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tflag)
                                  op: Equal
                                  rhs: {(tflag)}
                                  spids: [3400]
                                )
                              ]
                              spids: [3400]
                            )
                          ]
                          spids: [3397 3398 3403 -1]
                        )
                        (case_arm
                          pat_list: [{(w)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:wflag)
                                  op: Equal
                                  rhs: {(wflag)}
                                  spids: [3409]
                                )
                              ]
                              spids: [3409]
                            )
                          ]
                          spids: [3406 3407 3412 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(C {(man_usage)})]
                          spids: [3415 3416 3420 -1]
                        )
                      ]
                      spids: [3277 3285 3423]
                    )
                  ]
                  spids: [3274 3426]
                )
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[3428])]
            )
            (C {(shift)} 
              {
                (ArithSubPart
                  anode: 
                    (ArithBinary
                      op_id: Arith_Minus
                      left: (ArithWord w:{($ VSub_Name '$OPTIND')})
                      right: (ArithWord w:{(Lit_Digits 1)})
                    )
                  spids: [3435 3444]
                )
              }
            )
            (Case
              to_match: 
                {
                  (DQ (${ VSub_Name fflag) (${ VSub_Name kflag) (${ VSub_Name tflag) 
                    (${ VSub_Name wflag)
                  )
                }
              arms: [
                (case_arm
                  pat_list: [{(fflagkflag) (Lit_Other '*')}]
                  action: [
                    (Sentence
                      child: (C {(echo)} {(DQ ('Incompatible options: -f and -k'))})
                      terminator: <Op_Semi ';'>
                    )
                    (C {(man_usage)})
                  ]
                  spids: [3472 3474 3485 -1]
                )
                (case_arm
                  pat_list: [{(fflag) (Lit_Other '*') (tflag) (Lit_Other '*')}]
                  action: [
                    (Sentence
                      child: (C {(echo)} {(DQ ('Incompatible options: -f and -t'))})
                      terminator: <Op_Semi ';'>
                    )
                    (C {(man_usage)})
                  ]
                  spids: [3488 3492 3503 -1]
                )
                (case_arm
                  pat_list: [{(fflag) (Lit_Other '*') (wflag)}]
                  action: [
                    (Sentence
                      child: (C {(echo)} {(DQ ('Incompatible options: -f and -w'))})
                      terminator: <Op_Semi ';'>
                    )
                    (C {(man_usage)})
                  ]
                  spids: [3506 3509 3520 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*') (kflagtflag) (Lit_Other '*')}]
                  action: [
                    (Sentence
                      child: (C {(echo)} {(DQ ('Incompatible options: -k and -t'))})
                      terminator: <Op_Semi ';'>
                    )
                    (C {(man_usage)})
                  ]
                  spids: [3523 3526 3537 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*') (kflag) (Lit_Other '*') (wflag)}]
                  action: [
                    (Sentence
                      child: (C {(echo)} {(DQ ('Incompatible options: -k and -w'))})
                      terminator: <Op_Semi ';'>
                    )
                    (C {(man_usage)})
                  ]
                  spids: [3540 3544 3555 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*') (tflagwflag)}]
                  action: [
                    (Sentence
                      child: (C {(echo)} {(DQ ('Incompatible options: -t and -w'))})
                      terminator: <Op_Semi ';'>
                    )
                    (C {(man_usage)})
                  ]
                  spids: [3558 3560 3571 -1]
                )
              ]
              spids: [3452 3469 3574]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$fflag'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(do_whatis)} {(DQ ($ VSub_At '$@'))}) (C {(exit)})]
                  spids: [-1 3595]
                )
              ]
              spids: [-1 3608]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$kflag'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(do_apropos)} {(DQ ($ VSub_At '$@'))}) (C {(exit)})]
                  spids: [-1 3625]
                )
              ]
              spids: [-1 3638]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [3642]
                )
              ]
              spids: [3642]
            )
            (ForEach
              iter_name: sect
              iter_words: [{($ VSub_Name '$man_default_sections')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$sect'))} {(Lit_Other '=')} 
                                  {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(decho)} 
                              {(DQ ('Detected manual section as first arg: ') ($ VSub_Number '$1'))}
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:MANSECT)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$1'))}
                                  spids: [3686]
                                )
                              ]
                              spids: [3686]
                            )
                            (C {(shift)})
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [-1 3675]
                        )
                      ]
                      spids: [-1 3698]
                    )
                  ]
                  spids: [3655 3701]
                )
              spids: [3651 3653]
            )
            (C {(unset)} {(IFS)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pages)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star '$*'))}
                  spids: [3710]
                )
              ]
              spids: [3710]
            )
          ]
          spids: [3252]
        )
      spids: [3248 3251]
    )
    (FuncDef
      name: man_setup
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$mflag'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:MACHINE_ARCH)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name mflag>
                                suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(':*')})
                                spids: [3752 3756]
                              )
                            }
                          spids: [3751]
                        )
                      ]
                      spids: [3751]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:MACHINE)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name mflag>
                                suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*:')})
                                spids: [3760 3764]
                              )
                            }
                          spids: [3759]
                        )
                      ]
                      spids: [3759]
                    )
                  ]
                  spids: [-1 3748]
                )
              ]
              spids: [-1 3767]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MACHINE_ARCH'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:MACHINE_ARCH)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {($ VSub_Name '$SYSCTL')} {(-n)} {(hw.machine_arch)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [3787 3793]
                              )
                            }
                          spids: [3786]
                        )
                      ]
                      spids: [3786]
                    )
                  ]
                  spids: [-1 3783]
                )
              ]
              spids: [-1 3796]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MACHINE'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:MACHINE)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {($ VSub_Name '$SYSCTL')} {(-n)} {(hw.machine)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [3816 3822]
                              )
                            }
                          spids: [3815]
                        )
                      ]
                      spids: [3815]
                    )
                  ]
                  spids: [-1 3812]
                )
              ]
              spids: [-1 3825]
            )
            (C {(decho)} 
              {
                (DQ ('Using architecture: ') ($ VSub_Name '$MACHINE_ARCH') (':') 
                  ($ VSub_Name '$MACHINE')
                )
              }
            )
            (C {(setup_pager)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MANSECT'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:MANSECT)
                          op: Equal
                          rhs: {($ VSub_Name '$man_default_sections')}
                          spids: [3863]
                        )
                      ]
                      spids: [3863]
                    )
                  ]
                  spids: [-1 3860]
                )
              ]
              spids: [-1 3867]
            )
            (C {(decho)} {(DQ ('Using manual sections: ') ($ VSub_Name '$MANSECT'))})
            (C {(build_manpath)})
            (C {(man_setup_locale)})
            (C {(man_setup_width)})
          ]
          spids: [3728]
        )
      spids: [3724 3727]
    )
    (FuncDef
      name: man_setup_width
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:sizes) op:Equal spids:[3905])]
              spids: [3903]
            )
            (C {(unset)} {(use_width)})
            (Case
              to_match: {(DQ ($ VSub_Name '$MANWIDTH'))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (SimpleCommand
                                  words: [
                                    {(Lit_Other '[')}
                                    {(DQ ($ VSub_Name '$MANWIDTH'))}
                                    {(-gt)}
                                    {(0)}
                                    {(Lit_Other ']')}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                      spids: [3942]
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:use_width)
                                  op: Equal
                                  rhs: {($ VSub_Name '$MANWIDTH')}
                                  spids: [3951]
                                )
                              ]
                              spids: [3951]
                            )
                          ]
                          spids: [-1 3948]
                        )
                      ]
                      spids: [-1 3955]
                    )
                  ]
                  spids: [3923 3927 3958 -1]
                )
                (case_arm
                  pat_list: [
                    {(Lit_Other '[') (Tt) (Lit_Other ']') (Lit_Other '[') (Tt) (Lit_Other ']') 
                      (Lit_Other '[') (Yy) (Lit_Other ']')
                    }
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (BraceGroup
                                  children: [
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:sizes)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (CommandSubPart
                                                    command_list: 
                                                      (CommandList
                                                        children: [
                                                          (SimpleCommand
                                                            words: [{($ VSub_Name '$STTY')} {(size)}]
                                                            redirects: [
                                                              (Redir
                                                                op_id: Redir_GreatAnd
                                                                fd: 0
                                                                arg_word: {(3)}
                                                                spids: [3983]
                                                              )
                                                              (Redir
                                                                op_id: Redir_Great
                                                                fd: 2
                                                                arg_word: {(/dev/null)}
                                                                spids: [3986]
                                                              )
                                                            ]
                                                          )
                                                        ]
                                                      )
                                                    left_token: <Left_CommandSub '$('>
                                                    spids: [3978 3988]
                                                  )
                                                }
                                              spids: [3977]
                                            )
                                          ]
                                          spids: [3977]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_GreatAnd
                                      fd: 3
                                      arg_word: {(1)}
                                      spids: [3993]
                                    )
                                  ]
                                  spids: [3975]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(set)} {(--)} {($ VSub_Name '$sizes')})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {($ VSub_Number '$2')} {(-gt)} {(80)} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:use_width)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArithSubPart
                                                anode: 
                                                  (ArithBinary
                                                    op_id: Arith_Minus
                                                    left: (ArithWord w:{($ VSub_Number '$2')})
                                                    right: (ArithWord w:{(Lit_Digits 2)})
                                                  )
                                                spids: [4024 4029]
                                              )
                                            }
                                          spids: [4023]
                                        )
                                      ]
                                      spids: [4023]
                                    )
                                  ]
                                  spids: [-1 4020]
                                )
                              ]
                              spids: [-1 4032]
                            )
                          ]
                          spids: [-1 3997]
                        )
                      ]
                      spids: [-1 4035]
                    )
                  ]
                  spids: [3961 3970 4038 -1]
                )
              ]
              spids: [3914 3920 4041]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$use_width'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(decho)} {(DQ ('Using non-standard page width: ') (${ VSub_Name use_width))})
                  ]
                  spids: [-1 4057]
                )
              ]
              else_action: [(C {(decho)} {(SQ <'Using standard page width'>)})]
              spids: [4070 4080]
            )
          ]
          spids: [3900]
        )
      spids: [3896 3899]
    )
    (FuncDef
      name: man_setup_locale
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:lang_cc) op:Equal spids:[4100])]
              spids: [4098]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:locpaths) op:Equal rhs:{(SQ <.>)} spids:[4104])]
              spids: [4104]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:man_charset)
                  op: Equal
                  rhs: {(SQ <US-ASCII>)}
                  spids: [4110]
                )
              ]
              spids: [4110]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$oflag'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(decho)} {(SQ <'Using non-localized manpages'>)})]
                  spids: [-1 4134]
                )
              ]
              else_action: [
                (C {(eval)} 
                  {
                    (CommandSubPart
                      command_list: (CommandList children:[(C {($ VSub_Name '$LOCALE')})])
                      left_token: <Left_CommandSub '$('>
                      spids: [4153 4157]
                    )
                  }
                )
                (Case
                  to_match: {(DQ ($ VSub_Name '$LC_CTYPE'))}
                  arms: [
                    (case_arm pat_list:[{(C)}] spids:[417041714173-1])
                    (case_arm pat_list:[{(POSIX)}] spids:[417641774179-1])
                    (case_arm
                      pat_list: [
                        {(Lit_Other '[') (a-z) (Lit_Other ']') (Lit_Other '[') (a-z) (Lit_Other ']') (_) 
                          (Lit_Other '[') (A-Z) (Lit_Other ']') (Lit_Other '[') (A-Z) (Lit_Other ']') 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\.'>) (Lit_Other '*')
                        }
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:lang_cc)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name LC_CTYPE>
                                      suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{('.*')})
                                      spids: [4202 4206]
                                    )
                                  )
                                }
                              spids: [4200]
                            )
                          ]
                          spids: [4200]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:man_lang)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name LC_CTYPE>
                                      suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{('_*')})
                                      spids: [4212 4216]
                                    )
                                  )
                                }
                              spids: [4210]
                            )
                          ]
                          spids: [4210]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:man_country)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name lang_cc>
                                      suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*_')})
                                      spids: [4222 4226]
                                    )
                                  )
                                }
                              spids: [4220]
                            )
                          ]
                          spids: [4220]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:man_charset)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name LC_CTYPE>
                                      suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*.')})
                                      spids: [4232 4236]
                                    )
                                  )
                                }
                              spids: [4230]
                            )
                          ]
                          spids: [4230]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:locpaths)
                              op: Equal
                              rhs: {(DQ ($ VSub_Name '$LC_CTYPE'))}
                              spids: [4240]
                            )
                          ]
                          spids: [4240]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:locpaths)
                              op: Equal
                              rhs: 
                                {
                                  (DQ ($ VSub_Name '$locpaths') (':') ($ VSub_Name '$man_lang') (.) 
                                    ($ VSub_Name '$man_charset')
                                  )
                                }
                              spids: [4246]
                            )
                          ]
                          spids: [4246]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$man_lang'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ (en))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:locpaths)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ ($ VSub_Name '$locpaths') (':en.') 
                                            ($ VSub_Name '$man_charset')
                                          )
                                        }
                                      spids: [4277]
                                    )
                                  ]
                                  spids: [4277]
                                )
                              ]
                              spids: [-1 4274]
                            )
                          ]
                          spids: [-1 4285]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:locpaths)
                              op: Equal
                              rhs: {(DQ ($ VSub_Name '$locpaths') (':.'))}
                              spids: [4288]
                            )
                          ]
                          spids: [4288]
                        )
                      ]
                      spids: [4182 4197 4295 -1]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [
                        (SimpleCommand
                          words: [{(echo)} {(SQ <'Unknown locale, assuming C'>)}]
                          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[4307])]
                        )
                      ]
                      spids: [4298 4299 4311 -1]
                    )
                  ]
                  spids: [4161 4167 4314]
                )
              ]
              spids: [4144 4317]
            )
            (C {(decho)} {(DQ ('Using locale paths: ') ($ VSub_Name '$locpaths'))})
          ]
          spids: [4095]
        )
      spids: [4091 4094]
    )
    (FuncDef
      name: man_usage
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(SQ <'Usage:'>)})
            (C {(echo)} {(SQ <' man [-adho] [-t | -w] [-M manpath] [-P pager] [-S mansect]'>)})
            (C {(echo)} {(SQ <'     [-m arch[:machine]] [-p [eprtv]] [mansect] page [...]'>)})
            (C {(echo)} {(SQ <' man -f page [...] -- Emulates whatis(1)'>)})
            (C {(echo)} {(SQ <' man -k page [...] -- Emulates apropos(1)'>)})
            (C {(exit)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)})
                  spids: [4386 4390]
                )
              }
            )
          ]
          spids: [4341]
        )
      spids: [4337 4340]
    )
    (FuncDef
      name: parse_configs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[4410])
                (assign_pair lhs:(LhsName name:file) op:Equal spids:[4412])
                (assign_pair lhs:(LhsName name:files) op:Equal spids:[4414])
              ]
              spids: [4408]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$parsed_configs'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return>)]
                  spids: [-1 4431]
                )
              ]
              spids: [-1 4437]
            )
            (C {(unset)} {(IFS)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-r)} {(DQ ($ VSub_Name '$config_global'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(parse_file)} {(DQ ($ VSub_Name '$config_global'))})]
                  spids: [-1 4468]
                )
              ]
              spids: [-1 4478]
            )
            (C {(set)} {(Lit_Other '+') (f)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(echo)} {($ VSub_Name '$config_local')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4493 4497]
                      )
                    }
                  spids: [4492]
                )
              ]
              spids: [4492]
            )
            (C {(set)} {(-f)})
            (ForEach
              iter_name: file
              iter_words: [{($ VSub_Name '$files')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-r)} {(DQ ($ VSub_Name '$file'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(parse_file)} {(DQ ($ VSub_Name '$file'))})]
                          spids: [-1 4531]
                        )
                      ]
                      spids: [-1 4541]
                    )
                  ]
                  spids: [4515 4544]
                )
              spids: [4511 4513]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:parsed_configs)
                  op: Equal
                  rhs: {(SQ <yes>)}
                  spids: [4548]
                )
              ]
              spids: [4548]
            )
          ]
          spids: [4405]
        )
      spids: [4401 4404]
    )
    (FuncDef
      name: parse_file
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:file) op:Equal spids:[4571])
                (assign_pair lhs:(LhsName name:line) op:Equal spids:[4573])
                (assign_pair lhs:(LhsName name:tstr) op:Equal spids:[4575])
                (assign_pair lhs:(LhsName name:var) op:Equal spids:[4577])
              ]
              spids: [4569]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [4581]
                )
              ]
              spids: [4581]
            )
            (C {(decho)} {(DQ ('Parsing config file: ') ($ VSub_Name '$file'))})
            (While
              cond: [(Sentence child:(C {(read)} {(line)}) terminator:<Op_Semi ';'>)]
              body: 
                (DoGroup
                  children: [
                    (C {(decho)} {(DQ ('  ') ($ VSub_Name '$line'))} {(2)})
                    (Case
                      to_match: {(DQ ($ VSub_Name '$line'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(EscapedLiteralPart token:<Lit_EscapedChar '\\#'>) (Lit_Other '*')}
                          ]
                          action: [(C {(decho)} {(DQ ('    Comment'))} {(3)})]
                          spids: [4624 4626 4637 -1]
                        )
                        (case_arm
                          pat_list: [{(MANPATH) (Lit_Other '*')}]
                          action: [
                            (C {(decho)} {(DQ ('    MANPATH'))} {(3)})
                            (C {(trim)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name line>
                                    suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(MANPATH)})
                                    spids: [4656 4660]
                                  )
                                )
                              }
                            )
                            (C {(add_to_manpath)} {(DQ ($ VSub_Name '$tstr'))})
                          ]
                          spids: [4640 4642 4671 -1]
                        )
                        (case_arm
                          pat_list: [{(MANLOCALE) (Lit_Other '*')}]
                          action: [
                            (C {(decho)} {(DQ ('    MANLOCALE'))} {(3)})
                            (C {(trim)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name line>
                                    suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(MANLOCALE)})
                                    spids: [4690 4694]
                                  )
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:manlocales)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$manlocales') (':') ($ VSub_Name '$tstr'))}
                                  spids: [4698]
                                )
                              ]
                              spids: [4698]
                            )
                          ]
                          spids: [4674 4676 4706 -1]
                        )
                        (case_arm
                          pat_list: [{(MANCONFIG) (Lit_Other '*')}]
                          action: [
                            (C {(decho)} {(DQ ('    MANCONFIG'))} {(3)})
                            (C {(trim)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name line>
                                    suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(MANCONFIG)})
                                    spids: [4725 4729]
                                  )
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:config_local)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$tstr'))}
                                  spids: [4733]
                                )
                              ]
                              spids: [4733]
                            )
                          ]
                          spids: [4709 4711 4739 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(Lit_Other '*') (_) (Lit_Other '*') (Lit_Other '[') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\ '>
                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) (Lit_Other ']') (Lit_Other '*')
                            }
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:var)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name line>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_DPercent
                                              arg_word: 
                                                {('[') 
                                                  (EscapedLiteralPart
                                                    token: <Lit_EscapedChar '\\ '>
                                                  ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) (']*')
                                                }
                                            )
                                          spids: [4758 4765]
                                        )
                                      )
                                    }
                                  spids: [4756]
                                )
                              ]
                              spids: [4756]
                            )
                            (C {(trim)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name line>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Pound
                                        arg_word: {($ VSub_Name '$var')}
                                      )
                                    spids: [4772 4776]
                                  )
                                )
                              }
                            )
                            (C {(eval)} 
                              {
                                (DQ ($ VSub_Name '$var') ('=') 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\"'>
                                  ) ($ VSub_Name '$tstr') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                )
                              }
                            )
                            (C {(decho)} {(DQ ('    Parsed ') ($ VSub_Name '$var'))} {(3)})
                          ]
                          spids: [4746 4754 4801 -1]
                        )
                      ]
                      spids: [4615 4621 4804]
                    )
                  ]
                  spids: [4602 4807]
                )
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name '$file'))}
                  spids: [4809]
                )
              ]
            )
          ]
          spids: [4566]
        )
      spids: [4562 4565]
    )
    (FuncDef
      name: search_path
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[4833])
                (assign_pair lhs:(LhsName name:p) op:Equal spids:[4835])
                (assign_pair lhs:(LhsName name:path) op:Equal spids:[4837])
              ]
              spids: [4831]
            )
            (C {(decho)} {(DQ ('Searching PATH for man directories'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [4849]
                )
              ]
              spids: [4849]
            )
            (ForEach
              iter_name: path
              iter_words: [{($ VSub_Name '$PATH')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$path'))}
                      arms: [
                        (case_arm
                          pat_list: [{(/bin)} {(/usr/bin)}]
                          action: [(C {(add_to_manpath)} {(DQ (/usr/share/man))})]
                          spids: [4882 4885 4893 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(add_to_manpath)} {(DQ ($ VSub_Name '$path') (/man))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(Lit_Other ':')})]
                                  spids: [-1 4909]
                                )
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(add_to_manpath)} {(DQ ($ VSub_Name '$path') (/MAN))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(Lit_Other ':')})]
                                  spids: [4915 4925]
                                )
                              ]
                              else_action: [
                                (Case
                                  to_match: {(DQ ($ VSub_Name '$path'))}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(Lit_Other '*') (/bin)}]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:p)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name path>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_Percent
                                                          arg_word: {(Lit_Slash /) (bin)}
                                                        )
                                                      spids: [4949 4954]
                                                    ) (/man)
                                                  )
                                                }
                                              spids: [4947]
                                            )
                                          ]
                                          spids: [4947]
                                        )
                                        (C {(add_to_manpath)} {(DQ ($ VSub_Name '$p'))})
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:p)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name path>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_Percent
                                                          arg_word: {(Lit_Slash /) (bin)}
                                                        )
                                                      spids: [4968 4973]
                                                    ) (/share/man)
                                                  )
                                                }
                                              spids: [4966]
                                            )
                                          ]
                                          spids: [4966]
                                        )
                                        (C {(add_to_manpath)} {(DQ ($ VSub_Name '$p'))})
                                      ]
                                      spids: [4943 4945 4985 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(Lit_Other '*')}]
                                      spids: [4988 4989 4991 -1]
                                    )
                                  ]
                                  spids: [4934 4940 4994]
                                )
                              ]
                              spids: [4931 4997]
                            )
                          ]
                          spids: [4896 4897 5000 -1]
                        )
                      ]
                      spids: [4873 4879 5003]
                    )
                  ]
                  spids: [4862 5006]
                )
              spids: [4858 4860]
            )
            (C {(unset)} {(IFS)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$manpath'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(decho)} {(SQ <'  Unable to find any manpaths, using default'>)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:manpath)
                          op: Equal
                          rhs: {($ VSub_Name '$man_default_path')}
                          spids: [5038]
                        )
                      ]
                      spids: [5038]
                    )
                  ]
                  spids: [-1 5028]
                )
              ]
              spids: [-1 5042]
            )
          ]
          spids: [4828]
        )
      spids: [4824 4827]
    )
    (FuncDef
      name: search_whatis
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[5062])
                (assign_pair lhs:(LhsName name:bad) op:Equal spids:[5064])
                (assign_pair lhs:(LhsName name:cmd) op:Equal spids:[5066])
                (assign_pair lhs:(LhsName name:f) op:Equal spids:[5068])
                (assign_pair lhs:(LhsName name:good) op:Equal spids:[5070])
                (assign_pair lhs:(LhsName name:key) op:Equal spids:[5072])
                (assign_pair lhs:(LhsName name:keywords) op:Equal spids:[5074])
                (assign_pair lhs:(LhsName name:loc) op:Equal spids:[5076])
                (assign_pair lhs:(LhsName name:opt) op:Equal spids:[5078])
                (assign_pair lhs:(LhsName name:out) op:Equal spids:[5080])
                (assign_pair lhs:(LhsName name:path) op:Equal spids:[5082])
                (assign_pair lhs:(LhsName name:rval) op:Equal spids:[5084])
                (assign_pair lhs:(LhsName name:wlist) op:Equal spids:[5086])
              ]
              spids: [5060]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmd)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [5090]
                )
              ]
              spids: [5090]
            )
            (C {(shift)})
            (C {(whatis_parse_args)} {(DQ ($ VSub_At '$@'))})
            (C {(build_manpath)})
            (C {(build_manlocales)})
            (C {(setup_pager)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$cmd'))} {(Lit_Other '=')} {(DQ (whatis))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:opt)
                          op: Equal
                          rhs: {(DQ (-w))}
                          spids: [5138]
                        )
                      ]
                      spids: [5138]
                    )
                  ]
                  spids: [-1 5135]
                )
              ]
              spids: [-1 5144]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:f) op:Equal rhs:{(SQ <whatis>)} spids:[5148])]
              spids: [5148]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [5155]
                )
              ]
              spids: [5155]
            )
            (ForEach
              iter_name: path
              iter_words: [{($ VSub_Name '$MANPATH')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} 
                                  {(EscapedLiteralPart token:<Lit_EscapedChar '\\!'>)} {(-d)} {(DQ ($ VSub_Name '$path'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(decho)} {(DQ ('Skipping non-existent path: ') ($ VSub_Name '$path'))} 
                              {(2)}
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [-1 5186]
                        )
                      ]
                      spids: [-1 5202]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-f)} 
                                  {(DQ ($ VSub_Name '$path') (/) ($ VSub_Name '$f'))} {(-a)} {(-r)} {(DQ ($ VSub_Name '$path') (/) ($ VSub_Name '$f'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(decho)} 
                              {(DQ ('Found whatis: ') ($ VSub_Name '$path') (/) ($ VSub_Name '$f'))}
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:wlist)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$wlist') (' ') ($ VSub_Name '$path') (/) 
                                        ($ VSub_Name '$f')
                                      )
                                    }
                                  spids: [5244]
                                )
                              ]
                              spids: [5244]
                            )
                          ]
                          spids: [-1 5231]
                        )
                      ]
                      spids: [-1 5254]
                    )
                    (ForEach
                      iter_name: loc
                      iter_words: [{($ VSub_Name '$MANLOCALES')}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-f)} 
                                          {
                                            (DQ ($ VSub_Name '$path') (/) ($ VSub_Name '$loc') (/) 
                                              ($ VSub_Name '$f')
                                            )
                                          } {(-a)} {(-r)} {(DQ ($ VSub_Name '$path') (/) ($ VSub_Name '$loc') (/) ($ VSub_Name '$f'))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(decho)} 
                                      {
                                        (DQ ('Found whatis: ') ($ VSub_Name '$path') (/) 
                                          ($ VSub_Name '$loc') (/) ($ VSub_Name '$f')
                                        )
                                      }
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:wlist)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name '$wlist') (' ') ($ VSub_Name '$path') (/) 
                                                ($ VSub_Name '$loc') (/) ($ VSub_Name '$f')
                                              )
                                            }
                                          spids: [5314]
                                        )
                                      ]
                                      spids: [5314]
                                    )
                                  ]
                                  spids: [-1 5299]
                                )
                              ]
                              spids: [-1 5326]
                            )
                          ]
                          spids: [5267 5329]
                        )
                      spids: [5263 5265]
                    )
                  ]
                  spids: [5168 5332]
                )
              spids: [5164 5166]
            )
            (C {(unset)} {(IFS)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$wlist'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ($ VSub_Name '$cmd') (': no whatis databases in ') 
                            ($ VSub_Name '$MANPATH')
                          )
                        }
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[5365])]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 5354]
                )
              ]
              spids: [-1 5374]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:rval) op:Equal rhs:{(0)} spids:[5378])]
              spids: [5378]
            )
            (ForEach
              iter_name: key
              iter_words: [{($ VSub_Name '$keywords')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:out)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(grep)} {(-Ehi)} {($ VSub_Name '$opt')} {(--)} 
                                        {(DQ ($ VSub_Name '$key'))} {($ VSub_Name '$wlist')}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [5395 5409]
                              )
                            }
                          spids: [5394]
                        )
                      ]
                      spids: [5394]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$out'))} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:good)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$good') 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar '\\\\'>
                                        ) (n) ($ VSub_Name '$out')
                                      )
                                    }
                                  spids: [5428]
                                )
                              ]
                              spids: [5428]
                            )
                          ]
                          spids: [-1 5425]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:bad)
                              op: Equal
                              rhs: 
                                {
                                  (DQ ($ VSub_Name '$bad') 
                                    (EscapedLiteralPart
                                      token: <Lit_EscapedChar '\\\\'>
                                    ) (n) ($ VSub_Name '$key') (': nothing appropriate')
                                  )
                                }
                              spids: [5440]
                            )
                          ]
                          spids: [5440]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:rval)
                              op: Equal
                              rhs: {(1)}
                              spids: [5450]
                            )
                          ]
                          spids: [5450]
                        )
                      ]
                      spids: [5437 5454]
                    )
                  ]
                  spids: [5391 5457]
                )
              spids: [5387 5389]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:good)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name good>
                        suffix_op: 
                          (StringUnary
                            op_id: VOp1_Pound
                            arg_word: {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (n)}
                          )
                        spids: [5466 5471]
                      )
                    }
                  spids: [5465]
                )
              ]
              spids: [5465]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:bad)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name bad>
                        suffix_op: 
                          (StringUnary
                            op_id: VOp1_Pound
                            arg_word: {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (n)}
                          )
                        spids: [5475 5480]
                      )
                    }
                  spids: [5474]
                )
              ]
              spids: [5474]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$good'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (C {(echo)} {(-e)} {(DQ ($ VSub_Name '$good'))})
                        (C {($ VSub_Name '$MANPAGER')})
                      ]
                      negated: False
                    )
                  ]
                  spids: [-1 5497]
                )
              ]
              spids: [-1 5513]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$bad'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$bad'))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[5541])]
                    )
                  ]
                  spids: [-1 5530]
                )
              ]
              spids: [-1 5545]
            )
            (C {(exit)} {($ VSub_Name '$rval')})
          ]
          spids: [5057]
        )
      spids: [5053 5056]
    )
    (FuncDef
      name: setup_cattool
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (.bz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cattool)
                          op: Equal
                          rhs: {(SQ </usr/bin/bzcat>)}
                          spids: [5582]
                        )
                      ]
                      spids: [5582]
                    )
                  ]
                  spids: [5578 5580 5587 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*') (.bz2)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cattool)
                          op: Equal
                          rhs: {(SQ </usr/bin/bzcat>)}
                          spids: [5594]
                        )
                      ]
                      spids: [5594]
                    )
                  ]
                  spids: [5590 5592 5599 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*') (.gz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cattool)
                          op: Equal
                          rhs: {(SQ </usr/bin/zcat>)}
                          spids: [5606]
                        )
                      ]
                      spids: [5606]
                    )
                  ]
                  spids: [5602 5604 5611 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*') (.lzma)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cattool)
                          op: Equal
                          rhs: {(SQ </usr/bin/lzcat>)}
                          spids: [5618]
                        )
                      ]
                      spids: [5618]
                    )
                  ]
                  spids: [5614 5616 5623 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*') (.xz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cattool)
                          op: Equal
                          rhs: {(SQ </usr/bin/xzcat>)}
                          spids: [5630]
                        )
                      ]
                      spids: [5630]
                    )
                  ]
                  spids: [5626 5628 5635 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cattool)
                          op: Equal
                          rhs: {(SQ <'/usr/bin/zcat -f'>)}
                          spids: [5641]
                        )
                      ]
                      spids: [5641]
                    )
                  ]
                  spids: [5638 5639 5646 -1]
                )
              ]
              spids: [5569 5575 5649]
            )
          ]
          spids: [5566]
        )
      spids: [5562 5565]
    )
    (FuncDef
      name: setup_pager
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MANPAGER'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$MANCOLOR'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:MANPAGER)
                                  op: Equal
                                  rhs: {(DQ ('less -sR'))}
                                  spids: [5703]
                                )
                              ]
                              spids: [5703]
                            )
                          ]
                          spids: [-1 5700]
                        )
                      ]
                      else_action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$PAGER'))} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:MANPAGER)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Name '$PAGER'))}
                                      spids: [5728]
                                    )
                                  ]
                                  spids: [5728]
                                )
                              ]
                              spids: [-1 5725]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:MANPAGER)
                                  op: Equal
                                  rhs: {(DQ ('more -s'))}
                                  spids: [5737]
                                )
                              ]
                              spids: [5737]
                            )
                          ]
                          spids: [5734 5743]
                        )
                      ]
                      spids: [5709 5746]
                    )
                  ]
                  spids: [-1 5684]
                )
              ]
              spids: [-1 5749]
            )
            (C {(decho)} {(DQ ('Using pager: ') ($ VSub_Name '$MANPAGER'))})
          ]
          spids: [5664]
        )
      spids: [5660 5663]
    )
    (FuncDef
      name: trim
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tstr)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [5775]
                )
              ]
              spids: [5775]
            )
            (While
              cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$tstr'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other '[') (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\\t'>
                              ) (Lit_Other ']') (Lit_Other '*')
                            }
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tstr)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name tstr>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_DPound
                                              arg_word: 
                                                {('[') 
                                                  (EscapedLiteralPart
                                                    token: <Lit_EscapedChar '\\ '>
                                                  ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) (']')
                                                }
                                            )
                                          spids: [5805 5812]
                                        )
                                      )
                                    }
                                  spids: [5803]
                                )
                              ]
                              spids: [5803]
                            )
                          ]
                          spids: [5796 5801 5815 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(Lit_Other '*') (Lit_Other '[') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\ '>
                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) (Lit_Other ']')
                            }
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tstr)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name tstr>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_DPercent
                                              arg_word: 
                                                {('[') 
                                                  (EscapedLiteralPart
                                                    token: <Lit_EscapedChar '\\ '>
                                                  ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) (']')
                                                }
                                            )
                                          spids: [5827 5834]
                                        )
                                      )
                                    }
                                  spids: [5825]
                                )
                              ]
                              spids: [5825]
                            )
                          ]
                          spids: [5818 5823 5837 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [5840 5841 5845 -1]
                        )
                      ]
                      spids: [5787 5793 5848]
                    )
                  ]
                  spids: [5784 5851]
                )
            )
          ]
          spids: [5772]
        )
      spids: [5768 5771]
    )
    (FuncDef
      name: whatis_parse_args
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:cmd_arg) op:Equal spids:[5871])]
              spids: [5869]
            )
            (While
              cond: [(Sentence child:(C {(getopts)} {(SQ <d>)} {(cmd_arg)}) terminator:<Op_Semi ';'>)]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ (${ VSub_Name cmd_arg))}
                      arms: [
                        (case_arm
                          pat_list: [{(d)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:debug)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArithSubPart
                                        anode: 
                                          (ArithBinary
                                            op_id: Arith_Plus
                                            left: (ArithWord w:{($ VSub_Name '$debug')})
                                            right: (ArithWord w:{(Lit_Digits 1)})
                                          )
                                        spids: [5903 5912]
                                      )
                                    }
                                  spids: [5902]
                                )
                              ]
                              spids: [5902]
                            )
                          ]
                          spids: [5899 5900 5914 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(C {(whatis_usage)})]
                          spids: [5917 5918 5922 -1]
                        )
                      ]
                      spids: [5888 5896 5925]
                    )
                  ]
                  spids: [5885 5928]
                )
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[5930])]
            )
            (C {(shift)} 
              {
                (ArithSubPart
                  anode: 
                    (ArithBinary
                      op_id: Arith_Minus
                      left: (ArithWord w:{($ VSub_Name '$OPTIND')})
                      right: (ArithWord w:{(Lit_Digits 1)})
                    )
                  spids: [5937 5946]
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:keywords)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star '$*'))}
                  spids: [5950]
                )
              ]
              spids: [5950]
            )
          ]
          spids: [5866]
        )
      spids: [5862 5865]
    )
    (FuncDef
      name: whatis_usage
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('usage: ') ($ VSub_Name '$cmd') (' [-d] keyword [...]'))})
            (C {(exit)} {(1)})
          ]
          spids: [5968]
        )
      spids: [5964 5967]
    )
    (FuncDef
      name: do_apropos
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(Lit_Other '[')} 
                  {
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(stat)} {(-f)} {(Lit_Other '%') (i)} {(/usr/bin/man)})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [6001 6010]
                    )
                  } {(-ne)} 
                  {
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(stat)} {(-f)} {(Lit_Other '%') (i)} {(/usr/bin/apropos)})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [6014 6023]
                    )
                  } {(Lit_Other ']')}
                )
                (C {(exec)} {(apropos)} {(DQ ($ VSub_At '$@'))})
              ]
              op_id: Op_DAmp
            )
            (C {(search_whatis)} {(apropos)} {(DQ ($ VSub_At '$@'))})
          ]
          spids: [5996]
        )
      spids: [5992 5995]
    )
    (FuncDef
      name: do_man
      body: 
        (BraceGroup
          children: [
            (C {(man_parse_args)} {(DQ ($ VSub_At '$@'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$pages'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(SQ <'What manual page do you want?'>)}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[6087])]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 6078]
                )
              ]
              spids: [-1 6096]
            )
            (C {(man_setup)})
            (ForEach
              iter_name: page
              iter_words: [{($ VSub_Name '$pages')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(decho)} {(DQ ('Searching for ') ($ VSub_Name '$page'))})
                    (C {(man_find_and_display)} {(DQ ($ VSub_Name '$page'))})
                  ]
                  spids: [6112 6130]
                )
              spids: [6108 6110]
            )
            (C {(exit)} 
              {
                (BracedVarSub
                  token: <VSub_Name ret>
                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0)})
                  spids: [6136 6140]
                )
              }
            )
          ]
          spids: [6055]
        )
      spids: [6051 6054]
    )
    (FuncDef
      name: do_manpath
      body: 
        (BraceGroup
          children: [
            (C {(manpath_parse_args)} {(DQ ($ VSub_At '$@'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$qflag'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(manpath_warnings)})]
                  spids: [-1 6172]
                )
              ]
              spids: [-1 6178]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$Lflag'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(build_manlocales)}) (C {(echo)} {($ VSub_Name '$MANLOCALES')})]
                  spids: [-1 6194]
                )
              ]
              else_action: [(C {(build_manpath)}) (C {(echo)} {($ VSub_Name '$MANPATH')})]
              spids: [6205 6216]
            )
            (C {(exit)} {(0)})
          ]
          spids: [6149]
        )
      spids: [6145 6148]
    )
    (FuncDef
      name: do_whatis
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(Lit_Other '[')} 
                  {
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(stat)} {(-f)} {(Lit_Other '%') (i)} {(/usr/bin/man)})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [6235 6244]
                    )
                  } {(-ne)} 
                  {
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(stat)} {(-f)} {(Lit_Other '%') (i)} {(/usr/bin/whatis)})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [6248 6257]
                    )
                  } {(Lit_Other ']')}
                )
                (C {(exec)} {(whatis)} {(DQ ($ VSub_At '$@'))})
              ]
              op_id: Op_DAmp
            )
            (C {(search_whatis)} {(whatis)} {(DQ ($ VSub_At '$@'))})
          ]
          spids: [6230]
        )
      spids: [6226 6229]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:EQN) op:Equal rhs:{(eqn)} spids:[6288])]
      spids: [6288]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NROFF)
          op: Equal
          rhs: {(SQ <'groff -S -P-h -Wall -mtty-char -man'>)}
          spids: [6291]
        )
      ]
      spids: [6291]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PIC) op:Equal rhs:{(pic)} spids:[6296])]
      spids: [6296]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:REFER) op:Equal rhs:{(refer)} spids:[6299])]
      spids: [6299]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:TBL) op:Equal rhs:{(tbl)} spids:[6302])]
      spids: [6302]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TROFF)
          op: Equal
          rhs: {(SQ <'groff -S -man'>)}
          spids: [6305]
        )
      ]
      spids: [6305]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:VGRIND) op:Equal rhs:{(vgrind)} spids:[6310])]
      spids: [6310]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:LOCALE) op:Equal rhs:{(/usr/bin/locale)} spids:[6314])]
      spids: [6314]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:STTY) op:Equal rhs:{(/bin/stty)} spids:[6317])]
      spids: [6317]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:SYSCTL) op:Equal rhs:{(/sbin/sysctl)} spids:[6320])]
      spids: [6320]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:debug) op:Equal rhs:{(0)} spids:[6324])]
      spids: [6324]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:man_default_sections)
          op: Equal
          rhs: {(SQ <'1:8:2:3:n:4:5:6:7:9:l'>)}
          spids: [6327]
        )
      ]
      spids: [6327]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:man_default_path)
          op: Equal
          rhs: {(SQ <'/usr/share/man:/usr/share/openssl/man:/usr/local/man'>)}
          spids: [6332]
        )
      ]
      spids: [6332]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:cattool)
          op: Equal
          rhs: {(SQ <'/usr/bin/zcat -f'>)}
          spids: [6337]
        )
      ]
      spids: [6337]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:config_global)
          op: Equal
          rhs: {(SQ </etc/man.conf>)}
          spids: [6343]
        )
      ]
      spids: [6343]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:config_local)
          op: Equal
          rhs: {(SQ <'/usr/local/etc/man.d/*.conf'>)}
          spids: [6352]
        )
      ]
      spids: [6352]
    )
    (C {(set)} {(-f)})
    (Case
      to_match: {(DQ ($ VSub_Number '$0'))}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other '*') (apropos)}]
          action: [(C {(do_apropos)} {(DQ ($ VSub_At '$@'))})]
          spids: [6374 6376 6384 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other '*') (manpath)}]
          action: [(C {(do_manpath)} {(DQ ($ VSub_At '$@'))})]
          spids: [6386 6388 6396 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other '*') (whatis)}]
          action: [(C {(do_whatis)} {(DQ ($ VSub_At '$@'))})]
          spids: [6398 6400 6408 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [(C {(do_man)} {(DQ ($ VSub_At '$@'))})]
          spids: [6410 6411 6419 -1]
        )
      ]
      spids: [6366 6372 6421]
    )
  ]
)