(command.CommandList
  children: [
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<arpresolve_checks_interface_fib>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <arpresolve_checks_interface_fib_head>
      name: arpresolve_checks_interface_fib_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'arpresolve should check the interface fib, not the default fib, for routes'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.progs>)} {(DQ <nping>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <arpresolve_checks_interface_fib_body>
      name: arpresolve_checks_interface_fib_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.2>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.3>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUBNET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUBNET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.0>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK0='> name:MASK0)
                  op: assign_op.Equal
                  rhs: {(DQ <24>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK1='> name:MASK1)
                  op: assign_op.Equal
                  rhs: {(DQ <25>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SPOOF_ADDR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SPOOF_ADDR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SPOOF_ADDR='> name:SPOOF_ADDR)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.4>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SPOOF_MAC='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SPOOF_MAC='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SPOOF_MAC='> name:SPOOF_MAC)
                  op: assign_op.Equal
                  rhs: {(DQ <'00:00:5E:00:53:00'>)}
                )
              ]
              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 '['>}
                                {<0>}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <sysctl>
                                        more_env: []
                                        words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [266 288]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<2>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <get_epair>
              more_env: []
              words: [{<get_epair>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_iface>
              more_env: []
              words: [
                {<setup_iface>}
                {(DQ ($ Id.VSub_DollarName EPAIRA))}
                {(DQ ($ Id.VSub_DollarName FIB0))}
                {<inet>}
                {(${ Id.VSub_Name ADDR0)}
                {(${ Id.VSub_Name MASK0)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_iface>
              more_env: []
              words: [
                {<setup_iface>}
                {(DQ ($ Id.VSub_DollarName EPAIRB))}
                {(DQ ($ Id.VSub_DollarName FIB1))}
                {<inet>}
                {(${ Id.VSub_Name ADDR1)}
                {(${ Id.VSub_Name MASK1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setfib>
              more_env: []
              words: [
                {<setfib>}
                {(DQ ($ Id.VSub_DollarName FIB0))}
                {<nping>}
                {<-c>}
                {<1>}
                {<-e>}
                {(${ Id.VSub_Name EPAIRA)}
                {<-S>}
                {(${ Id.VSub_Name SPOOF_ADDR)}
                {<--source-mac>}
                {(${ Id.VSub_Name SPOOF_MAC)}
                {<--icmp>}
                {<--icmp-type>}
                {(DQ <echo-request>)}
                {<--icmp-code>}
                {<0>}
                {<--icmp-id>}
                {<0xdead>}
                {<--icmp-seq>}
                {<1>}
                {<--data>}
                {<0xbeef>}
                {(${ Id.VSub_Name ADDR1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <dmesg>
                  more_env: []
                  words: [{<dmesg>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {(DQ <'llinfo.*'> (${ Id.VSub_Name SPOOF_ADDR))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (DQ (${ Id.VSub_Name SPOOF_ADDR) <'.*expires'>)}
                {<setfib>}
                {(DQ ($ Id.VSub_DollarName FIB1))}
                {<arp>}
                {(${ Id.VSub_Name SPOOF_ADDR)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <arpresolve_checks_interface_fib_cleanup>
      name: arpresolve_checks_interface_fib_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<loopback_and_network_routes_on_nondefault_fib>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <loopback_and_network_routes_on_nondefault_fib_head>
      name: loopback_and_network_routes_on_nondefault_fib_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'When creating and deleting loopback IPv4 routes, use the interface\'s fib'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <loopback_and_network_routes_on_nondefault_fib_body>
      name: loopback_and_network_routes_on_nondefault_fib_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.2>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUBNET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUBNET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.0>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK)
                  op: assign_op.Equal
                  rhs: {(DQ <24>)}
                )
              ]
              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 '['>}
                                {<0>}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <sysctl>
                                        more_env: []
                                        words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [581 603]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB0)}
                {<inet>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <setfib>
                  more_env: []
                  words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {<-q>} {(DQ <'^'> (${ Id.VSub_Name ADDR) <'.*UHS.*lo0'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (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 '['>}
                                {<0>}
                                {<-ne>}
                                {($ Id.VSub_QMark '?')}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <setfib>
                      more_env: []
                      words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_fail>
                      more_env: []
                      words: [{<atf_fail>} {(DQ <'Host route did not appear in the correct FIB'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [677 690]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <setfib>
                  more_env: []
                  words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {<-q>} {(DQ <'^'> (${ Id.VSub_Name ADDR) <'.*UHS.*lo0'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (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 '['>}
                                {<0>}
                                {<-eq>}
                                {($ Id.VSub_QMark '?')}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <setfib>
                      more_env: []
                      words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_fail>
                      more_env: []
                      words: [{<atf_fail>} {(DQ <'Host route appeared in the wrong FIB'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [745 758]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <setfib>
                  more_env: []
                  words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [
                    {<grep>}
                    {<-q>}
                    {
                      (DQ <'^'> (${ Id.VSub_Name SUBNET) <'/'> (${ Id.VSub_Name MASK) <'.*'> 
                        (${ Id.VSub_Name TAPD)
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (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 '['>}
                                {<0>}
                                {<-ne>}
                                {($ Id.VSub_QMark '?')}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <setfib>
                      more_env: []
                      words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_fail>
                      more_env: []
                      words: [{<atf_fail>} {(DQ <'Network route did not appear in the correct FIB'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [827 840]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <setfib>
                  more_env: []
                  words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [
                    {<grep>}
                    {<-q>}
                    {
                      (DQ <'^'> (${ Id.VSub_Name SUBNET) <'/'> (${ Id.VSub_Name MASK) <'.*'> 
                        (${ Id.VSub_Name TAPD)
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (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 '['>}
                                {<0>}
                                {<-eq>}
                                {($ Id.VSub_QMark '?')}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <setfib>
                      more_env: []
                      words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_fail>
                      more_env: []
                      words: [{<atf_fail>} {(DQ <'Network route appeared in the wrong FIB'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [904 917]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <loopback_and_network_routes_on_nondefault_fib_cleanup>
      name: loopback_and_network_routes_on_nondefault_fib_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<loopback_and_network_routes_on_nondefault_fib_inet6>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <loopback_and_network_routes_on_nondefault_fib_inet6_head>
      name: loopback_and_network_routes_on_nondefault_fib_inet6_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'When creating and deleting loopback IPv6 routes, use the interface\'s fib'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <loopback_and_network_routes_on_nondefault_fib_inet6_body>
      name: loopback_and_network_routes_on_nondefault_fib_inet6_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::2'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUBNET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUBNET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK)
                  op: assign_op.Equal
                  rhs: {(DQ <64>)}
                )
              ]
              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 '['>}
                                {<0>}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <sysctl>
                                        more_env: []
                                        words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1043 1065]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB0)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <setfib>
                  more_env: []
                  words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet6>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {<-q>} {(DQ <'^'> (${ Id.VSub_Name ADDR) <'.*UHS.*lo0'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (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 '['>}
                                {<0>}
                                {<-ne>}
                                {($ Id.VSub_QMark '?')}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <setfib>
                      more_env: []
                      words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet6>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_fail>
                      more_env: []
                      words: [{<atf_fail>} {(DQ <'Host route did not appear in the correct FIB'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1139 1152]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <setfib>
                  more_env: []
                  words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet6>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {<-q>} {(DQ <'^'> (${ Id.VSub_Name ADDR) <'.*UHS.*lo0'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (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 '['>}
                                {<0>}
                                {<-eq>}
                                {($ Id.VSub_QMark '?')}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <setfib>
                      more_env: []
                      words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet6>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_fail>
                      more_env: []
                      words: [{<atf_fail>} {(DQ <'Host route appeared in the wrong FIB'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1207 1220]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <setfib>
                  more_env: []
                  words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet6>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [
                    {<grep>}
                    {<-q>}
                    {
                      (DQ <'^'> (${ Id.VSub_Name SUBNET) <'/'> (${ Id.VSub_Name MASK) <'.*'> 
                        (${ Id.VSub_Name TAPD)
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (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 '['>}
                                {<0>}
                                {<-ne>}
                                {($ Id.VSub_QMark '?')}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <setfib>
                      more_env: []
                      words: [{<setfib>} {(${ Id.VSub_Name FIB0)} {<netstat>} {<-rn>} {<-f>} {<inet6>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_fail>
                      more_env: []
                      words: [{<atf_fail>} {(DQ <'Network route did not appear in the correct FIB'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1289 1302]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <setfib>
                  more_env: []
                  words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet6>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [
                    {<grep>}
                    {<-q>}
                    {
                      (DQ <'^'> (${ Id.VSub_Name SUBNET) <'/'> (${ Id.VSub_Name MASK) <'.*'> 
                        (${ Id.VSub_Name TAPD)
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (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 '['>}
                                {<0>}
                                {<-eq>}
                                {($ Id.VSub_QMark '?')}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <setfib>
                      more_env: []
                      words: [{<setfib>} {<0>} {<netstat>} {<-rn>} {<-f>} {<inet6>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_fail>
                      more_env: []
                      words: [{<atf_fail>} {(DQ <'Network route appeared in the wrong FIB'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1366 1379]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <loopback_and_network_routes_on_nondefault_fib_inet6_cleanup>
      name: loopback_and_network_routes_on_nondefault_fib_inet6_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<default_route_with_multiple_fibs_on_same_subnet>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <default_route_with_multiple_fibs_on_same_subnet_head>
      name: default_route_with_multiple_fibs_on_same_subnet_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {
                  (DQ 
                    <
'Multiple interfaces on the same subnet but with different fibs can both have default IPv4 routes'
                    >
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <default_route_with_multiple_fibs_on_same_subnet_body>
      name: default_route_with_multiple_fibs_on_same_subnet_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.2>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.3>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GATEWAY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GATEWAY='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GATEWAY='> name:GATEWAY)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.1>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUBNET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUBNET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.0>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK)
                  op: assign_op.Equal
                  rhs: {(DQ <24>)}
                )
              ]
              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 '['>}
                                {<0>}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <sysctl>
                                        more_env: []
                                        words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1521 1543]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<2>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(DQ ($ Id.VSub_DollarName FIB0))}
                {<inet>}
                {(${ Id.VSub_Name ADDR0)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(DQ ($ Id.VSub_DollarName FIB1))}
                {<inet>}
                {(${ Id.VSub_Name ADDR1)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setfib>
              more_env: []
              words: [
                {<setfib>}
                {(${ Id.VSub_Name FIB0)}
                {<route>}
                {<add>}
                {<default>}
                {(${ Id.VSub_Name GATEWAY)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setfib>
              more_env: []
              words: [
                {<setfib>}
                {(${ Id.VSub_Name FIB1)}
                {<route>}
                {<add>}
                {<default>}
                {(${ Id.VSub_Name GATEWAY)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> 
                  (DQ <'^default.*'> (${ Id.VSub_Name TAP0) <Id.Lit_Dollar '$'>)
                }
                {<setfib>}
                {(${ Id.VSub_Name FIB0)}
                {<netstat>}
                {<-rn>}
                {<-f>}
                {<inet>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> 
                  (DQ <'^default.*'> (${ Id.VSub_Name TAP1) <Id.Lit_Dollar '$'>)
                }
                {<setfib>}
                {(${ Id.VSub_Name FIB1)}
                {<netstat>}
                {<-rn>}
                {<-f>}
                {<inet>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <default_route_with_multiple_fibs_on_same_subnet_cleanup>
      name: default_route_with_multiple_fibs_on_same_subnet_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<default_route_with_multiple_fibs_on_same_subnet_inet6>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <default_route_with_multiple_fibs_on_same_subnet_inet6_head>
      name: default_route_with_multiple_fibs_on_same_subnet_inet6_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {
                  (DQ 
                    <
'Multiple interfaces on the same subnet but with different fibs can both have default IPv6 routes'
                    >
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <default_route_with_multiple_fibs_on_same_subnet_inet6_body>
      name: default_route_with_multiple_fibs_on_same_subnet_inet6_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::2'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::3'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GATEWAY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GATEWAY='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GATEWAY='> name:GATEWAY)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::1'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUBNET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUBNET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK)
                  op: assign_op.Equal
                  rhs: {(DQ <64>)}
                )
              ]
              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 '['>}
                                {<0>}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <sysctl>
                                        more_env: []
                                        words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1830 1852]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<2>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(DQ ($ Id.VSub_DollarName FIB0))}
                {<inet6>}
                {(${ Id.VSub_Name ADDR0)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(DQ ($ Id.VSub_DollarName FIB1))}
                {<inet6>}
                {(${ Id.VSub_Name ADDR1)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setfib>
              more_env: []
              words: [
                {<setfib>}
                {(${ Id.VSub_Name FIB0)}
                {<route>}
                {<-6>}
                {<add>}
                {<default>}
                {(${ Id.VSub_Name GATEWAY)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setfib>
              more_env: []
              words: [
                {<setfib>}
                {(${ Id.VSub_Name FIB1)}
                {<route>}
                {<-6>}
                {<add>}
                {<default>}
                {(${ Id.VSub_Name GATEWAY)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> 
                  (DQ <'^default.*'> (${ Id.VSub_Name TAP0) <Id.Lit_Dollar '$'>)
                }
                {<setfib>}
                {(${ Id.VSub_Name FIB0)}
                {<netstat>}
                {<-rn>}
                {<-f>}
                {<inet6>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> 
                  (DQ <'^default.*'> (${ Id.VSub_Name TAP1) <Id.Lit_Dollar '$'>)
                }
                {<setfib>}
                {(${ Id.VSub_Name FIB1)}
                {<netstat>}
                {<-rn>}
                {<-f>}
                {<inet6>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <default_route_with_multiple_fibs_on_same_subnet_inet6_cleanup>
      name: default_route_with_multiple_fibs_on_same_subnet_inet6_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<same_ip_multiple_ifaces_fib0>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <same_ip_multiple_ifaces_fib0_head>
      name: same_ip_multiple_ifaces_fib0_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {
                  (DQ 
                    <
'Can remove an IPv4 alias from an interface when the same IPv4 is also assigned to another interface.'
                    >
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <same_ip_multiple_ifaces_fib0_body>
      name: same_ip_multiple_ifaces_fib0_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.2>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK0='> name:MASK0)
                  op: assign_op.Equal
                  rhs: {(DQ <24>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK1='> name:MASK1)
                  op: assign_op.Equal
                  rhs: {(DQ <32>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [{<setup_tap>} {<0>} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK0)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [{<setup_tap>} {<0>} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK1)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <ifconfig>
              more_env: []
              words: [{<ifconfig>} {(${ Id.VSub_Name TAP1)} {<-alias>} {(${ Id.VSub_Name ADDR)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [{<setup_tap>} {<0>} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK0)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [{<setup_tap>} {<0>} {<inet>} {(${ Id.VSub_Name ADDR)} {(${ Id.VSub_Name MASK1)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <ifconfig>
              more_env: []
              words: [{<ifconfig>} {(${ Id.VSub_Name TAP0)} {<-alias>} {(${ Id.VSub_Name ADDR)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <same_ip_multiple_ifaces_fib0_cleanup>
      name: same_ip_multiple_ifaces_fib0_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<same_ip_multiple_ifaces>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <same_ip_multiple_ifaces_head>
      name: same_ip_multiple_ifaces_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {
                  (DQ 
                    <
'Can remove an IPv4 alias from an interface when the same address is also assigned to another interface, on non-default FIBs.'
                    >
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <same_ip_multiple_ifaces_body>
      name: same_ip_multiple_ifaces_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_expect_fail>
              more_env: []
              words: [
                {<atf_expect_fail>}
                {
                  (DQ 
                    <
'kern/189088 Assigning the same IP to multiple interfaces in different FIBs creates a host route for only one'
                    >
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.2>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK0='> name:MASK0)
                  op: assign_op.Equal
                  rhs: {(DQ <24>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK1='> name:MASK1)
                  op: assign_op.Equal
                  rhs: {(DQ <32>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<2>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB0)}
                {<inet>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK0)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB1)}
                {<inet>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <ifconfig>
              more_env: []
              words: [{<ifconfig>} {(${ Id.VSub_Name TAP1)} {<-alias>} {(${ Id.VSub_Name ADDR)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<not-match> <Id.Lit_Colon ':'> (DQ <'^'> (${ Id.VSub_Name ADDR) <'[[:space:]]'>)}
                {<setfib>}
                {(${ Id.VSub_Name FIB1)}
                {<netstat>}
                {<-rn>}
                {<-f>}
                {<inet>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB0)}
                {<inet>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK0)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB1)}
                {<inet>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <ifconfig>
              more_env: []
              words: [{<ifconfig>} {(${ Id.VSub_Name TAP0)} {<-alias>} {(${ Id.VSub_Name ADDR)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<not-match> <Id.Lit_Colon ':'> (DQ <'^'> (${ Id.VSub_Name ADDR) <'[[:space:]]'>)}
                {<setfib>}
                {(${ Id.VSub_Name FIB0)}
                {<netstat>}
                {<-rn>}
                {<-f>}
                {<inet>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <same_ip_multiple_ifaces_cleanup>
      name: same_ip_multiple_ifaces_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [TAPD]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <tail>
                            more_env: []
                            words: [{<tail>} {<-r>} {(DQ <ifaces_to_cleanup>)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<ifconfig>} {(${ Id.VSub_Name TAPD)} {<destroy>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <ifconfig>
                      more_env: []
                      words: [{<ifconfig>} {(${ Id.VSub_Name TAPD)} {<destroy>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<same_ip_multiple_ifaces_inet6>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <same_ip_multiple_ifaces_inet6_head>
      name: same_ip_multiple_ifaces_inet6_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {
                  (DQ 
                    <
'Can remove an IPv6 alias from an interface when the same address is also assigned to another interface, on non-default FIBs.'
                    >
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <same_ip_multiple_ifaces_inet6_body>
      name: same_ip_multiple_ifaces_inet6_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::2'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK0='> name:MASK0)
                  op: assign_op.Equal
                  rhs: {(DQ <64>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK1='> name:MASK1)
                  op: assign_op.Equal
                  rhs: {(DQ <128>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<2>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB0)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK0)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB1)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<ifconfig>}
                {(${ Id.VSub_Name TAP1)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR)}
                {<-alias>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<not-match> <Id.Lit_Colon ':'> (DQ <'^'> (${ Id.VSub_Name ADDR) <'[[:space:]]'>)}
                {<setfib>}
                {(${ Id.VSub_Name FIB1)}
                {<netstat>}
                {<-rn>}
                {<-f>}
                {<inet6>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ifconfig>
              more_env: []
              words: [{<ifconfig>} {(${ Id.VSub_Name TAP1)} {<destroy>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ifconfig>
              more_env: []
              words: [{<ifconfig>} {(${ Id.VSub_Name TAP0)} {<destroy>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB0)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK0)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP0='> name:TAP0)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB1)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TAP1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TAP1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP1='> name:TAP1)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<ifconfig>}
                {(${ Id.VSub_Name TAP0)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR)}
                {<-alias>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<not-match> <Id.Lit_Colon ':'> (DQ <'^'> (${ Id.VSub_Name ADDR) <'[[:space:]]'>)}
                {<setfib>}
                {(${ Id.VSub_Name FIB0)}
                {<netstat>}
                {<-rn>}
                {<-f>}
                {<inet6>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <same_ip_multiple_ifaces_inet6_cleanup>
      name: same_ip_multiple_ifaces_inet6_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<slaac_on_nondefault_fib6>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <slaac_on_nondefault_fib6_head>
      name: slaac_on_nondefault_fib6_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'SLAAC correctly installs routes on non-default FIBs'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)} {(DQ <allow_sysctl_side_effects>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <slaac_on_nondefault_fib6_body>
      name: slaac_on_nondefault_fib6_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PREFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PREFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PREFIX='> name:PREFIX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'2001:db8:'> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <printf>
                              more_env: []
                              words: [
                                {<printf>}
                                {(DQ <'%x'>)}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <jot>
                                        more_env: []
                                        words: [{<jot>} {<-r>} {<1>} {<0>} {<65535>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) <':'> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <printf>
                              more_env: []
                              words: [
                                {<printf>}
                                {(DQ <'%x'>)}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <jot>
                                        more_env: []
                                        words: [{<jot>} {<-r>} {<1>} {<0>} {<65535>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR='> name:ADDR)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName PREFIX) <'::2'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GATEWAY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GATEWAY='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GATEWAY='> name:GATEWAY)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName PREFIX) <'::1'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUBNET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUBNET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName PREFIX) <':'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK)
                  op: assign_op.Equal
                  rhs: {(DQ <64>)}
                )
              ]
              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 '['>}
                                {<0>}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <sysctl>
                                        more_env: []
                                        words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [3116 3138]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<2>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sysctl>
              more_env: []
              words: [{<sysctl>} {<-n>} {(DQ <net.inet6.ip6.rfc6204w3>)}]
              redirects: [
                (Redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ <rfc6204w3.state>)}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <sysctl>
              more_env: []
              words: [{<sysctl>} {<-n>} {(DQ <net.inet6.ip6.forwarding>)}]
              redirects: [
                (Redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ <forwarding.state>)}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <sysctl>
              more_env: []
              words: [{<sysctl>} {<net.inet6.ip6.forwarding> <Id.Lit_Equals '='> <1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sysctl>
              more_env: []
              words: [{<sysctl>} {<net.inet6.ip6.rfc6204w3> <Id.Lit_Equals '='> <1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <get_epair>
              more_env: []
              words: [{<get_epair>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_iface>
              more_env: []
              words: [
                {<setup_iface>}
                {(DQ ($ Id.VSub_DollarName EPAIRA))}
                {(DQ ($ Id.VSub_DollarName FIB0))}
                {<inet6>}
                {(${ Id.VSub_Name ADDR)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<setfib>}
                {($ Id.VSub_DollarName FIB1)}
                {<ifconfig>}
                {(DQ ($ Id.VSub_DollarName EPAIRB))}
                {<inet6>}
                {<-ifdisabled>}
                {<accept_rtadv>}
                {<fib>}
                {($ Id.VSub_DollarName FIB1)}
                {<up>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setfib>
              more_env: []
              words: [
                {<setfib>}
                {($ Id.VSub_DollarName FIB1)}
                {<ifconfig>}
                {(DQ ($ Id.VSub_DollarName EPAIRB))}
                {<inet6>}
                {<-ifdisabled>}
                {<accept_rtadv>}
                {<fib>}
                {($ Id.VSub_DollarName FIB1)}
                {<up>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rtadvd>
              more_env: []
              words: [
                {<rtadvd>}
                {<-p>}
                {<rtadvd.pid>}
                {<-C>}
                {<rtadvd.sock>}
                {<-c>}
                {<'/dev/null'>}
                {(DQ ($ Id.VSub_DollarName EPAIRA))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rtsol>
              more_env: []
              words: [{<rtsol>} {(DQ ($ Id.VSub_DollarName EPAIRB))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> 
                  (DQ <'inet6 '> (${ Id.VSub_Name SUBNET) <'.*prefixlen '> (${ Id.VSub_Name MASK) 
                    <'.*autoconf'>
                  )
                }
                {<ifconfig>}
                {(DQ ($ Id.VSub_DollarName EPAIRB))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> 
                  (DQ (${ Id.VSub_Name SUBNET) <'.*'> <Id.Lit_BadBackslash '\\'> <'<UHS'> 
                    <Id.Lit_BadBackslash '\\'> <'>.*lo0'>
                  )
                }
                {<netstat>}
                {<-rnf>}
                {<inet6>}
                {<-F>}
                {($ Id.VSub_DollarName FIB1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> 
                  (DQ (${ Id.VSub_Name SUBNET) <':/'> (${ Id.VSub_Name MASK) <'.*'> 
                    <Id.Lit_BadBackslash '\\'> <'<U'> <Id.Lit_BadBackslash '\\'> <'>.*'> ($ Id.VSub_DollarName EPAIRB)
                  )
                }
                {<netstat>}
                {<-rnf>}
                {<inet6>}
                {<-F>}
                {($ Id.VSub_DollarName FIB1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> 
                  (DQ <'default.*'> <Id.Lit_BadBackslash '\\'> <'<UG'> <Id.Lit_BadBackslash '\\'> <'>.*'> 
                    ($ Id.VSub_DollarName EPAIRB)
                  )
                }
                {<netstat>}
                {<-rnf>}
                {<inet6>}
                {<-F>}
                {($ Id.VSub_DollarName FIB1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [fib]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <seq>
                            more_env: []
                            words: [
                              {<seq>}
                              {<0>}
                              {
                                (word_part.ArithSub
                                  left: <Id.Left_DollarDParen '$(('>
                                  anode: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Minus
                                      left: 
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: 
                                              (command.Simple
                                                blame_tok: <sysctl>
                                                more_env: []
                                                words: [{<sysctl>} {<-n>} {<net.fibs>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            right: <Id.Eof_RParen _>
                                          )
                                        }
                                      right: {<Id.Lit_Digits 1>}
                                    )
                                  right: <Id.Right_DollarDParen _>
                                )
                              }
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (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 '['>}
                                        {(DQ ($ Id.VSub_DollarName fib))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName FIB1))}
                                        {<-o>}
                                        {(DQ ($ Id.VSub_DollarName fib))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName FIB0))}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)]
                          spids: [3490 3519]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <atf_check>
                      more_env: []
                      words: [
                        {<atf_check>}
                        {<-o>}
                        {<not-match> <Id.Lit_Colon ':'> 
                          (DQ (${ Id.VSub_Name SUBNET) <'.*'> <Id.Lit_BadBackslash '\\'> <'<UHS'> 
                            <Id.Lit_BadBackslash '\\'> <'>.*lo0'>
                          )
                        }
                        {<netstat>}
                        {<-rnf>}
                        {<inet6>}
                        {<-F>}
                        {($ Id.VSub_DollarName fib)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_check>
                      more_env: []
                      words: [
                        {<atf_check>}
                        {<-o>}
                        {<not-match> <Id.Lit_Colon ':'> 
                          (DQ (${ Id.VSub_Name SUBNET) <':/'> (${ Id.VSub_Name MASK) <'.*'> 
                            <Id.Lit_BadBackslash '\\'> <'<U'> <Id.Lit_BadBackslash '\\'> <'>.*'> ($ Id.VSub_DollarName EPAIRB)
                          )
                        }
                        {<netstat>}
                        {<-rnf>}
                        {<inet6>}
                        {<-F>}
                        {($ Id.VSub_DollarName fib)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_check>
                      more_env: []
                      words: [
                        {<atf_check>}
                        {<-o>}
                        {<not-match> <Id.Lit_Colon ':'> 
                          (DQ <'default.*'> <Id.Lit_BadBackslash '\\'> <'<UG'> 
                            <Id.Lit_BadBackslash '\\'> <'>.*'> ($ Id.VSub_DollarName EPAIRB)
                          )
                        }
                        {<netstat>}
                        {<-rnf>}
                        {<inet6>}
                        {<-F>}
                        {($ Id.VSub_DollarName fib)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <slaac_on_nondefault_fib6_cleanup>
      name: slaac_on_nondefault_fib6_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (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 '['>}
                                {<-f>}
                                {(DQ <rtadvd.pid>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <pkill>
                      more_env: []
                      words: [{<pkill>} {<-kill>} {<-F>} {<rtadvd.pid>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {<rtadvd.pid>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [3632 3645]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              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.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-f>}
                                {(DQ <forwarding.state>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <sysctl>
                      more_env: []
                      words: [
                        {<sysctl>}
                        {(DQ <net.inet6.ip6.forwarding>) <Id.Lit_Equals '='> 
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <cat>
                                more_env: []
                                words: [{<cat>} {(DQ <forwarding.state>)}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {(DQ <forwarding.state>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [3686 3700]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              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 '['>}
                                {<-f>}
                                {(DQ <rfc6204w3.state>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <sysctl>
                      more_env: []
                      words: [
                        {<sysctl>}
                        {(DQ <net.inet6.ip6.rfc6204w3>) <Id.Lit_Equals '='> 
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <cat>
                                more_env: []
                                words: [{<cat>} {(DQ <rfc6204w3.state>)}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {(DQ <rfc6204w3.state>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [3730 3744]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<subnet_route_with_multiple_fibs_on_same_subnet>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_head>
      name: subnet_route_with_multiple_fibs_on_same_subnet_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Multiple FIBs can have IPv4 subnet routes for the same subnet'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_body>
      name: subnet_route_with_multiple_fibs_on_same_subnet_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.2>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.3>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUBNET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUBNET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.0>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK)
                  op: assign_op.Equal
                  rhs: {(DQ <24>)}
                )
              ]
              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 '['>}
                                {<0>}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <sysctl>
                                        more_env: []
                                        words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [3871 3893]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<2>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(DQ ($ Id.VSub_DollarName FIB0))}
                {<inet>}
                {(${ Id.VSub_Name ADDR0)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(DQ ($ Id.VSub_DollarName FIB1))}
                {<inet>}
                {(${ Id.VSub_Name ADDR1)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<ignore>}
                {<setfib>}
                {(DQ ($ Id.VSub_DollarName FIB0))}
                {<route>}
                {<get>}
                {($ Id.VSub_DollarName ADDR1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<ignore>}
                {<setfib>}
                {(DQ ($ Id.VSub_DollarName FIB1))}
                {<route>}
                {<get>}
                {($ Id.VSub_DollarName ADDR0)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_cleanup>
      name: subnet_route_with_multiple_fibs_on_same_subnet_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<subnet_route_with_multiple_fibs_on_same_subnet_inet6>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_inet6_head>
      name: subnet_route_with_multiple_fibs_on_same_subnet_inet6_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Multiple FIBs can have IPv6 subnet routes for the same subnet'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_inet6_body>
      name: subnet_route_with_multiple_fibs_on_same_subnet_inet6_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::2'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::3'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUBNET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUBNET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK)
                  op: assign_op.Equal
                  rhs: {(DQ <64>)}
                )
              ]
              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 '['>}
                                {<0>}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <sysctl>
                                        more_env: []
                                        words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [4099 4121]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<2>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(DQ ($ Id.VSub_DollarName FIB0))}
                {<inet6>}
                {(${ Id.VSub_Name ADDR0)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(DQ ($ Id.VSub_DollarName FIB1))}
                {<inet6>}
                {(${ Id.VSub_Name ADDR1)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<ignore>}
                {<setfib>}
                {(DQ ($ Id.VSub_DollarName FIB0))}
                {<route>}
                {<-6>}
                {<get>}
                {($ Id.VSub_DollarName ADDR1)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<ignore>}
                {<setfib>}
                {(DQ ($ Id.VSub_DollarName FIB1))}
                {<route>}
                {<-6>}
                {<get>}
                {($ Id.VSub_DollarName ADDR0)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <subnet_route_with_multiple_fibs_on_same_subnet_inet6_cleanup>
      name: subnet_route_with_multiple_fibs_on_same_subnet_inet6_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<udp_dontroute>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <udp_dontroute_head>
      name: udp_dontroute_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {
                  (DQ 
                    <
'Source address selection for UDP packets with SO_DONTROUTE on non-default FIBs works'
                    >
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <udp_dontroute_body>
      name: udp_dontroute_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.2>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.3>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUBNET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUBNET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.0>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK)
                  op: assign_op.Equal
                  rhs: {(DQ <24>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TARGET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TARGET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET='> name:TARGET)
                  op: assign_op.Equal
                  rhs: {(DQ <192.0.2.100>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SRCDIR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SRCDIR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCDIR='> name:SRCDIR)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <atf_get_srcdir>
                            more_env: []
                            words: [{<atf_get_srcdir>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              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 '['>}
                                {<0>}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <sysctl>
                                        more_env: []
                                        words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [4388 4410]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<2>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB0)}
                {<inet>}
                {(${ Id.VSub_Name ADDR0)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TARGET_TAP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TARGET_TAP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_TAP='> name:TARGET_TAP)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB1)}
                {<inet>}
                {(${ Id.VSub_Name ADDR1)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<ignore>}
                {<setfib>}
                {(${ Id.VSub_Name FIB0)}
                {(${ Id.VSub_Name SRCDIR) <'/udp_dontroute'>}
                {(${ Id.VSub_Name TARGET)}
                {<'/dev/'> (${ Id.VSub_Name TARGET_TAP)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB0)}
                {<inet>}
                {(${ Id.VSub_Name ADDR0)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB1)}
                {<inet>}
                {(${ Id.VSub_Name ADDR1)}
                {(${ Id.VSub_Name MASK)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TARGET_TAP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TARGET_TAP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_TAP='> name:TARGET_TAP)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<ignore>}
                {<setfib>}
                {(${ Id.VSub_Name FIB1)}
                {(${ Id.VSub_Name SRCDIR) <'/udp_dontroute'>}
                {(${ Id.VSub_Name TARGET)}
                {<'/dev/'> (${ Id.VSub_Name TARGET_TAP)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <udp_dontroute_cleanup>
      name: udp_dontroute_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<udp_dontroute6>} {<cleanup>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <udp_dontroute6_head>
      name: udp_dontroute6_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {
                  (DQ 
                    <
'Source address selection for UDP IPv6 packets with SO_DONTROUTE on non-default FIBs works'
                    >
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <require.config>)} {(DQ <fibs>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <udp_dontroute6_body>
      name: udp_dontroute6_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR0='> name:ADDR0)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::2'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ADDR1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ADDR1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ADDR1='> name:ADDR1)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::3'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUBNET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUBNET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBNET='> name:SUBNET)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MASK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MASK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASK='> name:MASK)
                  op: assign_op.Equal
                  rhs: {(DQ <64>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TARGET='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TARGET='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET='> name:TARGET)
                  op: assign_op.Equal
                  rhs: {(DQ <'2001:db8::100'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SRCDIR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SRCDIR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCDIR='> name:SRCDIR)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <atf_get_srcdir>
                            more_env: []
                            words: [{<atf_get_srcdir>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              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 '['>}
                                {<0>}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <sysctl>
                                        more_env: []
                                        words: [{<sysctl>} {<-n>} {<net.add_addr_allfibs>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'This test requires net.add_addr_allfibs=0'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [4713 4735]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <get_fibs>
              more_env: []
              words: [{<get_fibs>} {<2>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB0)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR0)}
                {(${ Id.VSub_Name MASK)}
                {<no_dad>}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TARGET_TAP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TARGET_TAP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_TAP='> name:TARGET_TAP)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB1)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR1)}
                {(${ Id.VSub_Name MASK)}
                {<no_dad>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<ignore>}
                {<setfib>}
                {(${ Id.VSub_Name FIB0)}
                {(${ Id.VSub_Name SRCDIR) <'/udp_dontroute'>}
                {<-6>}
                {(${ Id.VSub_Name TARGET)}
                {<'/dev/'> (${ Id.VSub_Name TARGET_TAP)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB0)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR0)}
                {(${ Id.VSub_Name MASK)}
                {<no_dad>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_tap>
              more_env: []
              words: [
                {<setup_tap>}
                {(${ Id.VSub_Name FIB1)}
                {<inet6>}
                {(${ Id.VSub_Name ADDR1)}
                {(${ Id.VSub_Name MASK)}
                {<no_dad>}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TARGET_TAP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TARGET_TAP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_TAP='> name:TARGET_TAP)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TAP)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-o>}
                {<ignore>}
                {<setfib>}
                {(${ Id.VSub_Name FIB1)}
                {(${ Id.VSub_Name SRCDIR) <'/udp_dontroute'>}
                {<-6>}
                {(${ Id.VSub_Name TARGET)}
                {<'/dev/'> (${ Id.VSub_Name TARGET_TAP)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <udp_dontroute6_cleanup>
      name: udp_dontroute6_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cleanup_ifaces>
              more_env: []
              words: [{<cleanup_ifaces>}]
              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>} {<arpresolve_checks_interface_fib>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<loopback_and_network_routes_on_nondefault_fib>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<loopback_and_network_routes_on_nondefault_fib_inet6>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<default_route_with_multiple_fibs_on_same_subnet>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<default_route_with_multiple_fibs_on_same_subnet_inet6>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<same_ip_multiple_ifaces_fib0>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<same_ip_multiple_ifaces>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<same_ip_multiple_ifaces_inet6>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<slaac_on_nondefault_fib6>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<subnet_route_with_multiple_fibs_on_same_subnet>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<subnet_route_with_multiple_fibs_on_same_subnet_inet6>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<udp_dontroute>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<udp_dontroute6>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <get_fibs>
      name: get_fibs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NUMFIBS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NUMFIBS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NUMFIBS='> name:NUMFIBS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'net_fibs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'net_fibs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'net_fibs='> name:net_fibs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <sysctl>
                            more_env: []
                            words: [{<sysctl>} {<-n>} {<net.fibs>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (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: {<0>}
                )
              ]
              redirects: []
            )
            (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)}
                            {<-lt>}
                            {(DQ ($ Id.VSub_DollarName NUMFIBS))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fib='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fib='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fib='> name:fib)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <atf_config_get>
                                        more_env: []
                                        words: [{<atf_config_get>} {(DQ <fibs>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [
                                          {<awk>}
                                          {<-v>}
                                          {<Id.Lit_VarLike 'i='> 
                                            (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 _>
                                            )
                                          }
                                          {(SQ <'{print $i}'>)}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'fib is '> (${ Id.VSub_Name fib))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<FIB> (${ Id.VSub_Name i) <Id.Lit_Equals '='> (${ Id.VSub_Name fib)}
                      ]
                      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.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ ($ Id.VSub_DollarName fib))}
                                        {<-ge>}
                                        {(DQ ($ Id.VSub_DollarName net_fibs))}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <atf_skip>
                              more_env: []
                              words: [
                                {<atf_skip>}
                                {
                                  (DQ <'The '> (${ Id.VSub_Name i) <'th configured fib is '> 
                                    (${ Id.VSub_Name fib) <', which is not less than net.fibs, which is '> (${ Id.VSub_Name net_fibs)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [5139 5156]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (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.VSub_DollarName i)}
                                    right: {<Id.Lit_Digits 1>}
                                  )
                                right: <Id.Right_DollarDParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <get_epair>
      name: get_epair
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<EPAIRD>}]
              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.AndOr
                              children: [
                                (command.Subshell
                                  left: <Id.Op_LParen _>
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <which>
                                          more_env: []
                                          words: [{<which>} {<pfctl>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Pipeline
                                          children: [
                                            (command.Simple
                                              blame_tok: <pfctl>
                                              more_env: []
                                              words: [{<pfctl>} {<-s>} {<info>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <grep>
                                              more_env: []
                                              words: [{<grep>} {<-q>} {(SQ <'Status: Enabled'>)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_Pipe _>]
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  right: <Id.Right_Subshell _>
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <sysctl>
                                            more_env: []
                                            words: [{<sysctl>} {<-n>} {<net.inet.ip.fw.enable>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                    {<Id.Lit_Equals '='>}
                                    {(DQ <1>)}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Subshell
                                  left: <Id.Op_LParen _>
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <which>
                                          more_env: []
                                          words: [{<which>} {<ipf>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <ipf>
                                          more_env: []
                                          words: [{<ipf>} {<-V>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  right: <Id.Right_Subshell _>
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <atf_skip>
                      more_env: []
                      words: [{<atf_skip>} {(DQ <'firewalls interfere with this test'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [5220 5286]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'EPAIRD='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'EPAIRD='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EPAIRD='> name:EPAIRD)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <ifconfig>
                                            more_env: []
                                            words: [{<ifconfig>} {<epair>} {<create>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(${ Id.VSub_Name EPAIRD)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ <ifaces_to_cleanup>)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'EPAIRA='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'EPAIRA='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EPAIRA='> name:EPAIRA)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name EPAIRD)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'EPAIRB='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'EPAIRB='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EPAIRB='> name:EPAIRB)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name EPAIRD>
                                var_name: EPAIRD
                                suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{<a>})
                                right: <Id.Right_DollarBrace '}'>
                              ) <b>
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5300 5314]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <atf_skip>
                  more_env: []
                  words: [{<atf_skip>} {(DQ <'Could not create epair(4) interfaces'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <get_tap>
      name: get_tap
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<TAPD>}]
              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.ShAssignment
                              left: <Id.Lit_VarLike 'TAPD='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'TAPD='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAPD='> name:TAPD)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <ifconfig>
                                            more_env: []
                                            words: [{<ifconfig>} {<tap>} {<create>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(${ Id.VSub_Name TAPD)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ <ifaces_to_cleanup>)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TAP='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TAP='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAP='> name:TAP)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name TAPD)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5383 5397]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <atf_skip>
                  more_env: []
                  words: [{<atf_skip>} {(DQ <'Could not create a tap(4) interface'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <setup_iface>
      name: setup_iface
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'IFACE='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'FIB='> ($ Id.VSub_Number 2)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'PROTO='> ($ Id.VSub_Number 3)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'ADDR='> ($ Id.VSub_Number 4)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'MASK='> ($ Id.VSub_Number 5)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'FLAGS='> ($ Id.VSub_Number 6)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<setfib>}
                {(${ Id.VSub_Name FIB)}
                {<ifconfig>}
                {($ Id.VSub_DollarName IFACE)}
                {(${ Id.VSub_Name PROTO)}
                {(${ Id.VSub_Name ADDR) <'/'> (${ Id.VSub_Name MASK)}
                {<fib>}
                {($ Id.VSub_DollarName FIB)}
                {($ Id.VSub_DollarName FLAGS)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setfib>
              more_env: []
              words: [
                {<setfib>}
                {(${ Id.VSub_Name FIB)}
                {<ifconfig>}
                {($ Id.VSub_DollarName IFACE)}
                {(${ Id.VSub_Name PROTO)}
                {(${ Id.VSub_Name ADDR) <'/'> (${ Id.VSub_Name MASK)}
                {<fib>}
                {($ Id.VSub_DollarName FIB)}
                {($ Id.VSub_DollarName FLAGS)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <setup_tap>
      name: setup_tap
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <get_tap>
              more_env: []
              words: [{<get_tap>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setup_iface>
              more_env: []
              words: [{<setup_iface>} {(DQ ($ Id.VSub_DollarName TAP))} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cleanup_ifaces>
      name: cleanup_ifaces
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (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 '['>}
                                {<-f>}
                                {<ifaces_to_cleanup>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [iface]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <cat>
                                    more_env: []
                                    words: [{<cat>} {<ifaces_to_cleanup>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          ]
                        )
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<ifconfig>} {(DQ (${ Id.VSub_Name iface))} {<destroy>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <ifconfig>
                                  more_env: []
                                  words: [{<ifconfig>} {(DQ (${ Id.VSub_Name iface))} {<destroy>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <true>
                                  more_env: []
                                  words: [{<true>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {<ifaces_to_cleanup>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [5626 5637]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)