(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SOCK_CLIENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SOCK_CLIENT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOCK_CLIENT='> name:SOCK_CLIENT)
          op: assign_op.Equal
          rhs: {<unix> <Id.Lit_Colon ':'> <'//carp_client'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SOCK_MASTER='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SOCK_MASTER='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOCK_MASTER='> name:SOCK_MASTER)
          op: assign_op.Equal
          rhs: {<unix> <Id.Lit_Colon ':'> <'//carp_master'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SOCK_BACKUP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SOCK_BACKUP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOCK_BACKUP='> name:SOCK_BACKUP)
          op: assign_op.Equal
          rhs: {<unix> <Id.Lit_Colon ':'> <'//carp_backup'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'BUS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'BUS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BUS='> name:BUS)
          op: assign_op.Equal
          rhs: {<bus_carp>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'IP_CLIENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'IP_CLIENT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IP_CLIENT='> name:IP_CLIENT)
          op: assign_op.Equal
          rhs: {<10.1.1.240>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'IP_MASTER='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'IP_MASTER='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IP_MASTER='> name:IP_MASTER)
          op: assign_op.Equal
          rhs: {<10.1.1.1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'IP_BACKUP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'IP_BACKUP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IP_BACKUP='> name:IP_BACKUP)
          op: assign_op.Equal
          rhs: {<10.1.1.2>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'IP_CARP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'IP_CARP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IP_CARP='> name:IP_CARP)
          op: assign_op.Equal
          rhs: {<10.1.1.100>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TIMEOUT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TIMEOUT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TIMEOUT='> name:TIMEOUT)
          op: assign_op.Equal
          rhs: {<3>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<carp_handover>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <carp_handover_head>
      name: carp_handover_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests for CARP handover'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <setup_carp>
      name: setup_carp
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'sock='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'master='> ($ Id.VSub_Number 2)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'carpif='>}
                {<Id.Lit_VarLike 'ip='>}
                {<Id.Lit_VarLike 'advskew='>}
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$master'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName master)}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'carpif='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'carpif='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'carpif='> name:carpif)
                          op: assign_op.Equal
                          rhs: {<carp0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ip='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ip='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ip='> name:ip)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName IP_MASTER)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'advskew='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'advskew='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'advskew='> name:advskew)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [181 186]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'carpif='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'carpif='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'carpif='> name:carpif)
                      op: assign_op.Equal
                      rhs: {<carp1>}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'ip='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'ip='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ip='> name:ip)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName IP_BACKUP)}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'advskew='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'advskew='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'advskew='> name:advskew)
                      op: assign_op.Equal
                      rhs: {<200>}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName sock)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<rump.ifconfig>}
                {($ Id.VSub_DollarName carpif)}
                {<create>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<rump.ifconfig>}
                {<shmif0>}
                {($ Id.VSub_DollarName ip) <'/24'>}
                {<up>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<rump.ifconfig>}
                {($ Id.VSub_DollarName carpif)}
                {<vhid>}
                {<175>}
                {<advskew>}
                {($ Id.VSub_DollarName advskew)}
                {<advbase>}
                {<1>}
                {<pass>}
                {<s3cret>}
                {($ Id.VSub_DollarName IP_CARP)}
                {<netmask>}
                {<255.255.255.0>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<rump.ifconfig>}
                {<-w>}
                {<10>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <wait_handover>
      name: wait_handover
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'i='> <0>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_CLIENT)}]
              redirects: []
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_DollarName i)}
                            {<-ne>}
                            {<5>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$DEBUG'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName DEBUG)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <'Trying ping '> ($ Id.VSub_DollarName IP_CARP))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.Simple
                      blame_tok: <rump.ping>
                      more_env: []
                      words: [
                        {<rump.ping>}
                        {<-n>}
                        {<-w>}
                        {<1>}
                        {<-c>}
                        {<1>}
                        {($ Id.VSub_DollarName IP_CARP)}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_QMark '?')}
                                        {<Id.Lit_Equals '='>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName DEBUG)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {(DQ <'Passed ping '> ($ Id.VSub_DollarName IP_CARP))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.Sentence
                              child: (command.ControlFlow keyword:<Id.ControlFlow_Break break>)
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          spids: [382 395]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$DEBUG'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName DEBUG)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <'Failed ping '> ($ Id.VSub_DollarName IP_CARP))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                left: <Id.Left_DollarDParen '$(('>
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: ($ Id.Lit_ArithVarLike i)
                                    right: {<Id.Lit_Digits 1>}
                                  )
                                right: <Id.Right_DollarDParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_DollarName i)}
                                {<-eq>}
                                {<5>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_fail>
                      more_env: []
                      words: [{<atf_fail>} {(DQ <'Failed to failover (5 sec)'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [444 457]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <carp_handover_body>
      name: carp_handover_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <rump_server_start>
              more_env: []
              words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCK_CLIENT)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_start>
              more_env: []
              words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCK_MASTER)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_start>
              more_env: []
              words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCK_BACKUP)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_add_iface>
              more_env: []
              words: [
                {<rump_server_add_iface>}
                {($ Id.VSub_DollarName SOCK_CLIENT)}
                {<shmif0>}
                {($ Id.VSub_DollarName BUS)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_add_iface>
              more_env: []
              words: [
                {<rump_server_add_iface>}
                {($ Id.VSub_DollarName SOCK_MASTER)}
                {<shmif0>}
                {($ Id.VSub_DollarName BUS)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_add_iface>
              more_env: []
              words: [
                {<rump_server_add_iface>}
                {($ Id.VSub_DollarName SOCK_BACKUP)}
                {<shmif0>}
                {($ Id.VSub_DollarName BUS)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_carp>
              more_env: []
              words: [{<setup_carp>} {($ Id.VSub_DollarName SOCK_MASTER)} {<true>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_carp>
              more_env: []
              words: [{<setup_carp>} {($ Id.VSub_DollarName SOCK_BACKUP)} {<false>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_CLIENT)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<rump.ifconfig>}
                {<shmif0>}
                {($ Id.VSub_DollarName IP_CLIENT) <'/24'>}
                {<up>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<rump.ifconfig>}
                {<-w>}
                {<10>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {($ Id.VSub_DollarName TIMEOUT)}
                {<-c>}
                {<1>}
                {($ Id.VSub_DollarName IP_MASTER)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {($ Id.VSub_DollarName TIMEOUT)}
                {<-c>}
                {<1>}
                {($ Id.VSub_DollarName IP_BACKUP)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<4>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_MASTER)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.ifconfig>
                  more_env: []
                  words: [{<rump.ifconfig>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'carp: MASTER carpdev shmif0'>)}
                {<rump.ifconfig>}
                {<carp0>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_BACKUP)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.ifconfig>
                  more_env: []
                  words: [{<rump.ifconfig>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'carp: BACKUP carpdev shmif0'>)}
                {<rump.ifconfig>}
                {<carp1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_CLIENT)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {($ Id.VSub_DollarName TIMEOUT)}
                {<-c>}
                {<1>}
                {($ Id.VSub_DollarName IP_CARP)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <env>
              more_env: []
              words: [
                {<env>}
                {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_MASTER)}
                {<rump.halt>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<not-exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {($ Id.VSub_DollarName TIMEOUT)}
                {<-c>}
                {<1>}
                {($ Id.VSub_DollarName IP_MASTER)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <wait_handover>
              more_env: []
              words: [{<wait_handover>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_BACKUP)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.ifconfig>
                  more_env: []
                  words: [{<rump.ifconfig>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'carp: MASTER carpdev shmif0'>)}
                {<rump.ifconfig>}
                {<carp1>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <carp_handover_cleanup>
      name: carp_handover_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <dump>
                  more_env: []
                  words: [{<dump>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <cleanup>
              more_env: []
              words: [{<cleanup>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <atf_init_test_cases>
      name: atf_init_test_cases
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<carp_handover>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)