(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:tid)
          op: assign_op.Equal
          rhs: {(DQ <'putty transfer data'>)}
          spids: [7]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {(DQ <x> ($ Id.VSub_DollarName '$REGRESS_INTEROP_PUTTY'))} 
                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <xyes>)}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ <'putty interop tests not enabled'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          spids: [13 31]
        )
      ]
    )
    (command.ForEach
      iter_name: p
      iter_words: [{<2>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.ForEach
              iter_name: c
              iter_words: [{<0>} {<1>}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<verbose>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$tid') <': proto '> ($ Id.VSub_DollarName '$p') 
                          <' compression '> ($ Id.VSub_DollarName '$c')
                        )
                      }
                    )
                    (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)})
                    (C {<cp>} {(${ Id.VSub_Name OBJ) <'/.putty/sessions/localhost_proxy'>} 
                      {(${ Id.VSub_Name OBJ) <'/.putty/sessions/compression_'> 
                        ($ Id.VSub_DollarName '$c')
                      }
                    )
                    (command.Simple
                      words: [{<echo>} {(DQ <'Compression='> ($ Id.VSub_DollarName '$c'))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: 
                            {(${ Id.VSub_Name OBJ) <'/.putty/sessions/kex_'> 
                              ($ Id.VSub_DollarName '$k')
                            }
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [
                        {<env>}
                        {<Id.Lit_VarLike 'HOME='> ($ Id.VSub_DollarName '$PWD')}
                        {(${ Id.VSub_Name PLINK)}
                        {<-load>}
                        {<compression_> ($ Id.VSub_DollarName '$c')}
                        {<-batch>}
                        {<-i>}
                        {<putty.rsa> ($ Id.VSub_DollarName '$p')}
                        {<cat>}
                        {(${ Id.VSub_Name DATA)}
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(${ Id.VSub_Name COPY)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} 
                                      {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<fail>} {(DQ <'ssh cat '> ($ Id.VSub_DollarName '$DATA') <' failed'>)})
                          ]
                          spids: [167 180]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<cmp>} {(${ Id.VSub_Name DATA)} {(${ Id.VSub_Name COPY)})
                        (C {<fail>} {(DQ <'corrupted copy'>)})
                      ]
                    )
                    (command.ForEach
                      iter_name: s
                      iter_words: [{<10>} {<100>} {<1k>} {<32k>} {<64k>} {<128k>} {<256k>}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<trace>} 
                              {
                                (DQ <'proto '> ($ Id.VSub_DollarName '$p') <' compression '> 
                                  ($ Id.VSub_DollarName '$c') <' dd-size '> (${ Id.VSub_Name s)
                                )
                              }
                            )
                            (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)})
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  words: [
                                    {<dd>}
                                    {<Id.Lit_VarLike 'if='> ($ Id.VSub_DollarName '$DATA')}
                                    {<Id.Lit_VarLike 'obs='> (${ Id.VSub_Name s)}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (C {<env>} {<Id.Lit_VarLike 'HOME='> ($ Id.VSub_DollarName '$PWD')} 
                                  {(${ Id.VSub_Name PLINK)} {<-load>} {<compression_> ($ Id.VSub_DollarName '$c')} {<-batch>} {<-i>} 
                                  {<putty.rsa> ($ Id.VSub_DollarName '$p')} {(DQ <'cat > '> (${ Id.VSub_Name COPY))}
                                )
                              ]
                              negated: F
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} 
                                              {<0>} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<fail>} 
                                      {(DQ <'ssh cat '> ($ Id.VSub_DollarName '$DATA') <' failed'>)}
                                    )
                                  ]
                                  spids: [314 327]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<cmp>} {($ Id.VSub_DollarName '$DATA')} {(${ Id.VSub_Name COPY)})
                                (C {<fail>} {(DQ <'corrupted copy'>)})
                              ]
                            )
                          ]
                        )
                    )
                  ]
                )
            )
          ]
        )
    )
    (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)})
  ]
)