(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ ('expand %h and %n'))} spids:[7])]
      spids: [7]
    )
    (SimpleCommand
      words: [{(echo)} {(SQ <'PermitLocalCommand yes'>)}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_proxy)}
          spids: [19]
        )
      ]
    )
    (SimpleCommand
      words: [{(printf)} {(SQ <'LocalCommand printf "%%%%s\\\\n" "%%n" "%%h"\\n'>)}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_proxy)}
          spids: [30]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name '$OBJ') (/expect)} spids:[38])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('somehost\n') ('127.0.0.1\n'))}
          do_expansion: True
          here_end: EOE
          was_filled: True
          spids: [42]
        )
      ]
    )
    (ForEach
      iter_name: p
      iter_words: [{(${ VSub_Name SSH_PROTOCOLS)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(verbose)} {(DQ ('test ') ($ VSub_Name '$tid') (': proto ') ($ VSub_Name '$p'))})
            (SimpleCommand
              words: [
                {(${ VSub_Name SSH)}
                {(-F)}
                {($ VSub_Name '$OBJ') (/ssh_proxy)}
                {(-) ($ VSub_Name '$p')}
                {(somehost)}
                {(true)}
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {($ VSub_Name '$OBJ') (/actual)}
                  spids: [89]
                )
              ]
            )
            (AndOr
              children: [
                (C {(diff)} {($ VSub_Name '$OBJ') (/expect)} {($ VSub_Name '$OBJ') (/actual)})
                (C {(fail)} {(DQ ($ VSub_Name '$tid') (' proto ') ($ VSub_Name '$p'))})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [60 112]
        )
      spids: [54 58]
    )
  ]
)