(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DOMAINNAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DOMAINNAME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOMAINNAME='> name:DOMAINNAME)
          op: assign_op.Equal
          rhs: {<'/bin/domainname'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'HOSTNAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'HOSTNAME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOSTNAME='> name:HOSTNAME)
          op: assign_op.Equal
          rhs: {<'/bin/hostname'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'YPWHICH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'YPWHICH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'YPWHICH='> name:YPWHICH)
          op: assign_op.Equal
          rhs: {<'/usr/bin/ypwhich'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'YPXFR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'YPXFR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'YPXFR='> name:YPXFR)
          op: assign_op.Equal
          rhs: {<'/usr/libexec/ypxfr'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'YP_DIR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'YP_DIR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'YP_DIR='> name:YP_DIR)
          op: assign_op.Equal
          rhs: {<'/var/yp'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MAKEDBM='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MAKEDBM='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAKEDBM='> name:MAKEDBM)
          op: assign_op.Equal
          rhs: {<'/usr/sbin/yp_mkdb'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MAPLIST='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MAPLIST='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAPLIST='> name:MAPLIST)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'master.passwd.byname master.passwd.byuid passwd.byname passwd.byuid '> 
                <'\t group.byname group.bygid hosts.byname hosts.byaddr services.byname '> <'\t rpc.byname rpc.bynumber networks.byname networks.byaddr netgroup '> 
                <'\t netgroup.byuser netgroup.byhost netid.byname publickey.byname '> <'\t bootparams ethers.byname ethers.byaddr eui64.byname eui64.byid '> 
                <'\t amd.host mail.aliases ypservers protocols.byname protocols.bynumber '> <'\t netmasks.byaddr'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ERROR_EXISTS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ERROR_EXISTS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR_EXISTS='> name:ERROR_EXISTS)
          op: assign_op.Equal
          rhs: {(DQ <NO>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <umask>
      more_env: []
      words: [{<umask>} {<077>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ERROR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ERROR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
          op: assign_op.Equal
          rhs: {<USAGE>}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {($ Id.VSub_Pound '#')}
                    {<-eq>}
                    {<1>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Number 1)}
                            {<Id.Lit_Equals '='>}
                            {(DQ <-m>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DOMAIN='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DOMAIN='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOMAIN='> name:DOMAIN)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <Id.Left_DollarBrace '${'>
                                    more_env: []
                                    words: [{(${ Id.VSub_Name DOMAINNAME)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SERVERTYPE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SERVERTYPE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SERVERTYPE='> name:SERVERTYPE)
                          op: assign_op.Equal
                          rhs: {<MASTER>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [90 108]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Number 1)}
                            {<Id.Lit_Equals '='>}
                            {(DQ <-u>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DOMAIN='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DOMAIN='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOMAIN='> name:DOMAIN)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <Id.Left_DollarBrace '${'>
                                    more_env: []
                                    words: [{(${ Id.VSub_Name DOMAINNAME)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SERVERTYPE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SERVERTYPE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SERVERTYPE='> name:SERVERTYPE)
                          op: assign_op.Equal
                          rhs: {<UPDATE>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [132 150]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [75 87]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {($ Id.VSub_Pound '#')}
                    {<-eq>}
                    {<2>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Number 1)}
                            {<Id.Lit_Equals '='>}
                            {(DQ <-m>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DOMAIN='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DOMAIN='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOMAIN='> name:DOMAIN)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Number 2)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SERVERTYPE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SERVERTYPE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SERVERTYPE='> name:SERVERTYPE)
                          op: assign_op.Equal
                          rhs: {<MASTER>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [190 208]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Number 1)}
                            {<Id.Lit_Equals '='>}
                            {(DQ <-s>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DOMAIN='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DOMAIN='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOMAIN='> name:DOMAIN)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <Id.Left_DollarBrace '${'>
                                    more_env: []
                                    words: [{(${ Id.VSub_Name DOMAINNAME)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SERVERTYPE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SERVERTYPE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SERVERTYPE='> name:SERVERTYPE)
                          op: assign_op.Equal
                          rhs: {<SLAVE>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'MASTER='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'MASTER='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASTER='> name:MASTER)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Number 2)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [228 246]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Number 1)}
                            {<Id.Lit_Equals '='>}
                            {(DQ <-u>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DOMAIN='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DOMAIN='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOMAIN='> name:DOMAIN)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Number 2)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SERVERTYPE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SERVERTYPE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SERVERTYPE='> name:SERVERTYPE)
                          op: assign_op.Equal
                          rhs: {<UPDATE>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [276 294]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [175 187]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {($ Id.VSub_Pound '#')}
                    {<-eq>}
                    {<3>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Number 1)}
                            {<Id.Lit_Equals '='>}
                            {(DQ <-s>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DOMAIN='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DOMAIN='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DOMAIN='> name:DOMAIN)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Number 3)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SERVERTYPE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SERVERTYPE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SERVERTYPE='> name:SERVERTYPE)
                          op: assign_op.Equal
                          rhs: {<SLAVE>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'MASTER='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'MASTER='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MASTER='> name:MASTER)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Number 2)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [330 348]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [315 327]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name ERROR))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <USAGE>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: 
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\_'> ch:_) <_usage>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'usage: ypinit -m [domainname]\n'>
                        <'       ypinit -s master_server [domainname]\n'>
                        <'       ypinit -u [domainname]\n'>
                        <'\n'>
                        <'The `-m\' flag builds a master YP server, and the `-s\' flag builds\n'>
                        <'a slave YP server.  When building a slave YP server, `master_server\'\n'>
                        <'must be an existing, reachable YP server.\n'>
                        <'The `-u\' is for updating the ypservers map on a master server.\n'>
                      ]
                    )
                )
                (Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})
              ]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [375 394]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {<-z>}
                        {(DQ (${ Id.VSub_Name DOMAIN))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: 
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\_'> ch:_) 
                          <_no_domain>
                        }
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'The local host\'s YP domain name has not been set.  Please set it with\n'>
                        <
'the domainname(1) command or pass the domain as an argument to ypinit(8).\n'
                        >
                      ]
                    )
                )
                (Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})
              ]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [428 443]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'HOST='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'HOST='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOST='> name:HOST)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <Id.Left_DollarBrace '${'>
                    more_env: []
                    words: [{(${ Id.VSub_Name HOSTNAME)}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {<-z>}
                        {(DQ (${ Id.VSub_Name HOST))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: 
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\_'> ch:_) 
                          <_no_hostname>
                        }
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'The local host\'s hostname has not been set.  Please set it with the\n'>
                        <'hostname(1) command.\n'>
                      ]
                    )
                )
                (Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})
              ]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [480 495]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name SERVERTYPE))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <SLAVE>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COUNT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COUNT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COUNT='> name:COUNT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <Id.Left_DollarBrace '${'>
                                more_env: []
                                words: [
                                  {(${ Id.VSub_Name YPWHICH)}
                                  {<-d>}
                                  {(${ Id.VSub_Name DOMAIN)}
                                  {<-m>}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [{<grep>} {<-i>} {(${ Id.VSub_Name MASTER)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <wc>
                                more_env: []
                                words: [{<wc>} {<-l>}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <tr>
                                more_env: []
                                words: [{<tr>} {<-d>} {(DQ <' '>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_DollarName COUNT))}
                            {<Id.Lit_Equals '='>}
                            {(DQ <0>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'Can\'t enumerate maps from '> (${ Id.VSub_Name MASTER) 
                            <'. Please check that it is running.'>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Note: using hardcoded maplist for map transfers.'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'YPMAPLIST='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'YPMAPLIST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'YPMAPLIST='> name:YPMAPLIST)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name MAPLIST)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [607 624]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'YPMAPLIST='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'YPMAPLIST='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'YPMAPLIST='> name:YPMAPLIST)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <Id.Left_DollarBrace '${'>
                                    more_env: []
                                    words: [
                                      {(${ Id.VSub_Name YPWHICH)}
                                      {<-d>}
                                      {(${ Id.VSub_Name DOMAIN)}
                                      {<-m>}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <cut>
                                    more_env: []
                                    words: [
                                      {<cut>}
                                      {<-d> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\ '>
                                          ch: ' '
                                        )
                                      }
                                      {<-f1>}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ )}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          spids: [538 557]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ID='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ID='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ID='> name:ID)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <id>
                    more_env: []
                    words: [{<id>} {<-u>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name ID))}
                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                        {(DQ <0>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'You have to be the superuser to run this.  Please login as root.'>)}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [715 735]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<Id.KW_Bang '!'>}
                    {<-d>}
                    {(${ Id.VSub_Name YP_DIR)}
                    {<-o>}
                    {<-f>}
                    {(${ Id.VSub_Name YP_DIR)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'The directory '> (${ Id.VSub_Name YP_DIR) 
                    <' doesn\'t exist.  Restore it from the distribution.'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [759 781]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [
        {<echo>}
        {<-n>}
        {(DQ <'Server Type: '> (${ Id.VSub_Name SERVERTYPE) <' Domain: '> (${ Id.VSub_Name DOMAIN))}
      ]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name SERVERTYPE))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <SLAVE>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<-n>} {(DQ <' Master: '> (${ Id.VSub_Name MASTER))}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [821 840]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>} {(DQ )}] redirects:[] do_fork:T)
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name SERVERTYPE))}
                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                        {(DQ <UPDATE>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: 
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\_'> ch:_) <_notice1>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'\n'>
                        <'Creating an YP server will require that you answer a few questions.\n'>
                        <'Questions will all be asked at the beginning of the procedure.\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<-n>}
                {(DQ <'Do you want this procedure to quit on non-fatal errors? [y/n: n]  '>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <read>
              more_env: []
              words: [{<read>} {<DOEXIT>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(${ Id.VSub_Name DOEXIT)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <y>
                  pattern: (pat.Words words:[{<y> <Id.Lit_Star '*'>} {<Y> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR_EXIT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR_EXIT='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR_EXIT='> name:ERROR_EXIT)
                          op: assign_op.Equal
                          rhs: {(DQ <YES>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR_EXIT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR_EXIT='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR_EXIT='> name:ERROR_EXIT)
                          op: assign_op.Equal
                          rhs: {(DQ <NO>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'Ok, please remember to go back and redo manually whatever fails.'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'If you don\'t, something might not work. '>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-d>}
                                {(DQ (${ Id.VSub_Name YP_DIR) <'/'> (${ Id.VSub_Name DOMAIN))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {<-n>}
                        {
                          (DQ <'Can we destroy the existing '> (${ Id.VSub_Name YP_DIR) <'/'> 
                            (${ Id.VSub_Name DOMAIN) <' and its contents? [y/n: n]  '>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <read>
                      more_env: []
                      words: [{<read>} {<KILL>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(${ Id.VSub_Name KILL)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <y>
                          pattern: 
                            (pat.Words
                              words: [{<y> <Id.Lit_Star '*'>} {<Y> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ERROR='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ERROR='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                                  op: assign_op.Equal
                                  rhs: {(DQ <DELETE>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ERROR='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ERROR='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name ERROR))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ <DELETE>)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              negated: <Id.KW_Bang '!'>
                                              children: [
                                                (command.Simple
                                                  blame_tok: <rm>
                                                  more_env: []
                                                  words: [
                                                    {<rm>}
                                                    {<-rf>}
                                                    {(${ Id.VSub_Name YP_DIR) <'/'> 
                                                      (${ Id.VSub_Name DOMAIN)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'Can\'t clean up old directory '> 
                                            (${ Id.VSub_Name YP_DIR) <'/'> (${ Id.VSub_Name DOMAIN) <.>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '1>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [1093 1110]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [1071 1090]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ <'OK, please clean it up by hand and start again.  Bye'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                          arg_word: {<0>}
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [977 996]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              negated: <Id.KW_Bang '!'>
                              children: [
                                (command.Simple
                                  blame_tok: <mkdir>
                                  more_env: []
                                  words: [
                                    {<mkdir>}
                                    {(DQ (${ Id.VSub_Name YP_DIR) <'/'> (${ Id.VSub_Name DOMAIN))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'Can\'t make new directory '> (${ Id.VSub_Name YP_DIR) <'/'> 
                            (${ Id.VSub_Name DOMAIN) <.>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1161 1178]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [862 882]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name SERVERTYPE))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <MASTER>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<Id.KW_Bang '!'>}
                            {<-f>}
                            {(${ Id.VSub_Name YP_DIR) <'/Makefile'>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {<Id.KW_Bang '!'>}
                                    {<-f>}
                                    {(${ Id.VSub_Name YP_DIR) <'/Makefile.dist'>}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {(DQ <'Can\'t find '> (${ Id.VSub_Name YP_DIR) <'/Makefile.dist. '>)}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [1251 1267]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cp>
                      more_env: []
                      words: [
                        {<cp>}
                        {(${ Id.VSub_Name YP_DIR) <'/Makefile.dist'>}
                        {(${ Id.VSub_Name YP_DIR) <'/Makefile'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1232 1248]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [1209 1228]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name SERVERTYPE))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <SLAVE>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'There will be no further questions. The remainder of the procedure'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'should take a few minutes, to copy the databases from '> 
                    (${ Id.VSub_Name MASTER) <.>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [MAP]
              iterable: (for_iter.Words words:[{(${ Id.VSub_Name YPMAPLIST)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Transferring '> (${ Id.VSub_Name MAP) <...>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      negated: <Id.KW_Bang '!'>
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.Left_DollarBrace '${'>
                                          more_env: []
                                          words: [
                                            {(${ Id.VSub_Name YPXFR)}
                                            {<-p>}
                                            {(${ Id.VSub_Name YP_DIR)}
                                            {<-h>}
                                            {(${ Id.VSub_Name MASTER)}
                                            {<-c>}
                                            {<-d>}
                                            {(${ Id.VSub_Name DOMAIN)}
                                            {(${ Id.VSub_Name MAP)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'Can\'t transfer map '> (${ Id.VSub_Name MAP) <.>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ERROR_EXISTS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ERROR_EXISTS='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'ERROR_EXISTS='>
                                      name: ERROR_EXISTS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <YES>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(DQ (${ Id.VSub_Name ERROR_EXIT))}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <YES>)}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [1434 1453]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [1378 1411]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name ERROR_EXISTS))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <YES>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ (${ Id.VSub_Name HOST) 
                            <' has been setup as an YP slave server with errors. '>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Please remember fix any problem that occurred.'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [1477 1496]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ (${ Id.VSub_Name HOST) 
                        <' has been setup as an YP slave server without any errors. '>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'Don\'t forget to update map ypservers on '> (${ Id.VSub_Name MASTER) <.>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          spids: [1311 1330]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LIST_OK='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LIST_OK='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIST_OK='> name:LIST_OK)
          op: assign_op.Equal
          rhs: {(DQ <NO>)}
        )
      ]
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ (${ Id.VSub_Name LIST_OK))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <NO>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name SERVERTYPE))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <MASTER>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'HOST_LIST='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'HOST_LIST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOST_LIST='> name:HOST_LIST)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name HOST))}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ 
                            <
'At this point, we have to construct a list of this domains YP servers.'
                            >
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ (${ Id.VSub_Name HOST) <' is already known as master server.'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ 
                            <'Please continue to add any slave servers, one per line. When you are'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'done with the list, type a <control D>.'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'\tmaster server   :  '> (${ Id.VSub_Name HOST))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1585 1605]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name SERVERTYPE))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <UPDATE>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'HOST_LIST='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'HOST_LIST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOST_LIST='> name:HOST_LIST)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name HOST))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'NEW_LIST='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'NEW_LIST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NEW_LIST='> name:NEW_LIST)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'MASTER_NAME='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'MASTER_NAME='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'MASTER_NAME='>
                              name: MASTER_NAME
                            )
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SHORT_HOST='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SHORT_HOST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHORT_HOST='> name:SHORT_HOST)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {(${ Id.VSub_Name HOST)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <cut>
                                        more_env: []
                                        words: [{<cut>} {<-d.>} {<-f1>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {<-f>}
                                        {(${ Id.VSub_Name YP_DIR) <'/'> (${ Id.VSub_Name DOMAIN) 
                                          <'/ypservers'>
                                        }
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Sentence
                              child: 
                                (command.ForEach
                                  keyword: <Id.KW_For for>
                                  iter_names: [srv]
                                  iterable: 
                                    (for_iter.Words
                                      words: [
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <Id.Left_DollarBrace '${'>
                                                    more_env: []
                                                    words: [
                                                      {(${ Id.VSub_Name MAKEDBM)}
                                                      {<-u>}
                                                      {(${ Id.VSub_Name YP_DIR) <'/'> 
                                                        (${ Id.VSub_Name DOMAIN) <'/ypservers'>
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <grep>
                                                    more_env: []
                                                    words: [{<grep>} {<-v>} {(DQ <'^YP'>)}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <tr>
                                                    more_env: []
                                                    words: [
                                                      {<tr>}
                                                      {(DQ <Id.Lit_BadBackslash '\\'> <t>)}
                                                      {(DQ <' '>)}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <cut>
                                                    more_env: []
                                                    words: [
                                                      {<cut>}
                                                      {<-d> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\ '>
                                                          ch: ' '
                                                        )
                                                      }
                                                      {<-f1>}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                      ]
                                    )
                                  semi_tok: <Id.Op_Semi _>
                                  body: 
                                    (command.DoGroup
                                      left: <Id.KW_Do do>
                                      children: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'short_srv='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'short_srv='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'short_srv='>
                                                  name: short_srv
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (command.Simple
                                                            blame_tok: <echo>
                                                            more_env: []
                                                            words: [{<echo>} {(${ Id.VSub_Name srv)}]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            blame_tok: <cut>
                                                            more_env: []
                                                            words: [{<cut>} {<-d.>} {<-f1>}]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        ]
                                                        ops: [<Id.Op_Pipe _>]
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.If
                                          if_kw: <Id.KW_If if>
                                          arms: [
                                            (IfArm
                                              keyword: <Id.KW_If if>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_LBracket '['>
                                                      more_env: []
                                                      words: [
                                                        {<Id.Lit_LBracket '['>}
                                                        {(DQ (${ Id.VSub_Name SHORT_HOST))}
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ (${ Id.VSub_Name short_srv))}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.If
                                                  if_kw: <Id.KW_If if>
                                                  arms: [
                                                    (IfArm
                                                      keyword: <Id.KW_If if>
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.Simple
                                                                  blame_tok: <Id.Lit_LBracket '['>
                                                                  more_env: []
                                                                  words: [
                                                                    {<Id.Lit_LBracket '['>}
                                                                    {(DQ (${ Id.VSub_Name NEW_LIST))}
                                                                    {<Id.Lit_Equals '='>}
                                                                    {(DQ )}
                                                                    {<Id.Lit_RBracket ']'>}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      then_kw: <Id.KW_Then then>
                                                      action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'NEW_LIST='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'NEW_LIST='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'NEW_LIST='>
                                                                  name: NEW_LIST
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {(DQ (${ Id.VSub_Name srv))}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [1861 1880]
                                                    )
                                                  ]
                                                  else_kw: <Id.KW_Else else>
                                                  else_action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'NEW_LIST='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'NEW_LIST='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'NEW_LIST='>
                                                              name: NEW_LIST
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ (${ Id.VSub_Name NEW_LIST) <' '> 
                                                                (${ Id.VSub_Name srv)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  fi_kw: <Id.KW_Fi fi>
                                                  redirects: []
                                                )
                                              ]
                                              spids: [1836 1858]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'MASTER_NAME='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'MASTER_NAME='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'MASTER_NAME='>
                                      name: MASTER_NAME
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.Left_DollarBrace '${'>
                                                more_env: []
                                                words: [
                                                  {(${ Id.VSub_Name MAKEDBM)}
                                                  {<-u>}
                                                  {(${ Id.VSub_Name YP_DIR) <'/'> 
                                                    (${ Id.VSub_Name DOMAIN) <'/ypservers'>
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <grep>
                                                more_env: []
                                                words: [{<grep>} {(DQ <'^YP_MASTER_NAME'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <tr>
                                                more_env: []
                                                words: [
                                                  {<tr>}
                                                  {(DQ <Id.Lit_BadBackslash '\\'> <t>)}
                                                  {(DQ <' '>)}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <cut>
                                                more_env: []
                                                words: [
                                                  {<cut>}
                                                  {<-d> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\ '>
                                                      ch: ' '
                                                    )
                                                  }
                                                  {<-f2>}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1728 1747]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'Update the list of hosts running YP servers in domain '> 
                            (${ Id.VSub_Name DOMAIN) <.>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'Master for this domain is '> (${ Id.VSub_Name MASTER_NAME) <.>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'First verify old servers, type '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                              ch: '\\'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <' to remove a server.'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'Then add new servers, one per line. When done type a <control D>.'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'\tmaster server   :  '> (${ Id.VSub_Name HOST))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name NEW_LIST))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ )}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Sentence
                              child: 
                                (command.ForEach
                                  keyword: <Id.KW_For for>
                                  iter_names: [node]
                                  iterable: 
                                    (for_iter.Words
                                      words: [{($ Id.VSub_DollarName NEW_LIST)}]
                                    )
                                  semi_tok: <Id.Op_Semi _>
                                  body: 
                                    (command.DoGroup
                                      left: <Id.KW_Do do>
                                      children: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {<-n>}
                                            {
                                              (DQ <'\tverify host     : ['> (${ Id.VSub_Name node) 
                                                <'] '>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <read>
                                          more_env: []
                                          words: [{<read>} {<verify>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.If
                                          if_kw: <Id.KW_If if>
                                          arms: [
                                            (IfArm
                                              keyword: <Id.KW_If if>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.Simple
                                                          blame_tok: <Id.Lit_LBracket '['>
                                                          more_env: []
                                                          words: [
                                                            {<Id.Lit_LBracket '['>}
                                                            {(DQ (${ Id.VSub_Name verify))}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\\\'>
                                                                  ch: '\\'
                                                                )
                                                              )
                                                            }
                                                            {<Id.Lit_RBracket ']'>}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'HOST_LIST='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'HOST_LIST='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'HOST_LIST='>
                                                          name: HOST_LIST
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ (${ Id.VSub_Name HOST_LIST) <' '> 
                                                            (${ Id.VSub_Name node)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [2093 2113]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          spids: [2041 2060]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [1667 1687]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<-n>} {(DQ <'\tnext host to add:  '>)}]
              redirects: []
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <read>
                      more_env: []
                      words: [{<read>} {<h>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<-n>} {(DQ <'\tnext host to add:  '>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'HOST_LIST='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'HOST_LIST='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOST_LIST='> name:HOST_LIST)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name HOST_LIST) <' '> (${ Id.VSub_Name h))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'The current list of NIS servers looks like this:'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [h]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <echo>
                            more_env: []
                            words: [{<echo>} {(${ Id.VSub_Name HOST_LIST)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(${ Id.VSub_Name h)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<-n>} {(DQ <'Is this correct?  [y/n: y]  '>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <read>
              more_env: []
              words: [{<read>} {<hlist_ok>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName hlist_ok)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <n>
                  pattern: (pat.Words words:[{<n> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Let\'s try the whole thing again...'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <N>
                  pattern: (pat.Words words:[{<N> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Let\'s try the whole thing again...'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'LIST_OK='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'LIST_OK='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIST_OK='> name:LIST_OK)
                          op: assign_op.Equal
                          rhs: {(DQ <YES>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [
        {<echo>}
        {(DQ <'Building '> (${ Id.VSub_Name YP_DIR) <'/'> (${ Id.VSub_Name DOMAIN) <'/ypservers...'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {(${ Id.VSub_Name YP_DIR) <'/ypservers'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <touch>
      more_env: []
      words: [{<touch>} {<-f>} {(${ Id.VSub_Name YP_DIR) <'/ypservers'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {(${ Id.VSub_Name YP_DIR) <'/'> (${ Id.VSub_Name DOMAIN) <'/ypservers'>}]
      redirects: []
      do_fork: T
    )
    (command.Pipeline
      children: [
        (command.ForEach
          keyword: <Id.KW_For for>
          iter_names: [host]
          iterable: (for_iter.Words words:[{(${ Id.VSub_Name HOST_LIST)}])
          semi_tok: <Id.Op_Semi _>
          body: 
            (command.DoGroup
              left: <Id.KW_Do do>
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ (${ Id.VSub_Name host) <' '> (${ Id.VSub_Name host))}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DGreat '>>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(${ Id.VSub_Name YP_DIR) <'/ypservers'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ (${ Id.VSub_Name host) <' '> (${ Id.VSub_Name host))}]
                  redirects: []
                  do_fork: T
                )
              ]
              right: <Id.KW_Done done>
            )
          redirects: []
        )
        (command.Simple
          blame_tok: <Id.Left_DollarBrace '${'>
          more_env: []
          words: [
            {(${ Id.VSub_Name MAKEDBM)}
            {<->}
            {(${ Id.VSub_Name YP_DIR) <'/'> (${ Id.VSub_Name DOMAIN) <'/ypservers'>}
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {($ Id.VSub_QMark '?')}
                        {<-ne>}
                        {<0>}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ )}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'Couldn\'t build yp data base '> (${ Id.VSub_Name YP_DIR) <'/'> 
                    (${ Id.VSub_Name DOMAIN) <'/ypservers.'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ERROR_EXISTS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ERROR_EXISTS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR_EXISTS='> name:ERROR_EXISTS)
                  op: assign_op.Equal
                  rhs: {(DQ <YES>)}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name ERROR_EXIT))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <YES>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})]
                  spids: [2467 2486]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [2418 2431]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name SERVERTYPE))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <MASTER>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CUR_PWD='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CUR_PWD='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CUR_PWD='> name:CUR_PWD)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <pwd>
                            more_env: []
                            words: [{<pwd>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {(${ Id.VSub_Name YP_DIR)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Running '> (${ Id.VSub_Name YP_DIR) <'/Makefile...'>)}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              negated: <Id.KW_Bang '!'>
                              children: [
                                (command.Simple
                                  blame_tok: <make>
                                  more_env: []
                                  words: [
                                    {<make>}
                                    {<Id.Lit_VarLike 'NOPUSH='> <True>}
                                    {<Id.Lit_VarLike 'UPDATE_DOMAIN='> (${ Id.VSub_Name DOMAIN)}
                                    {<Id.Lit_VarLike 'YP_DIR='> (${ Id.VSub_Name YP_DIR)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Error running Makefile.'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR_EXISTS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR_EXISTS='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'ERROR_EXISTS='>
                              name: ERROR_EXISTS
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <YES>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ (${ Id.VSub_Name ERROR_EXIT))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ <YES>)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [2595 2614]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [2547 2567]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {(${ Id.VSub_Name CUR_PWD)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ (${ Id.VSub_Name ERROR_EXISTS))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <YES>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ (${ Id.VSub_Name HOST) 
                            <' has been setup as an YP master server with errors. '>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Please remember fix any problem that occurred.'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [2643 2662]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ (${ Id.VSub_Name HOST) 
                        <' has been setup as an YP master server without any errors. '>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [2499 2518]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
  ]
)