(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tid)
          op: Equal
          rhs: {(DQ ('key revocation lists'))}
          spids: [7]
        )
      ]
      spids: [7]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ECDSA) op:Equal rhs:{(ecdsa)} spids:[16])]
      spids: [16]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(test)} {(DQ (x) ($ VSub_Name '$TEST_SSH_ECC'))} {(KW_Bang '!') (Lit_Other '=')} 
                  {(DQ (xyes))}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ECDSA) op:Equal rhs:{(rsa)} spids:[39])]
              spids: [39]
            )
          ]
          spids: [-1 36]
        )
      ]
      spids: [-1 42]
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$OBJ') (/revoked-) (Lit_Other '*')} 
      {($ VSub_Name '$OBJ') (/krl-) (Lit_Other '*')}
    )
    (AndOr
      children: [
        (SimpleCommand
          words: [
            {($ VSub_Name '$SSHKEYGEN')}
            {(-t)}
            {($ VSub_Name '$ECDSA')}
            {(-f)}
            {($ VSub_Name '$OBJ') (/revoked-ca)}
            {(-C)}
            {(DQ )}
            {(-N)}
            {(DQ )}
          ]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[89])]
        )
        (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' CA failed'))})
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [
        (SimpleCommand
          words: [
            {($ VSub_Name '$SSHKEYGEN')}
            {(-t)}
            {(ed25519)}
            {(-f)}
            {($ VSub_Name '$OBJ') (/revoked-ca2)}
            {(-C)}
            {(DQ )}
            {(-N)}
            {(DQ )}
          ]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[124])]
        )
        (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' CA2 failed'))})
      ]
      op_id: Op_DPipe
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('serial: 1-4\n') ('serial: 10\n') ('serial: 15\n') ('serial: 30\n') ('serial: 50\n') 
                ('serial: 999\n') ('# The following sum to 500-799\n') ('serial: 500\n') ('serial: 501\n') ('serial: 502\n') 
                ('serial: 503-600\n') ('serial: 700-797\n') ('serial: 798\n') ('serial: 799\n') ('serial: 599-701\n') 
                ('# Some multiple consecutive serial number ranges\n') ('serial: 10000-20000\n') ('serial: 30000-40000\n')
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [150]
        )
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/revoked-serials)}
          spids: [154]
        )
      ]
    )
    (C {(touch)} {($ VSub_Name '$OBJ') (/revoked-keyid)})
    (ForEach
      iter_name: n
      iter_words: [
        {(1)}
        {(2)}
        {(3)}
        {(4)}
        {(10)}
        {(15)}
        {(30)}
        {(50)}
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(jot)} {(500)} {(300)})])
            left_token: <Left_Backtick '`'>
            spids: [209 215]
          )
        }
        {(999)}
        {(1000)}
        {(1001)}
        {(1002)}
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (AndOr
              children: [
                (C {(test)} {(DQ (x) ($ VSub_Name '$n'))} {(Lit_Other '=')} {(DQ (x499))})
                (ControlFlow token:<ControlFlow_Continue continue>)
              ]
              op_id: Op_DAmp
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('id: revoked ') ($ VSub_Name '$n'))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {($ VSub_Name '$OBJ') (/revoked-keyid)}
                  spids: [258]
                )
              ]
            )
          ]
          spids: [226 263]
        )
      spids: [192 224]
    )
    (FuncDef
      name: keygen
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:N)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [273]
                )
              ]
              spids: [273]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:f)
                  op: Equal
                  rhs: 
                    {($ VSub_Name '$OBJ') (/revoked-) 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(printf)} {(DQ ('%04d'))} {($ VSub_Name '$N')})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [280 288]
                      )
                    }
                  spids: [277]
                )
              ]
              spids: [277]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:keytype)
                  op: Equal
                  rhs: {($ VSub_Name '$ECDSA')}
                  spids: [295]
                )
              ]
              spids: [295]
            )
            (Case
              to_match: {($ VSub_Name '$N')}
              arms: [
                (case_arm
                  pat_list: [{(2)} {(10)} {(510)} {(1001)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:keytype)
                          op: Equal
                          rhs: {(rsa)}
                          spids: [321]
                        )
                      ]
                      spids: [321]
                    )
                  ]
                  spids: [306 319 323 -1]
                )
                (case_arm
                  pat_list: [{(4)} {(30)} {(520)} {(1002)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:keytype)
                          op: Equal
                          rhs: {(ed25519)}
                          spids: [341]
                        )
                      ]
                      spids: [341]
                    )
                  ]
                  spids: [326 339 343 -1]
                )
              ]
              spids: [299 303 346]
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {(-t)}
                    {($ VSub_Name '$keytype')}
                    {(-f)}
                    {($ VSub_Name '$f')}
                    {(-C)}
                    {(DQ )}
                    {(-N)}
                    {(DQ )}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[369])]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {(-s)}
                    {($ VSub_Name '$OBJ') (/revoked-ca)}
                    {(-z)}
                    {($ VSub_Name '$n')}
                    {(-I)}
                    {(DQ ('revoked ') ($ VSub_Name '$N'))}
                    {($ VSub_Name '$f')}
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(/dev/null)}
                      spids: [409]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[412])
                  ]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' sign failed'))})
              ]
              op_id: Op_DPipe
            )
            (C {(echo)} {($ VSub_Name '$f')})
          ]
          spids: [270]
        )
      spids: [266 269]
    )
    (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': generating test keys'))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:REVOKED_SERIALS)
          op: Equal
          rhs: {(DQ ('1 4 10 50 500 510 520 799 999'))}
          spids: [444]
        )
      ]
      spids: [444]
    )
    (ForEach
      iter_name: n
      iter_words: [{($ VSub_Name '$REVOKED_SERIALS')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:f)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(keygen)} {($ VSub_Name '$n')})])
                        left_token: <Left_Backtick '`'>
                        spids: [463 467]
                      )
                    }
                  spids: [462]
                )
              ]
              spids: [462]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:RKEYS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$RKEYS') (' ') (${ VSub_Name f) (.pub))}
                  spids: [470]
                )
              ]
              spids: [470]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:RCERTS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$RCERTS') (' ') (${ VSub_Name f) (-cert.pub))}
                  spids: [481]
                )
              ]
              spids: [481]
            )
          ]
          spids: [459 491]
        )
      spids: [454 457]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:UNREVOKED_SERIALS)
          op: Equal
          rhs: {(DQ ('5 9 14 16 29 49 51 499 800 1010 1011'))}
          spids: [493]
        )
      ]
      spids: [493]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:UNREVOKED) op:Equal rhs:{(DQ )} spids:[498])]
      spids: [498]
    )
    (ForEach
      iter_name: n
      iter_words: [{($ VSub_Name '$UNREVOKED_SERIALS')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:f)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(keygen)} {($ VSub_Name '$n')})])
                        left_token: <Left_Backtick '`'>
                        spids: [516 520]
                      )
                    }
                  spids: [515]
                )
              ]
              spids: [515]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:UKEYS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$UKEYS') (' ') (${ VSub_Name f) (.pub))}
                  spids: [523]
                )
              ]
              spids: [523]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:UCERTS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$UCERTS') (' ') (${ VSub_Name f) (-cert.pub))}
                  spids: [534]
                )
              ]
              spids: [534]
            )
          ]
          spids: [512 544]
        )
      spids: [507 510]
    )
    (FuncDef
      name: genkrls
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OPTS)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [554]
                )
              ]
              spids: [554]
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-empty)}
                    {(-)}
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: -1
                      arg_word: {(/dev/null)}
                      spids: [568]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(/dev/null)}
                      spids: [573]
                    )
                  ]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-keys)}
                    {($ VSub_Name '$RKEYS')}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[598])]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-cert)}
                    {($ VSub_Name '$RCERTS')}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[623])]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-all)}
                    {($ VSub_Name '$RKEYS')}
                    {($ VSub_Name '$RCERTS')}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[650])]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-ca)}
                    {($ VSub_Name '$OBJ') (/revoked-ca.pub)}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[676])]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-serial)}
                    {($ VSub_Name '$OBJ') (/revoked-serials)}
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(/dev/null)}
                      spids: [705]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[708])
                  ]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL succeeded unexpectedly'))})
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-keyid)}
                    {($ VSub_Name '$OBJ') (/revoked-keyid)}
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(/dev/null)}
                      spids: [734]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[737])
                  ]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL succeeded unexpectedly'))})
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-serial)}
                    {(-s)}
                    {($ VSub_Name '$OBJ') (/revoked-ca)}
                    {($ VSub_Name '$OBJ') (/revoked-serials)}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[771])]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-keyid)}
                    {(-s)}
                    {($ VSub_Name '$OBJ') (/revoked-ca.pub)}
                    {($ VSub_Name '$OBJ') (/revoked-keyid)}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[802])]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-serial-wild)}
                    {(-s)}
                    {(NONE)}
                    {($ VSub_Name '$OBJ') (/revoked-serials)}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[835])]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-keyid-wild)}
                    {(-s)}
                    {(NONE)}
                    {($ VSub_Name '$OBJ') (/revoked-keyid)}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[865])]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$SSHKEYGEN')}
                    {($ VSub_Name '$OPTS')}
                    {(-kf)}
                    {($ VSub_Name '$OBJ') (/krl-serial)}
                    {(-u)}
                    {(-s)}
                    {($ VSub_Name '$OBJ') (/revoked-ca2)}
                    {($ VSub_Name '$OBJ') (/revoked-serials)}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[904])]
                )
                (C {(fatal)} {(DQ ($ VSub_Name '$SSHKEYGEN') (' KRL failed'))})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [551]
        )
      spids: [547 550]
    )
    (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': generating KRLs'))})
    (C {(genkrls)})
    (FuncDef
      name: check_krl
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KEY)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [943]
                )
              ]
              spids: [943]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KRL)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [947]
                )
              ]
              spids: [947]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:EXPECT_REVOKED)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [951]
                )
              ]
              spids: [951]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TAG)
                  op: Equal
                  rhs: {($ VSub_Number '$4')}
                  spids: [955]
                )
              ]
              spids: [955]
            )
            (SimpleCommand
              words: [{($ VSub_Name '$SSHKEYGEN')} {(-Qf)} {($ VSub_Name '$KRL')} {($ VSub_Name '$KEY')}]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[967])]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:result)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [971]
                )
              ]
              spids: [971]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(DQ (x) ($ VSub_Name '$EXPECT_REVOKED'))} {(Lit_Other '=')} 
                          {(DQ (xyes))} {(-a)} {($ VSub_Name '$result')} {(-eq)} {(0)}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(fatal)} 
                      {
                        (DQ ('key ') ($ VSub_Name '$KEY') (' not revoked by KRL ') ($ VSub_Name '$KRL') 
                          (': ') ($ VSub_Name '$TAG')
                        )
                      }
                    )
                  ]
                  spids: [-1 1000]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(DQ (x) ($ VSub_Name '$EXPECT_REVOKED'))} {(Lit_Other '=')} 
                          {(DQ (xno))} {(-a)} {($ VSub_Name '$result')} {(-ne)} {(0)}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(fatal)} 
                      {
                        (DQ ('key ') ($ VSub_Name '$KEY') (' unexpectedly revoked by KRL ') 
                          ($ VSub_Name '$KRL') (': ') ($ VSub_Name '$TAG')
                        )
                      }
                    )
                  ]
                  spids: [1015 1040]
                )
              ]
              spids: [-1 1055]
            )
          ]
          spids: [940]
        )
      spids: [936 939]
    )
    (FuncDef
      name: test_rev
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FILES)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1066]
                )
              ]
              spids: [1066]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TAG)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [1070]
                )
              ]
              spids: [1070]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KEYS_RESULT)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [1074]
                )
              ]
              spids: [1074]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ALL_RESULT)
                  op: Equal
                  rhs: {($ VSub_Number '$4')}
                  spids: [1078]
                )
              ]
              spids: [1078]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SERIAL_RESULT)
                  op: Equal
                  rhs: {($ VSub_Number '$5')}
                  spids: [1082]
                )
              ]
              spids: [1082]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KEYID_RESULT)
                  op: Equal
                  rhs: {($ VSub_Number '$6')}
                  spids: [1086]
                )
              ]
              spids: [1086]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CERTS_RESULT)
                  op: Equal
                  rhs: {($ VSub_Number '$7')}
                  spids: [1090]
                )
              ]
              spids: [1090]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CA_RESULT)
                  op: Equal
                  rhs: {($ VSub_Number '$8')}
                  spids: [1094]
                )
              ]
              spids: [1094]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SERIAL_WRESULT)
                  op: Equal
                  rhs: {($ VSub_Number '$9')}
                  spids: [1098]
                )
              ]
              spids: [1098]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KEYID_WRESULT)
                  op: Equal
                  rhs: {($ VSub_Number '$1') (0)}
                  spids: [1102]
                )
              ]
              spids: [1102]
            )
            (C {(verbose)} 
              {(DQ ($ VSub_Name '$tid') (': checking revocations for ') ($ VSub_Name '$TAG'))}
            )
            (ForEach
              iter_name: f
              iter_words: [{($ VSub_Name '$FILES')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(check_krl)} {($ VSub_Name '$f')} {($ VSub_Name '$OBJ') (/krl-empty)} {(no)} 
                      {(DQ ($ VSub_Name '$TAG'))}
                    )
                    (C {(check_krl)} {($ VSub_Name '$f')} {($ VSub_Name '$OBJ') (/krl-keys)} 
                      {($ VSub_Name '$KEYS_RESULT')} {(DQ ($ VSub_Name '$TAG'))}
                    )
                    (C {(check_krl)} {($ VSub_Name '$f')} {($ VSub_Name '$OBJ') (/krl-all)} 
                      {($ VSub_Name '$ALL_RESULT')} {(DQ ($ VSub_Name '$TAG'))}
                    )
                    (C {(check_krl)} {($ VSub_Name '$f')} {($ VSub_Name '$OBJ') (/krl-serial)} 
                      {($ VSub_Name '$SERIAL_RESULT')} {(DQ ($ VSub_Name '$TAG'))}
                    )
                    (C {(check_krl)} {($ VSub_Name '$f')} {($ VSub_Name '$OBJ') (/krl-keyid)} 
                      {($ VSub_Name '$KEYID_RESULT')} {(DQ ($ VSub_Name '$TAG'))}
                    )
                    (C {(check_krl)} {($ VSub_Name '$f')} {($ VSub_Name '$OBJ') (/krl-cert)} 
                      {($ VSub_Name '$CERTS_RESULT')} {(DQ ($ VSub_Name '$TAG'))}
                    )
                    (C {(check_krl)} {($ VSub_Name '$f')} {($ VSub_Name '$OBJ') (/krl-ca)} 
                      {($ VSub_Name '$CA_RESULT')} {(DQ ($ VSub_Name '$TAG'))}
                    )
                    (C {(check_krl)} {($ VSub_Name '$f')} {($ VSub_Name '$OBJ') (/krl-serial-wild)} 
                      {($ VSub_Name '$SERIAL_WRESULT')} {(DQ ($ VSub_Name '$TAG'))}
                    )
                    (C {(check_krl)} {($ VSub_Name '$f')} {($ VSub_Name '$OBJ') (/krl-keyid-wild)} 
                      {($ VSub_Name '$KEYID_WRESULT')} {(DQ ($ VSub_Name '$TAG'))}
                    )
                  ]
                  spids: [1126 1255]
                )
              spids: [1121 1124]
            )
          ]
          spids: [1063]
        )
      spids: [1059 1062]
    )
    (FuncDef
      name: test_all
      body: 
        (BraceGroup
          children: [
            (C {(test_rev)} {(DQ ($ VSub_Name '$RKEYS'))} {(DQ ('revoked keys'))} {(yes)} {(yes)} {(no)} 
              {(no)} {(no)} {(no)} {(no)} {(no)}
            )
            (C {(test_rev)} {(DQ ($ VSub_Name '$UKEYS'))} {(DQ ('unrevoked keys'))} {(no)} {(no)} {(no)} 
              {(no)} {(no)} {(no)} {(no)} {(no)}
            )
            (C {(test_rev)} {(DQ ($ VSub_Name '$RCERTS'))} {(DQ ('revoked certs'))} {(yes)} {(yes)} {(yes)} 
              {(yes)} {(yes)} {(yes)} {(yes)} {(yes)}
            )
            (C {(test_rev)} {(DQ ($ VSub_Name '$UCERTS'))} {(DQ ('unrevoked certs'))} {(no)} {(no)} {(no)} 
              {(no)} {(no)} {(yes)} {(no)} {(no)}
            )
          ]
          spids: [1264]
        )
      spids: [1260 1263]
    )
    (C {(test_all)})
    (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': testing KRL update'))})
    (ForEach
      iter_name: f
      iter_words: [
        {($ VSub_Name '$OBJ') (/krl-keys)}
        {($ VSub_Name '$OBJ') (/krl-cert)}
        {($ VSub_Name '$OBJ') (/krl-all)}
        {($ VSub_Name '$OBJ') (/krl-ca)}
        {($ VSub_Name '$OBJ') (/krl-serial)}
        {($ VSub_Name '$OBJ') (/krl-keyid)}
        {($ VSub_Name '$OBJ') (/krl-serial-wild)}
        {($ VSub_Name '$OBJ') (/krl-keyid-wild)}
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(cp)} {(-f)} {($ VSub_Name '$OBJ') (/krl-empty)} {($ VSub_Name '$f')})
            (C {(genkrls)} {(-u)})
          ]
          spids: [1433 1450]
        )
      spids: [1403 1431]
    )
    (C {(test_all)})
  ]
)