(CommandList
  children: [
    (FuncDef
      name: _puppet_logdest
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$cur')}))
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:COMPREPLY)
                          op: Equal
                          rhs: 
                            {
                              (ArrayLiteralPart
                                words: [
                                  {
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} {(SQ <'syslog console /'>)} {(--)} 
                                              {(DQ ($ VSub_Name '$cur'))}
                                            )
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [28 44]
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [25]
                        )
                      ]
                      spids: [25]
                    )
                  ]
                  spids: [16777215 22]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:COMPREPLY)
                      op: Equal
                      rhs: 
                        {
                          (ArrayLiteralPart
                            words: [
                              {
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(compgen)} {(-W)} {(SQ <'syslog console'>)} {(--)} 
                                          {(DQ ($ VSub_Name '$cur'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [55 71]
                                )
                              }
                            ]
                          )
                        }
                      spids: [52]
                    )
                  ]
                  spids: [52]
                )
                (C {(_filedir)})
              ]
              spids: [49 79]
            )
          ]
          spids: [8]
        )
      spids: [4 7]
    )
    (FuncDef
      name: _puppet_digest
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPREPLY)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} {(SQ <'MD5 MD2 SHA1 SHA256'>)} {(--)} 
                                      {(DQ ($ VSub_Name '$cur'))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [94 110]
                            )
                          }
                        ]
                      )
                    }
                  spids: [91]
                )
              ]
              spids: [91]
            )
          ]
          spids: [88]
        )
      spids: [84 87]
    )
    (FuncDef
      name: _puppet_certs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:puppetca)
                  op: Equal
                  rhs: {(DQ ('puppet cert'))}
                  spids: [126]
                )
              ]
              spids: [124]
            )
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(type)} {(puppetca)}]
                  more_env: [
                    (env_pair
                      name: PATH
                      val: 
                        {($ VSub_Name '$PATH') (Lit_Other ':') (/sbin) (Lit_Other ':') (/usr/sbin) 
                          (Lit_Other ':') (/usr/local/sbin)
                        }
                      spids: [132]
                    )
                  ]
                )
              terminator: <Op_Amp '&'>
            )
            (AndOr
              children: [
                (SimpleCommand
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [146]
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:puppetca)
                      op: Equal
                      rhs: {(puppetca)}
                      spids: [153]
                    )
                  ]
                  spids: [153]
                )
              ]
              op_id: Op_DAmp
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ ($ VSub_Number '$1'))}
                              right: {(--all)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cert_list)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {($ VSub_Name '$puppetca')} {(--list)} {(--all)})
                                          (C {(sed)} {(-e)} 
                                            {(SQ <'s/^[+-]\\?\\s*\\(\\S\\+\\)\\s\\+.*$/\\1/'>)}
                                          )
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [177 195]
                              )
                            }
                          spids: [176]
                        )
                      ]
                      spids: [176]
                    )
                  ]
                  spids: [16777215 173]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cert_list)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {($ VSub_Name '$puppetca')} {(--list)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [202 208]
                          )
                        }
                      spids: [201]
                    )
                  ]
                  spids: [201]
                )
              ]
              spids: [198 211]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPREPLY)
                  op: PlusEqual
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} {(DQ ($ VSub_Name '$cert_list'))} {(--)} 
                                      {(DQ ($ VSub_Name '$cur'))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [217 233]
                            )
                          }
                        ]
                      )
                    }
                  spids: [214]
                )
              ]
              spids: [214]
            )
          ]
          spids: [121]
        )
      spids: [117 120]
    )
    (FuncDef
      name: _puppet_types
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:puppet_types)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(puppet)} {(describe)} {(--list)})
                                  (C {(sed)} {(-e)} {(SQ <'s/^\\(\\S\\+\\).*$/\\1/'>)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [248 266]
                      )
                    }
                  spids: [247]
                )
              ]
              spids: [247]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPREPLY)
                  op: PlusEqual
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} {(DQ ($ VSub_Name '$puppet_types'))} {(--)} 
                                      {(DQ ($ VSub_Name '$cur'))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [272 288]
                            )
                          }
                        ]
                      )
                    }
                  spids: [269]
                )
              ]
              spids: [269]
            )
          ]
          spids: [244]
        )
      spids: [240 243]
    )
    (FuncDef
      name: _puppet_references
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:puppetdoc)
                  op: Equal
                  rhs: {(DQ ('puppet doc'))}
                  spids: [304]
                )
              ]
              spids: [302]
            )
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(type)} {(puppetdoc)}]
                  more_env: [
                    (env_pair
                      name: PATH
                      val: 
                        {($ VSub_Name '$PATH') (Lit_Other ':') (/sbin) (Lit_Other ':') (/usr/sbin) 
                          (Lit_Other ':') (/usr/local/sbin)
                        }
                      spids: [310]
                    )
                  ]
                )
              terminator: <Op_Amp '&'>
            )
            (AndOr
              children: [
                (SimpleCommand
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [324]
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:puppetdoc)
                      op: Equal
                      rhs: {(puppetdoc)}
                      spids: [331]
                    )
                  ]
                  spids: [331]
                )
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:puppet_doc_list)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {($ VSub_Name '$puppetdoc')} {(--list)})
                                  (C {(sed)} {(-e)} {(SQ <'s/^\\(\\S\\+\\).*$/\\1/'>)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [337 353]
                      )
                    }
                  spids: [336]
                )
              ]
              spids: [336]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPREPLY)
                  op: PlusEqual
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} {(DQ ($ VSub_Name '$puppet_doc_list'))} {(--)} 
                                      {(DQ ($ VSub_Name '$cur'))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [359 375]
                            )
                          }
                        ]
                      )
                    }
                  spids: [356]
                )
              ]
              spids: [356]
            )
          ]
          spids: [299]
        )
      spids: [295 298]
    )
    (FuncDef
      name: _puppet_subcmd_opts
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (DBracket
                  expr: 
                    (LogicalOr
                      left: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$cur')})
                      right: 
                        (BoolBinary
                          op_id: BoolBinary_GlobDEqual
                          left: {($ VSub_Name '$cur')}
                          right: {(-) (Lit_Other '*')}
                        )
                    )
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:COMPREPLY)
                      op: PlusEqual
                      rhs: 
                        {
                          (ArrayLiteralPart
                            words: [
                              {
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(compgen)} {(-W)} {(SQ <'$( _parse_usage "$1" "help $2" )'>)} 
                                          {(--)} {(DQ ($ VSub_Name '$cur'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [417 435]
                                )
                              }
                            ]
                          )
                        }
                      spids: [414]
                    )
                  ]
                  spids: [414]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [386]
        )
      spids: [382 385]
    )
    (AndOr
      children: [
        (FuncDef
          name: _puppet
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:cur) op:Equal spids:[451])
                    (assign_pair lhs:(LhsName name:prev) op:Equal spids:[453])
                    (assign_pair lhs:(LhsName name:words) op:Equal spids:[455])
                    (assign_pair lhs:(LhsName name:cword) op:Equal spids:[457])
                  ]
                  spids: [449]
                )
                (AndOr
                  children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)]
                  op_id: Op_DPipe
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:xspec) op:Equal spids:[470])
                    (assign_pair
                      lhs: (LhsName name:helpopts)
                      op: Equal
                      spids: [472]
                    )
                    (assign_pair
                      lhs: (LhsName name:subcommand)
                      op: Equal
                      spids: [474]
                    )
                    (assign_pair lhs:(LhsName name:action) op:Equal spids:[476])
                  ]
                  spids: [468]
                )
                (Case
                  to_match: {($ VSub_Name '$prev')}
                  arms: [
                    (case_arm
                      pat_list: [{(-h)} {(--help)} {(-V)} {(--version)}]
                      action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                      spids: [487 494 502 16777215]
                    )
                  ]
                  spids: [480 484 505]
                )
                (Case
                  to_match: 
                    {
                      (BracedVarSub
                        token: <VSub_Name words>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                        spids: [511 516]
                      )
                    }
                  arms: [
                    (case_arm
                      pat_list: [{(puppetmasterd)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcommand)
                              op: Equal
                              rhs: {(master)}
                              spids: [525]
                            )
                          ]
                          spids: [525]
                        )
                      ]
                      spids: [521 522 529 16777215]
                    )
                    (case_arm
                      pat_list: [{(puppetd)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcommand)
                              op: Equal
                              rhs: {(agent)}
                              spids: [536]
                            )
                          ]
                          spids: [536]
                        )
                      ]
                      spids: [532 533 540 16777215]
                    )
                    (case_arm
                      pat_list: [{(puppetca)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcommand)
                              op: Equal
                              rhs: {(cert)}
                              spids: [547]
                            )
                          ]
                          spids: [547]
                        )
                      ]
                      spids: [543 544 551 16777215]
                    )
                    (case_arm
                      pat_list: [{(ralsh)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcommand)
                              op: Equal
                              rhs: {(resource)}
                              spids: [558]
                            )
                          ]
                          spids: [558]
                        )
                      ]
                      spids: [554 555 562 16777215]
                    )
                    (case_arm
                      pat_list: [{(puppetrun)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcommand)
                              op: Equal
                              rhs: {(kick)}
                              spids: [569]
                            )
                          ]
                          spids: [569]
                        )
                      ]
                      spids: [565 566 573 16777215]
                    )
                    (case_arm
                      pat_list: [{(puppetqd)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcommand)
                              op: Equal
                              rhs: {(queue)}
                              spids: [580]
                            )
                          ]
                          spids: [580]
                        )
                      ]
                      spids: [576 577 584 16777215]
                    )
                    (case_arm
                      pat_list: [{(filebucket)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcommand)
                              op: Equal
                              rhs: {(filebucket)}
                              spids: [591]
                            )
                          ]
                          spids: [591]
                        )
                      ]
                      spids: [587 588 595 16777215]
                    )
                    (case_arm
                      pat_list: [{(puppetdoc)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcommand)
                              op: Equal
                              rhs: {(doc)}
                              spids: [602]
                            )
                          ]
                          spids: [602]
                        )
                      ]
                      spids: [598 599 606 16777215]
                    )
                    (case_arm
                      pat_list: [{(pi)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcommand)
                              op: Equal
                              rhs: {(describe)}
                              spids: [613]
                            )
                          ]
                          spids: [613]
                        )
                      ]
                      spids: [609 610 617 16777215]
                    )
                    (case_arm
                      pat_list: [{(puppet)}]
                      action: [
                        (Case
                          to_match: 
                            {
                              (BracedVarSub
                                token: <VSub_Name words>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)}))
                                spids: [626 631]
                              )
                            }
                          arms: [
                            (case_arm
                              pat_list: [
                                {(agent)}
                                {(apply)}
                                {(cert)}
                                {(describe)}
                                {(doc)}
                                {(filebucket)}
                                {(kick)}
                                {(master)}
                                {(parser)}
                                {(queue)}
                                {(resource)}
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:subcommand)
                                      op: Equal
                                      rhs: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name words>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)}))
                                            spids: [661 666]
                                          )
                                        }
                                      spids: [660]
                                    )
                                  ]
                                  spids: [660]
                                )
                              ]
                              spids: [636 657 669 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*') (.pp)} {(Lit_Other '*') (.rb)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:subcommand)
                                      op: Equal
                                      rhs: {(apply)}
                                      spids: [680]
                                    )
                                  ]
                                  spids: [680]
                                )
                              ]
                              spids: [672 677 684 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} 
                                                          {
                                                            (SQ <'agent apply cert describe doc\n'> 
                                                              <
'                      filebucket kick master parser queue resource'
                                                              >
                                                            )
                                                          } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [694 711]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [691]
                                    )
                                  ]
                                  spids: [691]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [687 688 721 16777215]
                            )
                          ]
                          spids: [624 633 724]
                        )
                      ]
                      spids: [620 621 16777215 727]
                    )
                  ]
                  spids: [509 518 727]
                )
                (Case
                  to_match: {($ VSub_Name '$subcommand')}
                  arms: [
                    (case_arm
                      pat_list: [{(agent)}]
                      action: [
                        (Case
                          to_match: {($ VSub_Name '$prev')}
                          arms: [
                            (case_arm
                              pat_list: [{(--certname)}]
                              action: [
                                (C {(_known_hosts_real)} {(DQ ($ VSub_Name '$cur'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [749 750 765 16777215]
                            )
                            (case_arm
                              pat_list: [{(--digest)}]
                              action: [
                                (C {(_puppet_digest)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [768 769 780 16777215]
                            )
                            (case_arm
                              pat_list: [{(--fqdn)}]
                              action: [
                                (C {(_known_hosts_real)} {(DQ ($ VSub_Name '$cur'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [783 784 799 16777215]
                            )
                            (case_arm
                              pat_list: [{(-l)} {(--logdest)}]
                              action: [
                                (C {(_puppet_logdest)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [802 805 816 16777215]
                            )
                            (case_arm
                              pat_list: [{(--masterport)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} {(SQ <8140>)} {(--)} 
                                                          {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [826 842]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [823]
                                    )
                                  ]
                                  spids: [823]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [819 820 852 16777215]
                            )
                            (case_arm
                              pat_list: [{(-w)} {(--waitforcert)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} {(SQ <'0 15 30 60 120'>)} 
                                                          {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [864 880]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [861]
                                    )
                                  ]
                                  spids: [861]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [855 858 890 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (C {(_puppet_subcmd_opts)} {(DQ ($ VSub_Number '$1'))} 
                                  {($ VSub_Name '$subcommand')}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: PlusEqual
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} {(SQ <--no-daemonize>)} 
                                                          {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [913 929]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [910]
                                    )
                                  ]
                                  spids: [910]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [893 894 16777215 939]
                            )
                          ]
                          spids: [742 746 939]
                        )
                      ]
                      spids: [738 739 942 16777215]
                    )
                    (case_arm
                      pat_list: [{(apply)}]
                      action: [
                        (Case
                          to_match: {($ VSub_Name '$prev')}
                          arms: [
                            (case_arm
                              pat_list: [{(--catalog)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} {(SQ <->)} {(--)} 
                                                          {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [963 979]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [960]
                                    )
                                  ]
                                  spids: [960]
                                )
                                (C {(_filedir)} {(json)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [956 957 994 16777215]
                            )
                            (case_arm
                              pat_list: [{(--execute)}]
                              action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                              spids: [997 998 1006 16777215]
                            )
                            (case_arm
                              pat_list: [{(-l)} {(--logdest)}]
                              action: [
                                (C {(_puppet_logdest)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1009 1012 1023 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobDEqual
                                                  left: {(DQ ($ VSub_Name '$cur'))}
                                                  right: {(-) (Lit_Other '*')}
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(_puppet_subcmd_opts)} {(DQ ($ VSub_Number '$1'))} 
                                          {($ VSub_Name '$subcommand')}
                                        )
                                      ]
                                      spids: [16777215 1046]
                                    )
                                  ]
                                  else_action: [(C {(_filedir)})]
                                  spids: [1058 1064]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1026 1027 16777215 1072]
                            )
                          ]
                          spids: [949 953 1072]
                        )
                      ]
                      spids: [945 946 1075 16777215]
                    )
                    (case_arm
                      pat_list: [{(cert)}]
                      action: [
                        (Case
                          to_match: {($ VSub_Name '$prev')}
                          arms: [
                            (case_arm
                              pat_list: [{(--digest)}]
                              action: [
                                (C {(_puppet_digest)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1089 1090 1101 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:action)
                                      op: Equal
                                      rhs: {($ VSub_Name '$prev')}
                                      spids: [1108]
                                    )
                                  ]
                                  spids: [1108]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} 
                                                          {
                                                            (SQ 
                                                              <
'--digest --debug --help --verbose --version'
                                                              >
                                                            )
                                                          } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [1115 1133]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [1112]
                                    )
                                  ]
                                  spids: [1112]
                                )
                                (Case
                                  to_match: {($ VSub_Name '$action')}
                                  arms: [
                                    (case_arm
                                      pat_list: [
                                        {(fingerprint)}
                                        {(list)}
                                        {(verify)}
                                        {(--fingerprint)}
                                        {(--list)}
                                        {(--verify)}
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:COMPREPLY)
                                              op: PlusEqual
                                              rhs: 
                                                {
                                                  (ArrayLiteralPart
                                                    words: [
                                                      {
                                                        (CommandSubPart
                                                          command_list: 
                                                            (CommandList
                                                              children: [
                                                                (C {(compgen)} {(-W)} {(SQ <--all>)} 
                                                                  {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                                )
                                                              ]
                                                            )
                                                          left_token: <Left_CommandSub '$('>
                                                          spids: [1162 1178]
                                                        )
                                                      }
                                                    ]
                                                  )
                                                }
                                              spids: [1159]
                                            )
                                          ]
                                          spids: [1159]
                                        )
                                        (C {(_puppet_certs)} {(--all)})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(0)}
                                        )
                                      ]
                                      spids: [1145 1156 1193 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(generate)} {(--generate)}]
                                      action: [
                                        (C {(_known_hosts_real)} {(DQ ($ VSub_Name '$cur'))})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(0)}
                                        )
                                      ]
                                      spids: [1196 1199 1214 16777215]
                                    )
                                    (case_arm
                                      pat_list: [
                                        {(clean)}
                                        {(print)}
                                        {(revoke)}
                                        {(--clean)}
                                        {(--print)}
                                        {(--revoke)}
                                      ]
                                      action: [
                                        (C {(_puppet_certs)} {(--all)})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(0)}
                                        )
                                      ]
                                      spids: [1217 1228 1241 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(sign)} {(--sign)}]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:COMPREPLY)
                                              op: PlusEqual
                                              rhs: 
                                                {
                                                  (ArrayLiteralPart
                                                    words: [
                                                      {
                                                        (CommandSubPart
                                                          command_list: 
                                                            (CommandList
                                                              children: [
                                                                (C {(compgen)} {(-W)} {(SQ <--all>)} 
                                                                  {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                                )
                                                              ]
                                                            )
                                                          left_token: <Left_CommandSub '$('>
                                                          spids: [1253 1269]
                                                        )
                                                      }
                                                    ]
                                                  )
                                                }
                                              spids: [1250]
                                            )
                                          ]
                                          spids: [1250]
                                        )
                                        (C {(_puppet_certs)})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(0)}
                                        )
                                      ]
                                      spids: [1244 1247 1282 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(Lit_Other '*')}]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:COMPREPLY)
                                              op: PlusEqual
                                              rhs: 
                                                {
                                                  (ArrayLiteralPart
                                                    words: [
                                                      {
                                                        (CommandSubPart
                                                          command_list: 
                                                            (CommandList
                                                              children: [
                                                                (C {(compgen)} {(-W)} 
                                                                  {
                                                                    (SQ 
                                                                      <
'clean fingerprint generate\n'
                                                                      > <'                                list print revoke sign verify reinventory'>
                                                                    )
                                                                  } {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                                )
                                                              ]
                                                            )
                                                          left_token: <Left_CommandSub '$('>
                                                          spids: [1292 1309]
                                                        )
                                                      }
                                                    ]
                                                  )
                                                }
                                              spids: [1289]
                                            )
                                          ]
                                          spids: [1289]
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(0)}
                                        )
                                      ]
                                      spids: [1285 1286 16777215 1319]
                                    )
                                  ]
                                  spids: [1138 1142 1319]
                                )
                              ]
                              spids: [1104 1105 16777215 1322]
                            )
                          ]
                          spids: [1082 1086 1322]
                        )
                      ]
                      spids: [1078 1079 1325 16777215]
                    )
                    (case_arm
                      pat_list: [{(describe)}]
                      action: [
                        (C {(_puppet_subcmd_opts)} {(DQ ($ VSub_Number '$1'))} 
                          {($ VSub_Name '$subcommand')}
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobNEqual
                                          left: {(DQ ($ VSub_Name '$cur'))}
                                          right: {(-) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(_puppet_types)})]
                              spids: [16777215 1357]
                            )
                          ]
                          spids: [16777215 1363]
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [1328 1329 1371 16777215]
                    )
                    (case_arm
                      pat_list: [{(doc)}]
                      action: [
                        (Case
                          to_match: {($ VSub_Name '$prev')}
                          arms: [
                            (case_arm
                              pat_list: [{(-o)} {(--outputdir)}]
                              action: [
                                (C {(_filedir)} {(-d)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1385 1388 1401 16777215]
                            )
                            (case_arm
                              pat_list: [{(-m)} {(--mode)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} 
                                                          {(SQ <'text trac pdf rdoc'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [1413 1429]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [1410]
                                    )
                                  ]
                                  spids: [1410]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1404 1407 1439 16777215]
                            )
                            (case_arm
                              pat_list: [{(-r)} {(--reference)}]
                              action: [
                                (C {(_puppet_references)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1442 1445 1456 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobDEqual
                                                  left: {(DQ ($ VSub_Name '$cur'))}
                                                  right: {(-) (Lit_Other '*')}
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(_puppet_subcmd_opts)} {(DQ ($ VSub_Number '$1'))} 
                                          {($ VSub_Name '$subcommand')}
                                        )
                                      ]
                                      spids: [16777215 1479]
                                    )
                                  ]
                                  else_action: [(C {(_filedir)})]
                                  spids: [1491 1497]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1459 1460 16777215 1505]
                            )
                          ]
                          spids: [1378 1382 1505]
                        )
                      ]
                      spids: [1374 1375 1508 16777215]
                    )
                    (case_arm
                      pat_list: [{(filebucket)}]
                      action: [
                        (Case
                          to_match: {($ VSub_Name '$prev')}
                          arms: [
                            (case_arm
                              pat_list: [{(-s)} {(--server)}]
                              action: [
                                (C {(_known_hosts_real)} {(DQ ($ VSub_Name '$cur'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1522 1525 1540 16777215]
                            )
                            (case_arm
                              pat_list: [{(-b)} {(--bucket)}]
                              action: [
                                (C {(_filedir)} {(-d)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1543 1546 1559 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobDEqual
                                                  left: {(DQ ($ VSub_Name '$cur'))}
                                                  right: {(-) (Lit_Other '*')}
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(_puppet_subcmd_opts)} {(DQ ($ VSub_Number '$1'))} 
                                          {($ VSub_Name '$subcommand')}
                                        )
                                      ]
                                      spids: [16777215 1582]
                                    )
                                  ]
                                  else_action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:COMPREPLY)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {(SQ <'backup get restore'>)} {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [1600 1618]
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [1597]
                                        )
                                      ]
                                      spids: [1597]
                                    )
                                    (C {(_filedir)})
                                  ]
                                  spids: [1594 1626]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1562 1563 16777215 1634]
                            )
                          ]
                          spids: [1515 1519 1634]
                        )
                      ]
                      spids: [1511 1512 1637 16777215]
                    )
                    (case_arm
                      pat_list: [{(kick)}]
                      action: [
                        (Case
                          to_match: {($ VSub_Name '$prev')}
                          arms: [
                            (case_arm
                              pat_list: [{(-c)} {(--class)}]
                              action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                              spids: [1651 1654 1662 16777215]
                            )
                            (case_arm
                              pat_list: [{(--host)}]
                              action: [
                                (C {(_known_hosts_real)} {(DQ ($ VSub_Name '$cur'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1665 1666 1681 16777215]
                            )
                            (case_arm
                              pat_list: [{(-t)} {(--tag)}]
                              action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                              spids: [1684 1687 1695 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobDEqual
                                                  left: {(DQ ($ VSub_Name '$cur'))}
                                                  right: {(-) (Lit_Other '*')}
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(_puppet_subcmd_opts)} {(DQ ($ VSub_Number '$1'))} 
                                          {($ VSub_Name '$subcommand')}
                                        )
                                      ]
                                      spids: [16777215 1718]
                                    )
                                  ]
                                  else_action: [(C {(_known_hosts_real)} {(DQ ($ VSub_Name '$cur'))})]
                                  spids: [1730 1740]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1698 1699 16777215 1748]
                            )
                          ]
                          spids: [1644 1648 1748]
                        )
                      ]
                      spids: [1640 1641 1751 16777215]
                    )
                    (case_arm
                      pat_list: [{(master)}]
                      action: [
                        (Case
                          to_match: {($ VSub_Name '$prev')}
                          arms: [
                            (case_arm
                              pat_list: [{(-l)} {(--logdest)}]
                              action: [
                                (C {(_puppet_logdest)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1765 1768 1779 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (C {(_puppet_subcmd_opts)} {(DQ ($ VSub_Number '$1'))} 
                                  {($ VSub_Name '$subcommand')}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: PlusEqual
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} {(SQ <--no-daemonize>)} 
                                                          {(--)} {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [1802 1818]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [1799]
                                    )
                                  ]
                                  spids: [1799]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1782 1783 16777215 1828]
                            )
                          ]
                          spids: [1758 1762 1828]
                        )
                      ]
                      spids: [1754 1755 1831 16777215]
                    )
                    (case_arm
                      pat_list: [{(parser)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:action)
                              op: Equal
                              rhs: {($ VSub_Name '$prev')}
                              spids: [1838]
                            )
                          ]
                          spids: [1838]
                        )
                        (Case
                          to_match: {($ VSub_Name '$action')}
                          arms: [
                            (case_arm
                              pat_list: [{(validate)}]
                              action: [
                                (C {(_filedir)} {(pp)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1849 1850 1863 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:COMPREPLY)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} {(SQ <validate>)} {(--)} 
                                                          {(DQ ($ VSub_Name '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [1873 1889]
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [1870]
                                    )
                                  ]
                                  spids: [1870]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1866 1867 16777215 1899]
                            )
                          ]
                          spids: [1842 1846 1899]
                        )
                      ]
                      spids: [1834 1835 1902 16777215]
                    )
                    (case_arm
                      pat_list: [{(queue)}]
                      action: [
                        (Case
                          to_match: {($ VSub_Name '$prev')}
                          arms: [
                            (case_arm
                              pat_list: [{(-l)} {(--logdest)}]
                              action: [
                                (C {(_puppet_logdest)})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1916 1919 1930 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobDEqual
                                                  left: {(DQ ($ VSub_Name '$cur'))}
                                                  right: {(-) (Lit_Other '*')}
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(_puppet_subcmd_opts)} {(DQ ($ VSub_Number '$1'))} 
                                          {($ VSub_Name '$subcommand')}
                                        )
                                      ]
                                      spids: [16777215 1953]
                                    )
                                  ]
                                  else_action: [(C {(_filedir)})]
                                  spids: [1965 1971]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [1933 1934 16777215 1979]
                            )
                          ]
                          spids: [1909 1913 1979]
                        )
                      ]
                      spids: [1905 1906 1982 16777215]
                    )
                    (case_arm
                      pat_list: [{(resource)} {(Lit_Other '*')}]
                      action: [
                        (C {(_puppet_subcmd_opts)} {(DQ ($ VSub_Number '$1'))} 
                          {($ VSub_Name '$subcommand')}
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [1985 1988 2005 16777215]
                    )
                  ]
                  spids: [731 735 2008]
                )
              ]
              spids: [446]
            )
          spids: [442 445]
        )
        (C {(complete)} {(-F)} {(_puppet)} {(puppetmasterd)} {(puppetd)} {(puppetca)} {(ralsh)} {(puppetrun)} 
          {(puppetqd)} {(filebucket)} {(puppetdoc)} {(puppet)}
        )
      ]
      op_id: Op_DAmp
    )
  ]
)