(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'YPXFR='> name:YPXFR)
          op: assign_op.Equal
          rhs: {<'/usr/lib/netsvc/yp/ypxfr'>}
          spids: [93]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAKEPATH='> name:MAKEPATH)
          op: assign_op.Equal
          rhs: {<'/usr/ccs/bin'>}
          spids: [96]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'maps='> name:maps)
          op: assign_op.Equal
          rhs: {(DQ <'publickey publickey.byname'>)}
          spids: [99]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'yproot_dir='> name:yproot_dir)
          op: assign_op.Equal
          rhs: {<'/var/yp'>}
          spids: [104]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'yproot_exe='> name:yproot_exe)
          op: assign_op.Equal
          rhs: {<'/usr/sbin/yp'>}
          spids: [107]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hf='> name:hf)
          op: assign_op.Equal
          rhs: {<'/var/run/ypservers.'> ($ Id.VSub_Dollar '$')}
          spids: [110]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'XFR='> name:XFR)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name YPXFR)}
          spids: [114]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hosts_file='> name:hosts_file)
          op: assign_op.Equal
          rhs: {<'/etc/hosts'>}
          spids: [120]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hosts6_file='> name:hosts6_file)
          op: assign_op.Equal
          rhs: {<'/etc/inet/ipnodes'>}
          spids: [123]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'clientp='> name:clientp)
          op: assign_op.Equal
          rhs: {<F>}
          spids: [126]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'masterp='> name:masterp)
          op: assign_op.Equal
          rhs: {<F>}
          spids: [129]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'slavep='> name:slavep)
          op: assign_op.Equal
          rhs: {<F>}
          spids: [132]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host='> name:host)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [135]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'def_dom='> name:def_dom)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [139]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'master='> name:master)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [143]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'got_host_list='> name:got_host_list)
          op: assign_op.Equal
          rhs: {<F>}
          spids: [147]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'first_time='> name:first_time)
          op: assign_op.Equal
          rhs: {<T>}
          spids: [150]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'non_interactive='> name:non_interactive)
          op: assign_op.Equal
          rhs: {<F>}
          spids: [153]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_on_error='> name:exit_on_error)
          op: assign_op.Equal
          rhs: {<F>}
          spids: [156]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'errors_in_setup='> name:errors_in_setup)
          op: assign_op.Equal
          rhs: {<F>}
          spids: [159]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: enable_next_boot
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<'/usr/sbin/svcadm'>} {<disable>} {<-t>} {($ Id.VSub_Number 1)})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.Lit_Equals '='>} {<0>} 
                  {<Id.Lit_RBracket ']'>}
                )
                (C {<echo>} {(DQ <'ypinit: unable to temporarily disable '> ($ Id.VSub_Number 1))})
              ]
            )
            (C {<'/usr/sbin/svccfg'>} {<-s>} {($ Id.VSub_Number 1)} {<setprop>} {<'general/enabled'>} 
              {<Id.Lit_Equals '='>} {<true>}
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.Lit_Equals '='>} {<0>} 
                  {<Id.Lit_RBracket ']'>}
                )
                (C {<echo>} {(DQ <'ypinit: unable to enable '> ($ Id.VSub_Number 1) <' for next boot'>)})
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: enable_this_boot
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<'/usr/sbin/svcadm'>} {<enable>} {($ Id.VSub_Number 1)})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.Lit_Equals '='>} {<0>} 
                  {<Id.Lit_RBracket ']'>}
                )
                (C {<echo>} {(DQ <'ypinit: unable to enable '> ($ Id.VSub_Number 1))})
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: is_valid_ipaddr
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<test>} {<-n>} 
                  {
                    (DQ 
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>} {($ Id.VSub_Number 1)})
                              (C {<awk>} 
                                {
                                  (SQ <'NF != 1 {exit} \\\n'> 
                                    <'\t    $1 !~ /[0-9]/ || /[;-~]/ || /!--/ || /\\// {exit} \\\n'> <'\t    $1 !~ /\\./ {exit} {print}'>
                                  )
                                }
                              )
                            ]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    )
                  }
                )
                (C {<test>} {<-n>} 
                  {
                    (DQ 
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>} {($ Id.VSub_Number 1)})
                              (C {<awk>} 
                                {
                                  (SQ <'NF != 1 {exit} \\\n'> 
                                    <'\t    ($1 !~ /[0-9]/ && $1 !~ /[A-F]/ && \\\n'> <'\t    $1 !~ /[a-f]/) || \\\n'> <'\t    /[;-@]/ || /[G-`]/ || /[g-~]/ || /!--/ || \\\n'> 
                                    <'\t    /\\// {exit} \\\n'> <'\t    $1 !~ /:/ {exit} {print}'>
                                  )
                                }
                              )
                            ]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    )
                  }
                )
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
          op: assign_op.Equal
          rhs: 
            {<'/bin'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> <'/usr/etc'> <Id.Lit_Colon ':'> 
              <'/usr/sbin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName yproot_exe) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName MAKEPATH) 
              <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH)
            }
          spids: [372]
        )
      ]
      redirects: []
    )
    (C {<export>} {<PATH>})
    (C {<trap>} {(SQ <'/usr/bin/rm -f $hf'>)} {<0>} {<1>} {<2>} {<3>} {<15>})
    (command.Case
      to_match: {($ Id.VSub_Pound '#')}
      arms: [
        (case_arm
          pat_list: [{<1>}]
          action: [
            (command.Case
              to_match: {($ Id.VSub_Number 1)}
              arms: [
                (case_arm
                  pat_list: [{<-c>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'clientp='> name:clientp)
                          op: assign_op.Equal
                          rhs: {<T>}
                          spids: [434]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [431 432 436 -1]
                )
                (case_arm
                  pat_list: [{<-m>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'masterp='> name:masterp)
                          op: assign_op.Equal
                          rhs: {<T>}
                          spids: [442]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [439 440 444 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<echo>} {(SQ <'usage:'>)})
                    (C {<echo>} {(SQ <'\typinit -c [server_name...]'>)})
                    (C {<echo>} {(SQ <'\typinit -m'>)})
                    (C {<echo>} {(SQ <'\typinit -s master_server'>)})
                    (C {<echo>} {(DQ )})
                    (C {<echo>} 
                      {(DQ <'where -c is used to set up a yp client, -m is used to build a master '>)}
                    )
                    (C {<echo>} {(DQ <'yp server data base, and -s is used for a slave data base.'>)})
                    (C {<echo>} {(DQ <'master_server must be an existing reachable yp server.'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [447 448 511 -1]
                )
              ]
              redirects: []
            )
          ]
          spids: [421 422 515 -1]
        )
        (case_arm
          pat_list: [{<2>}]
          action: [
            (command.Case
              to_match: {($ Id.VSub_Number 1)}
              arms: [
                (case_arm
                  pat_list: [{<-s>}]
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'slavep='> name:slavep)
                              op: assign_op.Equal
                              rhs: {<T>}
                              spids: [531]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'master='> name:master)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_Number 2)}
                              spids: [535]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Subshell
                                  child: 
                                    (command.Simple
                                      words: [
                                        {<grep>}
                                        {($ Id.VSub_DollarName master)}
                                        {($ Id.VSub_DollarName hosts_file)}
                                        {($ Id.VSub_DollarName hosts6_file)}
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  redirects: []
                                )
                              ]
                            )
                          action: [(C {<echo>} {(DQ )})]
                          spids: [540 559]
                        )
                      ]
                      else_action: [
                        (C {<echo>} 
                          {
                            (DQ <'server not found in '> ($ Id.VSub_DollarName hosts_file) <' or '> 
                              ($ Id.VSub_DollarName hosts6_file)
                            )
                          }
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [528 529 587 -1]
                )
                (case_arm
                  pat_list: [{<-c>}]
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'clientp='> name:clientp)
                              op: assign_op.Equal
                              rhs: {<T>}
                              spids: [602]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'non_interactive='>
                                  name: non_interactive
                                )
                              op: assign_op.Equal
                              rhs: {<T>}
                              spids: [606]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [599 600 611 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<echo>} {(SQ <'usage:'>)})
                    (C {<echo>} {(SQ <'\typinit -c [server_name...]'>)})
                    (C {<echo>} {(SQ <'\typinit -m'>)})
                    (C {<echo>} {(SQ <'\typinit -s master_server'>)})
                    (C {<echo>} {(DQ )})
                    (C {<echo>} 
                      {(DQ <'where -c is used to set up a yp client, -m is used to build a master '>)}
                    )
                    (C {<echo>} {(DQ <'yp server data base, and -s is used for a slave data base.'>)})
                    (C {<echo>} {(DQ <'master_server must be an existing reachable yp server.'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [614 615 678 -1]
                )
              ]
              redirects: []
            )
          ]
          spids: [518 519 682 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.Case
              to_match: {($ Id.VSub_Number 1)}
              arms: [
                (case_arm
                  pat_list: [{<-c>}]
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'clientp='> name:clientp)
                              op: assign_op.Equal
                              rhs: {<T>}
                              spids: [706]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'non_interactive='>
                                  name: non_interactive
                                )
                              op: assign_op.Equal
                              rhs: {<T>}
                              spids: [710]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [703 704 715 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<echo>} {(SQ <'usage:'>)})
                    (C {<echo>} {(SQ <'\typinit -c [server_name...]'>)})
                    (C {<echo>} {(SQ <'\typinit -m'>)})
                    (C {<echo>} {(SQ <'\typinit -s master_server'>)})
                    (C {<echo>} {(DQ )})
                    (C {<echo>} 
                      {(DQ <'where -c is used to set up a yp client, -m is used to build a master '>)}
                    )
                    (C {<echo>} {(DQ <'yp server data base, and -s is used for a slave data base.'>)})
                    (C {<echo>} {(DQ <'master_server must be an existing reachable yp server.'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [718 719 782 -1]
                )
              ]
              redirects: []
            )
          ]
          spids: [684 685 786 -1]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>})
              ]
            )
          action: [
            (C {<echo>} {(DQ <'\x07You have to be the superuser to run this.  Please log in as root.'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [791 803]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host='> name:host)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<uname>} {<-n>})
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [821]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>})
              ]
            )
          action: [
            (C {<echo>} {(DQ <'\x07Can\'t get local host\'s name.  Please check your path.'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [831 843]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName host))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ <'\x07The local host\'s name hasn\'t been set.  Please set it.'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [860 872]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'def_dom='> name:def_dom)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<domainname>})
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [889]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>})
              ]
            )
          action: [
            (C {<echo>} {(DQ <'\x07Can\'t get local host\'s domain name.  Please check your path.'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [897 909]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName def_dom))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ <'\x07The local host\'s domain name hasn\'t been set.  Please set it.'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [926 938]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<domainname>} {($ Id.VSub_DollarName def_dom)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'real_def_dom='> name:real_def_dom)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName def_dom)}
          spids: [959]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ypservers_map='> name:ypservers_map)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<ypalias>} {<ypservers>})
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [965]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'domain_dir='> name:domain_dir)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName yproot_dir)) (DQ <'/'>) (DQ ($ Id.VSub_DollarName def_dom))}
          spids: [974]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'binding_dir='> name:binding_dir)
          op: assign_op.Equal
          rhs: 
            {(DQ ($ Id.VSub_DollarName yproot_dir)) (DQ <'/binding/'>) 
              (DQ ($ Id.VSub_DollarName def_dom))
            }
          spids: [985]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'binding_file='> name:binding_file)
          op: assign_op.Equal
          rhs: 
            {(DQ ($ Id.VSub_DollarName yproot_dir)) (DQ <'/binding/'>) 
              (DQ ($ Id.VSub_DollarName def_dom)) (DQ <'/ypservers'>)
            }
          spids: [996]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {($ Id.VSub_DollarName yproot_dir)} 
                  {<-o>} {<-f>} {($ Id.VSub_DollarName yproot_dir)} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (C {<echo>} 
              {
                (DQ <'\x07The directory '> ($ Id.VSub_DollarName yproot_dir) 
                  <' doesn\'t exist.  Restore it from the distribution.'>
                )
              }
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [1011 1029]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.Simple
      words: [{<echo>} {<ypservers>} {($ Id.VSub_DollarName ypservers_map)}]
      redirects: [
        (redir
          op: <Id.Redir_DGreat '>>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName yproot_dir) <'/aliases'>}
        )
      ]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {($ Id.VSub_DollarName real_def_dom)} {($ Id.VSub_DollarName def_dom)}]
      redirects: [
        (redir
          op: <Id.Redir_DGreat '>>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName yproot_dir) <'/aliases'>}
        )
      ]
      more_env: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (C {<sort>} {($ Id.VSub_DollarName yproot_dir) <'/aliases'>})
                (command.Simple
                  words: [{<uniq>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/var/run/.ypaliases'>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              negated: F
              stderr_indices: []
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<mv>} {<'/var/run/.ypaliases'>} {($ Id.VSub_DollarName yproot_dir) <'/aliases'>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                  {(DQ ($ Id.VSub_DollarName yproot_dir)) <'/binding'>} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [(C {<mkdir>} {(DQ ($ Id.VSub_DollarName yproot_dir)) <'/binding'>})]
          spids: [1096 1111]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {($ Id.VSub_DollarName binding_dir)} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [(C {<mkdir>} {(DQ ($ Id.VSub_DollarName binding_dir))})]
          spids: [1124 1136]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName slavep)} {<Id.Lit_Equals '='>} {<F>} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName non_interactive)} 
                          {<Id.Lit_Equals '='>} {<F>} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName got_host_list)} 
                                  {<Id.Lit_Equals '='>} {<F>} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<touch>} {($ Id.VSub_DollarName hf)})
                            (C {<echo>} {(DQ )})
                            (C {<echo>} 
                              {
                                (DQ 
                                  <
'In order for NIS to operate sucessfully, we have to construct a list of the '
                                  >
                                )
                              }
                            )
                            (C {<echo>} 
                              {
                                (DQ 
                                  <
'NIS servers.  Please continue to add the names for YP servers in order of'
                                  >
                                )
                              }
                            )
                            (C {<echo>} 
                              {
                                (DQ 
                                  <
'preference, one per line.  When you are done with the list, type a <control D>'
                                  >
                                )
                              }
                            )
                            (C {<echo>} {(DQ <'or a return on a line by itself.'>)})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName masterp)} 
                                          {<Id.Lit_Equals '='>} {<T>} {<Id.Lit_RBracket ']'>}
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<echo>} {($ Id.VSub_DollarName host)}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName hf)}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                    (C {<echo>} 
                                      {
                                        (DQ <Id.Lit_BadBackslash '\\'> <'tnext host to add:  '> 
                                          ($ Id.VSub_DollarName host)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [1241 1254]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (C {<Id.Lit_LBracket '['>} {<-f>} 
                                          {($ Id.VSub_DollarName binding_file)} {<Id.Lit_RBracket ']'>}
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (C {<Id.Lit_LBracket '['>} 
                                                  {($ Id.VSub_DollarName first_time)} {<Id.Lit_Equals '='>} {<T>} {<Id.Lit_RBracket ']'>}
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ForEach
                                              iter_names: [h]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (C {<cat>} 
                                                            {($ Id.VSub_DollarName binding_file)}
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Simple
                                                      words: [{<echo>} {($ Id.VSub_DollarName h)}]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_DGreat '>>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName hf)}
                                                        )
                                                      ]
                                                      more_env: []
                                                      do_fork: T
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ <Id.Lit_BadBackslash '\\'> 
                                                          <'tnext host to add:  '> ($ Id.VSub_DollarName h)
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [1289 1302]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [1275 1286]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (C {<echo>} 
                              {
                                (DQ <Id.Lit_BadBackslash '\\'> <'tnext host to add:  '> 
                                  <Id.Lit_BadBackslash '\\'> <c>
                                )
                              }
                            )
                            (command.WhileUntil
                              keyword: <Id.KW_While while>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: (C {<read>} {<h>})
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName h))})
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (command.Subshell
                                                      child: 
                                                        (command.Simple
                                                          words: [
                                                            {<grep>}
                                                            {($ Id.VSub_DollarName h)}
                                                            {($ Id.VSub_DollarName hosts_file)}
                                                            {($ Id.VSub_DollarName hosts6_file)}
                                                          ]
                                                          redirects: [
                                                            (redir
                                                              op: <Id.Redir_Great '>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {<'/dev/null'>}
                                                            )
                                                          ]
                                                          more_env: []
                                                          do_fork: T
                                                        )
                                                      redirects: []
                                                    )
                                                    (command.Subshell
                                                      child: 
                                                        (command.AndOr
                                                          ops: [Id.Op_DAmp]
                                                          children: [
                                                            (C {<test>} 
                                                              {($ Id.VSub_DollarName clientp)} {<Id.Lit_Equals '='>} {<T>}
                                                            )
                                                            (C 
                                                              {
                                                                (command_sub
                                                                  left_token: <Id.Left_Backtick '`'>
                                                                  child: 
                                                                    (C {<is_valid_ipaddr>} 
                                                                      {($ Id.VSub_DollarName h)}
                                                                    )
                                                                  right: <Id.Backtick_Right '`'>
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Simple
                                              words: [{<echo>} {($ Id.VSub_DollarName h)}]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName hf)}
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ <Id.Lit_BadBackslash '\\'> 
                                                  <'tnext host to add:  '> <Id.Lit_BadBackslash '\\'> <c>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [1426 1471]
                                        )
                                      ]
                                      else_action: [
                                        (C {<echo>} 
                                          {
                                            (DQ <'host '> ($ Id.VSub_DollarName h) <' not found in '> 
                                              ($ Id.VSub_DollarName hosts_file) <' or'>
                                            )
                                          } {(DQ ($ Id.VSub_DollarName hosts6_file) <.> <Id.Lit_BadBackslash '\\'> <'nNot added to the list.'>)}
                                        )
                                        (C {<echo>} {(DQ )})
                                        (C {<echo>} 
                                          {
                                            (DQ <'Do you wish to abort [y/n: y]  '> 
                                              <Id.Lit_BadBackslash '\\'> <c>
                                            )
                                          }
                                        )
                                        (C {<read>} {<cont_ok>})
                                        (command.Case
                                          to_match: {($ Id.VSub_DollarName cont_ok)}
                                          arms: [
                                            (case_arm
                                              pat_list: [{<n> <Id.Lit_Star '*'>}]
                                              action: [
                                                (C {<echo>} 
                                                  {
                                                    (DQ <Id.Lit_BadBackslash '\\'> 
                                                      <'tnext host to add:  '> <Id.Lit_BadBackslash '\\'> <c>
                                                    )
                                                  }
                                                )
                                              ]
                                              spids: [1544 1546 1556 -1]
                                            )
                                            (case_arm
                                              pat_list: [{<N> <Id.Lit_Star '*'>}]
                                              action: [
                                                (C {<echo>} 
                                                  {
                                                    (DQ <Id.Lit_BadBackslash '\\'> 
                                                      <'tnext host to add:  '> <Id.Lit_BadBackslash '\\'> <c>
                                                    )
                                                  }
                                                )
                                              ]
                                              spids: [1559 1561 1571 -1]
                                            )
                                            (case_arm
                                              pat_list: [{<Id.Lit_Star '*'>}]
                                              action: [
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Exit exit>
                                                  arg_word: {<1>}
                                                )
                                              ]
                                              spids: [1574 1575 1580 -1]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (C {<echo>} {(DQ )})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (C {<Id.Lit_LBracket '['>} {<-s>} {($ Id.VSub_DollarName hf)} 
                                          {<Id.Lit_RBracket ']'>}
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<echo>} 
                                      {(DQ <'The current list of yp servers looks like this:'>)}
                                    )
                                    (C {<echo>} {(DQ )})
                                    (C {<cat>} {($ Id.VSub_DollarName hf)})
                                    (C {<echo>} {(DQ )})
                                    (C {<echo>} 
                                      {
                                        (DQ <'Is this correct?  [y/n: y]  '> 
                                          <Id.Lit_BadBackslash '\\'> <c>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [1599 1610]
                                )
                              ]
                              else_action: [
                                (C {<echo>} {(DQ <'You have not added any server information.'>)})
                                (C {<echo>} {(DQ )})
                                (C {<echo>} 
                                  {
                                    (DQ <'Do you still wish to exit? [y/n: y]  '> 
                                      <Id.Lit_BadBackslash '\\'> <c>
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                            (C {<read>} {<hlist_ok>})
                            (command.Case
                              to_match: {($ Id.VSub_DollarName hlist_ok)}
                              arms: [
                                (case_arm
                                  pat_list: [{<n> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'got_host_list='>
                                              name: got_host_list
                                            )
                                          op: assign_op.Equal
                                          rhs: {<F>}
                                          spids: [1692]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'first_time='>
                                              name: first_time
                                            )
                                          op: assign_op.Equal
                                          rhs: {<F>}
                                          spids: [1696]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<rm>} {($ Id.VSub_DollarName hf)})
                                    (C {<echo>} {(DQ <'Let\'s try the whole thing again...'>)})
                                  ]
                                  spids: [1688 1690 1710 -1]
                                )
                                (case_arm
                                  pat_list: [{<N> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'got_host_list='>
                                              name: got_host_list
                                            )
                                          op: assign_op.Equal
                                          rhs: {<F>}
                                          spids: [1717]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'first_time='>
                                              name: first_time
                                            )
                                          op: assign_op.Equal
                                          rhs: {<F>}
                                          spids: [1721]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<rm>} {($ Id.VSub_DollarName hf)})
                                    (C {<echo>} {(DQ <'Let\'s try the whole thing again...'>)})
                                  ]
                                  spids: [1713 1715 1735 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'got_host_list='>
                                              name: got_host_list
                                            )
                                          op: assign_op.Equal
                                          rhs: {<T>}
                                          spids: [1741]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1738 1739 1743 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [1163 1176]
                )
              ]
              else_action: [
                (C {<shift>})
                (command.Simple
                  words: []
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {($ Id.VSub_DollarName hf)}
                    )
                  ]
                  more_env: []
                  do_fork: F
                )
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.Op_Great
                                  left: {($ Id.VSub_Pound '#')}
                                  right: {<0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  body: 
                    (command.DoGroup
                      children: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (command.Subshell
                                          child: 
                                            (command.Simple
                                              words: [
                                                {<grep>}
                                                {($ Id.VSub_Number 1)}
                                                {($ Id.VSub_DollarName hosts_file)}
                                                {($ Id.VSub_DollarName hosts6_file)}
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<'/dev/null'>}
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                          redirects: []
                                        )
                                        (command.Subshell
                                          child: 
                                            (C 
                                              {
                                                (command_sub
                                                  left_token: <Id.Left_Backtick '`'>
                                                  child: (C {<is_valid_ipaddr>} {($ Id.VSub_Number 1)})
                                                  right: <Id.Backtick_Right '`'>
                                                )
                                              }
                                            )
                                          redirects: []
                                        )
                                      ]
                                    )
                                  ]
                                )
                              action: [
                                (command.Simple
                                  words: [{<echo>} {($ Id.VSub_Number 1)}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_DGreat '>>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {($ Id.VSub_DollarName hf)}
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                              ]
                              spids: [1779 1814]
                            )
                          ]
                          else_action: [
                            (C {<echo>} 
                              {
                                (DQ <'host '> ($ Id.VSub_Number 1) <' not found in '> 
                                  ($ Id.VSub_DollarName hosts_file) <' or'>
                                )
                              } {(DQ ($ Id.VSub_DollarName hosts6_file) <.> <Id.Lit_BadBackslash '\\'> <'nNot added to the list.'>)}
                            )
                            (C {<echo>} {(DQ )})
                          ]
                          redirects: []
                        )
                        (C {<shift>})
                      ]
                    )
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {<-s>} {($ Id.VSub_DollarName hf)} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [(C {<cp>} {($ Id.VSub_DollarName hf)} {($ Id.VSub_DollarName binding_file)})]
                  spids: [1868 1879]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          spids: [1148 1160]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName slavep)} {<Id.Lit_Equals '='>} {<T>} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [(C {<enable_this_boot>} {<'network/nis/client'> <Id.Lit_Colon ':'> <default>})]
          spids: [1909 1921]
        )
      ]
      else_action: [(C {<enable_next_boot>} {<'network/nis/client'> <Id.Lit_Colon ':'> <default>})]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName clientp)} {<Id.Lit_Equals '='>} {<T>} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (C {<rm>} {($ Id.VSub_DollarName hf)})
            (C {<'/usr/sbin/svcadm'>} {<disable>} {<'network/nis/server'> <Id.Lit_Colon ':'> <default>})
            (C {<'/usr/sbin/svcadm'>} {<disable>} {<'network/nis/xfr'> <Id.Lit_Colon ':'> <default>})
            (C {<'/usr/sbin/svcadm'>} {<disable>} {<'network/nis/passwd'> <Id.Lit_Colon ':'> <default>})
            (C {<'/usr/sbin/svcadm'>} {<disable>} {<'network/nis/update'> <Id.Lit_Colon ':'> <default>})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          spids: [1957 1969]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName slavep)} {<Id.Lit_Equals '='>} {<T>} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName host)} {<Id.Lit_Equals '='>} 
                          {($ Id.VSub_DollarName master)} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {
                        (DQ 
                          <
'\x07The host specified should be a running master yp server, not this machine.'
                          >
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [2035 2048]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'maps='> name:maps)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<ypwhich>} {<-m>})
                              (C {<egrep>} {($ Id.VSub_DollarName master) <Id.Lit_Dollar '$'>})
                              (C {<awk>} {(SQ <'{ printf("%s ",$1) }'>)} {<->})
                            ]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [2068]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName maps))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {
                        (DQ <'\x07Can\'t enumerate maps from '> ($ Id.VSub_DollarName master) 
                          <'. Please check that it is running.'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [2094 2107]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          spids: [2020 2032]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<echo>} {(DQ )})
    (C {<echo>} {(DQ <'Installing the YP database will require that you answer a few questions.'>)})
    (C {<echo>} {(DQ <'Questions will all be asked at the beginning of the procedure.'>)})
    (C {<echo>} {(DQ )})
    (C {<echo>} 
      {
        (DQ <'Do you want this procedure to quit on non-fatal errors? [y/n: n]  '> 
          <Id.Lit_BadBackslash '\\'> <c>
        )
      }
    )
    (C {<read>} {<doexit>})
    (command.Case
      to_match: {($ Id.VSub_DollarName doexit)}
      arms: [
        (case_arm
          pat_list: [{<y> <Id.Lit_Star '*'>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_on_error='> name:exit_on_error)
                  op: assign_op.Equal
                  rhs: {<T>}
                  spids: [2175]
                )
              ]
              redirects: []
            )
          ]
          spids: [2171 2173 2177 -1]
        )
        (case_arm
          pat_list: [{<Y> <Id.Lit_Star '*'>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_on_error='> name:exit_on_error)
                  op: assign_op.Equal
                  rhs: {<T>}
                  spids: [2183]
                )
              ]
              redirects: []
            )
          ]
          spids: [2179 2181 2185 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (C {<echo>} 
              {(DQ <'OK, please remember to go back and redo manually whatever fails.  If you'>)}
            )
            (C {<echo>} {(DQ <'don\'t, some part of the system (perhaps the yp itself) won\'t work.'>)})
          ]
          spids: [2187 2188 2204 -1]
        )
      ]
      redirects: []
    )
    (C {<echo>} 
      {(DQ <'The yp domain directory is '> ($ Id.VSub_DollarName yproot_dir)) (DQ <'/'>) 
        (DQ ($ Id.VSub_DollarName def_dom))
      }
    )
    (command.ForEach
      iter_names: [dir]
      iterable: 
        (for_iter.Words
          words: [{($ Id.VSub_DollarName yproot_dir) <'/'> ($ Id.VSub_DollarName def_dom)}]
        )
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-d>} {($ Id.VSub_DollarName dir)} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {
                        (DQ <'Can we destroy the existing '> ($ Id.VSub_DollarName dir) 
                          <' and its contents? [y/n: n]  '> <Id.Lit_BadBackslash '\\'> <c>
                        )
                      }
                    )
                    (C {<read>} {<kill_old_dir>})
                    (command.Case
                      to_match: {($ Id.VSub_DollarName kill_old_dir)}
                      arms: [
                        (case_arm
                          pat_list: [{<y> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<rm>} {<-r>} {<-f>} {($ Id.VSub_DollarName dir)})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} 
                                          {<Id.Lit_RBracket ']'>}
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<echo>} 
                                      {
                                        (DQ <'\x07Can\'t clean up old directory '> 
                                          ($ Id.VSub_DollarName dir) <'.  Fatal error.'>
                                        )
                                      }
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2289 2302]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [2275 2277 2320 -1]
                        )
                        (case_arm
                          pat_list: [{<Y> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<rm>} {<-r>} {<-f>} {($ Id.VSub_DollarName dir)})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} 
                                          {<Id.Lit_RBracket ']'>}
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<echo>} 
                                      {
                                        (DQ <'\x07Can\'t clean up old directory '> 
                                          ($ Id.VSub_DollarName dir) <'.  Fatal error.'>
                                        )
                                      }
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2338 2351]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [2324 2326 2369 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<echo>} {(DQ <'OK, please clean it up by hand and start again.  Bye'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [2373 2374 2386 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2237 2248]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<mkdir>} {($ Id.VSub_DollarName dir)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {
                        (DQ <'\x07Can\'t make new directory '> ($ Id.VSub_DollarName dir) 
                          <'.  Fatal error.'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [2402 2415]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
        )
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName slavep)} {<Id.Lit_Equals '='>} {<T>} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (C {<echo>} 
              {
                (DQ 
                  <'There will be no further questions. The remainder of the procedure should take'>
                )
              }
            )
            (C {<echo>} 
              {(DQ <'a few minutes, to copy the data bases from '> ($ Id.VSub_DollarName master) <.>)}
            )
            (command.ForEach
              iter_names: [dom]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName real_def_dom)}])
              body: 
                (command.DoGroup
                  children: [
                    (command.ForEach
                      iter_names: [map]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName maps)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<echo>} {(DQ <'Transferring '> ($ Id.VSub_DollarName map) <...>)})
                            (C {($ Id.VSub_DollarName XFR)} {<-h>} {($ Id.VSub_DollarName master)} {<-c>} 
                              {<-d>} {($ Id.VSub_DollarName dom)} {($ Id.VSub_DollarName map)}
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} 
                                          {<Id.Lit_RBracket ']'>}
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'errors_in_setup='>
                                              name: errors_in_setup
                                            )
                                          op: assign_op.Equal
                                          rhs: {<T>}
                                          spids: [2536]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (C {<Id.Lit_LBracket '['>} 
                                                  {($ Id.VSub_DollarName exit_on_error)} {<Id.Lit_Equals '='>} {<T>} {<Id.Lit_RBracket ']'>}
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Exit exit>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          spids: [2541 2554]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [2520 2533]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (C {<echo>} {(DQ )})
            (C {<echo>} 
              {
                (DQ (${ Id.VSub_Name host) <'\'s nis data base has been set up'> 
                  <Id.Lit_BadBackslash '\\'> <n>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName errors_in_setup)} 
                          {<Id.Lit_Equals '='>} {<T>} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {(DQ <' with errors.  Please remember'>)})
                    (C {<echo>} {(DQ <'to figure out what went wrong, and fix it.'>)})
                  ]
                  spids: [2594 2607]
                )
              ]
              else_action: [(C {<echo>} {(DQ <' without any errors.'>)})]
              redirects: []
            )
            (C {<enable_this_boot>} {<'network/nis/server'> <Id.Lit_Colon ':'> <default>})
            (C {<enable_this_boot>} {<'network/nis/client'> <Id.Lit_Colon ':'> <default>})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          spids: [2438 2450]
        )
      ]
      else_action: [
        (C {<rm>} {<-f>} {($ Id.VSub_DollarName yproot_dir) <'/'> <Id.Lit_Star '*'> <.time>})
        (C {<echo>} 
          {(DQ <'There will be no further questions. The remainder of the procedure should take'>)}
        )
        (C {<echo>} {(DQ <'5 to 10 minutes.'>)})
        (C {<echo>} 
          {
            (DQ <'Building '> ($ Id.VSub_DollarName yproot_dir) <'/'> ($ Id.VSub_DollarName def_dom) 
              <'/ypservers...'>
            )
          }
        )
        (C {<makedbm>} {($ Id.VSub_DollarName hf)} 
          {($ Id.VSub_DollarName yproot_dir) <'/'> ($ Id.VSub_DollarName def_dom) <'/'> 
            ($ Id.VSub_DollarName ypservers_map)
          }
        )
        (command.If
          arms: [
            (if_arm
              cond: 
                (condition.Shell
                  commands: [
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  ]
                )
              action: [
                (C {<echo>} 
                  {
                    (DQ <'\x07Couldn\'t build yp data base '> ($ Id.VSub_DollarName yproot_dir) <'/'> 
                      ($ Id.VSub_DollarName def_dom) <'/'> ($ Id.VSub_DollarName ypservers_map) <.>
                    )
                  }
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'errors_in_setup='>
                          name: errors_in_setup
                        )
                      op: assign_op.Equal
                      rhs: {<T>}
                      spids: [2746]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName exit_on_error)} 
                              {<Id.Lit_Equals '='>} {<T>} {<Id.Lit_RBracket ']'>}
                            )
                          ]
                        )
                      action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})]
                      spids: [2751 2764]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
              ]
              spids: [2716 2729]
            )
          ]
          else_action: []
          redirects: []
        )
        (C {<rm>} {($ Id.VSub_DollarName hf)})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'in_pwd='> name:in_pwd)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<pwd>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [2785]
            )
          ]
          redirects: []
        )
        (C {<cd>} {($ Id.VSub_DollarName yproot_dir)})
        (C {<echo>} {(DQ <'Running '> <Id.Lit_BadBackslash '\\'> <c>)})
        (C {<echo>} {($ Id.VSub_DollarName yproot_dir)} {(DQ <Id.Lit_BadBackslash '\\'> <c>)})
        (C {<echo>} {(DQ <'/Makefile...'>)})
        (C {<make>} {<Id.Lit_VarLike 'NOPUSH='> <1>})
        (command.If
          arms: [
            (if_arm
              cond: 
                (condition.Shell
                  commands: [
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  ]
                )
              action: [
                (C {<echo>} {(DQ <'\x07Error running Makefile.'>)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'errors_in_setup='>
                          name: errors_in_setup
                        )
                      op: assign_op.Equal
                      rhs: {<T>}
                      spids: [2855]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName exit_on_error)} 
                              {<Id.Lit_Equals '='>} {<T>} {<Id.Lit_RBracket ']'>}
                            )
                          ]
                        )
                      action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})]
                      spids: [2861 2874]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
              ]
              spids: [2831 2844]
            )
          ]
          else_action: []
          redirects: []
        )
        (C {<cd>} {($ Id.VSub_DollarName in_pwd)})
        (C {<echo>} {(DQ )})
        (C {<echo>} 
          {
            (DQ ($ Id.VSub_DollarName host) <' has been set up as a yp master server'> 
              <Id.Lit_BadBackslash '\\'> <c>
            )
          }
        )
        (command.If
          arms: [
            (if_arm
              cond: 
                (condition.Shell
                  commands: [
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName errors_in_setup)} 
                      {<Id.Lit_Equals '='>} {<T>} {<Id.Lit_RBracket ']'>}
                    )
                  ]
                )
              action: [
                (C {<echo>} {(DQ <' with errors.  Please remember'>)})
                (C {<echo>} {(DQ <'to figure out what went wrong, and fix it.'>)})
              ]
              spids: [2912 2925]
            )
          ]
          else_action: [(C {<echo>} {(DQ <' without any errors.'>)})]
          redirects: []
        )
        (C {<echo>} {(DQ )})
        (C {<echo>} {(DQ <'If there are running slave yp servers, run yppush now for any data bases'>)})
        (C {<echo>} {(DQ <'which have been changed.  If there are no running slaves, run ypinit on'>)})
        (C {<echo>} {(DQ <'those hosts which are to be slave servers.'>)})
        (C {<enable_this_boot>} {<'network/nis/server'> <Id.Lit_Colon ':'> <default>})
        (C {<enable_this_boot>} {<'network/nis/xfr'> <Id.Lit_Colon ':'> <default>})
        (C {<enable_this_boot>} {<'network/nis/passwd'> <Id.Lit_Colon ':'> <default>})
        (C {<enable_this_boot>} {<'network/nis/update'> <Id.Lit_Colon ':'> <default>})
        (C {<enable_this_boot>} {<'network/nis/client'> <Id.Lit_Colon ':'> <default>})
      ]
      redirects: []
    )
  ]
)