(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ ('keygen moduli'))} spids:[7])]
      spids: [7]
    )
    (ForEach
      iter_name: i
      iter_words: [{(DQ (-J1))} {(DQ ('-j1 -J1'))} {(DQ ('-j2 -K ') ($ VSub_Name '$OBJ') (/moduli.ckpt))}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(trace)} {(DQ ('keygen ') ($ VSub_Name '$i'))})
            (C {(rm)} {(-f)} {($ VSub_Name '$OBJ') (/moduli.out)} {($ VSub_Name '$OBJ') (/moduli.ckpt)})
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {(${ VSub_Name SSHKEYGEN)}
                    {(-T)}
                    {($ VSub_Name '$OBJ') (/moduli.out)}
                    {(-f)}
                    {(${ VSub_Name SRC) (/moduli.in)}
                    {($ VSub_Name '$i')}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[83])]
                )
                (C {(fail)} {(DQ ('keygen screen failed ') ($ VSub_Name '$i'))})
              ]
              op_id: Op_DPipe
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lines)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(wc)} {(-l)}]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Less
                                    fd: -1
                                    arg_word: {($ VSub_Name '$OBJ') (/moduli.out)}
                                    spids: [104]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [99 107]
                      )
                    }
                  spids: [98]
                )
              ]
              spids: [98]
            )
            (AndOr
              children: [
                (C {(test)} {(DQ ($ VSub_Name '$lines'))} {(-eq)} {(DQ (1))})
                (C {(fail)} {(DQ ('expected 1 line, got ') ($ VSub_Name '$lines'))})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [43 131]
        )
      spids: [27 41]
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$OBJ') (/moduli.out)} {($ VSub_Name '$OBJ') (/moduli.ckpt)})
  ]
)