(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:addr) op:Equal rhs:{(DQ (10.99.0.3))} spids:[94])]
      spids: [94]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pass) op:Equal rhs:{(DQ (password))} spids:[102])]
      spids: [102]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:nodea_srcip)
          op: Equal
          rhs: {(DQ (10.99.0.1))}
          spids: [110]
        )
      ]
      spids: [110]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:nodea_ifnet) op:Equal rhs:{(DQ (bge0))} spids:[115])]
      spids: [115]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:nodeb_srcip)
          op: Equal
          rhs: {(DQ (10.99.0.2))}
          spids: [123]
        )
      ]
      spids: [123]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:nodeb_ifnet) op:Equal rhs:{(DQ (em3))} spids:[128])]
      spids: [128]
    )
    (C {(export)} 
      {(Lit_VarLike 'PATH=') (/bin) (Lit_Other ':') (/sbin) (Lit_Other ':') (/usr/bin) (Lit_Other ':') 
        (/usr/sbin) (Lit_Other ':') (/usr/local/bin) (Lit_Other ':') (/usr/local/sbin)
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:vhid) op:Equal rhs:{(DQ (1))} spids:[150])]
      spids: [150]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:upscript)
          op: Equal
          rhs: {(DQ (/root/hast/sbin/hastd/vip-up.sh))}
          spids: [155]
        )
      ]
      spids: [155]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:downscript)
          op: Equal
          rhs: {(DQ (/root/hast/sbin/hastd/vip-down.sh))}
          spids: [160]
        )
      ]
      spids: [160]
    )
    (Pipeline
      children: [
        (SimpleCommand
          words: [{(ifconfig)} {(DQ (${ VSub_Name nodea_ifnet))}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[174])]
        )
        (C {(grep)} {(-q)} {(DQ ('inet ') (${ VSub_Name nodea_srcip) (' '))})
      ]
      negated: False
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:srcip)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name nodea_srcip))}
                  spids: [207]
                )
              ]
              spids: [207]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ifnet)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name nodea_ifnet))}
                  spids: [215]
                )
              ]
              spids: [215]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:node)
                  op: Equal
                  rhs: {(DQ ('node A'))}
                  spids: [223]
                )
              ]
              spids: [223]
            )
          ]
          spids: [-1 204]
        )
      ]
      spids: [-1 228]
    )
    (Pipeline
      children: [
        (SimpleCommand
          words: [{(ifconfig)} {(DQ (${ VSub_Name nodeb_ifnet))}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[238])]
        )
        (C {(grep)} {(-q)} {(DQ ('inet ') (${ VSub_Name nodeb_srcip) (' '))})
      ]
      negated: False
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name srcip))} {(-o)} {(-n)} 
                          {(DQ (${ VSub_Name ifnet))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('Unable to determine which node is this (both match).'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(/dev/stderr)}
                          spids: [305]
                        )
                      ]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 296]
                )
              ]
              spids: [-1 314]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:srcip)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name nodeb_srcip))}
                  spids: [317]
                )
              ]
              spids: [317]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ifnet)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name nodeb_ifnet))}
                  spids: [325]
                )
              ]
              spids: [325]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:node)
                  op: Equal
                  rhs: {(DQ ('node B'))}
                  spids: [333]
                )
              ]
              spids: [333]
            )
          ]
          spids: [-1 268]
        )
      ]
      spids: [-1 338]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name srcip))} {(-o)} {(-z)} 
                  {(DQ (${ VSub_Name ifnet))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('Unable to determine which node is this (none match).'))}]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/stderr)} spids:[374])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 365]
        )
      ]
      spids: [-1 382]
    )
    (C {(ucarp)} {(-i)} {(${ VSub_Name ifnet)} {(-s)} {(${ VSub_Name srcip)} {(-v)} {(${ VSub_Name vhid)} 
      {(-a)} {(${ VSub_Name addr)} {(-p)} {(${ VSub_Name pass)} {(-u)} {(DQ (${ VSub_Name upscript))} {(-d)} 
      {(DQ (${ VSub_Name downscript))}
    )
  ]
)