#! /bin/sh
# functions for GUARDIANSUITE
# script 0503
# 2008/05/26
# Copyright (c) 2008 Canon IT Solutions Inc.
#
# Set Environment variables
LC_COLLATE=C
ADPKGN=GRDNadmin
MGPKGN=MGWall
WGPKGN=GRDNwg
SRPKGN=GRDNsrch
MSPKGN=MGWallS
INSTALLDIR=/opt
GRDNDIR=${INSTALLDIR}/Guardian
ADMNDIR=${INSTALLDIR}/Guardian/Admin
WALLDIR=${INSTALLDIR}/Guardian/WALL
WEBGDIR=${INSTALLDIR}/Guardian/WG
PSQLDIR=${INSTALLDIR}/Guardian/pgsql
VARGDIR=/var/opt/Guardian
MLOGDIR=${WALLDIR}/logs/
WLOGDIR=${VARGDIR}/WG/
MSS_CONF=${WALLDIR}/bin/mw_conf
GSA_CONF=${ADMNDIR}/bin/guts_adminconf
GSS_CONF=${ADMNDIR}/bin/guts_servconf
PRL_COMD=${GRDNDIR}/perl/bin/perl
PHP_COMD=${ADMNDIR}/php/bin/php
GPW_SCPT="echo <?php print base64_encode(uniqid('')); ?>"
SENDMAIL=/usr/lib/sendmail
INITDIR=/etc/init.d
RCN_DIR=/etc
ADMSS_F=${ADMNDIR}/etc/wall/mss.conf
ADWGM_F=${ADMNDIR}/etc/wg/mail.conf
ADPID_F=${ADMNDIR}/logs/httpd.pid
WHTTP_F=${WEBGDIR}/conf/httpd.conf
WMAIL_F=${WEBGDIR}/conf/mail.conf
WADMN_F=${WEBGDIR}/conf/admin.conf
WCLIC_F=${WEBGDIR}/conf/LICENSE
WCACT_F=${WEBGDIR}/conf/ACCOUNT
EVL_COMD=bin/evalLicense
JOB_COMD=bin/confirm_job
ADMLOGD=""     # СΥƥ¸ǥ쥯ȥ
MALLOGD=""     # СΥ᡼¸ǥ쥯ȥ
WEBLOGD=""     # СΥ֥¸ǥ쥯ȥ
WALLOGD=""     # ᡼븡СΥ¸ǥ쥯ȥ
WBGLOGD=""     # ָСΥ¸ǥ쥯ȥ
PDBLOGD=""     # СΥǡ١ǥ쥯ȥ
RDBLOGD=""     # СΥꥹȥǡ١ǥ쥯ȥ
AKNSARD=""     # Сδƺǡ¸ǥ쥯ȥ
HISTRYD=""     # СʸϿѥǥ쥯ȥ
COHABIT=""
ADMPORT=8080
PXYPORT=1088
CONFIGERR=0
SSTARTERR=0
MSTARTERR=0
WSTARTERR=0
DSTARTERR=0
DSETUPERR=0
ISSTARTFG=0
UPGRADE=0
MG2ADMN=0
ISSOL10=0

if [ "${LNGAG}" = "JA" ]; then
    ERR_00="顼:  "
    ERR_01="ǥ쥯ȥ꤬ޤ"
    ERR_02="顼:  åȥåפǥ顼ȯޤ"
    ERR_03="         󥹥ȡ齪λ塢⤦١ܥС"
    ERR_04="         åȥåפԤʤФʤޤ"
    ERR_05="         ޥɤĤޤ"
    ERR_06="[顼] ̵ͤǤ"
    ERR_07="ٹ:    InternalDomains ˼Ԥޤ"
    ERR_08="ٹ:    AdminMailAddress ˼Ԥޤ"
    ERR_09="ٹ:    ɾ LicenseKey ˼Ԥޤ"
    ERR_10="         crontab ե˼Ԥޤ"
    ERR_11="顼:  GUARDIANSUITE Сεư˼Ԥޤ"
    ERR_12="[ٹ] crontab եԽԤޤ"
    ERR_13="顼:  WEBGUARDIAN Proxy ӥεư˼Ԥޤ"
    ERR_14="顼:  /usr/sbin/sendmail  /usr/lib/sendmail ۤʤޤ"
    ERR_15="顼:  ǡ١ ӥεư˼Ԥޤ"
    ERR_16="         꼺"
    ERR_17="ٹ:    MailSubmissionProgram ˼Ԥޤ"
    ERR_18="ǡ١ν˼Ԥޤ(/var/guardian-install-err.log)"
    ERR_19="ٹ:    sendmail 󥿡եְäƤޤ"
    ERR_20="ٹ:    塼ǥ쥯ȥְ꤬äƤޤ"
    ERR_21="ٹ:    dicfile ˼Ԥޤ"
    ERR_22="顼:  GUARDIANWALL ӥεư˼Ԥޤ"
    ERR_23="顼:  GUARDIANSUITE(С)Υѥåޤ"
    ERR_24="顼:  GUARDIANWALL Υѥåޤ"
    ERR_25="顼:  ɾǤΥåץ졼ɤϤǤޤ"
    ERR_26="顼:  ɾCDΤᥢåץ졼ɤϤǤޤ"
    ERR_27="顼:  󥤥󥹥ȡǤ֤ǤϤޤ"
    ERR_28="         δСϡĤθСƤޤ"
    ERR_29="         θСϡСƤޤ"
    ERR_30="         ˡСβ̤顢٤ƤθСϿ"
    ERR_31="         ˡСβ̤顢θСϿ"
    ERR_32="         Ƥ"
    ERR_33="         δСϡ¾θСƤޤ"
    ERR_34="         ˡСβ̤顢¾θСϿ"
    ERR_35="顼:  WEBGUARDIAN Υѥåޤ"
    ERR_36="顼:  ʸƥΥѥåޤ"
    ERR_37="顼:  GUARDIANWALL V6.0 ʾ夫Υåץ졼ɤϤǤޤ"
    ERR_38="顼:  󥹥ȡǤ֤ǤϤޤ"
    ERR_39="         ƥζͭκ祵ʤޤ(SHMMAX)"
    ERR_40="         塼顼֤¹Τᡢߥ󥹥ȡ»ܤǤޤ"
    ERR_41="         ֤δλ塢Ƥӥåץ졼ɥ󥹥ȡ»ܤƤ"
    ERR_42="ٹ:    DatabaseDirectory ˼Ԥޤ"
    ERR_43="         ޥե̻Ҥκޤ(SEMMNI)"
    ERR_44="         ƥΤΥޥեκޤ(SEMMNS)"
    ERR_45="[顼] ǥ쥯ȥ꤬ǤϤޤ"
    ERR_48="ģ¥ޤΥåץǡȤ˼Ԥޤ(/var/guardian-install-err.log)"
    MSG_01="򳫻Ϥޤ..."
    MSG_02="ԥ᡼륢ɥ쥹ϤƤ"
    MSG_03="嵭Ƥɤ [y] ѹ [n] ϤƤ"
    MSG_04="crontab եԽƤޤ..."
    MSG_05="åȥåפλޤ"
    MSG_06="GUARDIANSUITE Сεư"
    MSG_07="GUARDIANSUITE СưƤޤ..."
    MSG_08="   GUARDIANSUITE V4.1 Υ󥹥ȡޤ"
    MSG_09="   ԥڡ URL"
    MSG_10="   ʲβսǥ顼ȯޤ"
    MSG_11="     åȥåפǾʤȤ⣱ĤΥ顼ȯޤ"
    MSG_12="     GUARDIANSUITE СưǤޤ"
    MSG_13="GUARDIANSUITE С"
    MSG_14="GUARDIANSUITE СߤƤޤ..."
    MSG_15="եǥ쥯ȥκ"
    MSG_16="եƤޤ..."
    MSG_17="ƥݥǥ쥯ȥƤޤ..."
    MSG_18="httpd ǥ쥯ȥƤޤ..."
    MSG_19="php ǥ쥯ȥƤޤ..."
    MSG_20="СΥեƤޤ..."
    MSG_21="ե򤹤٤ƺޤ [y, n]"
    MSG_22="եƤޤ..."
    MSG_23="crontab եԽޤ"
    MSG_24="   GUARDIANSUITE Υ󥤥󥹥ȡޤ"
    MSG_25="   ʸƥ V3.7 Υ󥹥ȡޤ"
    MSG_26="   ʸƥ Υ󥤥󥹥ȡޤ"
    MSG_27="WEBGUARDIAN Proxy ӥεư"
    MSG_28="WEBGUARDIAN Proxy ӥưƤޤ..."
    MSG_29="   WEBGUARDIAN V3.2 Υ󥹥ȡޤ"
    MSG_30="   Proxy С IPɥ쥹"
    MSG_31="   ݡֹ"
    MSG_32="     WEBGUARDIAN Proxy ӥưǤޤ"
    MSG_33="WEBGUARDIAN Proxy ӥ"
    MSG_34="WEBGUARDIAN Proxy ӥߤƤޤ..."
    MSG_35="   WEBGUARDIAN Υ󥤥󥹥ȡޤ"
    MSG_36="ɥᥤ̾ϤƤ"
    MSG_37="MSP ϤƤ (sendmail, qmail, postfix)"
    MSG_38="塼顼֤Υå"
    MSG_39="ʥ塼顼֤¹Ԥʤ褦ѹޤ [y, n]"
    MSG_40="sendmail ΥСĴ٤Ƥޤ..."
    MSG_41="ޤ [y, n]"
    MSG_42="Ƥޤ..."
    MSG_43="MSP åƤޤ..."
    MSG_44="󥹥ȡȤθ塢ե򥻥åȥåפƤ"
    MSG_45="GUARDIANWALL ӥεư"
    MSG_47="GUARDIANWALL ӥ򳫻ϤƤޤ..."
    MSG_48="   ̤ꡢС饤󥹤Ͽɬפޤ"
    MSG_49="   GUARDIANWALL V7.1 Υ󥹥ȡޤ"
    MSG_50="GUARDIANWALL/SEARCH ӥ"
    MSG_51="GUARDIANWALL/SEARCH ӥߤƤޤ..."
    MSG_52="GUARDIANWALL ӥ"
    MSG_53="GUARDIANWALL ӥߤƤޤ..."
    MSG_54="URLGUARDIAN ӥ"
    MSG_55="sendmail ӥߤƤޤ..."
    MSG_56="ꥸʥ sendmail ӥ򳫻ϤƤޤ..."
    MSG_57="եαå򤹤٤ƺޤ [y, n]"
    MSG_58="URLGUARDIAN ե륿󥰡СߤƤޤ..."
    MSG_60="αΥåեƤޤ..."
    MSG_61="URLGUARDIAN ݡȡСߤƤޤ..."
    MSG_62="   GUARDIANWALL Υ󥤥󥹥ȡޤ"
    MSG_63="   URLGUARDIAN Υ󥤥󥹥ȡޤ"
    MSG_64="   SMTP С IPɥ쥹"
    MSG_65="     GUARDIANWALL ӥưǤޤ"
    MSG_66="   Сβ̤顢θСɲϿƤ"
    MSG_67="ܥСξ֥å"
    MSG_68="󥤥󥹥ȡߤޤ"
    MSG_69="桼 wgfilter Ƥޤ..."
    MSG_70="롼 wggroup Ƥޤ..."
    MSG_71="嵭ǥ쥯ȥ˺ޤ [y, n]"
    MSG_72="ǥ쥯ȥƤޤ..."
    MSG_73="ͭȥޥեΥå"
    MSG_74="󥹥ȡߤޤ"
    MSG_75="ꥸʥ sendmail ӥƵưƤޤ..."
    MSG_79="ģ¥ǥ쥯ȥϤƤ"
    MSG_81="ǡ١ۤƤޤ..."
    MSG_82="ǡ١ ӥεư"
    MSG_83="ǡ١ ӥưƤޤ..."
    MSG_84="ǡ١ ӥ"
    MSG_85="ǡ١ ӥߤƤޤ..."
    MSG_86="     ǡ١ ӥưǤޤ"
    MSG_87="     ǡ١ åȥåפǾʤȤ⣱ĤΥ顼ȯޤ"
    MSG_88="ǡ١ե򤹤٤ƺޤ [y, n]"
    MSG_89="ǡ١եƤޤ..."
    MSG_90="ģ¥ޤ򥢥åץǡȤƤޤ..."
    WRD_01=""
else
    ERR_00="ERROR:   "
    ERR_01="directory was not found."
    ERR_02="ERROR:   Error occurred in the initial setup."
    ERR_03="         You should be setup a this server once again"
    ERR_04="         after an installation end."
    ERR_05="         Command not found."
    ERR_06="[ERROR]  invalid value."
    ERR_07="WARNING: InternalDomains configuration failed."
    ERR_08="WARNING: AdminMailAddress configuration failed."
    ERR_09="WARNING: Trial LicenseKey configuration failed."
    ERR_10="         crontab file setup was failed."
    ERR_11="ERROR:   cannot start GUARDIANSUITE Admin server."
    ERR_12="[WARNING] Updating crontab file... failed."
    ERR_13="ERROR:   cannot start WEBGUARDIAN Proxy services."
    ERR_14="ERROR:   /usr/sbin/sendmail and /usr/lib/sendmail differed."
    ERR_15="ERROR:   cannot start Database services."
    ERR_16="         configuration failed"
    ERR_17="WARNING: MailSubmissionProgram configuration failed"
    ERR_18="cannot initdb. (/var/guardian-install-err.log)"
    ERR_19="WARNING: sendmail interface is misssing!"
    ERR_20="WARNING: queue directory is misssing!"
    ERR_21="WARNING: dicfile creation failed."
    ERR_22="ERROR:   cannot start GUARDIANWALL services."
    ERR_23="ERROR:   GUARDIANSUITE(ADMIN Server) package info was not found."
    ERR_24="ERROR:   GUARDIANWALL package infomation was not found."
    ERR_25="ERROR:   cannot upgrade since trial version was installed."
    ERR_26="ERROR:   cannot upgrade since this media is trial version CD."
    ERR_27="ERROR:   It is not in an uninstallable state."
    ERR_28="         This Admin server has managed some Inspection servers."
    ERR_29="         This Inspection server is managed by your Admin server."
    ERR_30="         First, please delete registration of all Inspection servers"
    ERR_31="         First, please delete registration of this Inspection server"
    ERR_32="         from Admin server's page."
    ERR_33="         This Admin server has managed other Inspection servers."
    ERR_34="         First, please delete registration of other Inspection servers"
    ERR_35="ERROR:   WEBGUARDIAN package infomation was not found."
    ERR_36="ERROR:   Search option package information was not found."
    ERR_37="ERROR:   You cannot upgrade since GUARDIANWALL V6.0 or later."
    ERR_38="ERROR:   It is not in an installable state."
    ERR_39="         too small size of max shared memory segment. (SHMMAX)"
    ERR_40="         Scheduler job is executing. cannot install on this server."
    ERR_41="         Please execute upgrade installation again after completing the job."
    ERR_42="WARNING: DatabaseDirectory configuration failed."
    ERR_43="         too small number of semaphore identifiers. (SEMMNI)"
    ERR_44="         too small number of semaphores in system. (SEMMNS)"
    ERR_45="[ERROR]  directory is not empty."
    ERR_48="cannot update Database schema. (/var/guardian-install-err.log)"
    MSG_01="Start configuration..."
    MSG_02="Enter administrator mail address"
    MSG_03="Press [y] to accept, [n] to reenter"
    MSG_04="Editing crontab file..."
    MSG_05="The initial setup was completed."
    MSG_06="Start GUARDIANSUITE Admin server"
    MSG_07="Starting GUARDIANSUITE Admin server..."
    MSG_08="   Installation of GUARDIANSUITE V4.1 was successful."
    MSG_09="   Admin URL is"
    MSG_10="   However, error occurred in the part of following:"
    MSG_11="     - At least one error occurred in the part of initial setup."
    MSG_12="     - Cannot start GUARDIANSUITE Admin server."
    MSG_13="Shutdown GUARDIANSUITE Admin server"
    MSG_14="Shutting down GUARDIANSUITE Admin server..."
    MSG_15="Delete files and directories"
    MSG_16="Removing configuration files..."
    MSG_17="Removing temporally directory..."
    MSG_18="Removing httpd directory..."
    MSG_19="Removing php directory..."
    MSG_20="Removing log files on Admin server..."
    MSG_21="Do you remove all log files? [y, n]"
    MSG_22="Removing log files..."
    MSG_23="Updating crontab file... done."
    MSG_24="   Uninstallation of GUARDIANSUITE was successful."
    MSG_25="   Installation of Full Text Search System V3.7 was successful."
    MSG_26="   Uninstallation of Full Text Search System was successful."
    MSG_27="Start WEBGUARDIAN Proxy services"
    MSG_28="Starting WEBGUARDIAN Proxy services..."
    MSG_29="   Installation of WEBGUARDIAN V3.2 was successful."
    MSG_30="   Proxy Server IP address"
    MSG_31="   Port number"
    MSG_32="     - Cannot start WEBGUARDIAN Proxy services."
    MSG_33="Shutdown WEBGUARDIAN Proxy services"
    MSG_34="Shutting down WEBGUARDIAN Proxy services..."
    MSG_35="   Uninstallation of WEBGUARDIAN was successful."
    MSG_36="Enter your internal domain names"
    MSG_37="Enter MSP (sendmail or qmail or postfix)"
    MSG_38="Check of scheduler job"
    MSG_39="Is the setting changed so that a new job should not execute? [y, n]"
    MSG_40="Checking sendmail version..."
    MSG_41="Do you remove search history? [y, n]"
    MSG_42="Removing search history..."
    MSG_43="Checking MSP..."
    MSG_44="please set up configuration file after this installation."
    MSG_45="Start GUARDIANWALL services"
    MSG_47="Starting GUARDIANWALL services..."
    MSG_48="   You should resigter ADMIN Server License by using ADMIN Page."
    MSG_49="   Installation of GUARDIANWALL V7.1 was successful."
    MSG_50="Shutdown GUARDIANWALL/SEARCH services"
    MSG_51="Shutting down GUARDIANWALL/SEARCH services..."
    MSG_52="Shutdown GUARDIANWALL services"
    MSG_53="Shutting down GUARDIANWALL services..."
    MSG_54="Shutdown URLGUARDIAN services"
    MSG_55="Shutting down sendmail service..."
    MSG_56="Starting original sendmail service..."
    MSG_57="Do you remove all log files and held messages? [y, n]"
    MSG_58="Shutting down URLGUARDIAN Filtering server..."
    MSG_60="Removing held messages files..."
    MSG_61="Shutting down URLGUARDIAN Reporting server..."
    MSG_62="   Uninstallation of GUARDIANWALL was successful."
    MSG_63="   Uninstallation of URLGUARDIAN was successful."
    MSG_64="   SMTP Server IP address"
    MSG_65="     - Cannot start GUARDIANWALL services."
    MSG_66="   Please add registration of this server from Admin server's page."
    MSG_67="Check of this server status"
    MSG_68="Uninstallation is halted."
    MSG_69="userdel wgfilter..."
    MSG_70="groupdel wggroup..."
    MSG_71="Do you wish to remove above directories COMPLETELY? [y, n]"
    MSG_72="Removing directory..."
    MSG_73="Check of shared memory and semaphore"
    MSG_74="Installation is halted."
    MSG_75="Restarting original sendmail service..."
    MSG_79="Enter DatabaseCluster Directory"
    MSG_81="Builditing Database..."
    MSG_82="Start Database services"
    MSG_83="Starting Database services..."
    MSG_84="Shutdown Database services"
    MSG_85="Shutting Database services..."
    MSG_86="     - Cannot start Database services"
    MSG_87="     - At least one error occurred in the part of database setup."
    MSG_88="Do you remove all database files? [y, n]"
    MSG_89="Removing database files..."
    MSG_90="Updating Database schema..."
    WRD_01="expire"
fi

if [ ${UNAME} = "Linux" ]; then
    if [ -f /usr/sbin/sendmail ]; then
        SENDMAIL=/usr/sbin/sendmail
    fi

    if [ ! -d ${INITDIR} ]; then
        if [ -d /etc/rc.d/init.d ]; then
            INITDIR=/etc/rc.d/init.d
        else
            xy_warning "${ERR_00}${INITDIR} ${ERR_01}"
            xy_homecsor
            exit 1
        fi
    fi
    RCN_DIR=/etc/rc.d
else
    # SunOSΥС(ʬ)
    SUNOSMINVER=`${UNAMER} 2>/dev/null |sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'`
    if [ "X${SUNOSMINVER}" != "X" ] && [ `expr ${SUNOSMINVER}` -ge 10 ]; then
        # Solaris10ʾλѿå
        ISSOL10=1
    fi
fi

cnvrgx()
{
    CNV=''
    for i in `echo $1 | sed -e 's/\(.\)/\1 /g'`
    do
        case $i in
        [a-z])
            _U=`echo $i | tr '[a-z]' '[A-Z]'`
            CNV="${CNV}[${i}${_U}]"
            ;;
        [A-Z])
            _L=`echo $i | tr '[A-Z]' '[a-z]'`
            CNV="${CNV}[${_L}${i}]"
            ;;
        *)
            CNV="${CNV}${i}"
            ;;
        esac
    done
    echo ${CNV}
}

getallsec()
{
    INFL=$1
    SECT=$2

    if [ "X${INFL}" = "X" ] || [ ! -f "${INFL}" ]; then
        echo "ERROR: you must be specify <filename> to 1st argv." 1>&2
        return 1
    fi
    if [ "X${SECT}" = "X" ]; then
        echo "ERROR: you must be specify <section> to 2nd argv." 1>&2
        return 1
    fi

    # cut /* ~ */
    MTMP=/tmp/.msc.tmp$$
    ECH_COMD="echo \$con=\`cat ${INFL}\`;\$con=~s{/\*.*?\*/}[]gsx;print \$con;"
    ${ECH_COMD}|${PRL_COMD} >${MTMP} 2>/dev/null

    if grep -i "^[ 	]*\[${SECT}\][ 	]*$" ${MTMP} >/dev/null; then
        true
    else
        echo "ERROR: section[${SECT}] not found." 1>&2
        rm -f ${MTMP} >/dev/null 2>&1
        return 1
    fi

    REG_SECT=`cnvrgx ${SECT}`
    TOTAL=`wc -l ${MTMP} | sed "s/ *//" | sed "s/ .*//"`
    LINES=`grep -n "\[${REG_SECT}\]" ${MTMP} | sed "s/: *.*//g"`

    for ll in ${LINES} ${TOTAL}
    do
        if echo ${ADR} | grep -i "^$" >/dev/null; then
            ADR=`echo ${ll},`
        elif echo ${ADR} | grep -i ",$" >/dev/null; then
            ADR=${ADR}${ll}
            if echo ${ll} | grep -i "^${TOTAL}$" >/dev/null; then
                ADR=${ADR}
            else
                ADR=`echo ${ADR} ${ll},`
            fi
        else
            ADR=`echo ${ADR} ${ll},`
        fi
    done

    for adr in ${ADR}
    do
        RESULT=`sed -n -e "${adr}{
            s/\/\/.*$//
            s/#.*$//
            /^[ 	]*$/d
            s/^[ 	]*//
            s/[ 	]*$//
            /^\[${REG_SECT}\]$/d
            /^\[.*\]$/q
            s/[ 	]*=[ 	]*/ = /
            p
        }" ${MTMP}`

        if [ "X${RESULT}" != "X" ]; then
            echo "${RESULT}"
            RESULT_ALL=${RESULT_ALL}${RESULT}
        fi
    done
    rm -f ${MTMP} >/dev/null 2>&1

    if [ "X${RESULT_ALL}" = "X" ]; then
        echo "ERROR: no variables in a section[${SECT}]." 1>&2
        return 1
    fi
    return 0
}

cnv_schedule()
{
    A_ScheConf=$1
    A_CmndConf=$2

    if [ "X${A_ScheConf}" = "X" ] || [ ! -f "${A_ScheConf}" ] || [ "X${A_CmndConf}" = "X" ] || [ ! -f "${A_CmndConf}" ]; then
        return 1
    fi

    SSS=0
    for stype in GUTS_WATCH_PL GUTS_BAKUP_PL GUTS_MREPO_PL GUTS_MSTAT_PL WG_MAKE_WEBMAILLOG_PHP GUTS_MKSRCHINDEX
    do
        V_SCHE=`grep "^${stype}" ${A_ScheConf} 2>/dev/null |sed "s/${stype}[ 	]*=[ 	]*//"`
        if [ "X${V_SCHE}" = "X" ]; then
            continue
        fi
        V_COMN=`grep "^${stype}" ${A_CmndConf} 2>/dev/null |sed "s/${stype}[ 	]*=[ 	]*//"`
        if [ "X${V_COMN}" = "X" ]; then
            continue
        fi

        P_MAIL=""
        P_QUIT=0
        P_TYPE=""
        P_CONT=1
        P_DEVI=""
        P_ADDD=0
        for cpara in ${V_COMN}
        do
            if [ "X${cpara}" = "X" ]; then
                continue
            fi

            case ${cpara} in
            --quiet)
                P_QUIT=1
                continue
                ;;
            --day)
                P_TYPE="day"
                continue
                ;;
            --week)
                P_TYPE="week"
                continue
                ;;
            --month)
                P_TYPE="month"
                continue
                ;;
            --add)
                P_ADDD=1
                continue
                ;;
            esac
            if [ "X${P_MAIL}" = "X" ]; then
                P_MAIL=`echo "${cpara}" |sed -n 's/^--mail=\(.*\)/\1/p'`
                if [ "X${P_MAIL}" != "X" ]; then
                    continue
                fi
            fi
            if [ "X${P_DEVI}" = "X" ]; then
                P_DEVI=`echo "${cpara}" |sed -n 's/^--dev=\(.*\)/\1/p'`
                if [ "X${P_DEVI}" != "X" ]; then
                    continue
                fi
            fi
            if [ "X${P_TYPE}" = "X" ]; then
                P_DMMY=`echo "${cpara}" |sed -n 's/^--day=\(.*\)/\1/p'`
                if [ "X${P_DMMY}" != "X" ]; then
                    P_TYPE="day"
                    P_CONT=${P_DMMY}
                    continue
                fi
                P_DMMY=`echo "${cpara}" |sed -n 's/^--week=\(.*\)/\1/p'`
                if [ "X${P_DMMY}" != "X" ]; then
                    P_TYPE="week"
                    P_CONT=${P_DMMY}
                    continue
                fi
                P_DMMY=`echo "${cpara}" |sed -n 's/^--month=\(.*\)/\1/p'`
                if [ "X${P_DMMY}" != "X" ]; then
                    P_TYPE="month"
                    P_CONT=${P_DMMY}
                    continue
                fi
            fi
        done

        SSS=`expr ${SSS} + 1`
        A_EAS_PFILE="${ADMNDIR}/etc/admin/schedule/${SSS}.prm"
        if [ -f "${A_EAS_PFILE}" ]; then
            mv ${A_EAS_PFILE} ${A_EAS_PFILE}.bak >/dev/null 2>&1
        fi
        echo "comment =" >${A_EAS_PFILE} 2>/dev/null
        echo "mailaddress = ${P_MAIL}" >>${A_EAS_PFILE} 2>/dev/null

        case ${stype} in
        GUTS_WATCH_PL)
            if [ ${P_QUIT} -eq 0 ]; then
                echo "ngonly = false" >>${A_EAS_PFILE} 2>/dev/null
            else
                echo "ngonly = true" >>${A_EAS_PFILE} 2>/dev/null
            fi
            echo "${SSS} = GUTS_A_WATCH ${V_SCHE}"
            ;;
        GUTS_BAKUP_PL)
            if [ ${P_QUIT} -eq 0 ]; then
                echo "ngonly = false" >>${A_EAS_PFILE} 2>/dev/null
            else
                echo "ngonly = true" >>${A_EAS_PFILE} 2>/dev/null
            fi
            echo "term_type = ${P_TYPE}" >>${A_EAS_PFILE} 2>/dev/null
            echo "term_count = ${P_CONT}" >>${A_EAS_PFILE} 2>/dev/null
            echo "target = mail,web" >>${A_EAS_PFILE} 2>/dev/null
            echo "archive = all" >>${A_EAS_PFILE} 2>/dev/null
            echo "device = tape" >>${A_EAS_PFILE} 2>/dev/null
            echo "devicepath = ${P_DEVI}" >>${A_EAS_PFILE} 2>/dev/null
            echo "overwrite = true" >>${A_EAS_PFILE} 2>/dev/null
            if [ ${P_ADDD} -eq 0 ]; then
                echo "${SSS} = GUTS_A_BACKUP ${V_SCHE}"
            else
                echo "#${SSS} = GUTS_A_BACKUP ${V_SCHE}"
            fi
            ;;
        GUTS_MREPO_PL)
            echo "term_type = ${P_TYPE}" >>${A_EAS_PFILE} 2>/dev/null
            echo "term_count = ${P_CONT}" >>${A_EAS_PFILE} 2>/dev/null
            echo "${SSS} = GUTS_M_REPORT ${V_SCHE}"
            ;;
        GUTS_MSTAT_PL)
            echo "term_type = ${P_TYPE}" >>${A_EAS_PFILE} 2>/dev/null
            echo "term_count = ${P_CONT}" >>${A_EAS_PFILE} 2>/dev/null
            echo "${SSS} = GUTS_M_STAT ${V_SCHE}"
            ;;
        WG_MAKE_WEBMAILLOG_PHP)
            if [ ${P_QUIT} -eq 0 ]; then
                echo "ngonly = false" >>${A_EAS_PFILE} 2>/dev/null
            else
                echo "ngonly = true" >>${A_EAS_PFILE} 2>/dev/null
            fi
            echo "target = webmail" >>${A_EAS_PFILE} 2>/dev/null
            echo "${SSS} = GUTS_W_CACHELOG ${V_SCHE}"
            ;;
        GUTS_MKSRCHINDEX)
            if [ ${P_QUIT} -eq 0 ]; then
                echo "ngonly = false" >>${A_EAS_PFILE} 2>/dev/null
            else
                echo "ngonly = true" >>${A_EAS_PFILE} 2>/dev/null
            fi
            echo "${SSS} = GUTS_F_INDEX ${V_SCHE}"
            ;;
        esac

        chown root ${A_EAS_PFILE} >/dev/null 2>&1
        chgrp root ${A_EAS_PFILE} >/dev/null 2>&1
        chmod 0644 ${A_EAS_PFILE} >/dev/null 2>&1
    done

    return 0
}

err_config()
{
    puts 0 -6 "${ERR_02}"
    puts 0 -5 "$1"
    puts 0 -3 "${ERR_03}"
    puts 0 -2 "${ERR_04}${BELL}"
    CONFIGERR=1
    xy_status "${CTMSG}"
    pause
    clear_content
    return 0
}

s_shmchk()
{
    if [ ${UPGRADE} -gt 1 ]; then
        return 0
    fi

    if [ ${UNAME} = "Linux" ]; then
        # 綦ͭꥻȥå
        puts 0 1 "${BOLD}${MSG_73}${NRML}"

        CHK_SVALUE=`/sbin/sysctl -n kernel.shmmax 2>/dev/null`
        # SHMMAX  16MB 꾮ȥ顼Ȥ
        if [ "X${CHK_SVALUE}" = "X" ] || [ `expr ${CHK_SVALUE}` -ge 0 -a `expr ${CHK_SVALUE}` -lt 16777216 ]; then
            puts 0 -3 "${ERR_38}"
            puts 0 -2 "${ERR_39}${BELL}"
            xy_status "${MSG_74}"
            pause
            return 2
        fi
        CHK_SVALUE=`/sbin/sysctl -n kernel.sem 2>/dev/null`
        if [ "X${CHK_SVALUE}" != "X" ]; then
            SEM_VAL_1=`echo "${CHK_SVALUE}" 2>/dev/null |awk '{print $1}'`
            SEM_VAL_2=`echo "${CHK_SVALUE}" 2>/dev/null |awk '{print $2}'`
            SEM_VAL_3=`echo "${CHK_SVALUE}" 2>/dev/null |awk '{print $3}'`
            SEM_VAL_4=`echo "${CHK_SVALUE}" 2>/dev/null |awk '{print $4}'`

            # SEMMNI   10 꾮ȥ顼Ȥ
            if [ "X${SEM_VAL_4}" = "X" ] || [ `expr ${SEM_VAL_4}` -lt 10 ]; then
                puts 0 -3 "${ERR_38}"
                puts 0 -2 "${ERR_43}${BELL}"
                xy_status "${MSG_74}"
                pause
                return 2
            fi
            # SEMMNS  250 꾮ȥ顼Ȥ
            if [ "X${SEM_VAL_2}" = "X" ] || [ `expr ${SEM_VAL_2}` -lt 250 ]; then
                puts 0 -3 "${ERR_38}"
                puts 0 -2 "${ERR_44}${BELL}"
                xy_status "${MSG_74}"
                pause
                return 2
            fi
        fi
    else
        if [ ${ISSOL10} -eq 1 ]; then
            # Solaris10ʾλϲʤ
            return 0
        fi

        # 綦ͭꥻȥå
        puts 0 1 "${BOLD}${MSG_73}${NRML}"

        CHK_SVALUE=`/usr/sbin/sysdef 2>/dev/null |grep 'SHMMAX' |awk '{print $1}'`
        # SHMMAX  16MB 꾮ȥ顼Ȥ
        if [ "X${CHK_SVALUE}" = "X" ] || [ `expr ${CHK_SVALUE}` -ge 0 -a `expr ${CHK_SVALUE}` -lt 16777216 ]; then
            puts 0 -3 "${ERR_38}"
            puts 0 -2 "${ERR_39}${BELL}"
            xy_status "${MSG_74}"
            pause
            return 2
        fi
        CHK_SVALUE=`/usr/sbin/sysdef 2>/dev/null |grep 'SEMMNI' |awk '{print $1}'`
        # SEMMNI   10 꾮ȥ顼Ȥ (ϵ)
        if [ "X${CHK_SVALUE}" != "X" ] && [ `expr ${CHK_SVALUE}` -lt 10 ]; then
            puts 0 -3 "${ERR_38}"
            puts 0 -2 "${ERR_43}${BELL}"
            xy_status "${MSG_74}"
            pause
            return 2
        fi
        CHK_SVALUE=`/usr/sbin/sysdef 2>/dev/null |grep 'SEMMNS' |awk '{print $1}'`
        # SEMMNS  250 꾮ȥ顼Ȥ (ϵ)
        if [ "X${CHK_SVALUE}" != "X" ] && [ `expr ${CHK_SVALUE}` -lt 250 ]; then
            puts 0 -3 "${ERR_38}"
            puts 0 -2 "${ERR_44}${BELL}"
            xy_status "${MSG_74}"
            pause
            return 2
        fi
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

s_befunc_a()
{
    UPGRADE=0
    if [ -d ${GRDNDIR} ]; then
        chown root ${GRDNDIR} >/dev/null 2>&1
        chgrp root ${GRDNDIR} >/dev/null 2>&1
        chmod 0755 ${GRDNDIR} >/dev/null 2>&1
    fi

    xy_status ""
    return 0
}

mg_befunc_a()
{
    UPGRADE=0
    if [ ${UNAME} = "Linux" ]; then
        if [ -f /usr/sbin/sendmail ]; then
            if [ -f /usr/lib/sendmail ]; then
                cmp /usr/lib/sendmail /usr/sbin/sendmail>/dev/null 2>&1
                if [ $? -ne 0 ]; then
                    xy_warning "${ERR_14}"
                    xy_homecsor
                    exit 1
                fi
            else
                ln -s /usr/sbin/sendmail /usr/lib/sendmail >/dev/null 2>&1
            fi
        fi
    fi
    if [ -d ${GRDNDIR} ]; then
        chown root ${GRDNDIR} >/dev/null 2>&1
        chgrp root ${GRDNDIR} >/dev/null 2>&1
        chmod 0755 ${GRDNDIR} >/dev/null 2>&1
    fi

    xy_status ""
    return 0
}

s_affunc_a()
{
    if [ -f ${ADMNDIR}/bin/wrapper ]; then
        chgrp nobody ${ADMNDIR}/bin/wrapper >/dev/null 2>&1
        chmod 04550 ${ADMNDIR}/bin/wrapper >/dev/null 2>&1
    fi
    if [ -f ${ADMNDIR}/bin/event_logger.php ]; then
        chmod 04755 ${ADMNDIR}/bin/event_logger.php >/dev/null 2>&1
    fi
    if [ -f ${ADMNDIR}/wall/bin/mw_conf ]; then
        chmod 04755 ${ADMNDIR}/wall/bin/mw_conf >/dev/null 2>&1
    fi
    if [ -f ${ADMNDIR}/wall/bin/mw_acl ]; then
        chmod 04755 ${ADMNDIR}/wall/bin/mw_acl >/dev/null 2>&1
    fi

    if [ ${UNAME} = "Linux" -a -f ${ADMNDIR}/httpd/bin/apachectl ]; then
        if [ ! -f ${INITDIR}/Guardian.admin ]; then
            cp -p ${ADMNDIR}/httpd/bin/apachectl ${INITDIR}/Guardian.admin >/dev/null 2>&1
            /sbin/chkconfig --add Guardian.admin >/dev/null 2>&1
        else
            diff ${ADMNDIR}/httpd/bin/apachectl ${INITDIR}/Guardian.admin >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                cp -p ${ADMNDIR}/httpd/bin/apachectl ${INITDIR}/Guardian.admin >/dev/null 2>&1
            fi
        fi
    fi

    if [ ! -f ${ADMNDIR}/httpd/conf/httpd.conf ]; then
        cp ${ADMNDIR}/httpd/conf/httpd.conf.Admin ${ADMNDIR}/httpd/conf/httpd.conf >/dev/null 2>&1
        chown root ${ADMNDIR}/httpd/conf/httpd.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/httpd/conf/httpd.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/httpd/conf/httpd.conf >/dev/null 2>&1
    fi

    xy_status ""
    return 0
}

mg_affunc_a()
{
    if [ -f ${WALLDIR}/bin/mw_acl ]; then
        chmod 04755 ${WALLDIR}/bin/mw_acl >/dev/null 2>&1
    fi
    if [ -f ${WALLDIR}/bin/mw_conf ]; then
        chmod 04755 ${WALLDIR}/bin/mw_conf >/dev/null 2>&1
    fi
    if [ -f ${WALLDIR}/bin/mw_list ]; then
        chmod 04755 ${WALLDIR}/bin/mw_list >/dev/null 2>&1
    fi

    if [ ${UNAME} = "Linux" -a -f ${WALLDIR}/etc/MailWall ]; then
        if [ ! -f ${INITDIR}/Guardian.mail ]; then
            cp -p ${WALLDIR}/etc/MailWall ${INITDIR}/Guardian.mail >/dev/null 2>&1
            /sbin/chkconfig --add Guardian.mail >/dev/null 2>&1
        else
            diff ${WALLDIR}/etc/MailWall ${INITDIR}/Guardian.mail >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                cp -p ${WALLDIR}/etc/MailWall ${INITDIR}/Guardian.mail >/dev/null 2>&1
            fi
        fi
    fi

    xy_status ""
    return 0
}

wg_affunc_a()
{
    if [ ${UNAME} = "Linux" -a -f ${WEBGDIR}/sbin/wgctl ]; then
        if [ ! -f ${INITDIR}/Guardian.web ]; then
            cp -p ${WEBGDIR}/sbin/wgctl ${INITDIR}/Guardian.web >/dev/null 2>&1
            /sbin/chkconfig --add Guardian.web >/dev/null 2>&1
        else
            diff ${WEBGDIR}/sbin/wgctl ${INITDIR}/Guardian.web >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                cp -p ${WEBGDIR}/sbin/wgctl ${INITDIR}/Guardian.web >/dev/null 2>&1
            fi
        fi
    fi

    xy_status ""
    return 0
}

pdb_affunc_a()
{
    if [ ${UNAME} = "Linux" -a -f ${PSQLDIR}/share/Guardian.db ]; then
        if [ ! -f ${INITDIR}/Guardian.db ]; then
            cp -p ${PSQLDIR}/share/Guardian.db ${INITDIR}/Guardian.db >/dev/null 2>&1
            /sbin/chkconfig --add Guardian.db >/dev/null 2>&1
        else
            diff ${PSQLDIR}/share/Guardian.db ${INITDIR}/Guardian.db >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                cp -p ${PSQLDIR}/share/Guardian.db ${INITDIR}/Guardian.db >/dev/null 2>&1
            fi
        fi
    fi

    xy_status ""
    return 0
}

dbs_config()
{
    puts 0 1 "${BOLD}${MSG_01}${NRML}"

    if [ ! -x ${GSA_CONF} ]; then
        err_config "${ERR_05} [guts_adminconf]"
    else
        while true
        do

            # ԥ᡼륢ɥ쥹Ϥ
            while true
            do
                puts 2 5 "AdminMailAddress     : root"
                xy_status "${MSG_02} [root]"
                xy_prompt
                read in_address
                if [ "X${in_address}" = "X" ]; then
                    in_address=root
                fi
                ${GSA_CONF} -c -sAdmin -kAdminMailAddress -- "${in_address}" >/dev/null 2>&1
                if [ $? -eq 0 ]; then
                    if [ "${in_address}" != "root" ]; then
                        puts 25 5 "${in_address}"
                    fi
                    break
                fi
                xy_warning "${ERR_06}"
                sleep 3
            done

            # ǡ١ǥ쥯ȥϤ
            while true
            do
                puts 2 6 "DatabaseDirectory    : /var/opt/Guardian/Admin/database/pgsql/"
                xy_status "${MSG_79} [/var/opt/Guardian/Admin/database/pgsql/]"
                xy_prompt
                read database_dir
                if [ "X${database_dir}" = "X" ]; then
                    database_dir=/var/opt/Guardian/Admin/database/pgsql/
                fi
                database_dir=`echo "${database_dir}" | sed 's/\([^\/]\)$/\1\//'`
                ${GSA_CONF} -c -sDirectories -kDatabaseDirectory ${database_dir} >/dev/null 2>&1
                if [ $? -eq 0 ]; then
                    # ǥ쥯ȥ꤬
                    if [ "`ls -A ${database_dir} 2>/dev/null`" = "" ]; then
                        if [ "${database_dir}" != "/var/opt/Guardian/Admin/database/pgsql/" ]; then
                            puts 25 6 "${database_dir}"
                        fi
                        break
                    fi
                    xy_warning "${ERR_45}"
                    sleep 3
                else
                    xy_warning "${ERR_06}"
                    sleep 3
                fi
            done

            if [ "${PRDCT}" != "1" ]; then
                EXPIREDATE=`${SUPPORT} -e 2>/dev/null`
                puts  2 7 "${TRIAL}"
                puts 23 7 ": ${WRD_01} ${EXPIREDATE}"
            fi

            while true
            do
                xy_status "${MSG_03}"
                xy_prompt
                read ANS
                case ${ANS} in
                y|Y|yes|Yes|YES)
                    break 2
                    ;;
                n|N|no|No|NO)
                    break
                    ;;
                *)
                    xy_warning "${ERR_06}"
                    sleep 3
                    ;;
                esac
            done

            puts 2 5 ""
            puts 2 6 ""
            if [ "${PRDCT}" != "1" ]; then
                puts 2 7 ""
            fi
        done

        as_domain=`${SUPPORT} -d 2>/dev/null`
        if [ $? -ne 0 ]; then
            as_domain="example.com"
        fi

        if [ -x ${SENDMAIL} ]; then
            VTMP=/tmp/.gsa.tmp$$
            `${SENDMAIL} -bv -d0 >${VTMP} 2>&1`
            if (grep '^Version' ${VTMP} >/dev/null 2>&1); then
                SMVER=`grep '^Version' ${VTMP} |awk '{print $2}'`
                SMVER_MAJ=`echo ${SMVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\..*/\1/'`
                SMVER_MIN=`echo ${SMVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\..*/\2/'`
                SMOPT=0
                if [ `expr ${SMVER_MAJ}` -gt 8 ]; then
                    SMOPT=1
                elif [ `expr ${SMVER_MAJ}` -eq 8 -a `expr ${SMVER_MIN}` -ge 12 ]; then
                    SMOPT=1
                fi
                if [ ${SMOPT} -eq 1 ]; then
                    ${GSA_CONF} -r -sSMTP -kSendmailOption -- "-Am" >/dev/null 2>&1
                    if [ $? -ne 0 ]; then
                        err_config "${ERR_16} [Key=SendmailOption]"
                    fi
                fi
            fi
            rm -f ${VTMP}
        fi

        # WALLСѤɥᥤ̾Ƥ
        ${GSA_CONF} -f${ADMSS_F} -r -sMail -kInternalDomains -- "${as_domain}" >/dev/null 2>&1
        # WALLСѤ˴ԥ᡼륢ɥ쥹Ƥ
        ${GSA_CONF} -f${ADMSS_F} -r -sAdmin -kAdminMailAddress -- "${in_address}" >/dev/null 2>&1
        # WGСѤ˴ԥ᡼륢ɥ쥹Ƥ
        echo "default: ${in_address}" >>${ADWGM_F} 2>/dev/null

        ${GSA_CONF} -r -sMail -kInternalDomains -- "${as_domain}" >/dev/null 2>&1
        RES1=$?
        ${GSA_CONF} -r -sAdmin -kAdminMailAddress -- "${in_address}" >/dev/null 2>&1
        RES2=$?
        ${GSA_CONF} -r -sLicense -kLicenseKey `${SUPPORT} -a` >/dev/null 2>&1
        RES3=$?
        # DatabaseDirectory
        ${GSA_CONF} -r -sDirectories -kDatabaseDirectory ${database_dir} >/dev/null 2>&1
        RES4=$?

        if [ ${RES1} -ne 0 -o ${RES2} -ne 0 -o ${RES3} -ne 0 -o ${RES4} -ne 0  ]; then
            YYY=5
            if [ ${RES1} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_07}"
            else
                puts 0 ${YYY} ""
            fi
            YYY=`expr ${YYY} + 1`
            if [ ${RES2} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_08}"
            else
                puts 0 ${YYY} ""
            fi
            YYY=`expr ${YYY} + 1`
            if [ ${RES3} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_09}"
            else
                puts 0 ${YYY} ""
            fi
            YYY=`expr ${YYY} + 1`
            if [ ${RES4} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_42}"
            else
                puts 0 ${YYY} ""
            fi
            YYY=`expr ${YYY} + 1`

            puts 0 ${YYY} ""
            YYY=`expr ${YYY} + 1`
            puts 0 ${YYY} "${ERR_03}"
            YYY=`expr ${YYY} + 1`
            puts 0 ${YYY} "${ERR_04}${BELL}"
            CONFIGERR=1
            xy_status "${CTMSG}"
            pause
            clear_content
        fi
    fi

    puts 0 1 ""
    puts 2 5 ""
    puts 2 6 ""
    if [ "${PRDCT}" != "1" ]; then
        puts 2 7 ""
    fi
    xy_status ""

    ## crontab
    CRNPLUS=${ADMNDIR}/etc/admin/default/admin.crontab
    (/usr/bin/crontab -l | egrep -ic 'Admin/bin/guts_launcher_c\.pl') >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        CRNPLUS="${CRNPLUS} ${ADMNDIR}/etc/cserv/default/admin.crontab"
    fi

    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    xy_homecsor
    ORIGINAL_CRON="${ADMNDIR}/crontab.`date +%Y%m%d`"
    WARN=0
    case "${UNAME}" in
    SunOS)
        (/usr/bin/crontab -l > ${ORIGINAL_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            (cat ${ORIGINAL_CRON} ${CRNPLUS} | /usr/bin/crontab) 2>/dev/null
            if [ $? -ne 0 ]; then
                WARN=1
            fi
        else
            WARN=1
        fi
        ;;
    Linux)
        if [ ! -f /var/spool/cron/root ]; then
            touch /var/spool/cron/root >/dev/null 2>&1
            chmod 0600 /var/spool/cron/root >/dev/null 2>&1
        fi
        (/usr/bin/crontab -l > ${ORIGINAL_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            (cat ${ORIGINAL_CRON} ${CRNPLUS} | egrep -iv '^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' | /usr/bin/crontab -) 2>/dev/null
            if [ $? -ne 0 ]; then
                WARN=1
            fi
        else
            WARN=1
        fi
        ;;
    esac
    if [ ${WARN} -eq 1 ]; then
        err_config "${ERR_10}"
    else
        xy_status "${MSG_05}"
        sleep 2
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

mg_config()
{
    puts 0 1 "${BOLD}${MSG_01}${NRML}"

    if [ ! -x ${MSS_CONF} ]; then
        err_config "${ERR_05} [mw_conf]"
    else
        while true
        do
            # sendmailޥɤĴ٤
            PPG=sendmail
            if [ -x ${SENDMAIL} ]; then
                VTMP=/tmp/.mgw.tmp$$
                `${SENDMAIL} -bv -d0 >${VTMP} 2>&1`
                if (grep '^sendmail: fatal:' ${VTMP} >/dev/null 2>&1); then
                    PPG=postfix
                elif (grep '^sendmail: usage:' ${VTMP} >/dev/null 2>&1); then
                    PPG=qmail
                else
                    SMVER=`grep '^Version' ${VTMP} |awk '{print $2}'`
                fi
                rm -f ${VTMP}
            fi
            # ᡼ѥץϤ
            while true
            do
                puts 2 5 "MSP                  : ${PPG}"
                xy_status "${MSG_37} [${PPG}]"
                xy_prompt
                read MSP
                if [ "X${MSP}" = "X" ]; then
                    MSP=${PPG}
                fi
                export MSP
                if [ "${MSP}" = "sendmail" ]; then
                    break
                elif [ "${MSP}" = "qmail" -o "${MSP}" = "postfix" ]; then
                    puts 25 5 "${MSP}"
                    break
                fi
                xy_warning "${ERR_06}"
                sleep 3
            done

            YYY=6
            # ɾǤλ
            if [ "${PRDCT}" != "1" ]; then
                EXPIREDATE=`${SUPPORT} -e 2>/dev/null`
                puts  2 ${YYY} "${TRIAL}"
                puts 23 ${YYY} ": ${WRD_01} ${EXPIREDATE}"
                YYY=`expr ${YYY} + 1`
            fi

            # MSPsendmailλΥСĴ٤
            if [ "X${MSP}" = "Xsendmail" ]; then
                xy_status "${MSG_40}"
                sleep 2

                if [ -x ${SENDMAIL} ]; then
                    VTMP=/tmp/.mgw.tmp$$
                    `${SENDMAIL} -bv -d0 >${VTMP} 2>&1`
                    if (grep '^sendmail: fatal:' ${VTMP} >/dev/null 2>&1); then
                        SMVER="unknown (postfix?)"
                    elif (grep '^sendmail: usage:' ${VTMP} >/dev/null 2>&1); then
                        SMVER="unknown (qmail?)"
                    elif (grep '^Version' ${VTMP} >/dev/null 2>&1); then
                        SMVER=`grep '^Version' ${VTMP} |awk '{print $2}'`
                        SMVER_MAJ=`echo ${SMVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\..*/\1/'`
                        SMVER_MIN=`echo ${SMVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\..*/\2/'`
                        SMOPT=0
                        if [ `expr ${SMVER_MAJ}` -gt 8 ]; then
                            SMOPT=1
                        elif [ `expr ${SMVER_MAJ}` -eq 8 -a `expr ${SMVER_MIN}` -ge 12 ]; then
                            SMOPT=1
                        fi
                        if [ ${SMOPT} -eq 1 ]; then
                            ${MSS_CONF} -r -sSMTP -kSendmailOption -- "-Am" >/dev/null 2>&1
                            if [ $? -ne 0 ]; then
                                err_config "${ERR_16} [Key=SendmailOption]"
                            fi
                        fi
                    else
                        SMVER="unknown (NOT Sendmail)"
                    fi
                    rm -f ${VTMP}
                else
                    SMVER="unknown (missing: ${SENDMAIL})"
                fi

                puts 2 ${YYY} "sendmail version     : ${SMVER}"
                YYY=`expr ${YYY} + 1`
            fi

            # ޤǤͤγǧ
            while true
            do
                xy_status "${MSG_03}"
                xy_prompt
                read ANS
                case ${ANS} in
                y|Y|yes|Yes|YES)
                    break 2
                    ;;
                n|N|no|No|NO)
                    break
                    ;;
                *)
                    xy_warning "${ERR_06}"
                    sleep 3
                    ;;
                esac
            done

            # ɽսΥꥢ
            YYY=5
            while [ ${YYY} -lt 10 ]
            do
                puts 2 ${YYY} ""
                YYY=`expr ${YYY} + 1`
            done

        done

        ${MSS_CONF} -r -sLicense -kLicenseKey `${SUPPORT} -k` >/dev/null 2>&1
        RES1=$?
        if [ "X${MSP}" != "Xsendmail" ]; then
            ${MSS_CONF} -r -sSmtp -kMailSubmissionProgram ${MSP} >/dev/null 2>&1
            RES2=$?
        else
            RES2="0"
        fi

        if [ ${RES1} -ne 0 -o ${RES2} -ne 0 ]; then
            YYY=5
            while [ ${YYY} -lt 10 ]
            do
                puts 2 ${YYY} ""
                YYY=`expr ${YYY} + 1`
            done
            YYY=5
            if [ ${RES1} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_09}"
                YYY=`expr ${YYY} + 1`
            fi
            if [ ${RES2} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_17}"
                YYY=`expr ${YYY} + 1`
            fi

            puts 0 ${YYY} ""
            YYY=`expr ${YYY} + 1`
            puts 0 ${YYY} ""
            YYY=`expr ${YYY} + 1`
            puts 0 ${YYY} "${ERR_03}"
            YYY=`expr ${YYY} + 1`
            puts 0 ${YYY} "${ERR_04}${BELL}"
            CONFIGERR=1
            xy_status "${CTMSG}"
            pause
            clear_content
        fi

        clear_content
        xy_status ""
    fi

    ## crontab
    ##
    (/usr/bin/crontab -l | egrep -ic 'Admin/bin/guts_launcher_c\.pl') >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        puts 0 1 "${BOLD}${MSG_04}${NRML}"
        xy_homecsor
        ORIGINAL_CRON="${ADMNDIR}/crontab.`date +%Y%m%d`"
        WARN=0
        case "${UNAME}" in
        SunOS)
            (/usr/bin/crontab -l > ${ORIGINAL_CRON}) 2>/dev/null
            if [ $? -eq 0 ]; then
                (cat ${ORIGINAL_CRON} ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab) 2>/dev/null
                if [ $? -ne 0 ]; then
                    WARN=1
                fi
            else
                WARN=1
            fi
            ;;
        Linux)
            if [ ! -f /var/spool/cron/root ]; then
                touch /var/spool/cron/root >/dev/null 2>&1
                chmod 0600 /var/spool/cron/root >/dev/null 2>&1
            fi
            (/usr/bin/crontab -l > ${ORIGINAL_CRON}) 2>/dev/null
            if [ $? -eq 0 ]; then
                (cat ${ORIGINAL_CRON} ${ADMNDIR}/etc/cserv/default/admin.crontab | egrep -iv '^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' | /usr/bin/crontab -) 2>/dev/null
                if [ $? -ne 0 ]; then
                    WARN=1
                fi
            else
                WARN=1
            fi
            ;;
        esac
        if [ ${WARN} -eq 1 ]; then
            err_config "${ERR_10}"
        else
            xy_status "${MSG_05}"
            sleep 2
        fi
    fi

    puts 0 1 ""
    xy_status ""

    ## MSP check
    ##
    if [ "X${MSP}" != "Xsendmail" ]; then
        xy_status "${MSG_43} [${MSP}]"
        if [ "X${MSP}" = "Xqmail" ]; then
            MAIL_PROGRAM=`${MSS_CONF} -l -sSMTP -kQmailProgram 2>/dev/null |awk '{print $2}'`
            MAIL_QUEUE=`${MSS_CONF} -l -sSMTP -kQmailQueueDirectory 2>/dev/null |awk '{print $2}'`
        elif [ "X${MSP}" = "Xpostfix" ]; then
            MAIL_PROGRAM=`${MSS_CONF} -l -sSMTP -kPostfixProgram 2>/dev/null |awk '{print $2}'`
            MAIL_QUEUE=`${MSS_CONF} -l -sSMTP -kPostfixQueueDirectory 2>/dev/null |awk '{print $2}'`
        fi
        WARN=0
        RES1=0
        RES2=0
        if [ "X${MAIL_PROGRAM}" = "X" ]; then
            WARN=1
        elif [ ! -x "${MAIL_PROGRAM}" ]; then
            WARN=1
            RES1=1
        fi
        if [ "X${MAIL_QUEUE}" = "X" ]; then
            WARN=1
        elif [ ! -d "${MAIL_QUEUE}" ]; then
            WARN=1
            RES2=1
        fi
        YYY=3
        if [ ${RES1} -ne 0 ]; then
            puts 0 ${YYY} "${ERR_19} [${MAIL_PROGRAM}]"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${RES2} -ne 0 ]; then
            puts 0 ${YYY} "${ERR_20} [${MAIL_QUEUE}]"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${WARN} -ne 0 ]; then
            xy_warning "${MSG_44}"
            sleep 5
        fi
        YYY="3"
        while [ ${YYY} -lt 10 ]
        do
            puts 0 ${YYY} ""
            YYY=`expr ${YYY} + 1`
        done
    else
        if [ ${UNAME} = "Linux" ]; then
            /sbin/chkconfig --del sendmail >/dev/null 2>&1
        elif [ ${ISSOL10} -eq 1 ]; then
            /usr/sbin/svcadm disable svc:/network/smtp:sendmail >/dev/null 2>&1
        else
            SENDMAILRC=`ls /etc/rc2.d/S*sendmail 2>/dev/null`
            for target in ${SENDMAILRC}
            do
                if [ -f ${target} ]; then
                    mv ${target} `dirname ${target}`/_`basename ${target}`
                fi
            done
        fi
    fi

    xy_status ""
    return 0
}

mgs_config()
{
    puts 0 1 "${BOLD}${MSG_01}${NRML}"

    if [ ! -x ${MSS_CONF} -o ! -x ${GSA_CONF} -o ! -x ${GSS_CONF} ]; then
        err_config "${ERR_05} [mw_conf | guts_adminconf | guts_servconf]"
    else
        CSERVID=1
        while true
        do
            if [ -d ${ADMNDIR}/etc/admin/server/${CSERVID} ]; then
                CSERVID=`expr ${CSERVID} + 1`
                continue
            fi
            mkdir -p ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            chmod 0755 ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            break
        done
        cp ${ADMNDIR}/etc/admin/default/server.conf ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf >/dev/null 2>&1
        cp ${ADMNDIR}/etc/admin/default/schedule.conf ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/schedule.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/schedule.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/schedule.conf >/dev/null 2>&1
        cp ${ADMNDIR}/etc/admin/default/timestamp.log ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/timestamp.log >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/timestamp.log >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/timestamp.log >/dev/null 2>&1

        mkdir -p ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
        chmod 0755 ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
        cp ${ADMNDIR}/etc/cserv/default/server.conf ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/cserv/server/mail/server.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/cserv/server/mail/server.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/cserv/server/mail/server.conf >/dev/null 2>&1

        ASERV_F=${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf
        CSERV_F=${ADMNDIR}/etc/cserv/server/mail/server.conf

        a_myaddr=`${SUPPORT} -i 2>/dev/null`
        if [ $? -ne 0 ]; then
            a_myaddr="127.0.0.1"
        fi
        ${GSA_CONF} -f${ASERV_F} -r -sGeneral -kIPaddress ${a_myaddr} >/dev/null 2>&1
        ${GSS_CONF} -f${CSERV_F} -r -sGeneral -kIPaddress ${a_myaddr} >/dev/null 2>&1

        a_myname=`uname -n 2>/dev/null`
        if [ $? -ne 0 ]; then
            a_myname="localhost"
        fi
        ${GSA_CONF} -f${ASERV_F} -r -sGeneral -kComment ${a_myname} >/dev/null 2>&1
        ${GSS_CONF} -f${CSERV_F} -r -sGeneral -kComment ${a_myname} >/dev/null 2>&1

        ${GSA_CONF} -f${ASERV_F} -r -sGeneral -kFilter mail >/dev/null 2>&1
        ${GSS_CONF} -f${CSERV_F} -r -sGeneral -kServerID ${CSERVID} >/dev/null 2>&1

        ${GSA_CONF} -f${ASERV_F} -r -sCGI -kUserName admin >/dev/null 2>&1
        ${GSS_CONF} -f${CSERV_F} -r -sCGI -kUserName admin >/dev/null 2>&1

        a_mypass=`${GPW_SCPT}|${PHP_COMD} 2>/dev/null`
        if [ $? -ne 0 ]; then
            a_mypass="Z3VhcmRpYW5zdWl0ZWFkbWlu"
        fi
        ${GSA_CONF} -f${ASERV_F} -r -sCGI -kPassword -- "${a_mypass}" >/dev/null 2>&1
        ${GSS_CONF} -f${CSERV_F} -r -sCGI -kPassword -- "${a_mypass}" >/dev/null 2>&1

        while true
        do

            # ɥᥤ̾Ϥ
            while true
            do
                domain=`${SUPPORT} -d 2>/dev/null`
                if [ $? -ne 0 ]; then
                    domain="unknown"
                fi
                puts 2 3 "InternalDomains      : ${domain}"
                xy_status "${MSG_36} [${domain}]"
                xy_prompt
                read internaldomain
                if [ "X${internaldomain}" = "X" ]; then
                    internaldomain=${domain}
                fi
                ${MSS_CONF} -c -sMail -kInternalDomains -- "${internaldomain}" >/dev/null 2>&1
                if [ $? -eq 0 ]; then
                    if [ "${internaldomain}" != "${domain}" ]; then
                        puts 25 3 "${internaldomain}"
                    fi
                    break
                fi
                xy_warning "${ERR_06}"
                sleep 3
            done

            # ԥ᡼륢ɥ쥹Ϥ
            while true
            do
                puts 2 4 "AdminMailAddress     : root"
                xy_status "${MSG_02} [root]"
                xy_prompt
                read adminaddress
                if [ "X${adminaddress}" = "X" ]; then
                    adminaddress=root
                fi
                ${MSS_CONF} -c -sAdmin -kAdminMailAddress -- "${adminaddress}" >/dev/null 2>&1
                if [ $? -eq 0 ]; then
                    if [ "${adminaddress}" != "root" ]; then
                        puts 25 4 "${adminaddress}"
                    fi
                    break
                fi
                xy_warning "${ERR_06}"
                sleep 3
            done

            # ǡ١ǥ쥯ȥϤ
            while true
            do
                puts 2 5 "DatabaseDirectory    : /var/opt/Guardian/Admin/database/pgsql/"
                xy_status "${MSG_79} [/var/opt/Guardian/Admin/database/pgsql/]"
                xy_prompt
                read database_dir
                if [ "X${database_dir}" = "X" ]; then
                    database_dir=/var/opt/Guardian/Admin/database/pgsql/
                fi
                database_dir=`echo "${database_dir}" | sed 's/\([^\/]\)$/\1\//'`
                ${GSA_CONF} -c -sDirectories -kDatabaseDirectory ${database_dir} >/dev/null 2>&1
                if [ $? -eq 0 ]; then
                    # ǥ쥯ȥ꤬
                    if [ "`ls -A ${database_dir} 2>/dev/null`" = "" ]; then
                        if [ "${database_dir}" != "/var/opt/Guardian/Admin/database/pgsql/" ]; then
                            puts 25 5 "${database_dir}"
                        fi
                        break
                    fi
                    xy_warning "${ERR_45}"
                    sleep 3
                else
                    xy_warning "${ERR_06}"
                    sleep 3
                fi
            done

            # sendmailޥɤĴ٤
            PPG=sendmail
            if [ -x ${SENDMAIL} ]; then
                VTMP=/tmp/.mgw.tmp$$
                `${SENDMAIL} -bv -d0 >${VTMP} 2>&1`
                if (grep '^sendmail: fatal:' ${VTMP} >/dev/null 2>&1); then
                    PPG=postfix
                elif (grep '^sendmail: usage:' ${VTMP} >/dev/null 2>&1); then
                    PPG=qmail
                else
                    SMVER=`grep '^Version' ${VTMP} |awk '{print $2}'`
                fi
                rm -f ${VTMP}
            fi
            # ᡼ѥץϤ
            while true
            do
                puts 2 6 "MSP                  : ${PPG}"
                xy_status "${MSG_37} [${PPG}]"
                xy_prompt
                read MSP
                if [ "X${MSP}" = "X" ]; then
                    MSP=${PPG}
                fi
                export MSP
                if [ "${MSP}" = "sendmail" ]; then
                    break
                elif [ "${MSP}" = "qmail" -o "${MSP}" = "postfix" ]; then
                    puts 25 6 "${MSP}"
                    break
                fi
                xy_warning "${ERR_06}"
                sleep 3
            done

            YYY=7
            # ɾǤλ
            if [ "${PRDCT}" != "1" ]; then
                EXPIREDATE=`${SUPPORT} -e 2>/dev/null`
                puts  2 ${YYY} "${TRIAL}"
                puts 23 ${YYY} ": ${WRD_01} ${EXPIREDATE}"
                YYY=`expr ${YYY} + 1`
            fi

            # MSPsendmailλΥСĴ٤
            if [ "X${MSP}" = "Xsendmail" ]; then
                xy_status "${MSG_40}"
                sleep 2
                if [ -x ${SENDMAIL} ]; then
                    VTMP=/tmp/.mgw.tmp$$
                    `${SENDMAIL} -bv -d0 >${VTMP} 2>&1`
                    if (grep '^sendmail: fatal:' ${VTMP} >/dev/null 2>&1); then
                        SMVER="unknown (postfix?)"
                    elif (grep '^sendmail: usage:' ${VTMP} >/dev/null 2>&1); then
                        SMVER="unknown (qmail?)"
                    elif (grep '^Version' ${VTMP} >/dev/null 2>&1); then
                        SMVER=`grep '^Version' ${VTMP} |awk '{print $2}'`
                        SMVER_MAJ=`echo ${SMVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\..*/\1/'`
                        SMVER_MIN=`echo ${SMVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\..*/\2/'`
                        SMOPT=0
                        if [ `expr ${SMVER_MAJ}` -gt 8 ]; then
                            SMOPT=1
                        elif [ `expr ${SMVER_MAJ}` -eq 8 -a `expr ${SMVER_MIN}` -ge 12 ]; then
                            SMOPT=1
                        fi
                        if [ ${SMOPT} -eq 1 ]; then
                            ${GSA_CONF} -r -sSMTP -kSendmailOption -- "-Am" >/dev/null 2>&1
                            RES1=$?
                            ${GSA_CONF} -f${ASERV_F} -r -sSMTP -kSendmailOption -- "-Am" >/dev/null 2>&1
                            RES2=$?
                            ${MSS_CONF} -r -sSMTP -kSendmailOption -- "-Am" >/dev/null 2>&1
                            RES3=$?
                            if [ ${RES1} -ne 0 -o ${RES2} -ne 0 -o ${RES3} -ne 0 ]; then
                                err_config "${ERR_16} [Key=SendmailOption]"
                            fi
                        fi
                    else
                        SMVER="unknown (NOT Sendmail)"
                    fi
                    rm -f ${VTMP}
                else
                    SMVER="unknown (missing: ${SENDMAIL})"
                fi

                puts 2 ${YYY} "sendmail version     : ${SMVER}"
                YYY=`expr ${YYY} + 1`
            fi

            # ޤǤͤγǧ
            while true
            do
                xy_status "${MSG_03}"
                xy_prompt
                read ANS
                case ${ANS} in
                y|Y|yes|Yes|YES)
                    break 2
                    ;;
                n|N|no|No|NO)
                    break
                    ;;
                *)
                    xy_warning "${ERR_06}"
                    sleep 3
                    ;;
                esac
            done

            # ɽսΥꥢ
            YYY="3"
            while [ ${YYY} -lt 11 ]
            do
                puts 2 ${YYY} ""
                YYY=`expr ${YYY} + 1`
            done

        done

        # СΥ¸ǥ쥯ȥϡСƱˤ
        ${GSA_CONF} -r -sDirectories -kLogDirectory ${MLOGDIR} >/dev/null 2>&1

        # С̤Υ¸ǥ쥯ȥϡŪ˥ǥեȤ򥻥å
        ${GSA_CONF} -f${ASERV_F} -r -sDirectories -kLogDirectory ${MLOGDIR} >/dev/null 2>&1

        # ᡼˴ؤƼ¸֤Ϥ٤ 0(̵) ˤ
        ${GSA_CONF} -r -sExpire -kSystemLog 0 >/dev/null 2>&1
        ${GSA_CONF} -r -sExpire -kDeliverLog 0 >/dev/null 2>&1
        ${GSA_CONF} -r -sExpire -kScreeningLog 0 >/dev/null 2>&1
        ${GSA_CONF} -r -sExpire -kArchiveLog 0 >/dev/null 2>&1
        ${GSA_CONF} -r -sExpire -kManagerLog 0 >/dev/null 2>&1
        ${GSA_CONF} -r -sExpire -kViewerLog 0 >/dev/null 2>&1

        RES1=0
        ${GSA_CONF} -r -sMail -kInternalDomains -- "${internaldomain}" >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            RES1=1
        fi
        ${GSA_CONF} -f${ADMSS_F} -r -sMail -kInternalDomains -- "${internaldomain}" >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            RES1=1
        fi
        ${MSS_CONF} -r -sMail -kInternalDomains -- "${internaldomain}" >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            RES1=1
        fi

        # WGСѤ˴ԥ᡼륢ɥ쥹Ƥ
        echo "default: ${adminaddress}" >>${ADWGM_F} 2>/dev/null

        RES2=0
        ${GSA_CONF} -r -sAdmin -kAdminMailAddress -- "${adminaddress}" >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            RES2=1
        fi
        ${GSA_CONF} -f${ADMSS_F} -r -sAdmin -kAdminMailAddress -- "${adminaddress}" >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            RES2=1
        fi
        ${MSS_CONF} -r -sAdmin -kAdminMailAddress -- "${adminaddress}" >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            RES2=1
        fi

        RES3=0
        InitLicKey=`${SUPPORT} -k 2>/dev/null`
        ${GSA_CONF} -r -sLicense -kLicenseKey ${InitLicKey} >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            RES3=1
        fi
        ${GSA_CONF} -f${ASERV_F} -r -sLicense -kLicenseKey ${InitLicKey} >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            RES3=1
        fi
        ${MSS_CONF} -r -sLicense -kLicenseKey ${InitLicKey} >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            RES3=1
        fi

        if [ "X${MSP}" != "Xsendmail" ]; then
            RES4=0
            ${GSA_CONF} -r -sSmtp -kMailSubmissionProgram ${MSP} >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                RES4=1
            fi
            ${GSA_CONF} -f${ASERV_F} -r -sSmtp -kMailSubmissionProgram ${MSP} >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                RES4=1
            fi
            ${MSS_CONF} -r -sSmtp -kMailSubmissionProgram ${MSP} >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                RES4=1
            fi
        else
            RES4=0
        fi

        # DatabaseDirectory
        ${GSA_CONF} -r -sDirectories -kDatabaseDirectory ${database_dir} >/dev/null 2>&1
        RES5=$?

        if [ ${RES1} -ne 0 -o ${RES2} -ne 0 -o ${RES3} -ne 0 -o ${RES4} -ne 0 -o ${RES5} -ne 0 ]; then
            YYY="3"
            while [ ${YYY} -lt 11 ]
            do
                puts 2 ${YYY} ""
                YYY=`expr ${YYY} + 1`
            done

            YYY="3"
            if [ ${RES1} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_07}"
                YYY=`expr ${YYY} + 1`
            fi
            if [ ${RES2} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_08}"
                YYY=`expr ${YYY} + 1`
            fi
            if [ ${RES5} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_42}"
                YYY=`expr ${YYY} + 1`
            fi
            if [ ${RES3} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_09}"
                YYY=`expr ${YYY} + 1`
            fi
            if [ ${RES4} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_17}"
                YYY=`expr ${YYY} + 1`
            fi
            puts 0 ${YYY} ""
            YYY=`expr ${YYY} + 1`
            puts 0 ${YYY} "${ERR_03}"
            YYY=`expr ${YYY} + 1`
            puts 0 ${YYY} "${ERR_04}${BELL}"
            CONFIGERR=1
            xy_status "${CTMSG}"
            pause
        fi

        clear_content
        xy_status ""
    fi

    ## crontab
    ##
    CRNPLUS=${ADMNDIR}/etc/admin/default/admin.crontab
    (/usr/bin/crontab -l | egrep -ic 'Admin/bin/guts_launcher_c\.pl') >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        CRNPLUS="${CRNPLUS} ${ADMNDIR}/etc/cserv/default/admin.crontab"
    fi

    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    xy_homecsor
    ORIGINAL_CRON="${ADMNDIR}/crontab.`date +%Y%m%d`"
    WARN=0
    case "${UNAME}" in
    SunOS)
        (/usr/bin/crontab -l > ${ORIGINAL_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            (cat ${ORIGINAL_CRON} ${CRNPLUS} | /usr/bin/crontab) 2>/dev/null
            if [ $? -ne 0 ]; then
                WARN=1
            fi
        else
            WARN=1
        fi
        ;;
    Linux)
        if [ ! -f /var/spool/cron/root ]; then
            touch /var/spool/cron/root >/dev/null 2>&1
            chmod 0600 /var/spool/cron/root >/dev/null 2>&1
        fi
        (/usr/bin/crontab -l > ${ORIGINAL_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            (cat ${ORIGINAL_CRON} ${CRNPLUS} | egrep -iv '^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' | /usr/bin/crontab -) 2>/dev/null
            if [ $? -ne 0 ]; then
                WARN=1
            fi
        else
            WARN=1
        fi
        ;;
    esac
    if [ ${WARN} -eq 1 ]; then
        err_config "${ERR_10}"
    else
        xy_status "${MSG_05}"
        sleep 2
    fi

    puts 0 1 ""
    xy_status ""

    ## MSP check
    ##
    if [ "X${MSP}" != "Xsendmail" ]; then
        xy_status "${MSG_43} [${MSP}]"
        if [ "X${MSP}" = "Xqmail" ]; then
            MAIL_PROGRAM=`${MSS_CONF} -l -sSMTP -kQmailProgram 2>/dev/null |awk '{print $2}'`
            MAIL_QUEUE=`${MSS_CONF} -l -sSMTP -kQmailQueueDirectory 2>/dev/null |awk '{print $2}'`
        elif [ "X${MSP}" = "Xpostfix" ]; then
            MAIL_PROGRAM=`${MSS_CONF} -l -sSMTP -kPostfixProgram 2>/dev/null |awk '{print $2}'`
            MAIL_QUEUE=`${MSS_CONF} -l -sSMTP -kPostfixQueueDirectory 2>/dev/null |awk '{print $2}'`
        fi
        WARN=0
        RES1=0
        RES2=0
        if [ "X${MAIL_PROGRAM}" = "X" ]; then
            WARN=1
        elif [ ! -x "${MAIL_PROGRAM}" ]; then
            WARN=1
            RES1=1
        fi
        if [ "X${MAIL_QUEUE}" = "X" ]; then
            WARN=1
        elif [ ! -d "${MAIL_QUEUE}" ]; then
            WARN=1
            RES2=1
        fi
        YYY="3"
        if [ ${RES1} -ne 0 ]; then
            puts 0 ${YYY} "${ERR_19} [${MAIL_PROGRAM}]"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${RES2} -ne 0 ]; then
            puts 0 ${YYY} "${ERR_20} [${MAIL_QUEUE}]"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${WARN} -ne 0 ]; then
            xy_warning "${MSG_44}"
            sleep 5
        fi
        YYY="3"
        while [ ${YYY} -lt 5 ]
        do
            puts 0 ${YYY} ""
            YYY=`expr ${YYY} + 1`
        done
    else
        if [ ${UNAME} = "Linux" ]; then
            /sbin/chkconfig --del sendmail >/dev/null 2>&1
        elif [ ${ISSOL10} -eq 1 ]; then
            /usr/sbin/svcadm disable svc:/network/smtp:sendmail >/dev/null 2>&1
        else
            SENDMAILRC=`ls /etc/rc2.d/S*sendmail 2>/dev/null`
            for target in ${SENDMAILRC}
            do
                if [ -f ${target} ]; then
                    mv ${target} `dirname ${target}`/_`basename ${target}`
                fi
            done
        fi
    fi

    xy_status ""
    return 0
}

wg_config()
{
    HTTPDCONF=${WEBGDIR}/conf/httpd.conf
    WGLSKEY=`${SUPPORT} -w 2>/dev/null`

    sed "s/\(WGLicenseKey *\)\(.*\)/\1${WGLSKEY}/" ${HTTPDCONF} > ${HTTPDCONF}.tmp
    mv ${HTTPDCONF}.tmp ${HTTPDCONF} >/dev/null 2>&1
    chown root ${HTTPDCONF} >/dev/null 2>&1
    chgrp root ${HTTPDCONF} >/dev/null 2>&1
    chmod 0644 ${HTTPDCONF} >/dev/null 2>&1
    echo "${WGLSKEY}" >${WCLIC_F} 2>/dev/null
    chown root ${WCLIC_F} >/dev/null 2>&1
    chgrp root ${WCLIC_F} >/dev/null 2>&1
    chmod 0644 ${WCLIC_F} >/dev/null 2>&1
    if [ -x ${EVL_COMD} ]; then
        ${EVL_COMD} >/dev/null 2>&1
    fi
    cp /dev/null ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    chown root ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    chgrp root ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    chmod 0644 ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1

    ## crontab
    (/usr/bin/crontab -l | egrep -ic 'Admin/bin/guts_launcher_c\.pl') >/dev/null 2>&1
    if [ $? -eq 0 ]; then
        return 0
    fi

    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    ORIGINAL_CRON="${ADMNDIR}/crontab.`date +%Y%m%d`"
    WARN=0
    case "${UNAME}" in
    SunOS)
        (/usr/bin/crontab -l > ${ORIGINAL_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            (cat ${ORIGINAL_CRON} ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab) 2>/dev/null
            if [ $? -ne 0 ]; then
                WARN=1
            fi
        else
            WARN=1
        fi
        ;;
    Linux)
        if [ ! -f /var/spool/cron/root ]; then
            touch /var/spool/cron/root >/dev/null 2>&1
            chmod 0600 /var/spool/cron/root >/dev/null 2>&1
        fi
        (/usr/bin/crontab -l > ${ORIGINAL_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            (cat ${ORIGINAL_CRON} ${ADMNDIR}/etc/cserv/default/admin.crontab | egrep -iv '^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' | /usr/bin/crontab -) 2>/dev/null
            if [ $? -ne 0 ]; then
                WARN=1
            fi
        else
            WARN=1
        fi
        ;;
    esac
    if [ ${WARN} -eq 1 ]; then
        err_config "${ERR_10}"
    else
        xy_status "${MSG_05}"
        sleep 2
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

wgs_config()
{
    puts 0 1 "${BOLD}${MSG_01}${NRML}"

    if [ ! -x ${GSA_CONF} -o ! -x ${GSS_CONF} ]; then
        err_config "${ERR_05} [guts_adminconf | guts_servconf]"
    else
        CSERVID=1
        while true
        do
            if [ -d ${ADMNDIR}/etc/admin/server/${CSERVID} ]; then
                CSERVID=`expr ${CSERVID} + 1`
                continue
            fi
            mkdir -p ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            chmod 0755 ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            break
        done
        cp ${ADMNDIR}/etc/admin/default/server.conf ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf >/dev/null 2>&1
        cp ${ADMNDIR}/etc/admin/default/schedule.conf ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/schedule.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/schedule.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/schedule.conf >/dev/null 2>&1
        cp ${ADMNDIR}/etc/admin/default/timestamp.log ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/timestamp.log >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/timestamp.log >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/timestamp.log >/dev/null 2>&1
        cp ${ADMNDIR}/etc/admin/default/httpd.conf ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/httpd.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/httpd.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/httpd.conf >/dev/null 2>&1
        cp ${ADMNDIR}/etc/admin/default/httpclient.conf ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/httpclient.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/httpclient.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/httpclient.conf >/dev/null 2>&1
        cp /dev/null ${ADMNDIR}/etc/admin/server/${CSERVID}/admin.conf >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/admin.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/admin.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/admin.conf >/dev/null 2>&1

        mkdir -p ${ADMNDIR}/etc/cserv/server/web >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/cserv/server/web >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/cserv/server/web >/dev/null 2>&1
        chmod 0755 ${ADMNDIR}/etc/cserv/server/web >/dev/null 2>&1
        cp ${ADMNDIR}/etc/cserv/default/server.conf ${ADMNDIR}/etc/cserv/server/web >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/cserv/server/web/server.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/cserv/server/web/server.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/cserv/server/web/server.conf >/dev/null 2>&1

        ASERV_F=${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf
        ASERV_H=${ADMNDIR}/etc/admin/server/${CSERVID}/httpd.conf
        ASERV_A=${ADMNDIR}/etc/admin/server/${CSERVID}/admin.conf
        CSERV_F=${ADMNDIR}/etc/cserv/server/web/server.conf

        a_myaddr=`${SUPPORT} -i 2>/dev/null`
        if [ $? -ne 0 ]; then
            a_myaddr="127.0.0.1"
        fi
        ${GSA_CONF} -f${ASERV_F} -r -sGeneral -kIPaddress ${a_myaddr} >/dev/null 2>&1
        ${GSS_CONF} -f${CSERV_F} -r -sGeneral -kIPaddress ${a_myaddr} >/dev/null 2>&1

        a_myname=`uname -n 2>/dev/null`
        if [ $? -ne 0 ]; then
            a_myname="localhost"
        fi
        ${GSA_CONF} -f${ASERV_F} -r -sGeneral -kComment ${a_myname} >/dev/null 2>&1
        ${GSS_CONF} -f${CSERV_F} -r -sGeneral -kComment ${a_myname} >/dev/null 2>&1

        ${GSA_CONF} -f${ASERV_F} -r -sGeneral -kFilter web >/dev/null 2>&1
        ${GSS_CONF} -f${CSERV_F} -r -sGeneral -kServerID ${CSERVID} >/dev/null 2>&1

        ${GSA_CONF} -f${ASERV_F} -r -sCGI -kUserName admin >/dev/null 2>&1
        ${GSS_CONF} -f${CSERV_F} -r -sCGI -kUserName admin >/dev/null 2>&1

        ${GSA_CONF} -f${ASERV_A} -r -sDirectories -kWebLogDirectory '/var/opt/Guardian/WG/' >/dev/null 2>&1

        a_mypass=`${GPW_SCPT}|${PHP_COMD} 2>/dev/null`
        if [ $? -ne 0 ]; then
            a_mypass="Z3VhcmRpYW5zdWl0ZWFkbWlu"
        fi
        ${GSA_CONF} -f${ASERV_F} -r -sCGI -kPassword -- "${a_mypass}" >/dev/null 2>&1
        ${GSS_CONF} -f${CSERV_F} -r -sCGI -kPassword -- "${a_mypass}" >/dev/null 2>&1

        echo "SWEEP_TEMPDIR = /opt/Guardian/WG/sbin/sweep_tempdir" >>${ADMNDIR}/etc/cserv/command.conf 2>/dev/null
        echo "SWEEP_TEMPDIR = * * * *" >>${ADMNDIR}/etc/cserv/schedule.conf 2>/dev/null

        while true
        do

            # ԥ᡼륢ɥ쥹Ϥ
            while true
            do
                puts 2 5 "AdminMailAddress     : root"
                xy_status "${MSG_02} [root]"
                xy_prompt
                read in_address
                if [ "X${in_address}" = "X" ]; then
                    in_address=root
                fi
                ${GSA_CONF} -c -sAdmin -kAdminMailAddress -- "${in_address}" >/dev/null 2>&1
                if [ $? -eq 0 ]; then
                    if [ "${in_address}" != "root" ]; then
                        puts 25 5 "${in_address}"
                    fi
                    break
                fi
                xy_warning "${ERR_06}"
                sleep 3
            done

            # ǡ١ǥ쥯ȥϤ
            while true
            do
                puts 2 6 "DatabaseDirectory    : /var/opt/Guardian/Admin/database/pgsql/"
                xy_status "${MSG_79} [/var/opt/Guardian/Admin/database/pgsql/]"
                xy_prompt
                read database_dir
                if [ "X${database_dir}" = "X" ]; then
                    database_dir=/var/opt/Guardian/Admin/database/pgsql/
                fi
                database_dir=`echo "${database_dir}" | sed 's/\([^\/]\)$/\1\//'`
                ${GSA_CONF} -c -sDirectories -kDatabaseDirectory ${database_dir} >/dev/null 2>&1
                if [ $? -eq 0 ]; then
                    # ǥ쥯ȥ꤬
                    if [ "`ls -A ${database_dir} 2>/dev/null`" = "" ]; then
                        if [ "${database_dir}" != "/var/opt/Guardian/Admin/database/pgsql/" ]; then
                            puts 25 6 "${database_dir}"
                        fi
                        break
                    fi
                    xy_warning "${ERR_45}"
                    sleep 3
                else
                    xy_warning "${ERR_06}"
                    sleep 3
                fi
            done

            # ɾǤλ
            if [ "${PRDCT}" != "1" ]; then
                EXPIREDATE=`${SUPPORT} -e 2>/dev/null`
                puts  2 7 "${TRIAL}"
                puts 23 7 ": ${WRD_01} ${EXPIREDATE}"
            fi

            # ޤǤͤγǧ
            while true
            do
                xy_status "${MSG_03}"
                xy_prompt
                read ANS
                case ${ANS} in
                y|Y|yes|Yes|YES)
                    break 2
                    ;;
                n|N|no|No|NO)
                    break
                    ;;
                *)
                    xy_warning "${ERR_06}"
                    sleep 3
                    ;;
                esac
            done

            # ɽսΥꥢ
            puts 2 5 ""
            puts 2 6 ""
            if [ "${PRDCT}" != "1" ]; then
                puts 2 7 ""
            fi

        done

        as_domain=`${SUPPORT} -d 2>/dev/null`
        if [ $? -ne 0 ]; then
            as_domain="example.com"
        fi

        # СΥ¸ǥ쥯ȥϡСƱˤ
        ${GSA_CONF} -r -sDirectories -kWebLogDirectory ${WLOGDIR} >/dev/null 2>&1

        # С̤Υ¸ǥ쥯ȥϡŪ˥ǥեȤ򥻥å
        ${GSA_CONF} -f${ASERV_F} -r -sDirectories -kWebLogDirectory ${WLOGDIR} >/dev/null 2>&1

        # ֤˴ؤ¸֤ 0(̵) ˤ
        ${GSA_CONF} -r -sExpire -kWebLog 0 >/dev/null 2>&1

        ${GSA_CONF} -f${ADMSS_F} -r -sMail -kInternalDomains -- "${as_domain}" >/dev/null 2>&1
        ${GSA_CONF} -r -sMail -kInternalDomains -- "${as_domain}" >/dev/null 2>&1
        RES1=$?

        # WALLСѤ˴ԥ᡼륢ɥ쥹Ƥ
        ${GSA_CONF} -f${ADMSS_F} -r -sAdmin -kAdminMailAddress -- "${in_address}" >/dev/null 2>&1

        echo "default: ${in_address}" >>${ADWGM_F} 2>/dev/null
        echo "default: ${in_address}" >>${WMAIL_F} 2>/dev/null
        ${GSA_CONF} -r -sAdmin -kAdminMailAddress -- "${in_address}" >/dev/null 2>&1
        RES2=$?

        InitLicKey=`${SUPPORT} -w 2>/dev/null`
        ${GSA_CONF} -f${ASERV_F} -r -sLicense -kLicenseKey ${InitLicKey} >/dev/null 2>&1
        echo "WGLicenseKey ${InitLicKey}" >>${ASERV_H} 2>/dev/null
        sed "s/\(WGLicenseKey *\)\(.*\)/\1${InitLicKey}/" ${WHTTP_F} > ${WHTTP_F}.tmp
        mv ${WHTTP_F}.tmp ${WHTTP_F} >/dev/null 2>&1
        chown root ${WHTTP_F} >/dev/null 2>&1
        chgrp root ${WHTTP_F} >/dev/null 2>&1
        chmod 0644 ${WHTTP_F} >/dev/null 2>&1
        echo "${InitLicKey}" >${WCLIC_F} 2>/dev/null
        chown root ${WCLIC_F} >/dev/null 2>&1
        chgrp root ${WCLIC_F} >/dev/null 2>&1
        chmod 0644 ${WCLIC_F} >/dev/null 2>&1
        cp ${WCLIC_F} ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/LICENSE >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/LICENSE >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/LICENSE >/dev/null 2>&1
        ${GSA_CONF} -r -sLicense -kLicenseKey ${InitLicKey} >/dev/null 2>&1
        RES3=$?
        if [ -x ${EVL_COMD} ]; then
            ${EVL_COMD} >/dev/null 2>&1

            if [ -f ${WCACT_F} ]; then
                cp ${WCACT_F} ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/ACCOUNT >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/ACCOUNT >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/ACCOUNT >/dev/null 2>&1
            fi
        fi
        cp /dev/null ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
        chown root ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
        chgrp root ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
        chmod 0644 ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1

        # DatabaseDirectory
        ${GSA_CONF} -r -sDirectories -kDatabaseDirectory ${database_dir} >/dev/null 2>&1
        RES4=$?

        if [ ${RES1} -ne 0 -o ${RES2} -ne 0 -o ${RES3} -ne 0 -o ${RES4} -ne 0 ]; then
            YYY=5
            if [ ${RES1} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_07}"
                YYY=`expr ${YYY} + 1`
            fi
            if [ ${RES2} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_08}"
                YYY=`expr ${YYY} + 1`
            fi
            if [ ${RES4} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_42}"
                YYY=`expr ${YYY} + 1`
            fi
            if [ ${RES3} -ne 0 ]; then
                puts 0 ${YYY} "${ERR_09}"
                YYY=`expr ${YYY} + 1`
            fi
            puts 0 ${YYY} ""
            YYY=`expr ${YYY} + 1`
            puts 0 ${YYY} "${ERR_03}"
            YYY=`expr ${YYY} + 1`
            puts 0 ${YYY} "${ERR_04}${BELL}"
            CONFIGERR=1
            xy_status "${CTMSG}"
            pause
        fi

        clear_content
        xy_status ""
    fi

    ## crontab
    ##
    CRNPLUS=${ADMNDIR}/etc/admin/default/admin.crontab
    (/usr/bin/crontab -l | egrep -ic 'Admin/bin/guts_launcher_c\.pl') >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        CRNPLUS="${CRNPLUS} ${ADMNDIR}/etc/cserv/default/admin.crontab"
    fi

    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    xy_homecsor
    ORIGINAL_CRON="${ADMNDIR}/crontab.`date +%Y%m%d`"
    WARN=0
    case "${UNAME}" in
    SunOS)
        (/usr/bin/crontab -l > ${ORIGINAL_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            (cat ${ORIGINAL_CRON} ${CRNPLUS} | /usr/bin/crontab) 2>/dev/null
            if [ $? -ne 0 ]; then
                WARN=1
            fi
        else
            WARN=1
        fi
        ;;
    Linux)
        if [ ! -f /var/spool/cron/root ]; then
            touch /var/spool/cron/root >/dev/null 2>&1
            chmod 0600 /var/spool/cron/root >/dev/null 2>&1
        fi
        (/usr/bin/crontab -l > ${ORIGINAL_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            (cat ${ORIGINAL_CRON} ${CRNPLUS} | egrep -iv '^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' | /usr/bin/crontab -) 2>/dev/null
            if [ $? -ne 0 ]; then
                WARN=1
            fi
        else
            WARN=1
        fi
        ;;
    esac
    if [ ${WARN} -eq 1 ]; then
        err_config "${ERR_10}"
    else
        xy_status "${MSG_05}"
        sleep 2
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

pdb_config()
{
    if [ ${UPGRADE} -eq 1 ]; then
        # Сģ½
        pdb_affunc_a

        puts 0 1 "${BOLD}${MSG_01}${NRML}"

        if [ ! -x ${GSA_CONF} ]; then
            err_config "${ERR_05} [guts_adminconf]"
        else
            while true
            do

                # ǡ١ǥ쥯ȥϤ
                while true
                do
                    puts 2 5 "DatabaseDirectory    : /var/opt/Guardian/Admin/database/pgsql/"
                    xy_status "${MSG_79} [/var/opt/Guardian/Admin/database/pgsql/]"
                    xy_prompt
                    read database_dir
                    if [ "X${database_dir}" = "X" ]; then
                        database_dir=/var/opt/Guardian/Admin/database/pgsql/
                    fi
                    database_dir=`echo "${database_dir}" | sed 's/\([^\/]\)$/\1\//'`
                    ${GSA_CONF} -c -sDirectories -kDatabaseDirectory ${database_dir} >/dev/null 2>&1
                    if [ $? -eq 0 ]; then
                        # ǥ쥯ȥ꤬
                        if [ "`ls -A ${database_dir} 2>/dev/null`" = "" ]; then
                            if [ "${database_dir}" != "/var/opt/Guardian/Admin/database/pgsql/" ]; then
                                puts 25 5 "${database_dir}"
                            fi
                            break
                        fi
                        xy_warning "${ERR_45}"
                        sleep 3
                    else
                        xy_warning "${ERR_06}"
                        sleep 3
                    fi
                done

                while true
                do
                    xy_status "${MSG_03}"
                    xy_prompt
                    read ANS
                    case ${ANS} in
                    y|Y|yes|Yes|YES)
                        break 2
                        ;;
                    n|N|no|No|NO)
                        break
                        ;;
                    *)
                        xy_warning "${ERR_06}"
                        sleep 3
                        ;;
                    esac
                done

                puts 2 5 ""
            done

            # DatabaseDirectory
            ${GSA_CONF} -r -sDirectories -kDatabaseDirectory ${database_dir} >/dev/null 2>&1
            RES1=$?

            if [ ${RES1} -ne 0 ]; then
                YYY=5
                if [ ${RES1} -ne 0 ]; then
                    puts 0 ${YYY} "${ERR_42}"
                else
                    puts 0 ${YYY} ""
                fi
                YYY=`expr ${YYY} + 1`

                puts 0 ${YYY} ""
                YYY=`expr ${YYY} + 1`
                puts 0 ${YYY} "${ERR_03}"
                YYY=`expr ${YYY} + 1`
                puts 0 ${YYY} "${ERR_04}${BELL}"
                CONFIGERR=1
                xy_status "${CTMSG}"
                pause
                clear_content
            fi
        fi

        puts 0 1 ""
        puts 2 5 ""
        xy_status ""
    fi

    if [ ${UPGRADE} -gt 1 ]; then
        puts 0 1 "${BOLD}${MSG_90}${NRML}"
    else
        puts 0 1 "${BOLD}${MSG_81}${NRML}"
    fi

    DSETUPERR=1

    sh ${PSQLDIR}/share/SUITE_initutil.sh inst >/var/guardian-install-err.log 2>&1
    if [ $? -ne 0 ]; then
        if [ ${UPGRADE} -gt 1 ]; then
            xy_warning "${ERR_48}"
        else
            xy_warning "${ERR_18}"
        fi
        xy_homecsor
        puts 0 1 ""
        pause
        xy_status ""
        return 0
    fi

    if [ -f /var/guardian-install-err.log ]; then
        rm -f /var/guardian-install-err.log
    fi

    DSETUPERR=0

    puts 0 1 ""
    xy_status ""
    return 0
}

s_start()
{
    if [ -x ${ADMNDIR}/bin/guts_mkchgarc ]; then
        ${ADMNDIR}/bin/guts_mkchgarc -j -p ${ADMNDIR}/etc/admin/mkchgarc.ptn -s ${ADMNDIR}/logs/mkchgarc.stat ${ADMNDIR} >/dev/null 2>&1
    fi

    if [ -f ${ADPID_F} ]; then
        ADPID=`cat ${ADPID_F} 2>/dev/null`
        if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
            return 0
        fi
    fi

    puts 0 1 "${BOLD}${MSG_06}${NRML}"

    if [ -x ${INITDIR}/Guardian.admin ]; then
        xy_status "${MSG_07}"
        ${INITDIR}/Guardian.admin start >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            SSTARTERR=1
            xy_warning "${ERR_11}"
            sleep 3
        else
            sleep 2
        fi
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

mg_start()
{
    # lock file
    if [ -f ${WALLDIR}/SEARCH ]; then
        rm -f ${WALLDIR}/SEARCH >/dev/null 2>&1
    fi

    ## make dic
    if [ -x ${WALLDIR}/bin/mw_keywd ]; then
        ${WALLDIR}/bin/mw_keywd -z >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            CONFIGERR=1
            xy_warning "${ERR_21}"
            sleep 3
        fi
    fi

    if [ ${UPGRADE} -ge 1 -a -f ${ADMNDIR}/etc/cserv/server/mail/server.conf ]; then
        ## start GUARDIANWALL
        puts 0 1 "${BOLD}${MSG_45}${NRML}"
        if [ -x ${INITDIR}/Guardian.mail ]; then
            xy_status "${MSG_47}"
            ${INITDIR}/Guardian.mail start >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                MSTARTERR=1
                xy_warning "${ERR_22}"
                sleep 3
            else
                sleep 2
            fi
            ISSTARTFG=1
        fi
    elif [ -d ${ADMNDIR}/etc/cserv/server/mail ]; then
        rm -rf ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

mgs_start()
{
    if [ -x ${ADMNDIR}/bin/guts_mkchgarc ]; then
        ${ADMNDIR}/bin/guts_mkchgarc -j -p ${ADMNDIR}/etc/admin/mkchgarc.ptn -s ${ADMNDIR}/logs/mkchgarc.stat ${ADMNDIR} >/dev/null 2>&1
    fi

    ARUNF=0
    if [ -f ${ADPID_F} ]; then
        ADPID=`cat ${ADPID_F} 2>/dev/null`
        if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
            ARUNF=1
        fi
    fi
    ## GUARDIANSUITEСư
    if [ ${ARUNF} -ne 1 ]; then
        puts 0 1 "${BOLD}${MSG_06}${NRML}"
        if [ -x ${INITDIR}/Guardian.admin ]; then
            xy_status "${MSG_07}"
            ${INITDIR}/Guardian.admin start >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                SSTARTERR=1
                xy_warning "${ERR_11}"
                sleep 5
            else
                sleep 2
            fi
        fi
    fi

    ## GUARDIANWALLư
    puts 0 1 "${BOLD}${MSG_45}${NRML}"

    # lock file
    if [ -f ${WALLDIR}/SEARCH ]; then
        rm -f ${WALLDIR}/SEARCH >/dev/null 2>&1
    fi
    YYY="3"
    ## make dic
    if [ -x ${WALLDIR}/bin/mw_keywd ]; then
        ${WALLDIR}/bin/mw_keywd -z >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            puts 0 ${YYY} "${ERR_21}"
            YYY=`expr ${YYY} + 2`
            CONFIGERR=1
        fi
    fi

    ## start GUARDIANWALL
    if [ -x ${INITDIR}/Guardian.mail ]; then
        xy_status "${MSG_47}"
        ${INITDIR}/Guardian.mail start >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            xy_warning "${ERR_22}"
            MSTARTERR=1
        fi
        sleep 5
    fi

    ## Finish
    puts 0 1 ""
    IPADDR=`${SUPPORT} -i 2>/dev/null`
    PORTNO=`${MSS_CONF} -l -sSmtp -kSmtpPort 2>/dev/null |awk '{print $2}'`
    puts 2 ${YYY} "###########################################################"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_49}"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_08}"
    YYY=`expr ${YYY} + 2`
    if [ ${CONFIGERR} -eq 0 -a ${SSTARTERR} -eq 0 -a ${DSTARTERR} -eq 0 -a ${MSTARTERR} -eq 0 ]; then
        puts 2 ${YYY} "${MSG_09} http://${IPADDR}:${ADMPORT}/login/"
        YYY=`expr ${YYY} + 1`
        puts 2 ${YYY} "${MSG_64}: ${IPADDR}${MSG_31}: ${PORTNO}"
        YYY=`expr ${YYY} + 1`
    else
        puts 2 ${YYY} "${MSG_10}"
        YYY=`expr ${YYY} + 1`
        if [ ${CONFIGERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_11}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${MSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_65}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${SSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_12}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${DSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_86}"
            YYY=`expr ${YYY} + 1`
        fi
    fi
    if [ ${DSETUPERR} -ne 0 ];then
        puts 2 ${YYY} "${MSG_87}"
        YYY=`expr ${YYY} + 1`
    fi
    puts 2 ${YYY} "###########################################################"

    xy_status ""
    return 0
}

wg_start()
{
    if [ ${UPGRADE} -ge 1 -a -f ${ADMNDIR}/etc/cserv/server/web/server.conf ]; then
        ## start WEBGUARDIAN
        puts 0 1 "${BOLD}${MSG_27}${NRML}"
        if [ -x ${INITDIR}/Guardian.web ]; then
            xy_status "${MSG_28}"
            ${INITDIR}/Guardian.web start >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                WSTARTERR=1
                xy_warning "${ERR_13}"
                sleep 3
            else
                sleep 2
            fi
            ISSTARTFG=1
        fi
    elif [ -d ${ADMNDIR}/etc/cserv/server/web ]; then
        rm -rf ${ADMNDIR}/etc/cserv/server/web >/dev/null 2>&1
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

wgs_start()
{
    if [ -x ${ADMNDIR}/bin/guts_mkchgarc ]; then
        ${ADMNDIR}/bin/guts_mkchgarc -j -p ${ADMNDIR}/etc/admin/mkchgarc.ptn -s ${ADMNDIR}/logs/mkchgarc.stat ${ADMNDIR} >/dev/null 2>&1
    fi

    ARUNF=0
    if [ -f ${ADPID_F} ]; then
        ADPID=`cat ${ADPID_F} 2>/dev/null`
        if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
            ARUNF=1
        fi
    fi
    ## GUARDIANSUITEСư
    if [ ${ARUNF} -ne 1 ]; then
        puts 0 1 "${BOLD}${MSG_06}${NRML}"
        if [ -x ${INITDIR}/Guardian.admin ]; then
            xy_status "${MSG_07}"
            ${INITDIR}/Guardian.admin start >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                SSTARTERR=1
                xy_warning "${ERR_11}"
                sleep 5
            else
                sleep 2
            fi
        fi
    fi

    ## WEBGUARDIANư
    puts 0 1 "${BOLD}${MSG_27}${NRML}"

    if [ -x ${INITDIR}/Guardian.web ]; then
        xy_status "${MSG_28}"
        ${INITDIR}/Guardian.web start >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            xy_warning "${ERR_13}"
            WSTARTERR=1
            sleep 5
        else
            sleep 2
        fi
    fi

    ## Finish
    puts 0 1 ""
    YYY=5
    IPADDR=`${SUPPORT} -i 2>/dev/null`
    puts 2 ${YYY} "###########################################################"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_29}"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_08}"
    YYY=`expr ${YYY} + 2`
    if [ ${CONFIGERR} -eq 0 -a ${SSTARTERR} -eq 0 -a ${DSTARTERR} -eq 0 -a ${WSTARTERR} -eq 0 ]; then
        puts 2 ${YYY} "${MSG_09} http://${IPADDR}:${ADMPORT}/login/"
        YYY=`expr ${YYY} + 1`
        puts 2 ${YYY} "${MSG_30}: ${IPADDR}${MSG_31}: ${PXYPORT}"
        YYY=`expr ${YYY} + 1`
    else
        puts 2 ${YYY} "${MSG_10}"
        YYY=`expr ${YYY} + 1`
        if [ ${CONFIGERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_11}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${WSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_32}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${SSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_12}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${DSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_86}"
            YYY=`expr ${YYY} + 1`
        fi
    fi
    if [ ${DSETUPERR} -ne 0 ];then
        puts 2 ${YYY} "${MSG_87}"
        YYY=`expr ${YYY} + 1`
    fi
    puts 2 ${YYY} "###########################################################"

    xy_status ""
    return 0
}

pdb_start()
{
    puts 0 1 "${BOLD}${MSG_82}${NRML}"
    if [ -x ${INITDIR}/Guardian.db ]; then
        xy_status "${MSG_83}"
        ${INITDIR}/Guardian.db start >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            DSTARTERR=1
            xy_warning "${ERR_15}"
            sleep 5
        else
            sleep 2
        fi
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

dbs_finish()
{
    YYY=5
    IPADDR=`${SUPPORT} -i 2>/dev/null`
    puts 2 ${YYY} "###########################################################"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_08}"
    YYY=`expr ${YYY} + 2`
    if [ ${CONFIGERR} -eq 0 -a ${SSTARTERR} -eq 0 -a ${DSTARTERR} -eq 0  ]; then
        puts 2 ${YYY} "${MSG_09} http://${IPADDR}:${ADMPORT}/login/"
        YYY=`expr ${YYY} + 1`
    else
        puts 2 ${YYY} "${MSG_10}"
        YYY=`expr ${YYY} + 1`
        if [ ${CONFIGERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_11}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${SSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_12}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${DSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_86}"
            YYY=`expr ${YYY} + 1`
        fi
    fi
    if [ ${DSETUPERR} -ne 0 ];then
        puts 2 ${YYY} "${MSG_87}"
        YYY=`expr ${YYY} + 1`
    fi
    if [ ${UPGRADE} -eq 0 -o ${MG2ADMN} -eq 1 ]; then
        YYY=`expr ${YYY} + 1`
        puts 2 ${YYY} "${MSG_48}"
        YYY=`expr ${YYY} + 1`
    fi
    puts 2 ${YYY} "###########################################################"

    xy_status ""
    return 0
}

mg_finish()
{
    YYY=5
    IPADDR=`${SUPPORT} -i 2>/dev/null`
    PORTNO=`${MSS_CONF} -l -sSmtp -kSmtpPort 2>/dev/null |awk '{print $2}'`
    puts 2 ${YYY} "###########################################################"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_49}"
    YYY=`expr ${YYY} + 2`
    if [ ${CONFIGERR} -eq 0 -a ${SSTARTERR} -eq 0 -a ${MSTARTERR} -eq 0 ]; then
        puts 2 ${YYY} "${MSG_64}: ${IPADDR}${MSG_31}: ${PORTNO}"
        YYY=`expr ${YYY} + 1`
    else
        puts 2 ${YYY} "${MSG_10}"
        YYY=`expr ${YYY} + 1`
        if [ ${CONFIGERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_11}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${SSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_12}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${MSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_65}"
            YYY=`expr ${YYY} + 1`
        fi
    fi
    if [ ${ISSTARTFG} -eq 0 ]; then
        YYY=`expr ${YYY} + 1`
        puts 2 ${YYY} "${MSG_66}"
        YYY=`expr ${YYY} + 1`
    fi
    puts 2 ${YYY} "###########################################################"

    xy_status ""
    return 0
}

wg_finish()
{
    YYY=5
    IPADDR=`${SUPPORT} -i 2>/dev/null`
    PORTNO=${PXYPORT}
    puts 2 ${YYY} "###########################################################"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_29}"
    YYY=`expr ${YYY} + 2`
    if [ ${CONFIGERR} -eq 0 -a ${SSTARTERR} -eq 0 -a ${WSTARTERR} -eq 0 ]; then
        puts 2 ${YYY} "${MSG_30}: ${IPADDR}${MSG_31}: ${PORTNO}"
        YYY=`expr ${YYY} + 1`
    else
        puts 2 ${YYY} "${MSG_10}"
        YYY=`expr ${YYY} + 1`
        if [ ${CONFIGERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_11}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${SSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_12}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${WSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_32}"
            YYY=`expr ${YYY} + 1`
        fi
    fi
    if [ ${ISSTARTFG} -eq 0 ]; then
        YYY=`expr ${YYY} + 1`
        puts 2 ${YYY} "${MSG_66}"
        YYY=`expr ${YYY} + 1`
    fi
    puts 2 ${YYY} "###########################################################"

    xy_status ""
    return 0
}

sr_finish_a()
{
    YYY=5
    puts 2 ${YYY} "###########################################################"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_25}"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "###########################################################"

    xy_status ""
    return 0
}

srs_finish_a()
{
    YYY=5
    IPADDR=`${SUPPORT} -i 2>/dev/null`
    puts 2 ${YYY} "###########################################################"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_08}"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_25}"
    YYY=`expr ${YYY} + 2`
    if [ ${CONFIGERR} -eq 0 -a ${SSTARTERR} -eq 0 -a ${DSTARTERR} -eq 0  ]; then
        puts 2 ${YYY} "${MSG_09} http://${IPADDR}:${ADMPORT}/login/"
        YYY=`expr ${YYY} + 1`
    else
        puts 2 ${YYY} "${MSG_10}"
        YYY=`expr ${YYY} + 1`
        if [ ${CONFIGERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_11}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${SSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_12}"
            YYY=`expr ${YYY} + 1`
        fi
        if [ ${DSTARTERR} -ne 0 ]; then
            puts 2 ${YYY} "${MSG_86}"
            YYY=`expr ${YYY} + 1`
        fi
    fi
    if [ ${DSETUPERR} -ne 0 ];then
        puts 2 ${YYY} "${MSG_87}"
        YYY=`expr ${YYY} + 1`
    fi
    if [ ${UPGRADE} -eq 0 -o ${MG2ADMN} -eq 1 ]; then
        YYY=`expr ${YYY} + 1`
        puts 2 ${YYY} "${MSG_48}"
        YYY=`expr ${YYY} + 1`
    fi
    puts 2 ${YYY} "###########################################################"

    xy_status ""
    return 0
}

sr_befunc_d()
{
    if [ -x ${GSA_CONF} ]; then
        tmpdir=`${GSA_CONF} -a -sSearch -kHistoryDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            HISTRYD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    xy_status ""
    return 0
}

sr_finish_d()
{
    puts 0 1 "${BOLD}${MSG_15}${NRML}"

    if [ "X${HISTRYD}" != "X" -a -d "${HISTRYD}" ]; then
        xy_status ""
        if (get_yes_no "${MSG_41}"); then
            xy_status "${MSG_42}"
            if [ -d "${HISTRYD}/admin" ]; then
                rm -rf ${HISTRYD}/admin >/dev/null 2>&1
            fi
            if [ -d "${HISTRYD}/manager" ]; then
                rm -rf ${HISTRYD}/manager >/dev/null 2>&1
            fi
        fi
    fi

    puts 0 1 ""
    YYY=5
    puts 2 ${YYY} "###########################################################"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_26}"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "###########################################################"

    xy_status ""
    return 0
}

srs_finish_d()
{
    puts 0 1 "${BOLD}${MSG_15}${NRML}"

    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    if [ "X${MALLOGD}" != "X" -a -d "${MALLOGD}" -o "X${WEBLOGD}" != "X" -a -d "${WEBLOGD}" -o "X${AKNSARD}" != "X" -a -d "${AKNSARD}" ]; then
        xy_status ""
        if (get_yes_no "${MSG_21}"); then
            xy_status "${MSG_22}"
            if [ "X${MALLOGD}" != "X" -a -d "${MALLOGD}" -a "${MALLOGD}" != "${WALLOGD}" ]; then
                rm  -f ${MALLOGD}/log.[0-9]* >/dev/null 2>&1
                rm -rf ${MALLOGD}/archive >/dev/null 2>&1
                rm -rf ${MALLOGD}/deliver >/dev/null 2>&1
                rm -rf ${MALLOGD}/manager >/dev/null 2>&1
                rm -rf ${MALLOGD}/screening >/dev/null 2>&1
                rm -rf ${MALLOGD}/viewer >/dev/null 2>&1
                rmdir  ${MALLOGD} >/dev/null 2>&1
            fi
            if [ -d ${VARGDIR}/Admin/mail -a "${VARGDIR}/Admin/mail" != "${WALLOGD}" ]; then
                rm  -f ${VARGDIR}/Admin/mail/log.[0-9]* >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/mail/archive >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/mail/deliver >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/mail/manager >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/mail/screening >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/mail/viewer >/dev/null 2>&1
                rmdir  ${VARGDIR}/Admin/mail >/dev/null 2>&1
            fi
            if [ "X${WEBLOGD}" != "X" -a -d "${WEBLOGD}" -a "${WEBLOGD}" != "${WBGLOGD}" ]; then
                rm -rf ${WEBLOGD}/[0-9][0-9][0-9][0-9] >/dev/null 2>&1
                rmdir  ${WEBLOGD} >/dev/null 2>&1
            fi
            if [ -d ${VARGDIR}/Admin/web -a "${VARGDIR}/Admin/web" != "${WBGLOGD}" ]; then
                rm -rf ${VARGDIR}/Admin/web/[0-9][0-9][0-9][0-9] >/dev/null 2>&1
                rmdir  ${VARGDIR}/Admin/web >/dev/null 2>&1
            fi
            if [ "X${AKNSARD}" != "X" -a -d "${AKNSARD}" ]; then
                rm -rf ${AKNSARD}/charc >/dev/null 2>&1
                rm -rf ${AKNSARD}/stat >/dev/null 2>&1
                rmdir  ${AKNSARD} >/dev/null 2>&1
            fi
            if [ -d ${VARGDIR}/Admin/kansa ]; then
                rm -rf ${VARGDIR}/Admin/kansa/charc >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/kansa/stat >/dev/null 2>&1
                rmdir  ${VARGDIR}/Admin/kansa >/dev/null 2>&1
            fi
            rmdir ${VARGDIR}/Admin >/dev/null 2>&1
            rmdir ${VARGDIR} >/dev/null 2>&1

            if [ -d ${ADMNDIR}/wg/logs ]; then
                rm -rf ${ADMNDIR}/wg/logs >/dev/null 2>&1
            fi
            rmdir ${ADMNDIR}/wg >/dev/null 2>&1
        fi
    fi
    # remove Full search history directory
    if [ "X${HISTRYD}" != "X" -a -d "${HISTRYD}" ]; then
        xy_status ""
        if (get_yes_no "${MSG_41}"); then
            xy_status "${MSG_42}"
            if [ -d "${HISTRYD}/admin" ]; then
                rm -rf ${HISTRYD}/admin >/dev/null 2>&1
            fi
            if [ -d "${HISTRYD}/manager" ]; then
                rm -rf ${HISTRYD}/manager >/dev/null 2>&1
            fi
        fi
    fi
    # remove database directory
    if [ "X${PDBLOGD}" != "X" -a -d "${PDBLOGD}" ]; then
        if (get_yes_no "${MSG_88}"); then
            xy_status "${MSG_89}"
            rm -rf ${PDBLOGD} >/dev/null 2>&1
            if [ "X${RDBLOGD}" != "X" -a -d "${RDBLOGD}" ]; then
                rm -rf ${RDBLOGD}/* >/dev/null 2>&1
            fi
        fi
    fi

    if [ ${ALLRM} -eq 1 ]; then
        if [ ${UNAME} = "Linux" ]; then
            if [ -f ${INITDIR}/Guardian.admin ]; then
                /sbin/chkconfig --del Guardian.admin >/dev/null 2>&1
                rm -f ${INITDIR}/Guardian.admin >/dev/null 2>&1
            fi
            if [ -f ${INITDIR}/Guardian.db ]; then
                /sbin/chkconfig --del Guardian.db >/dev/null 2>&1
                rm -f ${INITDIR}/Guardian.db >/dev/null 2>&1
            fi
        fi

        if [ -d ${ADMNDIR}/etc ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/wg/conf ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/wg/conf >/dev/null 2>&1
            rmdir ${ADMNDIR}/wg >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/tmp ]; then
            xy_status "${MSG_17}"
            rm -rf ${ADMNDIR}/tmp >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/httpd ]; then
            xy_status "${MSG_18}"
            rm -rf ${ADMNDIR}/httpd >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/php ]; then
            xy_status "${MSG_19}"
            rm -rf ${ADMNDIR}/php >/dev/null 2>&1
        fi
        xy_status "${MSG_20}"
        if [ "X${ADMLOGD}" != "X" -a -d "${ADMLOGD}" ]; then
            rm -f ${ADMLOGD}/* >/dev/null 2>&1
            rmdir ${ADMLOGD} >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/logs ]; then
            rm -rf ${ADMNDIR}/logs >/dev/null 2>&1
        fi

        ## crontab
        puts 0 1 "${BOLD}${MSG_04}${NRML}"
        xy_status ""
        BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
        (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            case "${UNAME}" in
            SunOS)
                (egrep -iv '^# for GUARDIANSUITE|/opt/Guardian/Admin/bin' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                ;;
            Linux)
                (egrep -iv '^# for GUARDIANSUITE|/opt/Guardian/Admin/bin|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                ;;
            esac
            if [ $? -ne 0 ]; then
                /usr/bin/crontab ${BACKUP_CRON} 2>/dev/null
                xy_warning "${ERR_12}"
                sleep 3
            else
                xy_status "${MSG_23}"
            fi
        fi
    else
        if [ ${UNAME} = "Linux" ]; then
            if [ -f ${INITDIR}/Guardian.db ]; then
                /sbin/chkconfig --del Guardian.db >/dev/null 2>&1
                rm -f ${INITDIR}/Guardian.db >/dev/null 2>&1
            fi
        fi

        if [ -d ${ADMNDIR}/etc/admin ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc/admin >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc/wall >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wg ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc/wg >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/pcg ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc/pcg >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/wg/conf ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/wg/conf >/dev/null 2>&1
            rmdir ${ADMNDIR}/wg >/dev/null 2>&1
        fi

        ## crontab
        puts 0 1 "${BOLD}${MSG_04}${NRML}"
        xy_status ""
        BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
        (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            case "${UNAME}" in
            SunOS)
                (egrep -iv '^# for GUARDIANSUITE ADMIN|Admin/bin/guts_launcher_a\.pl' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                ;;
            Linux)
                (egrep -iv '^# for GUARDIANSUITE ADMIN|Admin/bin/guts_launcher_a\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                ;;
            esac
            if [ $? -ne 0 ]; then
                /usr/bin/crontab ${BACKUP_CRON} 2>/dev/null
                xy_warning "${ERR_12}"
                sleep 3
            else
                xy_status "${MSG_23}"
            fi
        fi

        ARUNF=0
        if [ -f ${ADPID_F} ]; then
            ADPID=`cat ${ADPID_F} 2>/dev/null`
            if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
                ARUNF=1
            else
                ARUNF=0
            fi
        fi
        if [ ${ARUNF} -ne 1 ]; then
            puts 0 1 "${BOLD}${MSG_06}${NRML}"
            xy_status ""
            if [ -x ${INITDIR}/Guardian.admin ]; then
                xy_status "${MSG_07}"
                ${INITDIR}/Guardian.admin start >/dev/null 2>&1
                sleep 2
            fi
        fi
    fi

    puts 0 1 ""
    puts 2 5 "###########################################################"
    puts 2 6 "${MSG_24}"
    puts 2 7 "${MSG_26}"
    puts 2 8 "###########################################################"

    xy_status ""
    return 0
}

s_bechk()
{
    puts 0 1 "${BOLD}${MSG_67}${NRML}"

    CSERVLIST=`ls ${ADMNDIR}/etc/admin/server 2>/dev/null`
    for csv in ${CSERVLIST}
    do
        if [ -f ${ADMNDIR}/etc/admin/server/${csv}/server.conf ]; then
            puts 0 -6 "${ERR_27}"
            puts 0 -5 "${ERR_28}"
            puts 0 -3 "${ERR_30}"
            puts 0 -2 "${ERR_32}${BELL}"
            xy_status "${MSG_68}"
            pause
            return 2
        fi
    done

    puts 0 1 ""
    xy_status ""
    return 0
}

mg_bechk()
{
    puts 0 1 "${BOLD}${MSG_67}${NRML}"

    if [ -f ${ADMNDIR}/etc/cserv/server/mail/server.conf ]; then
        puts 0 -6 "${ERR_27}"
        puts 0 -5 "${ERR_29}"
        puts 0 -3 "${ERR_31}"
        puts 0 -2 "${ERR_32}${BELL}"
        xy_status "${MSG_68}"
        pause
        return 2
    elif [ -d ${ADMNDIR}/etc/cserv/server/mail ]; then
        rm -rf ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

mgs_bechk()
{
    puts 0 1 "${BOLD}${MSG_67}${NRML}"

    if [ ! -x ${GSA_CONF} ]; then
        xy_status ""
        return 0
    fi

    CSERVLIST=`ls ${ADMNDIR}/etc/admin/server 2>/dev/null`
    IPADDR=`${SUPPORT} -i 2>/dev/null`
    FILTER=mail
    for csv in ${CSERVLIST}
    do
        if [ -f ${ADMNDIR}/etc/admin/server/${csv}/server.conf ]; then
            csv_f=${ADMNDIR}/etc/admin/server/${csv}/server.conf
            csv_i=`${GSA_CONF} -f${csv_f} -l -sGeneral -kIPaddress 2>/dev/null |awk '{print $2}'`
            csv_t=`${GSA_CONF} -f${csv_f} -l -sGeneral -kFilter 2>/dev/null |awk '{print $2}'`
            if [ "${IPADDR}" = "${csv_i}" -a "${FILTER}" = "${csv_t}" ]; then
                continue
            fi
            puts 0 -6 "${ERR_27}"
            puts 0 -5 "${ERR_33}"
            puts 0 -3 "${ERR_34}"
            puts 0 -2 "${ERR_32}${BELL}"
            xy_status "${MSG_68}"
            pause
            return 2
        fi
    done

    puts 0 1 ""
    xy_status ""
    return 0
}

wg_bechk()
{
    puts 0 1 "${BOLD}${MSG_67}${NRML}"

    if [ -f ${ADMNDIR}/etc/cserv/server/web/server.conf ]; then
        puts 0 -6 "${ERR_27}"
        puts 0 -5 "${ERR_29}"
        puts 0 -3 "${ERR_31}"
        puts 0 -2 "${ERR_32}${BELL}"
        xy_status "${MSG_68}"
        pause
        return 2
    elif [ -d ${ADMNDIR}/etc/cserv/server/web ]; then
        rm -rf ${ADMNDIR}/etc/cserv/server/web >/dev/null 2>&1
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

wgs_bechk()
{
    puts 0 1 "${BOLD}${MSG_67}${NRML}"

    if [ ! -x ${GSA_CONF} ]; then
        xy_status ""
        return 0
    fi

    CSERVLIST=`ls ${ADMNDIR}/etc/admin/server 2>/dev/null`
    IPADDR=`${SUPPORT} -i 2>/dev/null`
    FILTER=web
    for csv in ${CSERVLIST}
    do
        if [ -f ${ADMNDIR}/etc/admin/server/${csv}/server.conf ]; then
            csv_f=${ADMNDIR}/etc/admin/server/${csv}/server.conf
            csv_i=`${GSA_CONF} -f${csv_f} -l -sGeneral -kIPaddress 2>/dev/null |awk '{print $2}'`
            csv_t=`${GSA_CONF} -f${csv_f} -l -sGeneral -kFilter 2>/dev/null |awk '{print $2}'`
            if [ "${IPADDR}" = "${csv_i}" -a "${FILTER}" = "${csv_t}" ]; then
                continue
            fi
            puts 0 -6 "${ERR_27}"
            puts 0 -5 "${ERR_33}"
            puts 0 -3 "${ERR_34}"
            puts 0 -2 "${ERR_32}${BELL}"
            xy_status "${MSG_68}"
            pause
            return 2
        fi
    done

    puts 0 1 ""
    xy_status ""
    return 0
}

s_stop()
{
    if [ -x ${GSA_CONF} ]; then
        tmpdir=`${GSA_CONF} -a -sDirectories -kAdmLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            ADMLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
        tmpdir=`${GSA_CONF} -a -sDirectories -kLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            MALLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
        tmpdir=`${GSA_CONF} -a -sDirectories -kWebLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WEBLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
        tmpdir=`${GSA_CONF} -a -sKansa -kKansaArchiveDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            AKNSARD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    # WALLΥ¸ǥ쥯ȥƤʥåΤ
    if [ -x ${MSS_CONF} ]; then
        tmpdir=`${MSS_CONF} -a -sDirectories -kLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WALLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi
    # WGΥ¸ǥ쥯ȥƤʥåΤ
    if [ -x ${GSS_CONF} -a -f ${WADMN_F} ]; then
        tmpdir=`${GSS_CONF} -f${WADMN_F} -a -sDirectories -kWebLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WBGLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    if [ -f ${ADPID_F} ]; then
        ADPID=`cat ${ADPID_F} 2>/dev/null`
        if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
            true
        else
            return 0
        fi
    fi

    ## GUARDIANSUITEС
    puts 0 1 "${BOLD}${MSG_13}${NRML}"
    if [ -x ${INITDIR}/Guardian.admin ]; then
        xy_status "${MSG_14}"
        ${INITDIR}/Guardian.admin stop >/dev/null 2>&1
        sleep 2
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

mg_stop()
{
    ${PKG_IF} ${MGPKGN} >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        xy_warning "${ERR_24}"
        xy_homecsor
        exit 1
    fi
    if [ ${UNAME} = "Linux" ]; then
        OLDVER=`rpm -q --queryformat '%{VERSION}.%{RELEASE}' ${MGPKGN} 2>/dev/null`
    else
        OLDVER=`pkginfo -l ${MGPKGN} 2>/dev/null | grep 'VERSION:' | awk '{print $2}'`
    fi
    VER_MAJ=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
    VER_MIN=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
    VER_REL=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`

    # Сå
    if [ ${VER_MAJ} -gt 5 ] || [ ${VER_MAJ} -eq 5 -a ${VER_MIN} -ge 1 ]; then
        OLDVER=0
    else
        OLDVER=1
        WALLDIR=/opt/MailGuardian/Wall
        MSS_CONF=${WALLDIR}/mss/bin/mw_conf
    fi
    if [ -x ${MSS_CONF} ]; then
        tmpdir=`${MSS_CONF} -a -sDirectories -kLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WALLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    puts 0 1 "${BOLD}${MSG_52}${NRML}"

    MSP=sendmail
    if [ -x ${MSS_CONF} ]; then
        MSP=`${MSS_CONF} -l -sSMTP -kMailSubmissionProgram 2>/dev/null`
        MSP=`echo ${MSP} 2>/dev/null |awk '{print $2}'`
        if [ "X${MSP}" = "X" ]; then
            MSP=sendmail
        fi
    fi
    if [ -x ${INITDIR}/MailWall ]; then
        xy_status "${MSG_53}"
        ${INITDIR}/MailWall allstop >/dev/null 2>&1
        sleep 2
    elif [ -x ${INITDIR}/Guardian.mail ]; then
        xy_status "${MSG_53}"
        ${INITDIR}/Guardian.mail allstop >/dev/null 2>&1
        sleep 2
    fi

    if [ "X${MSP}" != "Xqmail" -a "X${MSP}" != "Xpostfix" ]; then
        if [ ${ISSOL10} -eq 1 ]; then
            SVCSTAT=`/usr/bin/svcs -H -o STATE svc:/network/smtp:sendmail 2>/dev/null`
            if [ $? -eq 0 ]; then
                if [ "X${SVCSTAT}" != "Xdisabled" ]; then
                    xy_status "${MSG_75}"
                    /usr/sbin/svcadm restart svc:/network/smtp:sendmail >/dev/null 2>&1
                else
                    xy_status "${MSG_56}"
                    /usr/sbin/svcadm enable svc:/network/smtp:sendmail >/dev/null 2>&1
                fi
                sleep 2
            fi
        else
            ## stop sendmail
            if [ -x ${INITDIR}/sendmail ]; then
                xy_status "${MSG_55}"
                ${INITDIR}/sendmail stop >/dev/null 2>&1
                sleep 2
            fi
            ## start sendmail
            if [ -x ${INITDIR}/sendmail ]; then
                xy_status "${MSG_56}"
                ${INITDIR}/sendmail start >/dev/null 2>&1
                sleep 2
            fi
            ## restore sendmail run command files...
            if [ ${UNAME} = "Linux" ]; then
                /sbin/chkconfig --add sendmail >/dev/null 2>&1
            else
                SENDMAILRC=`ls /etc/rc2.d/_S*sendmail 2>/dev/null`
                for target in ${SENDMAILRC}
                do
                    if [ -f ${target} ]; then
                        orig=`echo ${target} | sed -e 's/\/_S/\/S/'`
                        if [ ! -f ${orig} ]; then
                            mv -f ${target} ${orig}
                        fi
                    fi
                done
            fi
        fi
    fi

    if [ ${OLDVER} -eq 1 ]; then
        if [ -f ${WALLDIR}/mss/etc/mss.pid ]; then
            rm -f ${WALLDIR}/mss/etc/mss.pid >/dev/null 2>&1
        fi
        if [ -f ${WALLDIR}/mss/etc/store.pid ]; then
            rm -f ${WALLDIR}/mss/etc/store.pid >/dev/null 2>&1
        fi
        if [ -f ${WALLDIR}/mss/etc/trans.pid ]; then
            rm -f ${WALLDIR}/mss/etc/trans.pid >/dev/null 2>&1
        fi
    else
        if [ -f ${WALLDIR}/etc/mss.pid ]; then
            rm -f ${WALLDIR}/etc/mss.pid >/dev/null 2>&1
        fi
        if [ -f ${WALLDIR}/etc/store.pid ]; then
            rm -f ${WALLDIR}/etc/store.pid >/dev/null 2>&1
        fi
        if [ -f ${WALLDIR}/etc/trans.pid ]; then
            rm -f ${WALLDIR}/etc/trans.pid >/dev/null 2>&1
        fi
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

mgs_stop()
{
    if [ -x ${GSA_CONF} ]; then
        tmpdir=`${GSA_CONF} -a -sDirectories -kAdmLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            ADMLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
        tmpdir=`${GSA_CONF} -a -sDirectories -kLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            MALLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
        tmpdir=`${GSA_CONF} -a -sDirectories -kWebLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WEBLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
        tmpdir=`${GSA_CONF} -a -sKansa -kKansaArchiveDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            AKNSARD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    ARUNF=0
    if [ -f ${ADPID_F} ]; then
        ADPID=`cat ${ADPID_F} 2>/dev/null`
        if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
            ARUNF=1
        fi
    fi
    if [ ${ARUNF} -eq 1 ]; then
        puts 0 1 "${BOLD}${MSG_13}${NRML}"
        if [ -x ${INITDIR}/Guardian.admin ]; then
            xy_status "${MSG_14}"
            ${INITDIR}/Guardian.admin stop >/dev/null 2>&1
            sleep 2
        fi
    fi

    ${PKG_IF} ${MGPKGN} >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        xy_warning "${ERR_24}"
        xy_homecsor
        exit 1
    fi
    if [ ${UNAME} = "Linux" ]; then
        OLDVER=`rpm -q --queryformat '%{VERSION}.%{RELEASE}' ${MGPKGN} 2>/dev/null`
    else
        OLDVER=`pkginfo -l ${MGPKGN} 2>/dev/null | grep 'VERSION:' | awk '{print $2}'`
    fi
    VER_MAJ=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
    VER_MIN=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
    VER_REL=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`

    # Сå
    if [ ${VER_MAJ} -gt 5 ] || [ ${VER_MAJ} -eq 5 -a ${VER_MIN} -ge 1 ]; then
        OLDVER=0
    else
        OLDVER=1
        WALLDIR=/opt/MailGuardian/Wall
        MSS_CONF=${WALLDIR}/mss/bin/mw_conf
    fi
    if [ -x ${MSS_CONF} ]; then
        tmpdir=`${MSS_CONF} -a -sDirectories -kLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WALLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi
    # WGΥ¸ǥ쥯ȥƤʥåΤ
    if [ -x ${GSS_CONF} -a -f ${WADMN_F} ]; then
        tmpdir=`${GSS_CONF} -f${WADMN_F} -a -sDirectories -kWebLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WBGLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    puts 0 1 "${BOLD}${MSG_52}${NRML}"

    MSP=sendmail
    if [ -x ${MSS_CONF} ]; then
        MSP=`${MSS_CONF} -l -sSMTP -kMailSubmissionProgram 2>/dev/null`
        MSP=`echo ${MSP} 2>/dev/null |awk '{print $2}'`
        if [ "X${MSP}" = "X" ]; then
            MSP=sendmail
        fi
    fi
    if [ -x ${INITDIR}/MailWall ]; then
        xy_status "${MSG_53}"
        ${INITDIR}/MailWall allstop >/dev/null 2>&1
        sleep 2
    elif [ -x ${INITDIR}/Guardian.mail ]; then
        xy_status "${MSG_53}"
        ${INITDIR}/Guardian.mail allstop >/dev/null 2>&1
        sleep 2
    fi

    if [ "X${MSP}" != "Xqmail" -a "X${MSP}" != "Xpostfix" ]; then
        if [ ${ISSOL10} -eq 1 ]; then
            SVCSTAT=`/usr/bin/svcs -H -o STATE svc:/network/smtp:sendmail 2>/dev/null`
            if [ $? -eq 0 ]; then
                if [ "X${SVCSTAT}" != "Xdisabled" ]; then
                    xy_status "${MSG_75}"
                    /usr/sbin/svcadm restart svc:/network/smtp:sendmail >/dev/null 2>&1
                else
                    xy_status "${MSG_56}"
                    /usr/sbin/svcadm enable svc:/network/smtp:sendmail >/dev/null 2>&1
                fi
                sleep 2
            fi
        else
            ## stop sendmail
            if [ -x ${INITDIR}/sendmail ]; then
                xy_status "${MSG_55}"
                ${INITDIR}/sendmail stop >/dev/null 2>&1
                sleep 2
            fi
            ## start sendmail
            if [ -x ${INITDIR}/sendmail ]; then
                xy_status "${MSG_56}"
                ${INITDIR}/sendmail start >/dev/null 2>&1
                sleep 2
            fi
            ## restore sendmail run command files...
            if [ ${UNAME} = "Linux" ]; then
                /sbin/chkconfig --add sendmail >/dev/null 2>&1
            else
                SENDMAILRC=`ls /etc/rc2.d/_S*sendmail 2>/dev/null`
                for target in ${SENDMAILRC}
                do
                    if [ -f ${target} ]; then
                        orig=`echo ${target} | sed -e 's/\/_S/\/S/'`
                        if [ ! -f ${orig} ]; then
                            mv -f ${target} ${orig}
                        fi
                    fi
                done
            fi
        fi
    fi

    if [ ${OLDVER} -eq 1 ]; then
        if [ -f ${WALLDIR}/mss/etc/mss.pid ]; then
            rm -f ${WALLDIR}/mss/etc/mss.pid >/dev/null 2>&1
        fi
        if [ -f ${WALLDIR}/mss/etc/store.pid ]; then
            rm -f ${WALLDIR}/mss/etc/store.pid >/dev/null 2>&1
        fi
        if [ -f ${WALLDIR}/mss/etc/trans.pid ]; then
            rm -f ${WALLDIR}/mss/etc/trans.pid >/dev/null 2>&1
        fi
    else
        if [ -f ${WALLDIR}/etc/mss.pid ]; then
            rm -f ${WALLDIR}/etc/mss.pid >/dev/null 2>&1
        fi
        if [ -f ${WALLDIR}/etc/store.pid ]; then
            rm -f ${WALLDIR}/etc/store.pid >/dev/null 2>&1
        fi
        if [ -f ${WALLDIR}/etc/trans.pid ]; then
            rm -f ${WALLDIR}/etc/trans.pid >/dev/null 2>&1
        fi
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

wg_stop()
{
    if [ -x ${GSS_CONF} ]; then
        tmpdir=`${GSS_CONF} -f${WADMN_F} -a -sDirectories -kWebLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WBGLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    ## WEBGUARDIAN
    puts 0 1 "${BOLD}${MSG_33}${NRML}"
    if [ -x ${INITDIR}/Guardian.web ]; then
        xy_status "${MSG_34}"
        ${INITDIR}/Guardian.web stop >/dev/null 2>&1
        sleep 2
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

wgs_stop()
{
    if [ -x ${GSA_CONF} ]; then
        tmpdir=`${GSA_CONF} -a -sDirectories -kAdmLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            ADMLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
        tmpdir=`${GSA_CONF} -a -sDirectories -kLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            MALLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
        tmpdir=`${GSA_CONF} -a -sDirectories -kWebLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WEBLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
        tmpdir=`${GSA_CONF} -a -sKansa -kKansaArchiveDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            AKNSARD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    ARUNF=0
    if [ -f ${ADPID_F} ]; then
        ADPID=`cat ${ADPID_F} 2>/dev/null`
        if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
            ARUNF=1
        fi
    fi
    if [ ${ARUNF} -eq 1 ]; then
        puts 0 1 "${BOLD}${MSG_13}${NRML}"
        if [ -x ${INITDIR}/Guardian.admin ]; then
            xy_status "${MSG_14}"
            ${INITDIR}/Guardian.admin stop >/dev/null 2>&1
            sleep 2
        fi
    fi

    if [ -x ${GSS_CONF} ]; then
        tmpdir=`${GSS_CONF} -f${WADMN_F} -a -sDirectories -kWebLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WBGLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi
    # WALLΥ¸ǥ쥯ȥƤʥåΤ
    if [ -x ${MSS_CONF} ]; then
        tmpdir=`${MSS_CONF} -a -sDirectories -kLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WALLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    ## WEBGUARDIAN
    puts 0 1 "${BOLD}${MSG_33}${NRML}"
    if [ -x ${INITDIR}/Guardian.web ]; then
        xy_status "${MSG_34}"
        ${INITDIR}/Guardian.web stop >/dev/null 2>&1
        sleep 2
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

ug_stop()
{
    ## check cohavitation...
    if [ -d '/opt/SMISOLwgR/httpd/wg/perl/WG' ]; then
        COHABIT=WG
    fi

    ## С
    puts 0 1 "${BOLD}${MSG_54}${NRML}"
    if [ -x ${INITDIR}/GRDN_WEB_Filtering ]; then
        xy_status "${MSG_58}"
        ${INITDIR}/GRDN_WEB_Filtering stop >/dev/null 2>&1
        sleep 1
    elif [ -x ${RCN_DIR}/rc2.d/S99GRDN_WEB_Filtering ]; then
        xy_status "${MSG_58}"
        ${RCN_DIR}/rc2.d/S99GRDN_WEB_Filtering stop >/dev/null 2>&1
        sleep 1
    fi
    if [ -x ${INITDIR}/GRDN_WEB_Reporting ]; then
        xy_status "${MSG_61}"
        ${INITDIR}/GRDN_WEB_Reporting stop >/dev/null 2>&1
        sleep 1
    elif [ -x ${RCN_DIR}/rc2.d/S99GRDN_WEB_Reporting ]; then
        xy_status "${MSG_61}"
        ${RCN_DIR}/rc2.d/S99GRDN_WEB_Reporting stop >/dev/null 2>&1
        sleep 1
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

pdb_stop()
{
    if [ -x ${GSA_CONF} ]; then
        tmpdir=`${GSA_CONF} -a -sDirectories -kDatabaseDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            PDBLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
        tmpdir=`${GSA_CONF} -l -sArchive -kRestoreDatabaseDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            RDBLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    ## ǡ١
    puts 0 1 "${BOLD}${MSG_84}${NRML}"
    if [ -x ${INITDIR}/Guardian.db ]; then
        xy_status "${MSG_85}"
        ${INITDIR}/Guardian.db stop >/dev/null 2>&1
        sleep 2
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

dbs_affunc_d()
{
    puts 0 1 "${BOLD}${MSG_15}${NRML}"

    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    if [ "X${MALLOGD}" != "X" -a -d "${MALLOGD}" -o "X${WEBLOGD}" != "X" -a -d "${WEBLOGD}" -o "X${AKNSARD}" != "X" -a -d "${AKNSARD}" ]; then
        xy_status ""
        if (get_yes_no "${MSG_21}"); then
            xy_status "${MSG_22}"
            if [ "X${MALLOGD}" != "X" -a -d "${MALLOGD}" -a "${MALLOGD}" != "${WALLOGD}" ]; then
                rm  -f ${MALLOGD}/log.[0-9]* >/dev/null 2>&1
                rm -rf ${MALLOGD}/archive >/dev/null 2>&1
                rm -rf ${MALLOGD}/deliver >/dev/null 2>&1
                rm -rf ${MALLOGD}/manager >/dev/null 2>&1
                rm -rf ${MALLOGD}/screening >/dev/null 2>&1
                rm -rf ${MALLOGD}/viewer >/dev/null 2>&1
                rmdir  ${MALLOGD} >/dev/null 2>&1
            fi
            if [ -d ${VARGDIR}/Admin/mail -a "${VARGDIR}/Admin/mail" != "${WALLOGD}" ]; then
                rm  -f ${VARGDIR}/Admin/mail/log.[0-9]* >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/mail/archive >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/mail/deliver >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/mail/manager >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/mail/screening >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/mail/viewer >/dev/null 2>&1
                rmdir  ${VARGDIR}/Admin/mail >/dev/null 2>&1
            fi
            if [ "X${WEBLOGD}" != "X" -a -d "${WEBLOGD}" -a "${WEBLOGD}" != "${WBGLOGD}" ]; then
                rm -rf ${WEBLOGD}/[0-9][0-9][0-9][0-9] >/dev/null 2>&1
                rmdir  ${WEBLOGD} >/dev/null 2>&1
            fi
            if [ -d ${VARGDIR}/Admin/web -a "${VARGDIR}/Admin/web" != "${WBGLOGD}" ]; then
                rm -rf ${VARGDIR}/Admin/web/[0-9][0-9][0-9][0-9] >/dev/null 2>&1
                rmdir  ${VARGDIR}/Admin/web >/dev/null 2>&1
            fi
            if [ "X${AKNSARD}" != "X" -a -d "${AKNSARD}" ]; then
                rm -rf ${AKNSARD}/charc >/dev/null 2>&1
                rm -rf ${AKNSARD}/stat >/dev/null 2>&1
                rmdir  ${AKNSARD} >/dev/null 2>&1
            fi
            if [ -d ${VARGDIR}/Admin/kansa ]; then
                rm -rf ${VARGDIR}/Admin/kansa/charc >/dev/null 2>&1
                rm -rf ${VARGDIR}/Admin/kansa/stat >/dev/null 2>&1
                rmdir  ${VARGDIR}/Admin/kansa >/dev/null 2>&1
            fi
            rmdir ${VARGDIR}/Admin >/dev/null 2>&1
            rmdir ${VARGDIR} >/dev/null 2>&1

            if [ -d ${ADMNDIR}/wg/logs ]; then
                rm -rf ${ADMNDIR}/wg/logs >/dev/null 2>&1
            fi
            rmdir ${ADMNDIR}/wg >/dev/null 2>&1
        fi
    fi
    # remove database directory
    if [ "X${PDBLOGD}" != "X" -a -d "${PDBLOGD}" ]; then
        if (get_yes_no "${MSG_88}"); then
            xy_status "${MSG_89}"
            rm -rf ${PDBLOGD} >/dev/null 2>&1
            if [ "X${RDBLOGD}" != "X" -a -d "${RDBLOGD}" ]; then
                rm -rf ${RDBLOGD}/* >/dev/null 2>&1
            fi
        fi
    fi

    if [ ${ALLRM} -eq 1 ]; then
        if [ ${UNAME} = "Linux" ]; then
            if [ -f ${INITDIR}/Guardian.admin ]; then
                /sbin/chkconfig --del Guardian.admin >/dev/null 2>&1
                rm -f ${INITDIR}/Guardian.admin >/dev/null 2>&1
            fi
            if [ -f ${INITDIR}/Guardian.db ]; then
                /sbin/chkconfig --del Guardian.db >/dev/null 2>&1
                rm -f ${INITDIR}/Guardian.db >/dev/null 2>&1
            fi
        fi

        if [ -d ${ADMNDIR}/etc ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/wg/conf ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/wg/conf >/dev/null 2>&1
            rmdir ${ADMNDIR}/wg >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/tmp ]; then
            xy_status "${MSG_17}"
            rm -rf ${ADMNDIR}/tmp >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/httpd ]; then
            xy_status "${MSG_18}"
            rm -rf ${ADMNDIR}/httpd >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/php ]; then
            xy_status "${MSG_19}"
            rm -rf ${ADMNDIR}/php >/dev/null 2>&1
        fi
        xy_status "${MSG_20}"
        if [ "X${ADMLOGD}" != "X" -a -d "${ADMLOGD}" ]; then
            rm -f ${ADMLOGD}/* >/dev/null 2>&1
            rmdir ${ADMLOGD} >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/logs ]; then
            rm -rf ${ADMNDIR}/logs >/dev/null 2>&1
        fi

        ## crontab
        puts 0 1 "${BOLD}${MSG_04}${NRML}"
        xy_status ""
        BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
        (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            case "${UNAME}" in
            SunOS)
                (egrep -iv '^# for GUARDIANSUITE|/opt/Guardian/Admin/bin' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                ;;
            Linux)
                (egrep -iv '^# for GUARDIANSUITE|/opt/Guardian/Admin/bin|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                ;;
            esac
            if [ $? -ne 0 ]; then
                /usr/bin/crontab ${BACKUP_CRON} 2>/dev/null
                xy_warning "${ERR_12}"
                sleep 3
            else
                xy_status "${MSG_23}"
            fi
        fi
    else
        if [ ${UNAME} = "Linux" ]; then
            if [ -f ${INITDIR}/Guardian.db ]; then
                /sbin/chkconfig --del Guardian.db >/dev/null 2>&1
                rm -f ${INITDIR}/Guardian.db >/dev/null 2>&1
            fi
        fi

        if [ -d ${ADMNDIR}/etc/admin ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc/admin >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc/wall >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wg ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc/wg >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/pcg ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc/pcg >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/wg/conf ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/wg/conf >/dev/null 2>&1
            rmdir ${ADMNDIR}/wg >/dev/null 2>&1
        fi

        ## crontab
        puts 0 1 "${BOLD}${MSG_04}${NRML}"
        xy_status ""
        BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
        (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            case "${UNAME}" in
            SunOS)
                (egrep -iv '^# for GUARDIANSUITE ADMIN|Admin/bin/guts_launcher_a\.pl' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                ;;
            Linux)
                (egrep -iv '^# for GUARDIANSUITE ADMIN|Admin/bin/guts_launcher_a\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                ;;
            esac
            if [ $? -ne 0 ]; then
                /usr/bin/crontab ${BACKUP_CRON} 2>/dev/null
                xy_warning "${ERR_12}"
                sleep 3
            else
                xy_status "${MSG_23}"
            fi
        fi

        ARUNF=0
        if [ -f ${ADPID_F} ]; then
            ADPID=`cat ${ADPID_F} 2>/dev/null`
            if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
                ARUNF=1
            else
                ARUNF=0
            fi
        fi
        if [ ${ARUNF} -ne 1 ]; then
            puts 0 1 "${BOLD}${MSG_06}${NRML}"
            xy_status ""
            if [ -x ${INITDIR}/Guardian.admin ]; then
                xy_status "${MSG_07}"
                ${INITDIR}/Guardian.admin start >/dev/null 2>&1
                sleep 2
            fi
        fi
    fi

    puts 0 1 ""
    puts 2 5 "###########################################################"
    puts 2 6 "${MSG_24}"
    puts 2 7 "###########################################################"

    xy_status ""
    return 0
}

mg_affunc_d()
{
    puts 0 1 "${BOLD}${MSG_15}${NRML}"
    xy_status ""

    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    if [ ${UNAME} = "Linux" ]; then
        if [ -f ${INITDIR}/MailWall ]; then
            /sbin/chkconfig --del MailWall >/dev/null 2>&1
            rm -f ${INITDIR}/MailWall >/dev/null 2>&1
        elif [ -f ${INITDIR}/Guardian.mail ]; then
            /sbin/chkconfig --del Guardian.mail >/dev/null 2>&1
            rm -f ${INITDIR}/Guardian.mail >/dev/null 2>&1
        fi
    fi

    if (get_yes_no "${MSG_57}"); then
        # remove log files and messages
        xy_status "${MSG_16}"
        if [ ${OLDVER} -eq 1 ]; then
            if [ -d ${WALLDIR}/mss/etc ]; then
                rm -rf ${WALLDIR}/mss/etc >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/mss/template ]; then
                rm -rf ${WALLDIR}/mss/template >/dev/null 2>&1
            fi
        else
            if [ -d ${WALLDIR}/etc ]; then
                rm -rf ${WALLDIR}/etc >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/template ]; then
                rm -rf ${WALLDIR}/template >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/lib ]; then
                rm -rf ${WALLDIR}/lib >/dev/null 2>&1
            fi
        fi
        xy_status "${MSG_60}"
        sleep 2
        if [ ${OLDVER} -eq 1 ]; then
            if [ -d ${WALLDIR}/mss/mqueue ]; then
                rm -rf ${WALLDIR}/mss/mqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/mss/pqueue ]; then
                rm -rf ${WALLDIR}/mss/pqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/mss/aqueue ]; then
                rm -rf ${WALLDIR}/mss/aqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/mss/cqueue ]; then
                rm -rf ${WALLDIR}/mss/cqueue >/dev/null 2>&1
            fi
        else
            if [ -d ${WALLDIR}/mqueue ]; then
                rm -rf ${WALLDIR}/mqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/pqueue ]; then
                rm -rf ${WALLDIR}/pqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/aqueue ]; then
                rm -rf ${WALLDIR}/aqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/cqueue ]; then
                rm -rf ${WALLDIR}/cqueue >/dev/null 2>&1
            fi
        fi
        # remove log files
        if [ "X${WALLOGD}" != "X" -a -d "${WALLOGD}" -a "${WALLOGD}" != "${MALLOGD}" ]; then
            xy_status "${MSG_22}"
            rm  -f ${WALLOGD}/log.[0-9]* >/dev/null 2>&1
            rm -rf ${WALLOGD}/archive >/dev/null 2>&1
            rm -rf ${WALLOGD}/deliver >/dev/null 2>&1
            rm -rf ${WALLOGD}/manager >/dev/null 2>&1
            rm -rf ${WALLOGD}/screening >/dev/null 2>&1
            rm -rf ${WALLOGD}/viewer >/dev/null 2>&1
            rmdir  ${WALLOGD} >/dev/null 2>&1
        fi
        if [ ${OLDVER} -eq 1 ]; then
            if [ -d ${WALLDIR}/mss/logs ]; then
                xy_status "${MSG_22}"
                rm -rf ${WALLDIR}/mss/logs >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/httpd/logs ]; then
                xy_status "${MSG_22}"
                rm -rf ${WALLDIR}/httpd/logs >/dev/null 2>&1
            fi
        else
            if [ -d ${WALLDIR}/logs ]; then
                xy_status "${MSG_22}"
                rm -rf ${WALLDIR}/logs >/dev/null 2>&1
            fi
            if [ -d ${GRDNDIR}/httpd/logs ]; then
                xy_status "${MSG_22}"
                rm -rf ${GRDNDIR}/httpd/logs >/dev/null 2>&1
            fi
        fi
    fi

    # remove lock files
    if [ -f ${WALLDIR}/SEARCH ]; then
        rm -f ${WALLDIR}/SEARCH >/dev/null 2>&1
    fi
    if [ -f ${WALLDIR}/NODAEMON ]; then
        rm -f ${WALLDIR}/NODAEMON >/dev/null 2>&1
    fi
    if [ -f ${WALLDIR}/SSL ]; then
        rm -f ${WALLDIR}/SSL >/dev/null 2>&1
    fi

    # for Admin server
    if [ ${ALLRM} -eq 1 ]; then
        if [ ${UNAME} = "Linux" ]; then
            if [ -f ${INITDIR}/Guardian.admin ]; then
                /sbin/chkconfig --del Guardian.admin >/dev/null 2>&1
                rm -f ${INITDIR}/Guardian.admin >/dev/null 2>&1
            fi
        fi

        if [ -d ${ADMNDIR}/etc ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/tmp ]; then
            xy_status "${MSG_17}"
            rm -rf ${ADMNDIR}/tmp >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/httpd ]; then
            xy_status "${MSG_18}"
            rm -rf ${ADMNDIR}/httpd >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/php ]; then
            xy_status "${MSG_19}"
            rm -rf ${ADMNDIR}/php >/dev/null 2>&1
        fi
        xy_status "${MSG_20}"
        if [ "X${ADMLOGD}" != "X" -a -d "${ADMLOGD}" ]; then
            rm -f ${ADMLOGD}/* >/dev/null 2>&1
            rmdir ${ADMLOGD} >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/logs ]; then
            rm -rf ${ADMNDIR}/logs >/dev/null 2>&1
        fi
    else
        if [ -d ${ADMNDIR}/etc/cserv/server/mail ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
        fi
    fi

    ## crontab
    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    xy_status ""
    if [ -d "${ADMNDIR}" ]; then
        BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
    else
        BACKUP_CRON="${WALLDIR}/crontab_w.`date +%Y%m%d`"
    fi
    (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
    if [ $? -eq 0 ]; then
        if [ ${OLDVER} -eq 1 ]; then
            case "${UNAME}" in
            SunOS)
                (egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                ;;
            Linux)
                (egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                ;;
            esac
        else
            case "${UNAME}" in
            SunOS)
                if [ ${ALLRM} -eq 1 ]; then
                    (egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                else
                    (egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                fi
                ;;
            Linux)
                if [ ${ALLRM} -eq 1 ]; then
                    (egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                else
                    (egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                fi
                ;;
            esac
        fi
        if [ $? -ne 0 ]; then
            /usr/bin/crontab ${BACKUP_CRON} 2>/dev/null
            xy_warning "${ERR_12}"
            sleep 3
        else
            xy_status "${MSG_23}"
        fi
    fi

    # for Admin server
    if [ ${ALLRM} -ne 1 ]; then
        ARUNF=0
        if [ -f ${ADPID_F} ]; then
            ADPID=`cat ${ADPID_F} 2>/dev/null`
            if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
                ARUNF=1
            else
                ARUNF=0
            fi
        fi
        if [ ${ARUNF} -ne 1 ]; then
            puts 0 1 "${BOLD}${MSG_06}${NRML}"
            xy_status ""
            if [ -x ${INITDIR}/Guardian.admin ]; then
                xy_status "${MSG_07}"
                ${INITDIR}/Guardian.admin start >/dev/null 2>&1
                sleep 2
            fi
        fi
    fi

    puts 0 1 ""
    puts 2 5 "###########################################################"
    puts 2 6 "${MSG_62}"
    puts 2 7 "###########################################################"

    xy_status ""
    return 0
}

mgs_affunc_d()
{
    puts 0 1 "${BOLD}${MSG_15}${NRML}"
    xy_status ""

    # remove lock files
    if [ -f ${WALLDIR}/SEARCH ]; then
        rm -f ${WALLDIR}/SEARCH >/dev/null 2>&1
    fi
    if [ -f ${WALLDIR}/NODAEMON ]; then
        rm -f ${WALLDIR}/NODAEMON >/dev/null 2>&1
    fi
    if [ -f ${WALLDIR}/SSL ]; then
        rm -f ${WALLDIR}/SSL >/dev/null 2>&1
    fi

    # remove server regist config directory
    if [ -d ${ADMNDIR}/etc/admin/server ]; then
        rm -rf ${ADMNDIR}/etc/admin/server/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/etc/cserv/server/mail ]; then
        rm -rf ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
    fi

    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    if (get_yes_no "${MSG_57}"); then
        # remove log files and messages
        xy_status "${MSG_16}"
        if [ ${OLDVER} -eq 1 ]; then
            if [ -d ${WALLDIR}/mss/etc ]; then
                rm -rf ${WALLDIR}/mss/etc >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/mss/template ]; then
                rm -rf ${WALLDIR}/mss/template >/dev/null 2>&1
            fi
        else
            if [ -d ${WALLDIR}/etc ]; then
                rm -rf ${WALLDIR}/etc >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/template ]; then
                rm -rf ${WALLDIR}/template >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/lib ]; then
                rm -rf ${WALLDIR}/lib >/dev/null 2>&1
            fi
        fi
        xy_status "${MSG_60}"
        sleep 2
        if [ ${OLDVER} -eq 1 ]; then
            if [ -d ${WALLDIR}/mss/mqueue ]; then
                rm -rf ${WALLDIR}/mss/mqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/mss/pqueue ]; then
                rm -rf ${WALLDIR}/mss/pqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/mss/aqueue ]; then
                rm -rf ${WALLDIR}/mss/aqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/mss/cqueue ]; then
                rm -rf ${WALLDIR}/mss/cqueue >/dev/null 2>&1
            fi
        else
            if [ -d ${WALLDIR}/mqueue ]; then
                rm -rf ${WALLDIR}/mqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/pqueue ]; then
                rm -rf ${WALLDIR}/pqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/aqueue ]; then
                rm -rf ${WALLDIR}/aqueue >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/cqueue ]; then
                rm -rf ${WALLDIR}/cqueue >/dev/null 2>&1
            fi
        fi
        # remove log files
        if [ "X${WALLOGD}" != "X" -a -d "${WALLOGD}" ]; then
            xy_status "${MSG_22}"
            rm  -f ${WALLOGD}/log.[0-9]* >/dev/null 2>&1
            rm -rf ${WALLOGD}/archive >/dev/null 2>&1
            rm -rf ${WALLOGD}/deliver >/dev/null 2>&1
            rm -rf ${WALLOGD}/manager >/dev/null 2>&1
            rm -rf ${WALLOGD}/screening >/dev/null 2>&1
            rm -rf ${WALLOGD}/viewer >/dev/null 2>&1
            rmdir  ${WALLOGD} >/dev/null 2>&1
        fi
        if [ ${OLDVER} -eq 1 ]; then
            if [ -d ${WALLDIR}/mss/logs ]; then
                xy_status "${MSG_22}"
                rm -rf ${WALLDIR}/mss/logs >/dev/null 2>&1
            fi
            if [ -d ${WALLDIR}/httpd/logs ]; then
                xy_status "${MSG_22}"
                rm -rf ${WALLDIR}/httpd/logs >/dev/null 2>&1
            fi
        else
            if [ -d ${WALLDIR}/logs ]; then
                xy_status "${MSG_22}"
                rm -rf ${WALLDIR}/logs >/dev/null 2>&1
            fi
            if [ -d ${GRDNDIR}/httpd/logs ]; then
                xy_status "${MSG_22}"
                rm -rf ${GRDNDIR}/httpd/logs >/dev/null 2>&1
            fi
        fi

        # for Admin server
        if [ ${ALLRM} -eq 1 ]; then
            if [ -d ${ADMNDIR}/etc ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/etc >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/wg/conf ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/wg/conf >/dev/null 2>&1
                rmdir ${ADMNDIR}/wg >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/tmp ]; then
                xy_status "${MSG_17}"
                rm -rf ${ADMNDIR}/tmp >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/httpd ]; then
                xy_status "${MSG_18}"
                rm -rf ${ADMNDIR}/httpd >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/php ]; then
                xy_status "${MSG_19}"
                rm -rf ${ADMNDIR}/php >/dev/null 2>&1
            fi

            xy_status "${MSG_20}"
            if [ "X${ADMLOGD}" != "X" -a -d "${ADMLOGD}" ]; then
                rm -f ${ADMLOGD}/* >/dev/null 2>&1
                rmdir ${ADMLOGD} >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/logs ]; then
                rm -rf ${ADMNDIR}/logs >/dev/null 2>&1
            fi
        else
            if [ -d ${ADMNDIR}/etc/admin ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/etc/admin >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/wall ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/etc/wall >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/wg ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/etc/wg >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/pcg ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/etc/pcg >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/wg/conf ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/wg/conf >/dev/null 2>&1
                rmdir ${ADMNDIR}/wg >/dev/null 2>&1
            fi
        fi

        xy_status "${MSG_20}"
        if [ "X${MALLOGD}" != "X" -a -d "${MALLOGD}" ]; then
            rm  -f ${MALLOGD}/log.[0-9]* >/dev/null 2>&1
            rm -rf ${MALLOGD}/archive >/dev/null 2>&1
            rm -rf ${MALLOGD}/deliver >/dev/null 2>&1
            rm -rf ${MALLOGD}/manager >/dev/null 2>&1
            rm -rf ${MALLOGD}/screening >/dev/null 2>&1
            rm -rf ${MALLOGD}/viewer >/dev/null 2>&1
            rmdir  ${MALLOGD} >/dev/null 2>&1
        fi
        if [ -d ${VARGDIR}/Admin/mail ]; then
            rm  -f ${VARGDIR}/Admin/mail/log.[0-9]* >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/mail/archive >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/mail/deliver >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/mail/manager >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/mail/screening >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/mail/viewer >/dev/null 2>&1
            rmdir  ${VARGDIR}/Admin/mail >/dev/null 2>&1
        fi
        if [ "X${WEBLOGD}" != "X" -a -d "${WEBLOGD}" -a "${WEBLOGD}" != "${WBGLOGD}" ]; then
            rm -rf ${WEBLOGD}/[0-9][0-9][0-9][0-9] >/dev/null 2>&1
            rmdir  ${WEBLOGD} >/dev/null 2>&1
        fi
        if [ -d ${VARGDIR}/Admin/web -a "${VARGDIR}/Admin/web" != "${WBGLOGD}" ]; then
            rm -rf ${VARGDIR}/Admin/web/[0-9][0-9][0-9][0-9] >/dev/null 2>&1
            rmdir  ${VARGDIR}/Admin/web >/dev/null 2>&1
        fi
        if [ "X${AKNSARD}" != "X" -a -d "${AKNSARD}" ]; then
            rm -rf ${AKNSARD}/charc >/dev/null 2>&1
            rm -rf ${AKNSARD}/stat >/dev/null 2>&1
            rmdir  ${AKNSARD} >/dev/null 2>&1
        fi
        if [ -d ${VARGDIR}/Admin/kansa ]; then
            rm -rf ${VARGDIR}/Admin/kansa/charc >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/kansa/stat >/dev/null 2>&1
            rmdir  ${VARGDIR}/Admin/kansa >/dev/null 2>&1
        fi
        rmdir ${VARGDIR}/Admin >/dev/null 2>&1
        rmdir ${VARGDIR} >/dev/null 2>&1

        if [ -d ${ADMNDIR}/wg/logs ]; then
            rm -rf ${ADMNDIR}/wg/logs >/dev/null 2>&1
        fi
        rmdir ${ADMNDIR}/wg >/dev/null 2>&1
    fi
    # remove database directory
    if [ "X${PDBLOGD}" != "X" -a -d "${PDBLOGD}" ]; then
        if (get_yes_no "${MSG_88}"); then
            xy_status "${MSG_89}"
            rm -rf ${PDBLOGD} >/dev/null 2>&1
            if [ "X${RDBLOGD}" != "X" -a -d "${RDBLOGD}" ]; then
                rm -rf ${RDBLOGD}/* >/dev/null 2>&1
            fi
        fi
    fi

    if [ ${UNAME} = "Linux" ]; then
        if [ -f ${INITDIR}/MailWall ]; then
            /sbin/chkconfig --del MailWall >/dev/null 2>&1
            rm -f ${INITDIR}/MailWall >/dev/null 2>&1
        elif [ -f ${INITDIR}/Guardian.mail ]; then
            /sbin/chkconfig --del Guardian.mail >/dev/null 2>&1
            rm -f ${INITDIR}/Guardian.mail >/dev/null 2>&1
        fi
        if [ ${ALLRM} -eq 1 ]; then
            if [ -f ${INITDIR}/Guardian.admin ]; then
                /sbin/chkconfig --del Guardian.admin >/dev/null 2>&1
                rm -f ${INITDIR}/Guardian.admin >/dev/null 2>&1
            fi
        fi
        if [ -f ${INITDIR}/Guardian.db ]; then
            /sbin/chkconfig --del Guardian.db >/dev/null 2>&1
            rm -f ${INITDIR}/Guardian.db >/dev/null 2>&1
        fi
    fi

    ## crontab
    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    xy_status ""
    if [ -d "${ADMNDIR}" ]; then
        BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
    else
        BACKUP_CRON="${WALLDIR}/crontab_w.`date +%Y%m%d`"
    fi
    (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
    if [ $? -eq 0 ]; then
        if [ ${OLDVER} -eq 1 ]; then
            case "${UNAME}" in
            SunOS)
                (egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                ;;
            Linux)
                (egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                ;;
            esac
        else
            case "${UNAME}" in
            SunOS)
                if [ ${ALLRM} -eq 1 ]; then
                    (egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                else
                    (egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE ADMIN|Admin/bin/guts_launcher_a\.pl' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                fi
                ;;
            Linux)
                if [ ${ALLRM} -eq 1 ]; then
                    (egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                else
                    (egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE ADMIN|Admin/bin/guts_launcher_a\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                fi
                ;;
            esac
        fi
        if [ $? -ne 0 ]; then
            /usr/bin/crontab ${BACKUP_CRON} 2>/dev/null
            xy_warning "${ERR_12}"
            sleep 3
        else
            xy_status "${MSG_23}"
        fi
    fi

    # for Admin server
    if [ ${ALLRM} -ne 1 ]; then
        ARUNF=0
        if [ -f ${ADPID_F} ]; then
            ADPID=`cat ${ADPID_F} 2>/dev/null`
            if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
                ARUNF=1
            fi
        fi
        if [ ${ARUNF} -ne 1 ]; then
            puts 0 1 "${BOLD}${MSG_06}${NRML}"
            xy_status ""
            if [ -x ${INITDIR}/Guardian.admin ]; then
                xy_status "${MSG_07}"
                ${INITDIR}/Guardian.admin start >/dev/null 2>&1
                sleep 2
            fi
        fi
    fi

    ## Finish
    puts 0 1 ""
    YYY="3"
    puts 2 ${YYY} "###########################################################"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_62}"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_24}"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "###########################################################"

    xy_status ""
    return 0
}

wg_affunc_d()
{
    puts 0 1 "${BOLD}${MSG_15}${NRML}"
    xy_status ""

    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    if [ ${UNAME} = "Linux" ]; then
        if [ -f ${INITDIR}/Guardian.web ]; then
            /sbin/chkconfig --del Guardian.web >/dev/null 2>&1
            rm -f ${INITDIR}/Guardian.web >/dev/null 2>&1
        fi
    fi

    if (get_yes_no "${MSG_21}"); then
        # remove config files
        xy_status "${MSG_16}"
        if [ -d ${WEBGDIR}/conf ]; then
            rm -rf ${WEBGDIR}/conf >/dev/null 2>&1
        fi
        if [ -d ${WEBGDIR}/data ]; then
            rm -rf ${WEBGDIR}/data >/dev/null 2>&1
        fi
        # remove queue & log files
        xy_status "${MSG_22}"
        if [ -d ${WEBGDIR}/var ]; then
            rm -rf ${WEBGDIR}/var >/dev/null 2>&1
        fi
        if [ "X${WBGLOGD}" != "X" -a -d "${WBGLOGD}" -a "${WBGLOGD}" != "${WEBLOGD}" ]; then
            rm -rf ${WBGLOGD}/[0-9][0-9][0-9][0-9] >/dev/null 2>&1
            rmdir  ${WBGLOGD} >/dev/null 2>&1
        fi
        if [ -d ${VARGDIR}/WG ]; then
            rm -rf ${VARGDIR}/WG >/dev/null 2>&1
        fi
        rmdir ${VARGDIR} >/dev/null 2>&1
    fi

    # for Admin server
    if [ ${ALLRM} -eq 1 ]; then
        if [ ${UNAME} = "Linux" ]; then
            if [ -f ${INITDIR}/Guardian.admin ]; then
                /sbin/chkconfig --del Guardian.admin >/dev/null 2>&1
                rm -f ${INITDIR}/Guardian.admin >/dev/null 2>&1
            fi
        fi

        if [ -d ${ADMNDIR}/etc ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/tmp ]; then
            xy_status "${MSG_17}"
            rm -rf ${ADMNDIR}/tmp >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/httpd ]; then
            xy_status "${MSG_18}"
            rm -rf ${ADMNDIR}/httpd >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/php ]; then
            xy_status "${MSG_19}"
            rm -rf ${ADMNDIR}/php >/dev/null 2>&1
        fi
        xy_status "${MSG_20}"
        if [ "X${ADMLOGD}" != "X" -a -d "${ADMLOGD}" ]; then
            rm -f ${ADMLOGD}/* >/dev/null 2>&1
            rmdir ${ADMLOGD} >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/logs ]; then
            rm -rf ${ADMNDIR}/logs >/dev/null 2>&1
        fi
    else
        if [ -d ${ADMNDIR}/etc/cserv/server/web ]; then
            xy_status "${MSG_16}"
            rm -rf ${ADMNDIR}/etc/cserv/server/web >/dev/null 2>&1
        fi
        for f in command.conf schedule.conf
        do
            if [ -f ${ADMNDIR}/etc/cserv/$f ]; then
                (egrep -iv '^SWEEP_TEMPDIR[ ]*=|UPDATE_URLDB[ ]*=' ${ADMNDIR}/etc/cserv/$f >${ADMNDIR}/etc/cserv/$f.new) 2>/dev/null
                cp -p ${ADMNDIR}/etc/cserv/$f ${ADMNDIR}/etc/cserv/$f.bak >/dev/null 2>&1
                mv ${ADMNDIR}/etc/cserv/$f.new ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            fi
        done
    fi

    ## crontab
    if [ ${ALLRM} -eq 1 ]; then
        puts 0 1 "${BOLD}${MSG_04}${NRML}"
        xy_status ""
        BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
        (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
        if [ $? -eq 0 ]; then
            case "${UNAME}" in
            SunOS)
                (egrep -iv '^# for GUARDIANSUITE|/opt/Guardian/Admin/bin' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
                ;;
            Linux)
                (egrep -iv '^# for GUARDIANSUITE|/opt/Guardian/Admin/bin|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
                ;;
            esac
            if [ $? -ne 0 ]; then
                /usr/bin/crontab ${BACKUP_CRON} 2>/dev/null
                xy_warning "${ERR_12}"
                sleep 3
            else
                xy_status "${MSG_23}"
            fi
        fi
    else
        ARUNF=0
        if [ -f ${ADPID_F} ]; then
            ADPID=`cat ${ADPID_F} 2>/dev/null`
            if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
                ARUNF=1
            else
                ARUNF=0
            fi
        fi
        if [ ${ARUNF} -ne 1 ]; then
            puts 0 1 "${BOLD}${MSG_06}${NRML}"
            xy_status ""
            if [ -x ${INITDIR}/Guardian.admin ]; then
                xy_status "${MSG_07}"
                ${INITDIR}/Guardian.admin start >/dev/null 2>&1
                sleep 2
            fi
        fi
    fi

    puts 0 1 ""
    puts 2 5 "###########################################################"
    puts 2 6 "${MSG_35}"
    puts 2 7 "###########################################################"

    xy_status ""
    return 0
}

wgs_affunc_d()
{
    puts 0 1 "${BOLD}${MSG_15}${NRML}"
    xy_status ""

    # remove server regist config directory
    if [ -d ${ADMNDIR}/etc/admin/server ]; then
        rm -rf ${ADMNDIR}/etc/admin/server/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/etc/cserv/server/web ]; then
        rm -rf ${ADMNDIR}/etc/cserv/server/web >/dev/null 2>&1
    fi

    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    if (get_yes_no "${MSG_21}"); then
        # remove config files
        xy_status "${MSG_16}"
        if [ -d ${WEBGDIR}/conf ]; then
            rm -rf ${WEBGDIR}/conf >/dev/null 2>&1
        fi
        if [ -d ${WEBGDIR}/data ]; then
            rm -rf ${WEBGDIR}/data >/dev/null 2>&1
        fi
        # remove queue & log files
        xy_status "${MSG_22}"
        if [ -d ${WEBGDIR}/var ]; then
            rm -rf ${WEBGDIR}/var >/dev/null 2>&1
        fi
        if [ "X${WBGLOGD}" != "X" -a -d "${WBGLOGD}" ]; then
            rm -rf ${WBGLOGD}/[0-9][0-9][0-9][0-9] >/dev/null 2>&1
            rmdir  ${WBGLOGD} >/dev/null 2>&1
        fi
        if [ -d ${VARGDIR}/WG ]; then
            rm -rf ${VARGDIR}/WG >/dev/null 2>&1
        fi
        rmdir ${VARGDIR} >/dev/null 2>&1

        # for Admin server
        if [ ${ALLRM} -eq 1 ]; then
            if [ -d ${ADMNDIR}/etc ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/etc >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/wg/conf ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/wg/conf >/dev/null 2>&1
                rmdir ${ADMNDIR}/wg >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/tmp ]; then
                xy_status "${MSG_17}"
                rm -rf ${ADMNDIR}/tmp >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/httpd ]; then
                xy_status "${MSG_18}"
                rm -rf ${ADMNDIR}/httpd >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/php ]; then
                xy_status "${MSG_19}"
                rm -rf ${ADMNDIR}/php >/dev/null 2>&1
            fi

            xy_status "${MSG_20}"
            if [ "X${ADMLOGD}" != "X" -a -d "${ADMLOGD}" ]; then
                rm -f ${ADMLOGD}/* >/dev/null 2>&1
                rmdir ${ADMLOGD} >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/logs ]; then
                rm -rf ${ADMNDIR}/logs >/dev/null 2>&1
            fi
        else
            if [ -d ${ADMNDIR}/etc/admin ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/etc/admin >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/wall ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/etc/wall >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/wg ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/etc/wg >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/pcg ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/etc/pcg >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/wg/conf ]; then
                xy_status "${MSG_16}"
                rm -rf ${ADMNDIR}/wg/conf >/dev/null 2>&1
                rmdir ${ADMNDIR}/wg >/dev/null 2>&1
            fi
        fi

        xy_status "${MSG_20}"
        if [ "X${MALLOGD}" != "X" -a -d "${MALLOGD}" -a "${MALLOGD}" != "${WALLOGD}" ]; then
            rm  -f ${MALLOGD}/log.[0-9]* >/dev/null 2>&1
            rm -rf ${MALLOGD}/archive >/dev/null 2>&1
            rm -rf ${MALLOGD}/deliver >/dev/null 2>&1
            rm -rf ${MALLOGD}/manager >/dev/null 2>&1
            rm -rf ${MALLOGD}/screening >/dev/null 2>&1
            rm -rf ${MALLOGD}/viewer >/dev/null 2>&1
            rmdir  ${MALLOGD} >/dev/null 2>&1
        fi
        if [ -d ${VARGDIR}/Admin/mail -a "${VARGDIR}/Admin/mail" != "${WALLOGD}" ]; then
            rm  -f ${VARGDIR}/Admin/mail/log.[0-9]* >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/mail/archive >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/mail/deliver >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/mail/manager >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/mail/screening >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/mail/viewer >/dev/null 2>&1
            rmdir  ${VARGDIR}/Admin/mail >/dev/null 2>&1
        fi
        if [ "X${WEBLOGD}" != "X" -a -d "${WEBLOGD}" ]; then
            rm -rf ${WEBLOGD}/[0-9][0-9][0-9][0-9] >/dev/null 2>&1
            rmdir  ${WEBLOGD} >/dev/null 2>&1
        fi
        if [ -d ${VARGDIR}/Admin/web ]; then
            rm -rf ${VARGDIR}/Admin/web/[0-9][0-9][0-9][0-9] >/dev/null 2>&1
            rmdir  ${VARGDIR}/Admin/web >/dev/null 2>&1
        fi
        if [ "X${AKNSARD}" != "X" -a -d "${AKNSARD}" ]; then
            rm -rf ${AKNSARD}/charc >/dev/null 2>&1
            rm -rf ${AKNSARD}/stat >/dev/null 2>&1
            rmdir  ${AKNSARD} >/dev/null 2>&1
        fi
        if [ -d ${VARGDIR}/Admin/kansa ]; then
            rm -rf ${VARGDIR}/Admin/kansa/charc >/dev/null 2>&1
            rm -rf ${VARGDIR}/Admin/kansa/stat >/dev/null 2>&1
            rmdir  ${VARGDIR}/Admin/kansa >/dev/null 2>&1
        fi
        rmdir ${VARGDIR}/Admin >/dev/null 2>&1
        rmdir ${VARGDIR} >/dev/null 2>&1

        if [ -d ${ADMNDIR}/wg/logs ]; then
            rm -rf ${ADMNDIR}/wg/logs >/dev/null 2>&1
        fi
        rmdir ${ADMNDIR}/wg >/dev/null 2>&1
    fi
    # remove database directory
    if [ "X${PDBLOGD}" != "X" -a -d "${PDBLOGD}" ]; then
        if (get_yes_no "${MSG_88}"); then
            xy_status "${MSG_89}"
            rm -rf ${PDBLOGD} >/dev/null 2>&1
            if [ "X${RDBLOGD}" != "X" -a -d "${RDBLOGD}" ]; then
                rm -rf ${RDBLOGD}/* >/dev/null 2>&1
            fi
        fi
    fi

    if [ ${UNAME} = "Linux" ]; then
        if [ -f ${INITDIR}/Guardian.web ]; then
            /sbin/chkconfig --del Guardian.web >/dev/null 2>&1
            rm -f ${INITDIR}/Guardian.web >/dev/null 2>&1
        fi
        if [ ${ALLRM} -eq 1 ]; then
            if [ -f ${INITDIR}/Guardian.admin ]; then
                /sbin/chkconfig --del Guardian.admin >/dev/null 2>&1
                rm -f ${INITDIR}/Guardian.admin >/dev/null 2>&1
            fi
        fi
        if [ -f ${INITDIR}/Guardian.db ]; then
            /sbin/chkconfig --del Guardian.db >/dev/null 2>&1
            rm -f ${INITDIR}/Guardian.db >/dev/null 2>&1
        fi
    fi

    ## crontab
    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    xy_status ""
    BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
    (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
    if [ $? -eq 0 ]; then
        case "${UNAME}" in
        SunOS)
            if [ ${ALLRM} -eq 1 ]; then
                (egrep -iv '^# for GUARDIANSUITE|/opt/Guardian/Admin/bin' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
            else
                (egrep -iv '^# for GUARDIANSUITE ADMIN|Admin/bin/guts_launcher_a\.pl' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
            fi
            ;;
        Linux)
            if [ ${ALLRM} -eq 1 ]; then
                (egrep -iv '^# for GUARDIANSUITE|/opt/Guardian/Admin/bin|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
            else
                (egrep -iv '^# for GUARDIANSUITE ADMIN|Admin/bin/guts_launcher_a\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
            fi
            ;;
        esac
        if [ $? -ne 0 ]; then
            /usr/bin/crontab ${BACKUP_CRON} 2>/dev/null
            xy_warning "${ERR_12}"
            sleep 3
        else
            xy_status "${MSG_23}"
        fi
    fi

    # for Admin server
    if [ ${ALLRM} -ne 1 ]; then
        for f in command.conf schedule.conf
        do
            if [ -f ${ADMNDIR}/etc/cserv/$f ]; then
                (egrep -iv '^SWEEP_TEMPDIR[ ]*=|UPDATE_URLDB[ ]*=' ${ADMNDIR}/etc/cserv/$f >${ADMNDIR}/etc/cserv/$f.new) 2>/dev/null
                cp -p ${ADMNDIR}/etc/cserv/$f ${ADMNDIR}/etc/cserv/$f.bak >/dev/null 2>&1
                mv ${ADMNDIR}/etc/cserv/$f.new ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            fi
        done

        ARUNF=0
        if [ -f ${ADPID_F} ]; then
            ADPID=`cat ${ADPID_F} 2>/dev/null`
            if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
                ARUNF=1
            fi
        fi
        if [ ${ARUNF} -ne 1 ]; then
            puts 0 1 "${BOLD}${MSG_06}${NRML}"
            xy_status ""
            if [ -x ${INITDIR}/Guardian.admin ]; then
                xy_status "${MSG_07}"
                ${INITDIR}/Guardian.admin start >/dev/null 2>&1
                sleep 2
            fi
        fi
    fi

    ## Finish
    puts 0 1 ""
    YYY=5
    puts 2 ${YYY} "###########################################################"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_35}"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "${MSG_24}"
    YYY=`expr ${YYY} + 1`
    puts 2 ${YYY} "###########################################################"

    xy_status ""
    return 0
}

ug_affunc_d()
{
    ## crontab
    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    xy_status ""
    BACKUP_CRON="/tmp/crontab_ug.$$"
    (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
    if [ $? -eq 0 ]; then
        case "${UNAME}" in
        SunOS)
            (egrep -iv 'URLGUARDIAN|/opt/Guardian/WEB/bin/' ${BACKUP_CRON} | /usr/bin/crontab) 2>/dev/null
            ;;
        Linux)
            (egrep -iv 'URLGUARDIAN|/opt/Guardian/WEB/bin/|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} | /usr/bin/crontab -) 2>/dev/null
            ;;
        esac
        if [ $? -ne 0 ]; then
            /usr/bin/crontab ${BACKUP_CRON} 2>/dev/null
            xy_warning "${ERR_12}"
            sleep 3
        else
            xy_status "${MSG_23}"
        fi
    fi
    rm -f ${BACKUP_CRON} >/dev/null 2>&1

    puts 0 1 ""
    if [ -z "${COHABIT}" ]; then
        WGFILTER=`cat /etc/passwd | grep -c wgfilter`
        if [ "${WGFILTER}" -eq 1 ]; then
            xy_status "${MSG_69}"
            /usr/sbin/userdel wgfilter >/dev/null 2>&1
        fi
        WGGROUP=`cat /etc/group | grep -c wggroup`
        if [ "${WGGROUP}" -eq 1 ]; then
            xy_status "${MSG_70}"
            /usr/sbin/groupdel wggroup >/dev/null 2>&1
        fi
    fi

    if [ -f ${GRDNDIR}/WEB/etc/VERSION ]; then
        rm -f ${GRDNDIR}/WEB/etc/VERSION >/dev/null 2>&1
    fi
    if [ -f ${GRDNDIR}/WEB/etc/LICENSE ]; then
        rm -f ${GRDNDIR}/WEB/etc/LICENSE >/dev/null 2>&1
    fi
    if [ -f ${GRDNDIR}/WEB/etc/ACCOUNT ]; then
        rm -f ${GRDNDIR}/WEB/etc/ACCOUNT >/dev/null 2>&1
    fi

    ## ǥ쥯ȥξõ
    puts 0 1 "${BOLD}${MSG_15}${NRML}"
    if [ -d ${GRDNDIR}/WEB ]; then
        puts 2 5 "${GRDNDIR}/WEB"
    fi
    if [ -d ${GRDNDIR}/httpd ]; then
        puts 2 6 "${GRDNDIR}/httpd"
    fi
    if [ -d ${GRDNDIR}/WEB ] || [ -d ${GRDNDIR}/httpd ]; then
        if (get_yes_no "${MSG_71}"); then
            xy_status "${MSG_72}"
            if [ -d ${GRDNDIR}/WEB ]; then
                rm -rf ${GRDNDIR}/WEB >/dev/null 2>&1
            fi
            if [ -d ${GRDNDIR}/httpd ]; then
                rm -rf ${GRDNDIR}/httpd >/dev/null 2>&1
            fi
            sleep 2
        fi
    fi
    puts 0 1 ""
    puts 2 5 ""
    puts 2 6 ""

    ## cleaning /var/tmp...
    rm -f /var/tmp/.argent* >/dev/null 2>&1
    rm -f /var/tmp/.weekly* >/dev/null 2>&1
    rm -f /var/tmp/.userdefined* >/dev/null 2>&1
    rm -f /var/tmp/.groups* >/dev/null 2>&1

    ##
    if [ -h ${RCN_DIR}/rc0.d/K99GRDN_WEB_Filtering ]; then
        rm -f ${RCN_DIR}/rc0.d/K99GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc1.d/K99GRDN_WEB_Filtering ]; then
        rm -f ${RCN_DIR}/rc1.d/K99GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc2.d/S99GRDN_WEB_Filtering ]; then
        rm -f ${RCN_DIR}/rc2.d/S99GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc2.d/K99GRDN_WEB_Filtering ]; then
        rm -f ${RCN_DIR}/rc2.d/K99GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rcS.d/K99GRDN_WEB_Filtering ]; then
        rm -f ${RCN_DIR}/rcS.d/K99GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc3.d/S99GRDN_WEB_Filtering ]; then
        rm -f ${RCN_DIR}/rc3.d/S99GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc3.d/K99GRDN_WEB_Filtering ]; then
        rm -f ${RCN_DIR}/rc3.d/K99GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc5.d/S99GRDN_WEB_Filtering ]; then
        rm -f ${RCN_DIR}/rc5.d/S99GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc5.d/K99GRDN_WEB_Filtering ]; then
        rm -f ${RCN_DIR}/rc5.d/K99GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc6.d/K99GRDN_WEB_Filtering ]; then
        rm -f ${RCN_DIR}/rc6.d/K99GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    if [ -f ${INITDIR}/GRDN_WEB_Filtering ]; then
        rm -f ${INITDIR}/GRDN_WEB_Filtering >/dev/null 2>&1
    fi
    ##
    if [ -h ${RCN_DIR}/rc0.d/K99GRDN_WEB_Reporting ]; then
        rm -f ${RCN_DIR}/rc0.d/K99GRDN_WEB_Reporting >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc1.d/K99GRDN_WEB_Reporting ]; then
        rm -f ${RCN_DIR}/rc1.d/K99GRDN_WEB_Reporting >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc2.d/S99GRDN_WEB_Reporting ]; then
        rm -f ${RCN_DIR}/rc2.d/S99GRDN_WEB_Reporting >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc2.d/K99GRDN_WEB_Reporting ]; then
        rm -f ${RCN_DIR}/rc2.d/K99GRDN_WEB_Reporting >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rcS.d/K99GRDN_WEB_Reporting ]; then
        rm -f ${RCN_DIR}/rcS.d/K99GRDN_WEB_Reporting >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc3.d/S99GRDN_WEB_Reporting ]; then
        rm -f ${RCN_DIR}/rc3.d/S99GRDN_WEB_Reporting >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc3.d/K99GRDN_WEB_Reporting ]; then
        rm -f ${RCN_DIR}/rc3.d/K99GRDN_WEB_Reporting >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc5.d/S99GRDN_WEB_Reporting ]; then
        rm -f ${RCN_DIR}/rc5.d/S99GRDN_WEB_Reporting >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc5.d/K99GRDN_WEB_Reporting ]; then
        rm -f ${RCN_DIR}/rc5.d/K99GRDN_WEB_Reporting >/dev/null 2>&1
    fi
    if [ -h ${RCN_DIR}/rc6.d/K99GRDN_WEB_Reporting ]; then
        rm -f ${RCN_DIR}/rc6.d/K99GRDN_WEB_Reporting >/dev/null 2>&1
    fi
    if [ -f ${INITDIR}/GRDN_WEB_Reporting ]; then
        rm -f ${INITDIR}/GRDN_WEB_Reporting >/dev/null 2>&1
    fi

    puts 0 1 ""
    puts 2 5 "###########################################################"
    puts 2 6 "${MSG_63}"
    puts 2 7 "###########################################################"

    xy_status ""
    return 0
}

s_befunc_u()
{
    UPGRADE=1
    ${PKG_IF} ${ADPKGN} >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        xy_warning "${ERR_23}"
        xy_homecsor
        exit 1
    fi
    if [ ${UNAME} = "Linux" ]; then
        OLDVER=`rpm -q --queryformat '%{VERSION}.%{RELEASE}' ${ADPKGN} 2>/dev/null`
    else
        OLDVER=`pkginfo -l ${ADPKGN} 2>/dev/null | grep 'VERSION:' | awk '{print $2}'`
    fi
    VER_MAJ=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
    VER_MIN=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
    VER_REL=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`

    # Сå
    if [ ${VER_MAJ} -gt 3 ]; then
        UPGRADE=2
    fi

    # 饤󥹥å
    GSA_LIC=${ADMNDIR}/bin/guts_lic
    if [ -x ${GSA_LIC} ]; then
        ${GSA_LIC} -c >/dev/null 2>&1
        RC=$?
        if [ ${RC} -ne 0 ]; then
            EXPDATE=`${GSA_LIC} -c 2>/dev/null|awk '{if ($1=="status:") print $3}'`
            ${SUPPORT} -c "${EXPDATE}" >/dev/null 2>&1
            if [ $? -ne 0 -o ${RC} -eq 2 ]; then
                xy_warning "${ERR_25}"
                xy_homecsor
                exit 1
            fi
        else
            ${SUPPORT} -c >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                xy_warning "${ERR_26}"
                xy_homecsor
                exit 1
            fi
        fi
    fi

    # ͭå
    s_shmchk
    if [ $? -ne 0 ]; then
        return 2
    fi

    # 塼顼֤Υå
    if [ -x ${JOB_COMD} ]; then
        puts 0 1 "${BOLD}${MSG_38}${NRML}"
        SJRUN=`${JOB_COMD} 2>/dev/null`
        if [ "X${SJRUN}" = "XRunning" ]; then
            puts 0 -3 "${ERR_40}"
            puts 0 -2 "${ERR_41}${BELL}"
            if (get_yes_no "${MSG_39}"); then
                ${JOB_COMD} -e -n >/dev/null 2>&1
            else
                ${JOB_COMD} -e >/dev/null 2>&1
            fi
            return 2
        fi
    fi

    BACKUPDIR=${GRDNDIR}/backup/${ADPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}

    # С
    puts 0 1 "${BOLD}${MSG_13}${NRML}"
    if [ -x ${INITDIR}/Guardian.admin ]; then
        xy_status "${MSG_14}"
        ${INITDIR}/Guardian.admin stop >/dev/null 2>&1
        sleep 2
    fi
    # ǡ١
    if [ ${UPGRADE} -gt 1 ]; then
        puts 0 1 "${BOLD}${MSG_84}${NRML}"
        if [ -x ${INITDIR}/Guardian.db ]; then
            xy_status "${MSG_85}"
            ${INITDIR}/Guardian.db stop >/dev/null 2>&1
            sleep 2
        fi
    fi

    if [ -d ${BACKUPDIR} ]; then
        rm -rf ${BACKUPDIR} >/dev/null 2>&1
    fi
    mkdir -p ${BACKUPDIR}/etc >/dev/null 2>&1

    # СϢХåå
    if [ -d ${ADMNDIR}/etc/admin ]; then
        mkdir -p ${BACKUPDIR}/etc/admin >/dev/null 2>&1
        for f in admin manager sysadm
        do
            if [ -d ${ADMNDIR}/etc/admin/$f ]; then
                mkdir -p ${BACKUPDIR}/etc/admin/$f >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/admin/$f/*.conf ${BACKUPDIR}/etc/admin/$f >/dev/null 2>&1
            fi
        done
        if [ -d ${ADMNDIR}/etc/admin/schedule ]; then
            mkdir -p ${BACKUPDIR}/etc/admin/schedule >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/admin/schedule/*.prm ${BACKUPDIR}/etc/admin/schedule >/dev/null 2>&1
        fi
        for f in admin.conf .admin.conf command.conf mkchgarc.ptn schedule.conf timestamp.log \
                 .adminldap .adminpasswd .mngldap .mngpasswd .sysadmldap .sysadmpasswd .usrmngldap .usrmngpasswd
        do
            cp -p ${ADMNDIR}/etc/admin/$f ${BACKUPDIR}/etc/admin >/dev/null 2>&1
        done
    fi
    # СϢХåå
    if [ -d ${ADMNDIR}/etc/cserv ]; then
        mkdir -p ${BACKUPDIR}/etc/cserv >/dev/null 2>&1
        for f in admin.conf command.conf schedule.conf
        do
            cp -p ${ADMNDIR}/etc/cserv/$f ${BACKUPDIR}/etc/cserv >/dev/null 2>&1
        done
    fi
    # WALLϢХåå
    if [ -d ${ADMNDIR}/etc/wall ]; then
        mkdir -p ${BACKUPDIR}/etc/wall >/dev/null 2>&1
        if [ -d ${ADMNDIR}/etc/wall/group ]; then
            mkdir -p ${BACKUPDIR}/etc/wall/group >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/group/*.addr ${BACKUPDIR}/etc/wall/group >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/group/*.ldap ${BACKUPDIR}/etc/wall/group >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall/template ]; then
            mkdir -p ${BACKUPDIR}/etc/wall/template >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/template/* ${BACKUPDIR}/etc/wall/template >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall/data ]; then
            mkdir -p ${BACKUPDIR}/etc/wall/data >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/data/*.atl ${BACKUPDIR}/etc/wall/data >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/data/*.cer ${BACKUPDIR}/etc/wall/data >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall/mss.mtype.d ]; then
            mkdir -p ${BACKUPDIR}/etc/wall/mss.mtype.d >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype ${BACKUPDIR}/etc/wall/mss.mtype.d >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall/mss.keywd.d ]; then
            mkdir -p ${BACKUPDIR}/etc/wall/mss.keywd.d >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd ${BACKUPDIR}/etc/wall/mss.keywd.d >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall/queue ]; then
            mkdir -p ${BACKUPDIR}/etc/wall/queue >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/queue/*.status ${BACKUPDIR}/etc/wall/queue >/dev/null 2>&1
        fi
        for f in action mss.acl mss.conf mss.keywd mss.mtype mss.notice
        do
            cp -p ${ADMNDIR}/etc/wall/$f ${BACKUPDIR}/etc/wall >/dev/null 2>&1
        done
    fi
    # WGϢХåå
    if [ -d ${ADMNDIR}/etc/wg ]; then
        mkdir -p ${BACKUPDIR}/etc/wg >/dev/null 2>&1
        if [ -d ${ADMNDIR}/etc/wg/msg ]; then
            mkdir -p ${BACKUPDIR}/etc/wg/msg >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wg/msg/*.html ${BACKUPDIR}/etc/wg/msg >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wg/msg/template ${BACKUPDIR}/etc/wg/msg >/dev/null 2>&1
        fi
        for f in admin.conf httpd.conf mail.conf mail.tpl wg.conf wg.keywd
        do
            cp -p ${ADMNDIR}/etc/wg/$f ${BACKUPDIR}/etc/wg >/dev/null 2>&1
        done
    fi
    if [ -d ${ADMNDIR}/wg/conf ]; then
        mkdir -p ${BACKUPDIR}/wgconf >/dev/null 2>&1
        if [ -d ${ADMNDIR}/wg/conf/category ]; then
            mkdir -p ${BACKUPDIR}/wgconf/category >/dev/null 2>&1
            for f in hierarchy names
            do
                cp -p ${ADMNDIR}/wg/conf/category/$f ${BACKUPDIR}/wgconf/category >/dev/null 2>&1
            done
        fi
        for f in mkdic.conf searchengine.conf searchengine_group.conf webmail.conf webmail_group.conf
        do
            cp -p ${ADMNDIR}/wg/conf/$f ${BACKUPDIR}/wgconf >/dev/null 2>&1
        done
    fi
    echo "${VER_MAJ}.${VER_MIN}.${VER_REL}" > ${BACKUPDIR}/VERSION

    puts 0 1 ""
    xy_status ""
    return 0
}

s_befunc_w()
{
    UPGRADE=1
    MG2ADMN=1
    ${PKG_IF} ${MGPKGN} >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        xy_warning "${ERR_24}"
        xy_homecsor
        exit 1
    fi

    if [ ${UNAME} = "Linux" ]; then
        OLDVER=`rpm -q --queryformat '%{VERSION}.%{RELEASE}' ${MGPKGN} 2>/dev/null`
    else
        OLDVER=`pkginfo -l ${MGPKGN} 2>/dev/null | grep 'VERSION:' | awk '{print $2}'`
    fi
    VER_MAJ=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
    VER_MIN=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
    VER_REL=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`

    # Сå
    if [ ${VER_MAJ} -gt 5 ]; then
        xy_warning "${ERR_37}"
        xy_homecsor
        exit 1
    elif [ ${VER_MAJ} -eq 5 -a ${VER_MIN} -ge 1 ]; then
        OLDVER=0
        MGDIR=${GRDNDIR}
        OLDDIR=${MGDIR}/WALL/etc
        OLD_CNF=${MSS_CONF}
        MSS_LIC=${MGDIR}/WALL/bin/mw_lic
    else
        OLDVER=1
        MGDIR=/opt/MailGuardian/Wall
        OLDDIR=${MGDIR}/mss/etc
        OLD_CNF=${MGDIR}/mss/bin/mw_conf
        MSS_LIC=${MGDIR}/mss/bin/mw_lic
    fi

    # 饤󥹥å
    if [ -x ${MSS_LIC} ]; then
        ${MSS_LIC} -c >/dev/null 2>&1
        RC=$?
        if [ ${RC} -ne 0 ]; then
            EXPDATE=`${MSS_LIC} -c 2>/dev/null|awk '{if ($1=="status:") print $3}'`
            ${SUPPORT} -c "${EXPDATE}" >/dev/null 2>&1
            if [ $? -ne 0 -o ${RC} -eq 2 ]; then
                xy_warning "${ERR_25}"
                xy_homecsor
                exit 1
            fi
        else
            ${SUPPORT} -c >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                xy_warning "${ERR_26}"
                xy_homecsor
                exit 1
            fi
        fi
    fi

    # ͭå
    s_shmchk
    if [ $? -ne 0 ]; then
        return 2
    fi

    BACKUPDIR=${GRDNDIR}/backup/${MGPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}

    if [ -x ${OLD_CNF} ]; then
        tmpdir=`${OLD_CNF} -a -sDirectories -kLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            WALLOGD=`echo ${tmpdir} 2>/dev/null | awk '{print $2}'`
        fi
    fi

    MSP=sendmail
    if [ -x ${OLD_CNF} ]; then
        MSP=`${OLD_CNF} -l -sSMTP -kMailSubmissionProgram 2>/dev/null`
        MSP=`echo ${MSP} | awk '{print $2}'`
        if [ "X${MSP}" = "X" ]; then
            MSP=sendmail
        fi
    fi

    # ǥ󥦥
    puts 0 1 "${BOLD}${MSG_52}${NRML}"
    if [ -x ${INITDIR}/MailWall ]; then
        xy_status "${MSG_53}"
        ${INITDIR}/MailWall allstop >/dev/null 2>&1
        sleep 2
    fi
    if [ "X${MSP}" != "Xqmail" -a "X${MSP}" != "Xpostfix" ]; then
        if [ ${ISSOL10} -eq 1 ]; then
            SVCSTAT=`/usr/bin/svcs -H -o STATE svc:/network/smtp:sendmail 2>/dev/null`
            if [ $? -eq 0 ]; then
                if [ "X${SVCSTAT}" != "Xdisabled" ]; then
                    xy_status "${MSG_75}"
                    /usr/sbin/svcadm restart svc:/network/smtp:sendmail >/dev/null 2>&1
                else
                    xy_status "${MSG_56}"
                    /usr/sbin/svcadm enable svc:/network/smtp:sendmail >/dev/null 2>&1
                fi
                sleep 2
            fi
        else
            ## stop sendmail
            if [ -x ${INITDIR}/sendmail ]; then
                xy_status "${MSG_55}"
                ${INITDIR}/sendmail stop >/dev/null 2>&1
                sleep 2
            fi
            ## start sendmail
            if [ -x ${INITDIR}/sendmail ]; then
                xy_status "${MSG_56}"
                ${INITDIR}/sendmail start >/dev/null 2>&1
                sleep 2
            fi
            ## restore sendmail run command files...
            if [ ${UNAME} = "Linux" ]; then
                /sbin/chkconfig --add sendmail >/dev/null 2>&1
            else
                SENDMAILRC=`ls /etc/rc2.d/_S*sendmail 2>/dev/null`
                for target in ${SENDMAILRC}
                do
                    if [ -f ${target} ]; then
                        orig=`echo ${target} | sed -e 's/\/_S/\/S/'`
                        if [ ! -f ${orig} ]; then
                            mv -f ${target} ${orig}
                        fi
                    fi
                done
            fi
        fi
    fi
    if [ -f ${OLDDIR}/mss.pid ]; then
        rm -f ${OLDDIR}/mss.pid >/dev/null 2>&1
    fi
    if [ -f ${OLDDIR}/store.pid ]; then
        rm -f ${OLDDIR}/store.pid >/dev/null 2>&1
    fi
    if [ -f ${OLDDIR}/trans.pid ]; then
        rm -f ${OLDDIR}/trans.pid >/dev/null 2>&1
    fi

    if [ -d ${BACKUPDIR} ]; then
        rm -rf ${BACKUPDIR} >/dev/null 2>&1
    fi
    mkdir -p ${BACKUPDIR}/etc >/dev/null 2>&1

    # WALLϢХåå
    for f in admin manager sysadm srch_admin srch_manager srch_sysadm
    do
        if [ -d ${OLDDIR}/$f ]; then
            mkdir -p ${BACKUPDIR}/etc/$f >/dev/null 2>&1
            cp -p ${OLDDIR}/$f/*.conf ${BACKUPDIR}/etc/$f >/dev/null 2>&1
        fi
    done
    if [ -d ${OLDDIR}/group ]; then
        mkdir -p ${BACKUPDIR}/etc/group >/dev/null 2>&1
        cp -p ${OLDDIR}/group/*.addr ${BACKUPDIR}/etc/group >/dev/null 2>&1
        cp -p ${OLDDIR}/group/*.ldap ${BACKUPDIR}/etc/group >/dev/null 2>&1
    fi

    if [ ${OLDVER} -eq 1 ]; then
        for f in mss.conf mss.acl mss.mime mss.form mss.notice domain.conf
        do
            cp -p ${OLDDIR}/$f ${BACKUPDIR}/etc >/dev/null 2>&1
        done
    else
        for f in mss.conf local.conf mss.acl mss.mtype mss.keywd mss.notice domain.conf
        do
            cp -p ${OLDDIR}/$f ${BACKUPDIR}/etc >/dev/null 2>&1
        done
        if [ -d ${OLDDIR}/mss.mtype.d ]; then
            mkdir -p ${BACKUPDIR}/etc/mss.mtype.d >/dev/null 2>&1
            cp -p ${OLDDIR}/mss.mtype.d/*.mtype ${BACKUPDIR}/etc/mss.mtype.d >/dev/null 2>&1
        fi
        if [ -d ${OLDDIR}/mss.keywd.d ]; then
            mkdir -p ${BACKUPDIR}/etc/mss.keywd.d >/dev/null 2>&1
            cp -p ${OLDDIR}/mss.keywd.d/*.keywd ${BACKUPDIR}/etc/mss.keywd.d >/dev/null 2>&1
        fi
    fi

    # ʸʤɥХåå
    if [ ${OLDVER} -eq 1 ]; then
        OLDDIR=${MGDIR}/mss
    else
        OLDDIR=${MGDIR}/WALL
    fi
    if [ -d ${OLDDIR}/template ]; then
        mkdir -p ${BACKUPDIR}/template >/dev/null 2>&1
        cp -p ${OLDDIR}/template/* ${BACKUPDIR}/template >/dev/null 2>&1
    fi

    # ̴ϢХåå
    OLDDIR=${MGDIR}/httpd
    if [ -d ${OLDDIR}/conf ]; then
        mkdir -p ${BACKUPDIR}/http >/dev/null 2>&1
        cp -p ${OLDDIR}/conf/httpd.conf ${BACKUPDIR}/http/httpd.conf.old >/dev/null 2>&1
        cp -p ${OLDDIR}/conf/wall/action ${BACKUPDIR}/http >/dev/null 2>&1
        for f in .adminpasswd .mngpasswd .sysadmpasswd .usrmngpasswd \
                 .srch_adminpasswd .srch_mngpasswd .srch_sysadmpasswd .srch_usrmngpasswd
        do
            cp -p ${OLDDIR}/conf/wall/$f ${BACKUPDIR}/http >/dev/null 2>&1
        done
    fi
    echo "${VER_MAJ}.${VER_MIN}.${VER_REL}" > ${BACKUPDIR}/VERSION

    puts 0 1 ""
    xy_status ""
    return 0
}

mg_befunc_u()
{
    UPGRADE=1
    ${PKG_IF} ${MGPKGN} >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        xy_warning "${ERR_24}"
        xy_homecsor
        exit 1
    fi

    if [ ${UNAME} = "Linux" ]; then
        OLDVER=`rpm -q --queryformat '%{VERSION}.%{RELEASE}' ${MGPKGN} 2>/dev/null`
    else
        OLDVER=`pkginfo -l ${MGPKGN} 2>/dev/null | grep 'VERSION:' | awk '{print $2}'`
    fi
    VER_MAJ=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
    VER_MIN=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
    VER_REL=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`

    # Сå
    if [ ${VER_MAJ} -gt 5 ] || [ ${VER_MAJ} -eq 5 -a ${VER_MIN} -ge 1 ]; then
        OLDVER=0
        MGDIR=${GRDNDIR}
        OLDDIR=${MGDIR}/WALL/etc
        OLD_CNF=${MSS_CONF}
        MSS_LIC=${MGDIR}/WALL/bin/mw_lic
    else
        OLDVER=1
        MGDIR=/opt/MailGuardian/Wall
        OLDDIR=${MGDIR}/mss/etc
        OLD_CNF=${MGDIR}/mss/bin/mw_conf
        MSS_LIC=${MGDIR}/mss/bin/mw_lic
    fi

    # 饤󥹥å
    if [ -x ${MSS_LIC} ]; then
        ${MSS_LIC} -c >/dev/null 2>&1
        RC=$?
        if [ ${RC} -ne 0 ]; then
            EXPDATE=`${MSS_LIC} -c 2>/dev/null|awk '{if ($1=="status:") print $3}'`
            ${SUPPORT} -c "${EXPDATE}" >/dev/null 2>&1
            if [ $? -ne 0 -o ${RC} -eq 2 ]; then
                xy_warning "${ERR_25}"
                xy_homecsor
                exit 1
            fi
        else
            ${SUPPORT} -c >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                xy_warning "${ERR_26}"
                xy_homecsor
                exit 1
            fi
        fi
    fi

    # 塼顼֤ΥåWALL6.0ʾΤȤΤߡ
    if [ ${VER_MAJ} -gt 5 -a -x ${JOB_COMD} ]; then
        puts 0 1 "${BOLD}${MSG_38}${NRML}"
        SJRUN=`${JOB_COMD} 2>/dev/null`
        if [ "X${SJRUN}" = "XRunning" ]; then
            puts 0 -3 "${ERR_40}"
            puts 0 -2 "${ERR_41}${BELL}"
            if (get_yes_no "${MSG_39}"); then
                ${JOB_COMD} -e -n >/dev/null 2>&1
            else
                ${JOB_COMD} -e >/dev/null 2>&1
            fi
            return 2
        fi
    fi

    BACKUPDIR=${GRDNDIR}/backup/${MGPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}

    MSP=sendmail
    if [ -x ${OLD_CNF} ]; then
        MSP=`${OLD_CNF} -l -sSMTP -kMailSubmissionProgram 2>/dev/null`
        MSP=`echo ${MSP} | awk '{print $2}'`
        if [ "X${MSP}" = "X" ]; then
            MSP=sendmail
        fi
    fi

    # ǥ󥦥
    puts 0 1 "${BOLD}${MSG_52}${NRML}"
    if [ -x ${INITDIR}/MailWall ]; then
        xy_status "${MSG_53}"
        ${INITDIR}/MailWall stop >/dev/null 2>&1
        sleep 2
    elif [ -x ${INITDIR}/Guardian.mail ]; then
        xy_status "${MSG_53}"
        ${INITDIR}/Guardian.mail stop >/dev/null 2>&1
        sleep 2
    fi
    # СߡWALL6.0ʾΤȤΤߡ
    if [ ${VER_MAJ} -gt 5 -a -f ${ADPID_F} ]; then
        ADPID=`cat ${ADPID_F} 2>/dev/null`
        if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
            puts 0 1 "${BOLD}${MSG_13}${NRML}"
            if [ -x ${INITDIR}/Guardian.admin ]; then
                xy_status "${MSG_14}"
                ${INITDIR}/Guardian.admin stop >/dev/null 2>&1
                sleep 2
            fi
        fi
    fi

    if [ -f ${OLDDIR}/mss.pid ]; then
        rm -f ${OLDDIR}/mss.pid >/dev/null 2>&1
    fi
    if [ -f ${OLDDIR}/store.pid ]; then
        rm -f ${OLDDIR}/store.pid >/dev/null 2>&1
    fi
    if [ -f ${OLDDIR}/trans.pid ]; then
        rm -f ${OLDDIR}/trans.pid >/dev/null 2>&1
    fi

    if [ -d ${BACKUPDIR} ]; then
        rm -rf ${BACKUPDIR} >/dev/null 2>&1
    fi
    mkdir -p ${BACKUPDIR}/etc >/dev/null 2>&1

    # WALLϢХåå
    for f in admin manager sysadm srch_admin srch_manager srch_sysadm
    do
        if [ -d ${OLDDIR}/$f ]; then
            mkdir -p ${BACKUPDIR}/etc/$f >/dev/null 2>&1
            cp -p ${OLDDIR}/$f/*.conf ${BACKUPDIR}/etc/$f >/dev/null 2>&1
        fi
    done
    if [ -d ${OLDDIR}/group ]; then
        mkdir -p ${BACKUPDIR}/etc/group >/dev/null 2>&1
        cp -p ${OLDDIR}/group/*.addr ${BACKUPDIR}/etc/group >/dev/null 2>&1
        cp -p ${OLDDIR}/group/*.ldap ${BACKUPDIR}/etc/group >/dev/null 2>&1
    fi

    if [ ${OLDVER} -eq 1 ]; then
        for f in mss.conf mss.acl mss.mime mss.form mss.notice domain.conf
        do
            cp -p ${OLDDIR}/$f ${BACKUPDIR}/etc >/dev/null 2>&1
        done
    else
        for f in mss.conf local.conf mss.acl mss.mtype mss.keywd mss.notice domain.conf
        do
            cp -p ${OLDDIR}/$f ${BACKUPDIR}/etc >/dev/null 2>&1
        done
        if [ -d ${OLDDIR}/mss.mtype.d ]; then
            mkdir -p ${BACKUPDIR}/etc/mss.mtype.d >/dev/null 2>&1
            cp -p ${OLDDIR}/mss.mtype.d/*.mtype ${BACKUPDIR}/etc/mss.mtype.d >/dev/null 2>&1
        fi
        if [ -d ${OLDDIR}/mss.keywd.d ]; then
            mkdir -p ${BACKUPDIR}/etc/mss.keywd.d >/dev/null 2>&1
            cp -p ${OLDDIR}/mss.keywd.d/*.keywd ${BACKUPDIR}/etc/mss.keywd.d >/dev/null 2>&1
        fi
    fi

    # ʸʤɥХåå
    if [ ${OLDVER} -eq 1 ]; then
        OLDDIR=${MGDIR}/mss
    else
        OLDDIR=${MGDIR}/WALL
    fi
    if [ -d ${OLDDIR}/template ]; then
        mkdir -p ${BACKUPDIR}/template >/dev/null 2>&1
        cp -p ${OLDDIR}/template/* ${BACKUPDIR}/template >/dev/null 2>&1
    fi
    if [ -d ${OLDDIR}/lib/data ]; then
        mkdir -p ${BACKUPDIR}/libdata >/dev/null 2>&1
        cp -p ${OLDDIR}/lib/data/*.atl ${BACKUPDIR}/libdata >/dev/null 2>&1
        cp -p ${OLDDIR}/lib/data/*.cer ${BACKUPDIR}/libdata >/dev/null 2>&1
    fi

    # СϢХåå
    if [ -d ${ADMNDIR}/etc/cserv ]; then
        mkdir -p ${BACKUPDIR}/Aetc/cserv >/dev/null 2>&1
        for f in admin.conf command.conf schedule.conf
        do
            cp -p ${ADMNDIR}/etc/cserv/$f ${BACKUPDIR}/Aetc/cserv >/dev/null 2>&1
        done
    fi

    # ̴ϢХåå
    OLDDIR=${MGDIR}/httpd
    if [ -d ${OLDDIR}/conf ]; then
        mkdir -p ${BACKUPDIR}/http >/dev/null 2>&1
        cp -p ${OLDDIR}/conf/httpd.conf ${BACKUPDIR}/http/httpd.conf.old >/dev/null 2>&1
        cp -p ${OLDDIR}/conf/wall/action ${BACKUPDIR}/http >/dev/null 2>&1
        for f in .adminpasswd .mngpasswd .sysadmpasswd .usrmngpasswd \
                 .srch_adminpasswd .srch_mngpasswd .srch_sysadmpasswd .srch_usrmngpasswd
        do
            cp -p ${OLDDIR}/conf/wall/$f ${BACKUPDIR}/http >/dev/null 2>&1
        done
    fi
    echo "${VER_MAJ}.${VER_MIN}.${VER_REL}" > ${BACKUPDIR}/VERSION

    puts 0 1 ""
    xy_status ""
    return 0
}

mgs_befunc_u()
{
    UPGRADE=1
    ${PKG_IF} ${MGPKGN} >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        xy_warning "${ERR_24}"
        xy_homecsor
        exit 1
    fi

    if [ ${UNAME} = "Linux" ]; then
        OLDVER=`rpm -q --queryformat '%{VERSION}.%{RELEASE}' ${MGPKGN} 2>/dev/null`
    else
        OLDVER=`pkginfo -l ${MGPKGN} 2>/dev/null | grep 'VERSION:' | awk '{print $2}'`
    fi
    VER_MAJ=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
    VER_MIN=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
    VER_REL=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`

    # Сå
    if [ ${VER_MAJ} -gt 5 ]; then
        ${PKG_IF} ${ADPKGN} >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            xy_warning "${ERR_23}"
            xy_homecsor
            exit 1
        fi
        if [ ${VER_MAJ} -gt 6 ]; then
            UPGRADE=2
        fi
        OLDVER=0
        MGDIR=${GRDNDIR}
        OLDDIR=${MGDIR}/WALL/etc
        OLD_CNF=${MSS_CONF}
        MSS_LIC=${ADMNDIR}/bin/guts_lic
    elif [ ${VER_MAJ} -eq 5 -a ${VER_MIN} -ge 1 ]; then
        OLDVER=0
        MGDIR=${GRDNDIR}
        OLDDIR=${MGDIR}/WALL/etc
        OLD_CNF=${MSS_CONF}
        MSS_LIC=${MGDIR}/WALL/bin/mw_lic
    else
        OLDVER=1
        MGDIR=/opt/MailGuardian/Wall
        OLDDIR=${MGDIR}/mss/etc
        OLD_CNF=${MGDIR}/mss/bin/mw_conf
        MSS_LIC=${MGDIR}/mss/bin/mw_lic
    fi

    # 饤󥹥å
    if [ -x ${MSS_LIC} ]; then
        ${MSS_LIC} -c >/dev/null 2>&1
        RC=$?
        if [ ${RC} -ne 0 ]; then
            EXPDATE=`${MSS_LIC} -c 2>/dev/null|awk '{if ($1=="status:") print $3}'`
            ${SUPPORT} -c "${EXPDATE}" >/dev/null 2>&1
            if [ $? -ne 0 -o ${RC} -eq 2 ]; then
                xy_warning "${ERR_25}"
                xy_homecsor
                exit 1
            fi
        else
            ${SUPPORT} -c >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                xy_warning "${ERR_26}"
                xy_homecsor
                exit 1
            fi
        fi
    fi

    # ͭå
    s_shmchk
    if [ $? -ne 0 ]; then
        return 2
    fi

    # 塼顼֤ΥåWALL6.0ʾΤȤΤߡ
    if [ ${VER_MAJ} -gt 5 -a -x ${JOB_COMD} ]; then
        puts 0 1 "${BOLD}${MSG_38}${NRML}"
        SJRUN=`${JOB_COMD} 2>/dev/null`
        if [ "X${SJRUN}" = "XRunning" ]; then
            puts 0 -3 "${ERR_40}"
            puts 0 -2 "${ERR_41}${BELL}"
            if (get_yes_no "${MSG_39}"); then
                ${JOB_COMD} -e -n >/dev/null 2>&1
            else
                ${JOB_COMD} -e >/dev/null 2>&1
            fi
            return 2
        fi
    fi

    BACKUPDIR=${GRDNDIR}/backup/${MGPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}

    MSP=sendmail
    if [ -x ${OLD_CNF} ]; then
        MSP=`${OLD_CNF} -l -sSMTP -kMailSubmissionProgram 2>/dev/null`
        MSP=`echo ${MSP} | awk '{print $2}'`
        if [ "X${MSP}" = "X" ]; then
            MSP=sendmail
        fi
    fi

    # ǥ󥦥
    puts 0 1 "${BOLD}${MSG_52}${NRML}"
    if [ -x ${INITDIR}/MailWall ]; then
        xy_status "${MSG_53}"
        ${INITDIR}/MailWall stop >/dev/null 2>&1
        sleep 2
    elif [ -x ${INITDIR}/Guardian.mail ]; then
        xy_status "${MSG_53}"
        ${INITDIR}/Guardian.mail stop >/dev/null 2>&1
        sleep 2
    fi
    # СߡWALL6.0ʾΤȤΤߡ
    if [ ${VER_MAJ} -gt 5 -a -f ${ADPID_F} ]; then
        ADPID=`cat ${ADPID_F} 2>/dev/null`
        if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
            puts 0 1 "${BOLD}${MSG_13}${NRML}"
            if [ -x ${INITDIR}/Guardian.admin ]; then
                xy_status "${MSG_14}"
                ${INITDIR}/Guardian.admin stop >/dev/null 2>&1
                sleep 2
            fi
        fi
    fi
    # ǡ١
    if [ ${UPGRADE} -gt 1 ]; then
        puts 0 1 "${BOLD}${MSG_84}${NRML}"
        if [ -x ${INITDIR}/Guardian.db ]; then
            xy_status "${MSG_85}"
            ${INITDIR}/Guardian.db stop >/dev/null 2>&1
            sleep 2
        fi
    fi

    if [ -f ${OLDDIR}/mss.pid ]; then
        rm -f ${OLDDIR}/mss.pid >/dev/null 2>&1
    fi
    if [ -f ${OLDDIR}/store.pid ]; then
        rm -f ${OLDDIR}/store.pid >/dev/null 2>&1
    fi
    if [ -f ${OLDDIR}/trans.pid ]; then
        rm -f ${OLDDIR}/trans.pid >/dev/null 2>&1
    fi

    if [ -d ${BACKUPDIR} ]; then
        rm -rf ${BACKUPDIR} >/dev/null 2>&1
    fi
    mkdir -p ${BACKUPDIR}/etc >/dev/null 2>&1

    # WALLϢХåå
    for f in admin manager sysadm srch_admin srch_manager srch_sysadm
    do
        if [ -d ${OLDDIR}/$f ]; then
            mkdir -p ${BACKUPDIR}/etc/$f >/dev/null 2>&1
            cp -p ${OLDDIR}/$f/*.conf ${BACKUPDIR}/etc/$f >/dev/null 2>&1
        fi
    done
    if [ -d ${OLDDIR}/group ]; then
        mkdir -p ${BACKUPDIR}/etc/group >/dev/null 2>&1
        cp -p ${OLDDIR}/group/*.addr ${BACKUPDIR}/etc/group >/dev/null 2>&1
        cp -p ${OLDDIR}/group/*.ldap ${BACKUPDIR}/etc/group >/dev/null 2>&1
    fi

    if [ ${OLDVER} -eq 1 ]; then
        for f in mss.conf mss.acl mss.mime mss.form mss.notice domain.conf
        do
            cp -p ${OLDDIR}/$f ${BACKUPDIR}/etc >/dev/null 2>&1
        done
    else
        for f in mss.conf local.conf mss.acl mss.mtype mss.keywd mss.notice domain.conf
        do
            cp -p ${OLDDIR}/$f ${BACKUPDIR}/etc >/dev/null 2>&1
        done
        if [ -d ${OLDDIR}/mss.mtype.d ]; then
            mkdir -p ${BACKUPDIR}/etc/mss.mtype.d >/dev/null 2>&1
            cp -p ${OLDDIR}/mss.mtype.d/*.mtype ${BACKUPDIR}/etc/mss.mtype.d >/dev/null 2>&1
        fi
        if [ -d ${OLDDIR}/mss.keywd.d ]; then
            mkdir -p ${BACKUPDIR}/etc/mss.keywd.d >/dev/null 2>&1
            cp -p ${OLDDIR}/mss.keywd.d/*.keywd ${BACKUPDIR}/etc/mss.keywd.d >/dev/null 2>&1
        fi
    fi

    # ʸʤɥХåå
    if [ ${OLDVER} -eq 1 ]; then
        OLDDIR=${MGDIR}/mss
    else
        OLDDIR=${MGDIR}/WALL
    fi
    if [ -d ${OLDDIR}/template ]; then
        mkdir -p ${BACKUPDIR}/template >/dev/null 2>&1
        cp -p ${OLDDIR}/template/* ${BACKUPDIR}/template >/dev/null 2>&1
    fi
    if [ -d ${OLDDIR}/lib/data ]; then
        mkdir -p ${BACKUPDIR}/libdata >/dev/null 2>&1
        cp -p ${OLDDIR}/lib/data/*.atl ${BACKUPDIR}/libdata >/dev/null 2>&1
        cp -p ${OLDDIR}/lib/data/*.cer ${BACKUPDIR}/libdata >/dev/null 2>&1
    fi

    # ̴ϢХåå
    OLDDIR=${MGDIR}/httpd
    if [ -d ${OLDDIR}/conf ]; then
        mkdir -p ${BACKUPDIR}/http >/dev/null 2>&1
        cp -p ${OLDDIR}/conf/httpd.conf ${BACKUPDIR}/http/httpd.conf.old >/dev/null 2>&1
        cp -p ${OLDDIR}/conf/wall/action ${BACKUPDIR}/http >/dev/null 2>&1
        for f in .adminpasswd .mngpasswd .sysadmpasswd .usrmngpasswd \
                 .srch_adminpasswd .srch_mngpasswd .srch_sysadmpasswd .srch_usrmngpasswd
        do
            cp -p ${OLDDIR}/conf/wall/$f ${BACKUPDIR}/http >/dev/null 2>&1
        done
    fi

    if [ -f ${ADMNDIR}/ADMIN ]; then
        mkdir -p ${BACKUPDIR}/Aetc >/dev/null 2>&1

        # СϢХåå
        if [ -d ${ADMNDIR}/etc/admin ]; then
            mkdir -p ${BACKUPDIR}/Aetc/admin >/dev/null 2>&1
            for f in admin manager sysadm
            do
                if [ -d ${ADMNDIR}/etc/admin/$f ]; then
                    mkdir -p ${BACKUPDIR}/Aetc/admin/$f >/dev/null 2>&1
                    cp -p ${ADMNDIR}/etc/admin/$f/*.conf ${BACKUPDIR}/Aetc/admin/$f >/dev/null 2>&1
                fi
            done
            if [ -d ${ADMNDIR}/etc/admin/schedule ]; then
                mkdir -p ${BACKUPDIR}/Aetc/admin/schedule >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/admin/schedule/*.prm ${BACKUPDIR}/Aetc/admin/schedule >/dev/null 2>&1
            fi
            for f in admin.conf .admin.conf command.conf mkchgarc.ptn schedule.conf timestamp.log \
                     .adminldap .adminpasswd .mngldap .mngpasswd .sysadmldap .sysadmpasswd .usrmngldap .usrmngpasswd
            do
                cp -p ${ADMNDIR}/etc/admin/$f ${BACKUPDIR}/Aetc/admin >/dev/null 2>&1
            done
        fi
        # СϢХåå
        if [ -d ${ADMNDIR}/etc/cserv ]; then
            mkdir -p ${BACKUPDIR}/Aetc/cserv >/dev/null 2>&1
            for f in admin.conf command.conf schedule.conf
            do
                cp -p ${ADMNDIR}/etc/cserv/$f ${BACKUPDIR}/Aetc/cserv >/dev/null 2>&1
            done
        fi
        # WALLϢХåå
        if [ -d ${ADMNDIR}/etc/wall ]; then
            mkdir -p ${BACKUPDIR}/Aetc/wall >/dev/null 2>&1
            if [ -d ${ADMNDIR}/etc/wall/group ]; then
                mkdir -p ${BACKUPDIR}/Aetc/wall/group >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/wall/group/*.addr ${BACKUPDIR}/Aetc/wall/group >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/wall/group/*.ldap ${BACKUPDIR}/Aetc/wall/group >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/wall/template ]; then
                mkdir -p ${BACKUPDIR}/Aetc/wall/template >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/wall/template/* ${BACKUPDIR}/Aetc/wall/template >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/wall/data ]; then
                mkdir -p ${BACKUPDIR}/Aetc/wall/data >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/wall/data/*.atl ${BACKUPDIR}/Aetc/wall/data >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/wall/data/*.cer ${BACKUPDIR}/Aetc/wall/data >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/wall/mss.mtype.d ]; then
                mkdir -p ${BACKUPDIR}/Aetc/wall/mss.mtype.d >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype ${BACKUPDIR}/Aetc/wall/mss.mtype.d >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/wall/mss.keywd.d ]; then
                mkdir -p ${BACKUPDIR}/Aetc/wall/mss.keywd.d >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd ${BACKUPDIR}/Aetc/wall/mss.keywd.d >/dev/null 2>&1
            fi
            if [ -d ${ADMNDIR}/etc/wall/queue ]; then
                mkdir -p ${BACKUPDIR}/Aetc/wall/queue >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/wall/queue/*.status ${BACKUPDIR}/Aetc/wall/queue >/dev/null 2>&1
            fi
            for f in action mss.acl mss.conf mss.keywd mss.mtype mss.notice
            do
                cp -p ${ADMNDIR}/etc/wall/$f ${BACKUPDIR}/Aetc/wall >/dev/null 2>&1
            done
        fi
        # WGϢХåå
        if [ -d ${ADMNDIR}/etc/wg ]; then
            mkdir -p ${BACKUPDIR}/Aetc/wg >/dev/null 2>&1
            if [ -d ${ADMNDIR}/etc/wg/msg ]; then
                mkdir -p ${BACKUPDIR}/Aetc/wg/msg >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/wg/msg/*.html ${BACKUPDIR}/Aetc/wg/msg >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/wg/msg/template ${BACKUPDIR}/Aetc/wg/msg >/dev/null 2>&1
            fi
            for f in admin.conf httpd.conf mail.conf mail.tpl wg.conf wg.keywd
            do
                cp -p ${ADMNDIR}/etc/wg/$f ${BACKUPDIR}/Aetc/wg >/dev/null 2>&1
            done
        fi
        if [ -d ${ADMNDIR}/wg/conf ]; then
            mkdir -p ${BACKUPDIR}/Awgconf >/dev/null 2>&1
            if [ -d ${ADMNDIR}/wg/conf/category ]; then
                mkdir -p ${BACKUPDIR}/Awgconf/category >/dev/null 2>&1
                for f in hierarchy names
                do
                    cp -p ${ADMNDIR}/wg/conf/category/$f ${BACKUPDIR}/Awgconf/category >/dev/null 2>&1
                done
            fi
            for f in mkdic.conf searchengine.conf searchengine_group.conf webmail.conf webmail_group.conf
            do
                cp -p ${ADMNDIR}/wg/conf/$f ${BACKUPDIR}/Awgconf >/dev/null 2>&1
            done
        fi
    fi
    echo "${VER_MAJ}.${VER_MIN}.${VER_REL}" > ${BACKUPDIR}/VERSION

    puts 0 1 ""
    xy_status ""
    return 0
}

wg_befunc_u()
{
    UPGRADE=1
    ${PKG_IF} ${WGPKGN} >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        xy_warning "${ERR_35}"
        xy_homecsor
        exit 1
    fi

    if [ ${UNAME} = "Linux" ]; then
        OLDVER=`rpm -q --queryformat '%{VERSION}.%{RELEASE}' ${WGPKGN} 2>/dev/null`
    else
        OLDVER=`pkginfo -l ${WGPKGN} 2>/dev/null | grep 'VERSION:' | awk '{print $2}'`
    fi
    VER_MAJ=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
    VER_MIN=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
    VER_REL=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`

    # 饤󥹥å
    GSA_LIC=${ADMNDIR}/bin/guts_lic
    if [ -x ${GSA_LIC} ]; then
        WLKEY=`grep -i '^WGLicenseKey' ${WHTTP_F} |awk '{print $2}'`
        ${GSA_LIC} -w -l${WLKEY} >/dev/null 2>&1
        RC=$?
        if [ ${RC} -ne 0 ]; then
            EXPDATE=`${GSA_LIC} -w -l${WLKEY} 2>/dev/null|awk '{if ($1=="status:") print $3}'`
            ${SUPPORT} -c "${EXPDATE}" >/dev/null 2>&1
            if [ $? -ne 0 -o ${RC} -eq 2 ]; then
                xy_warning "${ERR_25}"
                xy_homecsor
                exit 1
            fi
        else
            ${SUPPORT} -c >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                xy_warning "${ERR_26}"
                xy_homecsor
                exit 1
            fi
        fi
    fi

    # 塼顼֤Υå
    if [ -x ${JOB_COMD} ]; then
        puts 0 1 "${BOLD}${MSG_38}${NRML}"
        SJRUN=`${JOB_COMD} 2>/dev/null`
        if [ "X${SJRUN}" = "XRunning" ]; then
            puts 0 -3 "${ERR_40}"
            puts 0 -2 "${ERR_41}${BELL}"
            if (get_yes_no "${MSG_39}"); then
                ${JOB_COMD} -e -n >/dev/null 2>&1
            else
                ${JOB_COMD} -e >/dev/null 2>&1
            fi
            return 2
        fi
    fi

    BACKUPDIR=${GRDNDIR}/backup/${WGPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}

    # ֥ǥ
    puts 0 1 "${BOLD}${MSG_33}${NRML}"
    if [ -x ${INITDIR}/Guardian.web ]; then
        xy_status "${MSG_34}"
        ${INITDIR}/Guardian.web stop >/dev/null 2>&1
        sleep 2
    fi
    # С
    if [ -f ${ADPID_F} ]; then
        ADPID=`cat ${ADPID_F} 2>/dev/null`
        if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
            puts 0 1 "${BOLD}${MSG_13}${NRML}"
            if [ -x ${INITDIR}/Guardian.admin ]; then
                xy_status "${MSG_14}"
                ${INITDIR}/Guardian.admin stop >/dev/null 2>&1
                sleep 2
            fi
        fi
    fi

    if [ -d ${BACKUPDIR} ]; then
        rm -rf ${BACKUPDIR} >/dev/null 2>&1
    fi
    mkdir -p ${BACKUPDIR} >/dev/null 2>&1

    # WGϢХåå
    if [ -d ${WEBGDIR}/conf ]; then
        mkdir -p ${BACKUPDIR}/conf >/dev/null 2>&1
        for f in admin.conf httpclient.conf httpd.conf mail.conf mkdic.conf urldb_manager.conf wg.conf wg.keywd
        do
            cp -p ${WEBGDIR}/conf/$f ${BACKUPDIR}/conf >/dev/null 2>&1
        done
    fi
    if [ -d ${WEBGDIR}/data/dic ]; then
        mkdir -p ${BACKUPDIR}/data/dic >/dev/null 2>&1
        cp -p ${WEBGDIR}/data/dic/*.dic ${BACKUPDIR}/data/dic >/dev/null 2>&1
    fi
    if [ -d ${WEBGDIR}/data/htdocs ]; then
        mkdir -p ${BACKUPDIR}/data/htdocs >/dev/null 2>&1
        cp -p ${WEBGDIR}/data/htdocs/*.html ${BACKUPDIR}/data/htdocs >/dev/null 2>&1
    fi
    if [ -d ${WEBGDIR}/data/mail ]; then
        mkdir -p ${BACKUPDIR}/data/mail >/dev/null 2>&1
        cp -p ${WEBGDIR}/data/mail/*.tpl ${BACKUPDIR}/data/mail >/dev/null 2>&1
    fi

    # СϢХåå
    if [ -d ${ADMNDIR}/etc/cserv ]; then
        mkdir -p ${BACKUPDIR}/Aetc/cserv >/dev/null 2>&1
        for f in admin.conf command.conf schedule.conf
        do
            cp -p ${ADMNDIR}/etc/cserv/$f ${BACKUPDIR}/Aetc/cserv >/dev/null 2>&1
        done
    fi
    echo "${VER_MAJ}.${VER_MIN}.${VER_REL}" > ${BACKUPDIR}/VERSION

    puts 0 1 ""
    xy_status ""
    return 0
}

wgs_befunc_u()
{
    UPGRADE=1
    ${PKG_IF} ${WGPKGN} >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        xy_warning "${ERR_35}"
        xy_homecsor
        exit 1
    fi
    ${PKG_IF} ${ADPKGN} >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        xy_warning "${ERR_23}"
        xy_homecsor
        exit 1
    fi

    if [ ${UNAME} = "Linux" ]; then
        OLDVER=`rpm -q --queryformat '%{VERSION}.%{RELEASE}' ${WGPKGN} 2>/dev/null`
    else
        OLDVER=`pkginfo -l ${WGPKGN} 2>/dev/null | grep 'VERSION:' | awk '{print $2}'`
    fi
    VER_MAJ=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
    VER_MIN=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
    VER_REL=`echo ${OLDVER} | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`


    # Сå
    if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 1 ]; then
        UPGRADE=2
    fi

    # 饤󥹥å
    GSA_LIC=${ADMNDIR}/bin/guts_lic
    if [ -x ${GSA_LIC} ]; then
        ${GSA_LIC} -c >/dev/null 2>&1
        RC=$?
        if [ ${RC} -ne 0 ]; then
            EXPDATE=`${GSA_LIC} -c 2>/dev/null|awk '{if ($1=="status:") print $3}'`
            ${SUPPORT} -c "${EXPDATE}" >/dev/null 2>&1
            if [ $? -ne 0 -o ${RC} -eq 2 ]; then
                xy_warning "${ERR_25}"
                xy_homecsor
                exit 1
            fi
        else
            ${SUPPORT} -c >/dev/null 2>&1
            if [ $? -ne 0 ]; then
                xy_warning "${ERR_26}"
                xy_homecsor
                exit 1
            fi
        fi
    fi

    # ͭå
    s_shmchk
    if [ $? -ne 0 ]; then
        return 2
    fi

    # 塼顼֤Υå
    if [ -x ${JOB_COMD} ]; then
        puts 0 1 "${BOLD}${MSG_38}${NRML}"
        SJRUN=`${JOB_COMD} 2>/dev/null`
        if [ "X${SJRUN}" = "XRunning" ]; then
            puts 0 -3 "${ERR_40}"
            puts 0 -2 "${ERR_41}${BELL}"
            if (get_yes_no "${MSG_39}"); then
                ${JOB_COMD} -e -n >/dev/null 2>&1
            else
                ${JOB_COMD} -e >/dev/null 2>&1
            fi
            return 2
        fi
    fi

    BACKUPDIR=${GRDNDIR}/backup/${WGPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}

    # ֥ǥ
    puts 0 1 "${BOLD}${MSG_33}${NRML}"
    if [ -x ${INITDIR}/Guardian.web ]; then
        xy_status "${MSG_34}"
        ${INITDIR}/Guardian.web stop >/dev/null 2>&1
        sleep 2
    fi
    # С
    if [ -f ${ADPID_F} ]; then
        ADPID=`cat ${ADPID_F} 2>/dev/null`
        if [ "X${ADPID}" != "X" ] && kill -0 ${ADPID} 2>/dev/null ; then
            puts 0 1 "${BOLD}${MSG_13}${NRML}"
            if [ -x ${INITDIR}/Guardian.admin ]; then
                xy_status "${MSG_14}"
                ${INITDIR}/Guardian.admin stop >/dev/null 2>&1
                sleep 2
            fi
        fi
    fi
    # ǡ١
    if [ ${UPGRADE} -gt 1 ]; then
        puts 0 1 "${BOLD}${MSG_84}${NRML}"
        if [ -x ${INITDIR}/Guardian.db ]; then
            xy_status "${MSG_85}"
            ${INITDIR}/Guardian.db stop >/dev/null 2>&1
            sleep 2
        fi
    fi

    if [ -d ${BACKUPDIR} ]; then
        rm -rf ${BACKUPDIR} >/dev/null 2>&1
    fi
    mkdir -p ${BACKUPDIR} >/dev/null 2>&1

    # WGϢХåå
    if [ -d ${WEBGDIR}/conf ]; then
        mkdir -p ${BACKUPDIR}/conf >/dev/null 2>&1
        for f in admin.conf httpclient.conf httpd.conf mail.conf mkdic.conf urldb_manager.conf wg.conf wg.keywd
        do
            cp -p ${WEBGDIR}/conf/$f ${BACKUPDIR}/conf >/dev/null 2>&1
        done
    fi
    if [ -d ${WEBGDIR}/data/dic ]; then
        mkdir -p ${BACKUPDIR}/data/dic >/dev/null 2>&1
        cp -p ${WEBGDIR}/data/dic/*.dic ${BACKUPDIR}/data/dic >/dev/null 2>&1
    fi
    if [ -d ${WEBGDIR}/data/htdocs ]; then
        mkdir -p ${BACKUPDIR}/data/htdocs >/dev/null 2>&1
        cp -p ${WEBGDIR}/data/htdocs/*.html ${BACKUPDIR}/data/htdocs >/dev/null 2>&1
    fi
    if [ -d ${WEBGDIR}/data/mail ]; then
        mkdir -p ${BACKUPDIR}/data/mail >/dev/null 2>&1
        cp -p ${WEBGDIR}/data/mail/*.tpl ${BACKUPDIR}/data/mail >/dev/null 2>&1
    fi

    # СϢХåå
    if [ -d ${ADMNDIR}/etc/admin ]; then
        mkdir -p ${BACKUPDIR}/Aetc/admin >/dev/null 2>&1
        for f in admin manager sysadm
        do
            if [ -d ${ADMNDIR}/etc/admin/$f ]; then
                mkdir -p ${BACKUPDIR}/Aetc/admin/$f >/dev/null 2>&1
                cp -p ${ADMNDIR}/etc/admin/$f/*.conf ${BACKUPDIR}/Aetc/admin/$f >/dev/null 2>&1
            fi
        done
        if [ -d ${ADMNDIR}/etc/admin/schedule ]; then
            mkdir -p ${BACKUPDIR}/Aetc/admin/schedule >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/admin/schedule/*.prm ${BACKUPDIR}/Aetc/admin/schedule >/dev/null 2>&1
        fi
        for f in admin.conf .admin.conf command.conf mkchgarc.ptn schedule.conf timestamp.log \
                 .adminldap .adminpasswd .mngldap .mngpasswd .sysadmldap .sysadmpasswd .usrmngldap .usrmngpasswd
        do
            cp -p ${ADMNDIR}/etc/admin/$f ${BACKUPDIR}/Aetc/admin >/dev/null 2>&1
        done
    fi
    # СϢХåå
    if [ -d ${ADMNDIR}/etc/cserv ]; then
        mkdir -p ${BACKUPDIR}/Aetc/cserv >/dev/null 2>&1
        for f in admin.conf command.conf schedule.conf
        do
            cp -p ${ADMNDIR}/etc/cserv/$f ${BACKUPDIR}/Aetc/cserv >/dev/null 2>&1
        done
    fi
    # WALLϢХåå
    if [ -d ${ADMNDIR}/etc/wall ]; then
        mkdir -p ${BACKUPDIR}/Aetc/wall >/dev/null 2>&1
        if [ -d ${ADMNDIR}/etc/wall/group ]; then
            mkdir -p ${BACKUPDIR}/Aetc/wall/group >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/group/*.addr ${BACKUPDIR}/Aetc/wall/group >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/group/*.ldap ${BACKUPDIR}/Aetc/wall/group >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall/template ]; then
            mkdir -p ${BACKUPDIR}/Aetc/wall/template >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/template/* ${BACKUPDIR}/Aetc/wall/template >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall/data ]; then
            mkdir -p ${BACKUPDIR}/Aetc/wall/data >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/data/*.atl ${BACKUPDIR}/Aetc/wall/data >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/data/*.cer ${BACKUPDIR}/Aetc/wall/data >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall/mss.mtype.d ]; then
            mkdir -p ${BACKUPDIR}/Aetc/wall/mss.mtype.d >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype ${BACKUPDIR}/Aetc/wall/mss.mtype.d >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall/mss.keywd.d ]; then
            mkdir -p ${BACKUPDIR}/Aetc/wall/mss.keywd.d >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd ${BACKUPDIR}/Aetc/wall/mss.keywd.d >/dev/null 2>&1
        fi
        if [ -d ${ADMNDIR}/etc/wall/queue ]; then
            mkdir -p ${BACKUPDIR}/Aetc/wall/queue >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wall/queue/*.status ${BACKUPDIR}/Aetc/wall/queue >/dev/null 2>&1
        fi
        for f in action mss.acl mss.conf mss.keywd mss.mtype mss.notice
        do
            cp -p ${ADMNDIR}/etc/wall/$f ${BACKUPDIR}/Aetc/wall >/dev/null 2>&1
        done
    fi
    # WGϢХåå
    if [ -d ${ADMNDIR}/etc/wg ]; then
        mkdir -p ${BACKUPDIR}/Aetc/wg >/dev/null 2>&1
        if [ -d ${ADMNDIR}/etc/wg/msg ]; then
            mkdir -p ${BACKUPDIR}/Aetc/wg/msg >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wg/msg/*.html ${BACKUPDIR}/Aetc/wg/msg >/dev/null 2>&1
            cp -p ${ADMNDIR}/etc/wg/msg/template ${BACKUPDIR}/Aetc/wg/msg >/dev/null 2>&1
        fi
        for f in admin.conf httpd.conf mail.conf mail.tpl wg.conf wg.keywd
        do
            cp -p ${ADMNDIR}/etc/wg/$f ${BACKUPDIR}/Aetc/wg >/dev/null 2>&1
        done
    fi
    if [ -d ${ADMNDIR}/wg/conf ]; then
        mkdir -p ${BACKUPDIR}/Awgconf >/dev/null 2>&1
        if [ -d ${ADMNDIR}/wg/conf/category ]; then
            mkdir -p ${BACKUPDIR}/Awgconf/category >/dev/null 2>&1
            for f in hierarchy names
            do
                cp -p ${ADMNDIR}/wg/conf/category/$f ${BACKUPDIR}/Awgconf/category >/dev/null 2>&1
            done
        fi
        for f in mkdic.conf searchengine.conf searchengine_group.conf webmail.conf webmail_group.conf
        do
            cp -p ${ADMNDIR}/wg/conf/$f ${BACKUPDIR}/Awgconf >/dev/null 2>&1
        done
    fi
    echo "${VER_MAJ}.${VER_MIN}.${VER_REL}" > ${BACKUPDIR}/VERSION

    puts 0 1 ""
    xy_status ""
    return 0
}

srs_befunc_u()
{
    UPGRADE=1
    SUITE_ENV=0
    ${PKG_IF} ${SRPKGN} >/dev/null 2>&1
# SUITE ƳѤ
    if [ $? -eq 0 ]; then
        SUITE_ENV=1
        s_befunc_u
        return $?
    fi

# WALL ʸץĶ
    ${PKG_IF} ${MSPKGN} >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        xy_warning "${ERR_36}"
        xy_homecsor
        exit 1
    fi

    if [ ${UNAME} = "Linux" ]; then
        OLDVER=`rpm -q --queryformat '%{VERSION}.%{RELEASE}' ${MSPKGN} 2>/dev/null`
    else
        OLDVER=`pkginfo -l ${MSPKGN} 2>/dev/null | grep 'VERSION:' | awk '{print $2}'`
    fi
    VER_MAJ=`echo $OLDVER | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
    VER_MIN=`echo $OLDVER | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
    VER_REL=`echo $OLDVER | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`

    BACKUPDIR=$GRDNDIR/backup/${MSPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}
    if [ `expr $VER_MAJ` -eq 2 ]; then
# ʸƥ V2.0
        OLDVER=0
        MGDIR=$GRDNDIR
        OLDDIR=$MGDIR/WALL/etc
        OLD_CNF=$MSS_CONF
        MSS_LIC=$MGDIR/WALL/bin/mw_lic
    elif [ `expr $VER_MAJ` -eq 5 -a `expr $VER_MIN` -ge 1 ]; then
# ʸƥ V1.0
        OLDVER=0
        MGDIR=$GRDNDIR
        OLDDIR=$MGDIR/WALL/etc
        OLD_CNF=$MSS_CONF
        MSS_LIC=$MGDIR/WALL/bin/mw_lic
    else
        OLDVER=1
        MGDIR=/opt/MailGuardian/Wall
        OLDDIR=$MGDIR/mss/etc
        OLD_CNF=$MGDIR/mss/bin/mw_conf
        MSS_LIC=$MGDIR/mss/bin/mw_lic
    fi

    puts 0 1 "${BOLD}${MSG_50}${NRML}"
    if [ -x ${INITDIR}/MailWallS ]; then
        xy_status "${MSG_51}"
        ${INITDIR}/MailWallS stop >/dev/null 2>&1
        sleep 2
    fi

    for f in srch_lic srch_admconf srch_mgrconf srch_sysadmconf
    do
        rm -rf $WALLDIR/bin/$f >/dev/null 2>&1
    done
    if [ ${UNAME} = "SunOS" ] ; then
        if [ -f /etc/rc0.d/_K15MailWall ] ; then
            mv -f /etc/rc0.d/_K15MailWall /etc/rc0.d/K15MailWall
        fi
        if [ -f /etc/rc1.d/_K15MailWall ] ; then
            mv -f /etc/rc1.d/_K15MailWall /etc/rc1.d/K15MailWall
        fi
        if [ -f /etc/rc2.d/_S99MailWall ] ; then
            mv -f /etc/rc2.d/_S99MailWall /etc/rc2.d/S99MailWall
        fi
    fi
    if [ -f $WALLDIR/SEARCH ]; then
        rm -f $WALLDIR/SEARCH >/dev/null 2>&1
    fi
    if [ -f $WALLDIR/NODAEMON ]; then
        rm -f $WALLDIR/NODAEMON >/dev/null 2>&1
    fi
    if [ -f $WALLDIR/SSL ]; then
        rm -f $WALLDIR/SSL >/dev/null 2>&1
    fi

    mkdir -p $BACKUPDIR/etc >/dev/null 2>&1
    for f in admin manager sysadm srch_admin srch_manager srch_sysadm
    do
        if [ -d $OLDDIR/$f ]; then
            if [ -d $BACKUPDIR/etc/$f ]; then
                rm -f $BACKUPDIR/etc/$f/*.conf >/dev/null 2>&1
            else
                mkdir -p $BACKUPDIR/etc/$f >/dev/null 2>&1
            fi
            cp -p $OLDDIR/$f/*.conf $BACKUPDIR/etc/$f >/dev/null 2>&1
        fi
    done
    if [ -d $OLDDIR/group ]; then
        if [ -d $BACKUPDIR/etc/group ]; then
            rm -f $BACKUPDIR/etc/group/*.addr >/dev/null 2>&1
            rm -f $BACKUPDIR/etc/group/*.ldap >/dev/null 2>&1
        else
            mkdir -p $BACKUPDIR/etc/group >/dev/null 2>&1
        fi
        cp -p $OLDDIR/group/*.addr $BACKUPDIR/etc/group >/dev/null 2>&1
        cp -p $OLDDIR/group/*.ldap $BACKUPDIR/etc/group >/dev/null 2>&1
    fi
    if [ $OLDVER -eq 1 ]; then
        for f in mss.conf mss.acl mss.mime mss.form mss.notice domain.conf
        do
            rm -f $BACKUPDIR/etc/$f >/dev/null 2>&1
            cp -p $OLDDIR/$f $BACKUPDIR/etc >/dev/null 2>&1
        done
    else
        for f in mss.conf local.conf mss.acl mss.mtype mss.keywd mss.notice domain.conf
        do
            rm -f $BACKUPDIR/etc/$f >/dev/null 2>&1
            cp -p $OLDDIR/$f $BACKUPDIR/etc >/dev/null 2>&1
        done
        if [ -d $OLDDIR/mss.mtype.d ]; then
            if [ -d $BACKUPDIR/etc/mss.mtype.d ]; then
                rm -f $BACKUPDIR/etc/mss.mtype.d/*.mtype >/dev/null 2>&1
            else
                mkdir -p $BACKUPDIR/etc/mss.mtype.d >/dev/null 2>&1
            fi
            cp -p $OLDDIR/mss.mtype.d/*.mtype $BACKUPDIR/etc/mss.mtype.d >/dev/null 2>&1
        fi
        if [ -d $OLDDIR/mss.keywd.d ]; then
            if [ -d $BACKUPDIR/etc/mss.keywd.d ]; then
                rm -f $BACKUPDIR/etc/mss.keywd.d/*.keywd >/dev/null 2>&1
            else
                mkdir -p $BACKUPDIR/etc/mss.keywd.d >/dev/null 2>&1
            fi
            cp -p $OLDDIR/mss.keywd.d/*.keywd $BACKUPDIR/etc/mss.keywd.d >/dev/null 2>&1
        fi
    fi

    if [ $OLDVER -eq 1 ]; then
        OLDDIR=$MGDIR/mss
    else
        OLDDIR=$MGDIR/WALL
    fi
    if [ -d $OLDDIR/template ]; then
        if [ -d $BACKUPDIR/template ]; then
            rm -f $BACKUPDIR/template/* >/dev/null 2>&1
        else
            mkdir -p $BACKUPDIR/template >/dev/null 2>&1
        fi
        cp -p $OLDDIR/template/* $BACKUPDIR/template >/dev/null 2>&1
    fi
    if [ -d $OLDDIR/lib/data ]; then
        if [ -d $BACKUPDIR/libdata ]; then
            rm -f $BACKUPDIR/libdata/*.atl >/dev/null 2>&1
            rm -f $BACKUPDIR/libdata/*.cer >/dev/null 2>&1
        else
            mkdir -p $BACKUPDIR/libdata >/dev/null 2>&1
        fi
        cp -p $OLDDIR/lib/data/*.atl $BACKUPDIR/libdata >/dev/null 2>&1
        cp -p $OLDDIR/lib/data/*.cer $BACKUPDIR/libdata >/dev/null 2>&1
    fi

    if [ $OLDVER -eq 1 ]; then
        OLDDIR=$MGDIR/httpd
    else
        OLDDIR=$MGDIR/httpd
    fi
    if [ -d $OLDDIR/conf ]; then
        if [ -d $BACKUPDIR/http ]; then
            rm -f $BACKUPDIR/http/* >/dev/null 2>&1
            rm -f $BACKUPDIR/http/.[a-z]* >/dev/null 2>&1
        else
            mkdir -p $BACKUPDIR/http >/dev/null 2>&1
        fi
        cp -p $OLDDIR/conf/httpd.conf $BACKUPDIR/http/httpd.conf.old >/dev/null 2>&1
        cp -p $OLDDIR/conf/wall/action $BACKUPDIR/http >/dev/null 2>&1
        for f in .adminpasswd .mngpasswd .sysadmpasswd .usrmngpasswd \
            .srch_adminpasswd .srch_mngpasswd .srch_sysadmpasswd .srch_usrmngpasswd
        do
            cp -p $OLDDIR/conf/wall/$f $BACKUPDIR/http >/dev/null 2>&1
        done
    fi
    echo "${VER_MAJ}.${VER_MIN}.${VER_REL}" > $BACKUPDIR/VERSION


    puts 0 1 ""
    xy_status ""
    return 0
}

s_affunc_u()
{
    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    # С
    s_affunc_a

    BACKUPDIR=${GRDNDIR}/backup/${ADPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}
    if [ ! -f ${BACKUPDIR}/VERSION ]; then
        return 0
    fi

    # СϢꥹȥ
    for f in admin manager
    do
        if [ -d ${BACKUPDIR}/etc/admin/${f} -a -d ${ADMNDIR}/etc/admin/${f} ]; then
            URCNVS=`ls ${BACKUPDIR}/etc/admin/${f}/*.conf 2>/dev/null`
            for ff in ${URCNVS}
            do
                bff=`basename ${ff} 2>/dev/null`
                if [ ${VER_MAJ} -gt 4 ] || [ ${VER_MAJ} -eq 4 -a ${VER_MIN} -ge 1 ]; then
                    # SUITEv4.1 ʾѼꥳԡ
                    cp -p ${ff} ${ADMNDIR}/etc/admin/${f} >/dev/null 2>&1
                else
                    # SUITEv4.0 ʲѼꥳС
                    grep -ic '^\[WG\]' ${ff} >/dev/null 2>&1
                    if [ $? -ne 0 ]; then
                        cp -p ${ff} ${ADMNDIR}/etc/admin/${f} >/dev/null 2>&1
                        echo "[WG]" >>${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                        echo "SelectGroupList = True" >>${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                        echo "SelectGroup =" >>${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                    else
                        ${PRL_COMD} -pe "s/\[[Ww][Gg]\]/[WG]\nSelectGroupList = True\nSelectGroup =/" ${ff} >${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                    fi
                fi
                chown root ${ADMNDIR}/etc/admin/${f}/${bff} >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/admin/${f}/${bff} >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/admin/${f}/${bff} >/dev/null 2>&1
            done
        fi
    done
    if [ -d ${BACKUPDIR}/etc/admin/sysadm -a -d ${ADMNDIR}/etc/admin/sysadm ]; then
        cp -p ${BACKUPDIR}/etc/admin/sysadm/*.conf ${ADMNDIR}/etc/admin/sysadm >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/sysadm/*.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/sysadm/*.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/sysadm/*.conf >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/etc/admin/schedule -a -d ${ADMNDIR}/etc/admin/schedule ]; then
        cp -p ${BACKUPDIR}/etc/admin/schedule/*.prm ${ADMNDIR}/etc/admin/schedule >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/schedule/*.prm >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/schedule/*.prm >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/schedule/*.prm >/dev/null 2>&1
    fi
    for f in .adminldap .adminpasswd .mngldap .mngpasswd .sysadmldap .sysadmpasswd .usrmngldap .usrmngpasswd
    do
        if [ -f ${BACKUPDIR}/etc/admin/$f -a -d ${ADMNDIR}/etc/admin ]; then
            cp -p ${BACKUPDIR}/etc/admin/$f ${ADMNDIR}/etc/admin >/dev/null 2>&1
            chown nobody ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
            chgrp nobody ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
            chmod 0600 ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
        fi
    done
    if [ -f ${BACKUPDIR}/etc/admin/admin.conf -a -d ${ADMNDIR}/etc/admin ]; then
        cp -p ${BACKUPDIR}/etc/admin/admin.conf ${ADMNDIR}/etc/admin >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/admin.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/admin.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/admin.conf >/dev/null 2>&1
    fi
    if [ -f ${BACKUPDIR}/etc/admin/timestamp.log -a -d ${ADMNDIR}/etc/admin ]; then
        cp -p ${BACKUPDIR}/etc/admin/timestamp.log ${ADMNDIR}/etc/admin >/dev/null 2>&1
        chown nobody ${ADMNDIR}/etc/admin/timestamp.log >/dev/null 2>&1
        chgrp nobody ${ADMNDIR}/etc/admin/timestamp.log >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/timestamp.log >/dev/null 2>&1
    fi
    if [ -f ${BACKUPDIR}/etc/admin/schedule.conf -a -d ${ADMNDIR}/etc/admin ]; then
        if [ ${VER_MAJ} -gt 3 ]; then
            # SUITEv4 ʾϥ塼顼ꥳԡ
            cp -p ${BACKUPDIR}/etc/admin/schedule.conf ${ADMNDIR}/etc/admin >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/schedule.conf >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/schedule.conf >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/admin/schedule.conf >/dev/null 2>&1
        else
            # SUITEv3 ʲϥ塼顼ꥳС
            A_SCHEVAL=`cnv_schedule ${BACKUPDIR}/etc/admin/schedule.conf ${BACKUPDIR}/etc/admin/command.conf 2>/dev/null`
            if [ "X${A_SCHEVAL}" != "X" ]; then
                cp -p ${ADMNDIR}/etc/admin/schedule.conf ${ADMNDIR}/etc/admin/schedule.conf.bak >/dev/null 2>&1
                echo "${A_SCHEVAL}" >>${ADMNDIR}/etc/admin/schedule.conf 2>/dev/null
            fi
        fi
    fi
    # СϢꥹȥ
    for f in admin.conf command.conf schedule.conf
    do
        if [ -f ${BACKUPDIR}/etc/cserv/$f -a -d ${ADMNDIR}/etc/cserv ]; then
            cp -p ${BACKUPDIR}/etc/cserv/$f ${ADMNDIR}/etc/cserv >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
        fi
    done
    # WALLϢꥹȥ
    if [ -d ${BACKUPDIR}/etc/wall/group -a -d ${ADMNDIR}/etc/wall/group ]; then
        cp -p ${BACKUPDIR}/etc/wall/group/*.addr ${ADMNDIR}/etc/wall/group >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
        cp -p ${BACKUPDIR}/etc/wall/group/*.ldap ${ADMNDIR}/etc/wall/group >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/etc/wall/template -a -d ${ADMNDIR}/etc/wall/template ]; then
        cp -p ${BACKUPDIR}/etc/wall/template/* ${ADMNDIR}/etc/wall/template >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/etc/wall/data -a -d ${ADMNDIR}/etc/wall/data ]; then
        cp -p ${BACKUPDIR}/etc/wall/data/*.atl ${ADMNDIR}/etc/wall/data >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/data/*.atl >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/data/*.atl >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/data/*.atl >/dev/null 2>&1
        cp -p ${BACKUPDIR}/etc/wall/data/*.cer ${ADMNDIR}/etc/wall/data >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/data/*.cer >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/data/*.cer >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/data/*.cer >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/etc/wall/mss.mtype.d -a -d ${ADMNDIR}/etc/wall/mss.mtype.d ]; then
        cp -p ${BACKUPDIR}/etc/wall/mss.mtype.d/*.mtype ${ADMNDIR}/etc/wall/mss.mtype.d >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/etc/wall/mss.keywd.d -a -d ${ADMNDIR}/etc/wall/mss.keywd.d ]; then
        cp -p ${BACKUPDIR}/etc/wall/mss.keywd.d/*.keywd ${ADMNDIR}/etc/wall/mss.keywd.d >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/etc/wall/queue -a -d ${ADMNDIR}/etc/wall/queue ]; then
        cp -p ${BACKUPDIR}/etc/wall/queue/*.status ${ADMNDIR}/etc/wall/queue >/dev/null 2>&1
        chown nobody ${ADMNDIR}/etc/wall/queue/*.status >/dev/null 2>&1
        chgrp nobody ${ADMNDIR}/etc/wall/queue/*.status >/dev/null 2>&1
        chmod 0600 ${ADMNDIR}/etc/wall/queue/*.status >/dev/null 2>&1
    fi
    for f in mss.acl mss.conf mss.keywd mss.mtype mss.notice
    do
        if [ -f ${BACKUPDIR}/etc/wall/$f -a -d ${ADMNDIR}/etc/wall ]; then
            cp -p ${BACKUPDIR}/etc/wall/$f ${ADMNDIR}/etc/wall >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
        fi
    done
    if [ -f ${BACKUPDIR}/etc/wall/action -a -d ${ADMNDIR}/etc/wall ]; then
        cp -p ${BACKUPDIR}/etc/wall/action ${ADMNDIR}/etc/wall >/dev/null 2>&1
        chown nobody ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
        chgrp nobody ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
        chmod 0444 ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
    fi
    # WGϢꥹȥ
    if [ -d ${BACKUPDIR}/etc/wg/msg -a -d ${ADMNDIR}/etc/wg/msg ]; then
        cp -p ${BACKUPDIR}/etc/wg/msg/template ${ADMNDIR}/etc/wg/msg >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wg/msg/template >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wg/msg/template >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wg/msg/template >/dev/null 2>&1
        WGCNVS=`ls ${BACKUPDIR}/etc/wg/msg/*.html 2>/dev/null`
        for f in ${WGCNVS}
        do
            bf=`basename ${f} 2>/dev/null`
            if [ ${VER_MAJ} -gt 4 ] || [ ${VER_MAJ} -eq 4 -a ${VER_MIN} -ge 1 ]; then
                # SUITEv4.1 ʾϥ֥åꥳԡ
                cp -p ${f} ${ADMNDIR}/etc/wg/msg >/dev/null 2>&1
            else
                # SUITEv4.0 ʲϥ֥åꥳС
                sed "s/<!--#echo var=\"REQUEST_URI\" -->/<!--#echo var=\"DISPLAY_URI\" -->/g" ${f} >${ADMNDIR}/etc/wg/msg/${bf} 2>/dev/null
            fi
            chown root ${ADMNDIR}/etc/wg/msg/${bf} >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wg/msg/${bf} >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wg/msg/${bf} >/dev/null 2>&1
        done
    fi
    for f in admin.conf httpd.conf mail.conf wg.conf
    do
        if [ -f ${BACKUPDIR}/etc/wg/$f -a -d ${ADMNDIR}/etc/wg ]; then
            cp -p ${BACKUPDIR}/etc/wg/$f ${ADMNDIR}/etc/wg >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wg/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wg/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wg/$f >/dev/null 2>&1
        fi
    done
    if [ -f ${BACKUPDIR}/etc/wg/mail.tpl -a -d ${ADMNDIR}/etc/wg ]; then
        if [ ${VER_MAJ} -gt 4 ] || [ ${VER_MAJ} -eq 4 -a ${VER_MIN} -ge 1 ]; then
            # SUITEv4.1 ʾΥ᡼ꥳԡ
            cp -p ${BACKUPDIR}/etc/wg/mail.tpl ${ADMNDIR}/etc/wg >/dev/null 2>&1
        else
            # SUITEv4.0 ʲΥ᡼ꥳС
            sed "s/{\$env.REQUEST_URI|truncate:45}/{\$env.DISPLAY_URI|mb_truncate:45}/g" ${BACKUPDIR}/etc/wg/mail.tpl >${ADMNDIR}/etc/wg/mail.tpl 2>/dev/null
        fi
        chown root ${ADMNDIR}/etc/wg/mail.tpl >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wg/mail.tpl >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wg/mail.tpl >/dev/null 2>&1
    fi
    if [ -f ${BACKUPDIR}/etc/wg/wg.keywd -a -d ${ADMNDIR}/etc/wg ]; then
        if [ ${VER_MAJ} -gt 3 ]; then
            # SUITEv4 ʾϥꥳԡ
            cp -p ${BACKUPDIR}/etc/wg/wg.keywd ${ADMNDIR}/etc/wg >/dev/null 2>&1
        else
            # SUITEv3 ʲϥꥳС
            sed 's/"/\\"/g' ${BACKUPDIR}/etc/wg/wg.keywd >${ADMNDIR}/etc/wg/wg.keywd 2>/dev/null
        fi
        chown root ${ADMNDIR}/etc/wg/wg.keywd >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wg/wg.keywd >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wg/wg.keywd >/dev/null 2>&1
    fi
    for f in mkdic.conf searchengine.conf searchengine_group.conf webmail.conf webmail_group.conf
    do
        if [ -f ${BACKUPDIR}/wgconf/$f -a -d ${ADMNDIR}/wg/conf ]; then
            cp -p ${BACKUPDIR}/wgconf/$f ${ADMNDIR}/wg/conf >/dev/null 2>&1
            chown root ${ADMNDIR}/wg/conf/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/wg/conf/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/wg/conf/$f >/dev/null 2>&1
        fi
    done
    for f in hierarchy names
    do
        if [ -f ${BACKUPDIR}/wgconf/category/$f -a -d ${ADMNDIR}/wg/conf/category ]; then
            cp -p ${BACKUPDIR}/wgconf/category/$f ${ADMNDIR}/wg/conf/category >/dev/null 2>&1
            chown root ${ADMNDIR}/wg/conf/category/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/wg/conf/category/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/wg/conf/category/$f >/dev/null 2>&1
        fi
    done

    # check HTTP port
    if [ -f ${ADMNDIR}/httpd/conf/httpd.conf ]; then
        APORTNO=`cat ${ADMNDIR}/httpd/conf/httpd.conf | sed -n 's/^Port[^0-9]*\([0-9]*\)[^0-9]*/\1/p'`
        if [ "X${APORTNO}" != "X" -a "X${APORTNO}" != "X8080" ]; then
            ADMPORT=${APORTNO}
        fi
    fi

    # 塼顼(crontab)ꥹȥ
    if [ -x ${JOB_COMD} ]; then
        ${JOB_COMD} -e >/dev/null 2>&1
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

s_affunc_w()
{
    # С
    s_affunc_a

    if [ ${UNAME} = "Linux" ]; then
        if [ -f ${INITDIR}/MailWall ]; then
            /sbin/chkconfig --del MailWall >/dev/null 2>&1
            rm -f ${INITDIR}/MailWall >/dev/null 2>&1
        fi
    fi

    BACKUPDIR=${GRDNDIR}/backup/${MGPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}
    if [ ! -f ${BACKUPDIR}/VERSION ]; then
        return 0
    fi

    # Сå
    if [ ${VER_MAJ} -gt 5 ] || [ ${VER_MAJ} -eq 5 -a ${VER_MIN} -ge 1 ]; then
        OLDVER=0
        OLDROT=${WALLDIR}
        OLDWLL=${WALLDIR}
        OLDHTD=${GRDNDIR}/httpd
    else
        OLDVER=1
        OLDROT=/opt/MailGuardian/Wall
        OLDWLL=/opt/MailGuardian/Wall/mss
        OLDHTD=/opt/MailGuardian/Wall/httpd
    fi

    # СΥݡֹ
    if [ -f ${BACKUPDIR}/http/httpd.conf.old -a -d ${ADMNDIR}/httpd/conf ]; then
        cp -p ${BACKUPDIR}/http/httpd.conf.old ${ADMNDIR}/httpd/conf >/dev/null 2>&1
        APORTNO=`cat ${ADMNDIR}/httpd/conf/httpd.conf.old | sed -n 's/^Port[^0-9]*\([0-9]*\)[^0-9]*/\1/p'`
        if [ "X${APORTNO}" != "X" -a "X${APORTNO}" != "X8080" ]; then
            sed 's/8080/'${APORTNO}'/' ${ADMNDIR}/httpd/conf/httpd.conf.Admin >${ADMNDIR}/httpd/conf/httpd.conf
            chown root ${ADMNDIR}/httpd/conf/httpd.conf >/dev/null 2>&1
            chgrp root ${ADMNDIR}/httpd/conf/httpd.conf >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/httpd/conf/httpd.conf >/dev/null 2>&1
        fi
    fi
    # check HTTP port
    if [ -f ${ADMNDIR}/httpd/conf/httpd.conf ]; then
        APORTNO=`cat ${ADMNDIR}/httpd/conf/httpd.conf | sed -n 's/^Port[^0-9]*\([0-9]*\)[^0-9]*/\1/p'`
        if [ "X${APORTNO}" != "X" -a "X${APORTNO}" != "X8080" ]; then
            ADMPORT=${APORTNO}
        fi
    fi

    # ȴϢꥹȥ
    for f in admin manager sysadm
    do
        if [ -d ${BACKUPDIR}/etc/$f -a -d ${ADMNDIR}/etc/admin/$f ]; then
            cp -p ${BACKUPDIR}/etc/$f/*.conf ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/$f/*.conf >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/$f/*.conf >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/admin/$f/*.conf >/dev/null 2>&1
        fi
    done
    for f in .adminpasswd .mngpasswd .sysadmpasswd .usrmngpasswd
    do
        if [ -f ${BACKUPDIR}/http/$f -a -d ${ADMNDIR}/etc/admin ]; then
            cp -p ${BACKUPDIR}/http/$f ${ADMNDIR}/etc/admin >/dev/null 2>&1
            chown nobody ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
            chgrp nobody ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
            chmod 0600 ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
        fi
    done
    # 롼׾ꥹȥ
    if [ -d ${BACKUPDIR}/etc/group -a -d ${ADMNDIR}/etc/wall/group ]; then
        cp -p ${BACKUPDIR}/etc/group/*.addr ${ADMNDIR}/etc/wall/group >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
        cp -p ${BACKUPDIR}/etc/group/*.ldap ${ADMNDIR}/etc/wall/group >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
    fi
    # ʸʤɥꥹȥ
    if [ -d ${BACKUPDIR}/template -a -d ${ADMNDIR}/etc/wall/template ]; then
        cp -p ${BACKUPDIR}/template/* ${ADMNDIR}/etc/wall/template >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
    fi
    # WALLϳƼեꥹȥ
    if [ ${OLDVER} -eq 1 ]; then
        for f in mss.conf mss.acl domain.conf
        do
            if [ -f ${BACKUPDIR}/etc/$f -a -d ${ADMNDIR}/etc/wall ]; then
                cp -p ${BACKUPDIR}/etc/$f ${ADMNDIR}/etc/wall >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
            fi
        done
        if [ -f ${BACKUPDIR}/etc/mss.mime -a -d ${ADMNDIR}/etc/wall/mss.mtype.d ]; then
            cp -p ${BACKUPDIR}/etc/mss.mime ${ADMNDIR}/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
        fi
        if [ -f ${BACKUPDIR}/etc/mss.form -a -d ${ADMNDIR}/etc/wall/mss.keywd.d ]; then
            ${GRDNDIR}/local/bin/nkf -Se ${BACKUPDIR}/etc/mss.form >${ADMNDIR}/etc/wall/mss.keywd.d/main.keywd
            chown root ${ADMNDIR}/etc/wall/mss.keywd.d/main.keywd >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/mss.keywd.d/main.keywd >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/mss.keywd.d/main.keywd >/dev/null 2>&1
        fi
        if [ -f ${BACKUPDIR}/etc/mss.notice -a -d ${ADMNDIR}/etc/wall ]; then
            sed 's|/opt/MailGuardian/Wall/mss/template/||' ${BACKUPDIR}/etc/mss.notice >${ADMNDIR}/etc/wall/mss.notice
            chown root ${ADMNDIR}/etc/wall/mss.notice >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/mss.notice >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/mss.notice >/dev/null 2>&1
        fi
    else
        for f in mss.conf local.conf mss.acl mss.mtype mss.keywd mss.notice domain.conf
        do
            if [ -f ${BACKUPDIR}/etc/$f -a -d ${ADMNDIR}/etc/wall ]; then
                cp -p ${BACKUPDIR}/etc/$f ${ADMNDIR}/etc/wall >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
            fi
        done
        if [ -d ${BACKUPDIR}/etc/mss.mtype.d -a -d ${ADMNDIR}/etc/wall/mss.mtype.d ]; then
            cp -p ${BACKUPDIR}/etc/mss.mtype.d/*.mtype ${ADMNDIR}/etc/wall/mss.mtype.d >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
        fi
        if [ -d ${BACKUPDIR}/etc/mss.keywd.d -a -d ${ADMNDIR}/etc/wall/mss.keywd.d ]; then
            cp -p ${BACKUPDIR}/etc/mss.keywd.d/*.keywd ${ADMNDIR}/etc/wall/mss.keywd.d >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
        fi
    fi
    # ưꥹȥե
    if [ -f ${BACKUPDIR}/http/action -a -d ${ADMNDIR}/etc/wall ]; then
        cp -p ${BACKUPDIR}/http/action ${ADMNDIR}/etc/wall >/dev/null 2>&1
        chown nobody ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
        chgrp nobody ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
        chmod 0444 ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
    fi
    #
    echo >>${ADMNDIR}/etc/wall/mss.conf 2>/dev/null

    # Ĵ
    if [ -x ${GSA_CONF} ]; then
        ${GSA_CONF} -r -sLicense -kLicenseKey `${SUPPORT} -a` >/dev/null 2>&1
        ${GSA_CONF} -f${ADMSS_F} -r -sLicense -kLicenseKey XXXX-XXXX-XXXX-XXXX >/dev/null 2>&1

        if [ "X${WALLOGD}" != "X" ]; then
            ${GSA_CONF} -r -sDirectories -kLogDirectory ${WALLOGD} >/dev/null 2>&1
        fi
        ${GSA_CONF} -f${ADMSS_F} -d -sDirectories -kLogDirectory >/dev/null 2>&1

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sArchive -kArchiveDirectories 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X" ]; then
                ${GSA_CONF} -r -sArchive -kArchiveDirectories ${tmpany} >/dev/null 2>&1
            fi
            ${GSA_CONF} -f${ADMSS_F} -d -sArchive -kArchiveDirectories >/dev/null 2>&1
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sMail -kInternalDomains 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            ${GSA_CONF} -r -sMail -kInternalDomains -- "${tmpany}" >/dev/null 2>&1
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sAdmin -kAdminMailAddress 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            ${GSA_CONF} -r -sAdmin -kAdminMailAddress -- "${tmpany}" >/dev/null 2>&1
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sSmtp -kMailSubmissionProgram 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "Xsendmail" ]; then
                ${GSA_CONF} -r -sSmtp -kMailSubmissionProgram ${tmpany} >/dev/null 2>&1
            fi
            ${GSA_CONF} -f${ADMSS_F} -d -sSmtp -kMailSubmissionProgram >/dev/null 2>&1
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sSmtp -kSendmailOption 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X" ]; then
                ${GSA_CONF} -r -sSmtp -kSendmailOption -- "${tmpany}" >/dev/null 2>&1
            fi
            ${GSA_CONF} -f${ADMSS_F} -d -sSmtp -kSendmailOption >/dev/null 2>&1
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sSmtp -kServerCommand 2>/dev/null`
        if [ $? -eq 0 ]; then
            ${GSA_CONF} -f${ADMSS_F} -d -sSmtp -kServerCommand >/dev/null 2>&1
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sScreening -kMaxWeight 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X1" ]; then
                ${GSA_CONF} -r -sScreening -kMaxWeight ${tmpany} >/dev/null 2>&1
            fi
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sScreening -kMIMEDefaultSet 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "Xmain" ]; then
                ${GSA_CONF} -r -sScreening -kMIMEDefaultSet ${tmpany} >/dev/null 2>&1
            fi
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sScreening -kKEYWORDDefaultSet 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "Xmain" ]; then
                ${GSA_CONF} -r -sScreening -kKEYWORDDefaultSet ${tmpany} >/dev/null 2>&1
            fi
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sScreening -kMIMEngLevel 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X1" ]; then
                ${GSA_CONF} -r -sScreening -kMIMEngLevel ${tmpany} >/dev/null 2>&1
            fi
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sScreening -kKEYWORDngLevel 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X1" ]; then
                ${GSA_CONF} -r -sScreening -kKEYWORDngLevel ${tmpany} >/dev/null 2>&1
            fi
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sArchive -kBackupDevice 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X" ]; then
                ${GSA_CONF} -r -sArchive -kBackupDevice ${tmpany} >/dev/null 2>&1
            fi
            ${GSA_CONF} -f${ADMSS_F} -d -sArchive -kBackupDevice >/dev/null 2>&1
        fi

        tmpany=`${GSA_CONF} -f${ADMSS_F} -l -sArchive -kRestoreDirectories 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X" ]; then
                ${GSA_CONF} -r -sArchive -kRestoreDirectories ${tmpany} >/dev/null 2>&1
            fi
            ${GSA_CONF} -f${ADMSS_F} -d -sArchive -kRestoreDirectories >/dev/null 2>&1
        fi

        # ᡼˴ؤƼ¸֤Ϥ٤ 0(̵) ˤ
        ${GSA_CONF} -r -sExpire -kSystemLog 0 >/dev/null 2>&1
        ${GSA_CONF} -r -sExpire -kDeliverLog 0 >/dev/null 2>&1
        ${GSA_CONF} -r -sExpire -kScreeningLog 0 >/dev/null 2>&1
        ${GSA_CONF} -r -sExpire -kArchiveLog 0 >/dev/null 2>&1
        ${GSA_CONF} -r -sExpire -kManagerLog 0 >/dev/null 2>&1
        ${GSA_CONF} -r -sExpire -kViewerLog 0 >/dev/null 2>&1

        # CGI, Admin, Managerϡetc/admin/admin.conf˰Ѥ
        CTMP=/tmp/.cam.tmp$$
        getallsec ${ADMSS_F} CGI >${CTMP} 2>/dev/null
        if [ -s ${CTMP} ]; then
            echo >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            echo "[CGI]" >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            cat ${CTMP} >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
        fi
        (getallsec ${ADMSS_F} Admin|grep -iv '^AdminMailAddress[ ]*=') >${CTMP} 2>/dev/null
        if [ -s ${CTMP} ]; then
            echo >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            echo "[Admin]" >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            cat ${CTMP} >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
        fi
        getallsec ${ADMSS_F} Manager >${CTMP} 2>/dev/null
        if [ -s ${CTMP} ]; then
            echo >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            echo "[Manager]" >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            cat ${CTMP} >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
        fi
        rm -f ${CTMP} >/dev/null 2>&1
    fi

    ## remove old setting files
    if [ -d ${OLDWLL}/etc ]; then
        rm -rf ${OLDWLL}/etc >/dev/null 2>&1
    fi
    if [ -d ${OLDWLL}/template ]; then
        rm -rf ${OLDWLL}/template >/dev/null 2>&1
    fi
    ## remove messages
    if [ -d ${OLDWLL}/mqueue ]; then
        rm -rf ${OLDWLL}/mqueue >/dev/null 2>&1
    fi
    if [ -d ${OLDWLL}/pqueue ]; then
        rm -rf ${OLDWLL}/pqueue >/dev/null 2>&1
    fi
    if [ -d ${OLDWLL}/aqueue ]; then
        rm -rf ${OLDWLL}/aqueue >/dev/null 2>&1
    fi
    if [ -d ${OLDWLL}/cqueue ]; then
        rm -rf ${OLDWLL}/cqueue >/dev/null 2>&1
    fi
    ## remove log & setting files of httpd
    if [ -d ${OLDHTD}/logs ]; then
        rm -rf ${OLDHTD}/logs >/dev/null 2>&1
    fi
    if [ -d ${OLDHTD}/conf ]; then
        rm -rf ${OLDHTD}/conf >/dev/null 2>&1
    fi
    ## remove lock files
    if [ -f ${OLDROT}/SEARCH ]; then
        rm -f ${OLDROT}/SEARCH >/dev/null 2>&1
    fi
    if [ -f ${OLDROT}/NODAEMON ]; then
        rm -f ${OLDROT}/NODAEMON >/dev/null 2>&1
    fi
    if [ -f ${OLDROT}/SSL ]; then
        rm -f ${OLDROT}/SSL >/dev/null 2>&1
    fi

    ## crontab
    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
    (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
    if [ ${OLDVER} -eq 1 ]; then
        case "${UNAME}" in
        SunOS)
            egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab
            ;;
        Linux)
            egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab -
            ;;
        esac
        if [ $? -ne 0 ]; then
            err_config "${ERR_10}"
        fi
        rm -f ${BACKUP_CRON}.$$

        puts 0 1 ""
        if [ -d /opt/MailGuardian/Wall/mss/logs ]; then
            for f in deliver archive screening manager viewer
            do
                if [ -d /opt/MailGuardian/Wall/mss/logs/$f ]; then
                    mv -f /opt/MailGuardian/Wall/mss/logs/$f/* ${WALLDIR}/logs/$f >/dev/null 2>&1
                fi
            done
            mv -f /opt/MailGuardian/Wall/mss/logs/log.* ${WALLDIR}/logs >/dev/null 2>&1
        fi
        for f in pqueue aqueue cqueue
        do
            if [ -d /opt/MailGuardian/Wall/mss/$f ]; then
                mv -f /opt/MailGuardian/Wall/mss/$f/* ${WALLDIR}/$f >/dev/null 2>&1
            fi
        done
    else
        case "${UNAME}" in
        SunOS)
            egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab
            ;;
        Linux)
            egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab -
            ;;
        esac
        if [ $? -ne 0 ]; then
            err_config "${ERR_10}"
        fi
        rm -f ${BACKUP_CRON}.$$
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

mg_affunc_u()
{
    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    # С
    s_affunc_a

    # С(WALL)
    mg_affunc_a

    if [ ${UNAME} = "Linux" ]; then
        if [ -f ${INITDIR}/MailWall ]; then
            /sbin/chkconfig --del MailWall >/dev/null 2>&1
            rm -f ${INITDIR}/MailWall >/dev/null 2>&1
        fi
    fi

    BACKUPDIR=${GRDNDIR}/backup/${MGPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}
    if [ ! -f ${BACKUPDIR}/VERSION ]; then
        return 0
    fi

    # Сå
    if [ ${VER_MAJ} -gt 5 ] || [ ${VER_MAJ} -eq 5 -a ${VER_MIN} -ge 1 ]; then
        OLDVER=0
    else
        OLDVER=1
    fi

    # ȴϢꥹȥ
    for f in admin manager sysadm srch_admin srch_manager srch_sysadm
    do
        if [ -d ${BACKUPDIR}/etc/$f -a -d ${WALLDIR}/etc/$f ]; then
            cp -p ${BACKUPDIR}/etc/$f/*.conf ${WALLDIR}/etc/$f >/dev/null 2>&1
            chown root ${WALLDIR}/etc/$f/*.conf >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/$f/*.conf >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/$f/*.conf >/dev/null 2>&1
        fi
    done
    # 롼׾ꥹȥ
    if [ -d ${BACKUPDIR}/etc/group -a -d ${WALLDIR}/etc/group ]; then
        cp -p ${BACKUPDIR}/etc/group/*.addr ${WALLDIR}/etc/group >/dev/null 2>&1
        chown root ${WALLDIR}/etc/group/*.addr >/dev/null 2>&1
        chgrp root ${WALLDIR}/etc/group/*.addr >/dev/null 2>&1
        chmod 0644 ${WALLDIR}/etc/group/*.addr >/dev/null 2>&1
        cp -p ${BACKUPDIR}/etc/group/*.ldap ${WALLDIR}/etc/group >/dev/null 2>&1
        chown root ${WALLDIR}/etc/group/*.ldap >/dev/null 2>&1
        chgrp root ${WALLDIR}/etc/group/*.ldap >/dev/null 2>&1
        chmod 0644 ${WALLDIR}/etc/group/*.ldap >/dev/null 2>&1
    fi
    # ʸʤɥꥹȥ
    if [ -d ${BACKUPDIR}/template -a -d ${WALLDIR}/template ]; then
        cp -p ${BACKUPDIR}/template/* ${WALLDIR}/template >/dev/null 2>&1
        chown root ${WALLDIR}/template/* >/dev/null 2>&1
        chgrp root ${WALLDIR}/template/* >/dev/null 2>&1
        chmod 0644 ${WALLDIR}/template/* >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/libdata -a -d ${WALLDIR}/lib/data ]; then
        cp -p ${BACKUPDIR}/libdata/*.atl ${WALLDIR}/lib/data >/dev/null 2>&1
        chown root ${WALLDIR}/lib/data/*.atl >/dev/null 2>&1
        chgrp root ${WALLDIR}/lib/data/*.atl >/dev/null 2>&1
        chmod 0644 ${WALLDIR}/lib/data/*.atl >/dev/null 2>&1
        cp -p ${BACKUPDIR}/libdata/*.cer ${WALLDIR}/lib/data >/dev/null 2>&1
        chown root ${WALLDIR}/lib/data/*.cer >/dev/null 2>&1
        chgrp root ${WALLDIR}/lib/data/*.cer >/dev/null 2>&1
        chmod 0644 ${WALLDIR}/lib/data/*.cer >/dev/null 2>&1
    fi
    # WALLϳƼեꥹȥ
    if [ ${OLDVER} -eq 1 ]; then
        for f in mss.conf mss.acl domain.conf
        do
            if [ -f ${BACKUPDIR}/etc/$f -a -d ${WALLDIR}/etc ]; then
                cp -p ${BACKUPDIR}/etc/$f ${WALLDIR}/etc >/dev/null 2>&1
                chown root ${WALLDIR}/etc/$f >/dev/null 2>&1
                chgrp root ${WALLDIR}/etc/$f >/dev/null 2>&1
                chmod 0644 ${WALLDIR}/etc/$f >/dev/null 2>&1
            fi
        done
        if [ -f ${BACKUPDIR}/etc/mss.mime -a -d ${WALLDIR}/etc/mss.mtype.d ]; then
            cp -p ${BACKUPDIR}/etc/mss.mime ${WALLDIR}/etc/mss.mtype.d/main.mtype >/dev/null 2>&1
            chown root ${WALLDIR}/etc/mss.mtype.d/main.mtype >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/mss.mtype.d/main.mtype >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/mss.mtype.d/main.mtype >/dev/null 2>&1
        fi
        if [ -f ${BACKUPDIR}/etc/mss.form -a -d ${WALLDIR}/etc/mss.keywd.d ]; then
            ${GRDNDIR}/local/bin/nkf -Se ${BACKUPDIR}/etc/mss.form >${WALLDIR}/etc/mss.keywd.d/main.keywd
            chown root ${WALLDIR}/etc/mss.keywd.d/main.keywd >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/mss.keywd.d/main.keywd >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/mss.keywd.d/main.keywd >/dev/null 2>&1
        fi
        if [ -f ${BACKUPDIR}/etc/mss.notice -a -d ${WALLDIR}/etc ]; then
            sed 's|/opt/MailGuardian/Wall/mss/template/||' ${BACKUPDIR}/etc/mss.notice >${WALLDIR}/etc/mss.notice
            chown root ${WALLDIR}/etc/mss.notice >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/mss.notice >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/mss.notice >/dev/null 2>&1
        fi
        if [ -x ${MSS_CONF} ]; then
            LOGD=`${MSS_CONF} -a -sDirectories -kLogDirectory 2>/dev/null |awk '{print $2}'`
            if [ "X${LOGD}" = "X/opt/MailGuardian/Wall/mss/logs/" ]; then
                ${MSS_CONF} -d -sDirectories -kLogDirectory >/dev/null 2>&1
            fi
        fi
    else
        for f in mss.conf local.conf mss.acl mss.mtype mss.keywd mss.notice domain.conf
        do
            if [ -f ${BACKUPDIR}/etc/$f -a -d ${WALLDIR}/etc ]; then
                cp -p ${BACKUPDIR}/etc/$f ${WALLDIR}/etc >/dev/null 2>&1
                chown root ${WALLDIR}/etc/$f >/dev/null 2>&1
                chgrp root ${WALLDIR}/etc/$f >/dev/null 2>&1
                chmod 0644 ${WALLDIR}/etc/$f >/dev/null 2>&1
            fi
        done
        if [ -d ${BACKUPDIR}/etc/mss.mtype.d -a -d ${WALLDIR}/etc/mss.mtype.d ]; then
            cp -p ${BACKUPDIR}/etc/mss.mtype.d/*.mtype ${WALLDIR}/etc/mss.mtype.d >/dev/null 2>&1
            chown root ${WALLDIR}/etc/mss.mtype.d/*.mtype >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/mss.mtype.d/*.mtype >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/mss.mtype.d/*.mtype >/dev/null 2>&1
        fi
        if [ -d ${BACKUPDIR}/etc/mss.keywd.d -a -d ${WALLDIR}/etc/mss.keywd.d ]; then
            cp -p ${BACKUPDIR}/etc/mss.keywd.d/*.keywd ${WALLDIR}/etc/mss.keywd.d >/dev/null 2>&1
            chown root ${WALLDIR}/etc/mss.keywd.d/*.keywd >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/mss.keywd.d/*.keywd >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/mss.keywd.d/*.keywd >/dev/null 2>&1
        fi
    fi
    # СϢꥹȥ
    for f in admin.conf command.conf schedule.conf
    do
        if [ -f ${BACKUPDIR}/Aetc/cserv/$f -a -d ${ADMNDIR}/etc/cserv ]; then
            cp -p ${BACKUPDIR}/Aetc/cserv/$f ${ADMNDIR}/etc/cserv >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
        fi
    done

    # 塼顼(crontab)ꥹȥWALL6.0ʾΤȤΤߡ
    if [ ${VER_MAJ} -gt 5 -a -x ${JOB_COMD} ]; then
        ${JOB_COMD} -e >/dev/null 2>&1
    fi

    ## crontab
    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
    (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
    if [ ${OLDVER} -eq 1 ]; then
        case "${UNAME}" in
        SunOS)
            egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily|^# for GUARDIANSUITE CSERV|Admin/bin/guts_launcher_c\.pl' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab
            ;;
        Linux)
            egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily|^# for GUARDIANSUITE CSERV|Admin/bin/guts_launcher_c\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab -
            ;;
        esac
        if [ $? -ne 0 ]; then
            err_config "${ERR_10}"
        fi
        rm -f ${BACKUP_CRON}.$$

        puts 0 1 ""
        if [ -d /opt/MailGuardian/Wall/mss/logs ]; then
            for f in deliver archive screening manager viewer
            do
                if [ -d /opt/MailGuardian/Wall/mss/logs/$f ]; then
                    mv -f /opt/MailGuardian/Wall/mss/logs/$f/* ${WALLDIR}/logs/$f >/dev/null 2>&1
                fi
            done
            mv -f /opt/MailGuardian/Wall/mss/logs/log.* ${WALLDIR}/logs >/dev/null 2>&1
        fi
        for f in pqueue aqueue cqueue
        do
            if [ -d /opt/MailGuardian/Wall/mss/$f ]; then
                mv -f /opt/MailGuardian/Wall/mss/$f/* ${WALLDIR}/$f >/dev/null 2>&1
            fi
        done
    else
        (/usr/bin/crontab -l | egrep -ic 'Admin/bin/guts_launcher_c\.pl') >/dev/null 2>&1
        if [ $? -eq 0 ]; then
            xy_status ""
            return 0
        fi

        case "${UNAME}" in
        SunOS)
            egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab
            ;;
        Linux)
            egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab -
            ;;
        esac
        if [ $? -ne 0 ]; then
            err_config "${ERR_10}"
        fi
        rm -f ${BACKUP_CRON}.$$
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

mgs_affunc_u()
{
    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    # С
    s_affunc_a

    # С(WALL)
    mg_affunc_a

    if [ ${UNAME} = "Linux" ]; then
        if [ -f ${INITDIR}/MailWall ]; then
            /sbin/chkconfig --del MailWall >/dev/null 2>&1
            rm -f ${INITDIR}/MailWall >/dev/null 2>&1
        fi
    fi

    BACKUPDIR=${GRDNDIR}/backup/${MGPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}
    if [ ! -f ${BACKUPDIR}/VERSION ]; then
        return 0
    fi

    # Сå
    if [ ${VER_MAJ} -gt 5 ] || [ ${VER_MAJ} -eq 5 -a ${VER_MIN} -ge 1 ]; then
        OLDVER=0
    else
        OLDVER=1
    fi

    # С(WALL)¦Υꥹȥ
    # ȴϢꥹȥ
    for f in admin manager sysadm srch_admin srch_manager srch_sysadm
    do
        if [ -d ${BACKUPDIR}/etc/$f -a -d ${WALLDIR}/etc/$f ]; then
            cp -p ${BACKUPDIR}/etc/$f/*.conf ${WALLDIR}/etc/$f >/dev/null 2>&1
            chown root ${WALLDIR}/etc/$f/*.conf >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/$f/*.conf >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/$f/*.conf >/dev/null 2>&1
        fi
    done
    # 롼׾ꥹȥ
    if [ -d ${BACKUPDIR}/etc/group -a -d ${WALLDIR}/etc/group ]; then
        cp -p ${BACKUPDIR}/etc/group/*.addr ${WALLDIR}/etc/group >/dev/null 2>&1
        chown root ${WALLDIR}/etc/group/*.addr >/dev/null 2>&1
        chgrp root ${WALLDIR}/etc/group/*.addr >/dev/null 2>&1
        chmod 0644 ${WALLDIR}/etc/group/*.addr >/dev/null 2>&1
        cp -p ${BACKUPDIR}/etc/group/*.ldap ${WALLDIR}/etc/group >/dev/null 2>&1
        chown root ${WALLDIR}/etc/group/*.ldap >/dev/null 2>&1
        chgrp root ${WALLDIR}/etc/group/*.ldap >/dev/null 2>&1
        chmod 0644 ${WALLDIR}/etc/group/*.ldap >/dev/null 2>&1
    fi
    # ʸʤɥꥹȥ
    if [ -d ${BACKUPDIR}/template -a -d ${WALLDIR}/template ]; then
        cp -p ${BACKUPDIR}/template/* ${WALLDIR}/template >/dev/null 2>&1
        chown root ${WALLDIR}/template/* >/dev/null 2>&1
        chgrp root ${WALLDIR}/template/* >/dev/null 2>&1
        chmod 0644 ${WALLDIR}/template/* >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/libdata -a -d ${WALLDIR}/lib/data ]; then
        cp -p ${BACKUPDIR}/libdata/*.atl ${WALLDIR}/lib/data >/dev/null 2>&1
        chown root ${WALLDIR}/lib/data/*.atl >/dev/null 2>&1
        chgrp root ${WALLDIR}/lib/data/*.atl >/dev/null 2>&1
        chmod 0644 ${WALLDIR}/lib/data/*.atl >/dev/null 2>&1
        cp -p ${BACKUPDIR}/libdata/*.cer ${WALLDIR}/lib/data >/dev/null 2>&1
        chown root ${WALLDIR}/lib/data/*.cer >/dev/null 2>&1
        chgrp root ${WALLDIR}/lib/data/*.cer >/dev/null 2>&1
        chmod 0644 ${WALLDIR}/lib/data/*.cer >/dev/null 2>&1
    fi
    # WALLϳƼեꥹȥ
    if [ ${OLDVER} -eq 1 ]; then
        for f in mss.conf mss.acl domain.conf
        do
            if [ -f ${BACKUPDIR}/etc/$f -a -d ${WALLDIR}/etc ]; then
                cp -p ${BACKUPDIR}/etc/$f ${WALLDIR}/etc >/dev/null 2>&1
                chown root ${WALLDIR}/etc/$f >/dev/null 2>&1
                chgrp root ${WALLDIR}/etc/$f >/dev/null 2>&1
                chmod 0644 ${WALLDIR}/etc/$f >/dev/null 2>&1
            fi
        done
        if [ -f ${BACKUPDIR}/etc/mss.mime -a -d ${WALLDIR}/etc/mss.mtype.d ]; then
            cp -p ${BACKUPDIR}/etc/mss.mime ${WALLDIR}/etc/mss.mtype.d/main.mtype >/dev/null 2>&1
            chown root ${WALLDIR}/etc/mss.mtype.d/main.mtype >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/mss.mtype.d/main.mtype >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/mss.mtype.d/main.mtype >/dev/null 2>&1
        fi
        if [ -f ${BACKUPDIR}/etc/mss.form -a -d ${WALLDIR}/etc/mss.keywd.d ]; then
            ${GRDNDIR}/local/bin/nkf -Se ${BACKUPDIR}/etc/mss.form >${WALLDIR}/etc/mss.keywd.d/main.keywd
            chown root ${WALLDIR}/etc/mss.keywd.d/main.keywd >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/mss.keywd.d/main.keywd >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/mss.keywd.d/main.keywd >/dev/null 2>&1
        fi
        if [ -f ${BACKUPDIR}/etc/mss.notice -a -d ${WALLDIR}/etc ]; then
            sed 's|/opt/MailGuardian/Wall/mss/template/||' ${BACKUPDIR}/etc/mss.notice >${WALLDIR}/etc/mss.notice
            chown root ${WALLDIR}/etc/mss.notice >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/mss.notice >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/mss.notice >/dev/null 2>&1
        fi
        if [ -x ${MSS_CONF} ]; then
            LOGD=`${MSS_CONF} -a -sDirectories -kLogDirectory 2>/dev/null |awk '{print $2}'`
            if [ "X${LOGD}" = "X/opt/MailGuardian/Wall/mss/logs/" ]; then
                ${MSS_CONF} -d -sDirectories -kLogDirectory >/dev/null 2>&1
            fi
        fi
    else
        for f in mss.conf local.conf mss.acl mss.mtype mss.keywd mss.notice domain.conf
        do
            if [ -f ${BACKUPDIR}/etc/$f -a -d ${WALLDIR}/etc ]; then
                cp -p ${BACKUPDIR}/etc/$f ${WALLDIR}/etc >/dev/null 2>&1
                chown root ${WALLDIR}/etc/$f >/dev/null 2>&1
                chgrp root ${WALLDIR}/etc/$f >/dev/null 2>&1
                chmod 0644 ${WALLDIR}/etc/$f >/dev/null 2>&1
            fi
        done
        if [ -d ${BACKUPDIR}/etc/mss.mtype.d -a -d ${WALLDIR}/etc/mss.mtype.d ]; then
            cp -p ${BACKUPDIR}/etc/mss.mtype.d/*.mtype ${WALLDIR}/etc/mss.mtype.d >/dev/null 2>&1
            chown root ${WALLDIR}/etc/mss.mtype.d/*.mtype >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/mss.mtype.d/*.mtype >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/mss.mtype.d/*.mtype >/dev/null 2>&1
        fi
        if [ -d ${BACKUPDIR}/etc/mss.keywd.d -a -d ${WALLDIR}/etc/mss.keywd.d ]; then
            cp -p ${BACKUPDIR}/etc/mss.keywd.d/*.keywd ${WALLDIR}/etc/mss.keywd.d >/dev/null 2>&1
            chown root ${WALLDIR}/etc/mss.keywd.d/*.keywd >/dev/null 2>&1
            chgrp root ${WALLDIR}/etc/mss.keywd.d/*.keywd >/dev/null 2>&1
            chmod 0644 ${WALLDIR}/etc/mss.keywd.d/*.keywd >/dev/null 2>&1
        fi
    fi

    # СΥݡֹ
    if [ -f ${BACKUPDIR}/http/httpd.conf.old -a -d ${ADMNDIR}/httpd/conf ]; then
        cp -p ${BACKUPDIR}/http/httpd.conf.old ${ADMNDIR}/httpd/conf >/dev/null 2>&1
        APORTNO=`cat ${ADMNDIR}/httpd/conf/httpd.conf.old | sed -n 's/^Port[^0-9]*\([0-9]*\)[^0-9]*/\1/p'`
        if [ "X${APORTNO}" != "X" -a "X${APORTNO}" != "X8080" ]; then
            sed 's/8080/'${APORTNO}'/' ${ADMNDIR}/httpd/conf/httpd.conf.Admin >${ADMNDIR}/httpd/conf/httpd.conf
            chown root ${ADMNDIR}/httpd/conf/httpd.conf >/dev/null 2>&1
            chgrp root ${ADMNDIR}/httpd/conf/httpd.conf >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/httpd/conf/httpd.conf >/dev/null 2>&1
        fi
    fi
    # check HTTP port
    if [ -f ${ADMNDIR}/httpd/conf/httpd.conf ]; then
        APORTNO=`cat ${ADMNDIR}/httpd/conf/httpd.conf | sed -n 's/^Port[^0-9]*\([0-9]*\)[^0-9]*/\1/p'`
        if [ "X${APORTNO}" != "X" -a "X${APORTNO}" != "X8080" ]; then
            ADMPORT=${APORTNO}
        fi
    fi

    # С¦Υꥹȥ
    if [ -d ${BACKUPDIR}/Aetc ]; then

        # СϢꥹȥ
        for f in admin manager
        do
            if [ -d ${BACKUPDIR}/Aetc/admin/${f} -a -d ${ADMNDIR}/etc/admin/${f} ]; then
                URCNVS=`ls ${BACKUPDIR}/Aetc/admin/${f}/*.conf 2>/dev/null`
                for ff in ${URCNVS}
                do
                    bff=`basename ${ff} 2>/dev/null`
                    if [ ${VER_MAJ} -gt 7 ] || [ ${VER_MAJ} -eq 7 -a ${VER_MIN} -ge 1 ]; then
                        # WALLv7.1 ʾʤʤ SUITEv4.1 ʾˤѼꥳԡ
                        cp -p ${ff} ${ADMNDIR}/etc/admin/${f} >/dev/null 2>&1
                    else
                        # WALLv7.0 ʲʤʤ SUITEv4.0 ʲˤѼꥳС
                        grep -ic '^\[WG\]' ${ff} >/dev/null 2>&1
                        if [ $? -ne 0 ]; then
                            cp -p ${ff} ${ADMNDIR}/etc/admin/${f} >/dev/null 2>&1
                            echo "[WG]" >>${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                            echo "SelectGroupList = True" >>${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                            echo "SelectGroup =" >>${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                        else
                            ${PRL_COMD} -pe "s/\[[Ww][Gg]\]/[WG]\nSelectGroupList = True\nSelectGroup =/" ${ff} >${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                        fi
                    fi
                    chown root ${ADMNDIR}/etc/admin/${f}/${bff} >/dev/null 2>&1
                    chgrp root ${ADMNDIR}/etc/admin/${f}/${bff} >/dev/null 2>&1
                    chmod 0644 ${ADMNDIR}/etc/admin/${f}/${bff} >/dev/null 2>&1
                done
            fi
        done
        if [ -d ${BACKUPDIR}/Aetc/admin/sysadm -a -d ${ADMNDIR}/etc/admin/sysadm ]; then
            cp -p ${BACKUPDIR}/Aetc/admin/sysadm/*.conf ${ADMNDIR}/etc/admin/sysadm >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/sysadm/*.conf >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/sysadm/*.conf >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/admin/sysadm/*.conf >/dev/null 2>&1
        fi
        if [ -d ${BACKUPDIR}/Aetc/admin/schedule -a -d ${ADMNDIR}/etc/admin/schedule ]; then
            cp -p ${BACKUPDIR}/Aetc/admin/schedule/*.prm ${ADMNDIR}/etc/admin/schedule >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/schedule/*.prm >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/schedule/*.prm >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/admin/schedule/*.prm >/dev/null 2>&1
        fi
        for f in .adminldap .adminpasswd .mngldap .mngpasswd .sysadmldap .sysadmpasswd .usrmngldap .usrmngpasswd
        do
            if [ -f ${BACKUPDIR}/Aetc/admin/$f -a -d ${ADMNDIR}/etc/admin ]; then
                cp -p ${BACKUPDIR}/Aetc/admin/$f ${ADMNDIR}/etc/admin >/dev/null 2>&1
                chown nobody ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
                chgrp nobody ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
                chmod 0600 ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
            fi
        done
        if [ -f ${BACKUPDIR}/Aetc/admin/admin.conf -a -d ${ADMNDIR}/etc/admin ]; then
            cp -p ${BACKUPDIR}/Aetc/admin/admin.conf ${ADMNDIR}/etc/admin >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/admin.conf >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/admin.conf >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/admin/admin.conf >/dev/null 2>&1
        fi
        if [ -f ${BACKUPDIR}/Aetc/admin/timestamp.log -a -d ${ADMNDIR}/etc/admin ]; then
            cp -p ${BACKUPDIR}/Aetc/admin/timestamp.log ${ADMNDIR}/etc/admin >/dev/null 2>&1
            chown nobody ${ADMNDIR}/etc/admin/timestamp.log >/dev/null 2>&1
            chgrp nobody ${ADMNDIR}/etc/admin/timestamp.log >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/admin/timestamp.log >/dev/null 2>&1
        fi
        if [ -f ${BACKUPDIR}/Aetc/admin/schedule.conf -a -d ${ADMNDIR}/etc/admin ]; then
            if [ ${VER_MAJ} -gt 6 ]; then
                # WALLv7 ʾʤʤ SUITEv4 ʾˤϥ塼顼ꥳԡ
                cp -p ${BACKUPDIR}/Aetc/admin/schedule.conf ${ADMNDIR}/etc/admin >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/admin/schedule.conf >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/admin/schedule.conf >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/admin/schedule.conf >/dev/null 2>&1
            else
                # WALLv6 ʲʤʤ SUITEv3 ʲˤϥ塼顼ꥳС
                A_SCHEVAL=`cnv_schedule ${BACKUPDIR}/Aetc/admin/schedule.conf ${BACKUPDIR}/Aetc/admin/command.conf 2>/dev/null`
                if [ "X${A_SCHEVAL}" != "X" ]; then
                    cp -p ${ADMNDIR}/etc/admin/schedule.conf ${ADMNDIR}/etc/admin/schedule.conf.bak >/dev/null 2>&1
                    echo "${A_SCHEVAL}" >>${ADMNDIR}/etc/admin/schedule.conf 2>/dev/null
                fi
            fi
        fi
        # СϢꥹȥ
        for f in admin.conf command.conf schedule.conf
        do
            if [ -f ${BACKUPDIR}/Aetc/cserv/$f -a -d ${ADMNDIR}/etc/cserv ]; then
                cp -p ${BACKUPDIR}/Aetc/cserv/$f ${ADMNDIR}/etc/cserv >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            fi
        done
        # WALLϢꥹȥ
        if [ -d ${BACKUPDIR}/Aetc/wall/group -a -d ${ADMNDIR}/etc/wall/group ]; then
            cp -p ${BACKUPDIR}/Aetc/wall/group/*.addr ${ADMNDIR}/etc/wall/group >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
            cp -p ${BACKUPDIR}/Aetc/wall/group/*.ldap ${ADMNDIR}/etc/wall/group >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
        fi
        if [ -d ${BACKUPDIR}/Aetc/wall/template -a -d ${ADMNDIR}/etc/wall/template ]; then
            cp -p ${BACKUPDIR}/Aetc/wall/template/* ${ADMNDIR}/etc/wall/template >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
        fi
        if [ -d ${BACKUPDIR}/Aetc/wall/data -a -d ${ADMNDIR}/etc/wall/data ]; then
            cp -p ${BACKUPDIR}/Aetc/wall/data/*.atl ${ADMNDIR}/etc/wall/data >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/data/*.atl >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/data/*.atl >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/data/*.atl >/dev/null 2>&1
            cp -p ${BACKUPDIR}/Aetc/wall/data/*.cer ${ADMNDIR}/etc/wall/data >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/data/*.cer >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/data/*.cer >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/data/*.cer >/dev/null 2>&1
        fi
        if [ -d ${BACKUPDIR}/Aetc/wall/mss.mtype.d -a -d ${ADMNDIR}/etc/wall/mss.mtype.d ]; then
            cp -p ${BACKUPDIR}/Aetc/wall/mss.mtype.d/*.mtype ${ADMNDIR}/etc/wall/mss.mtype.d >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
        fi
        if [ -d ${BACKUPDIR}/Aetc/wall/mss.keywd.d -a -d ${ADMNDIR}/etc/wall/mss.keywd.d ]; then
            cp -p ${BACKUPDIR}/Aetc/wall/mss.keywd.d/*.keywd ${ADMNDIR}/etc/wall/mss.keywd.d >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
        fi
        if [ -d ${BACKUPDIR}/Aetc/wall/queue -a -d ${ADMNDIR}/etc/wall/queue ]; then
            cp -p ${BACKUPDIR}/Aetc/wall/queue/*.status ${ADMNDIR}/etc/wall/queue >/dev/null 2>&1
            chown nobody ${ADMNDIR}/etc/wall/queue/*.status >/dev/null 2>&1
            chgrp nobody ${ADMNDIR}/etc/wall/queue/*.status >/dev/null 2>&1
            chmod 0600 ${ADMNDIR}/etc/wall/queue/*.status >/dev/null 2>&1
        fi
        for f in mss.acl mss.conf mss.keywd mss.mtype mss.notice
        do
            if [ -f ${BACKUPDIR}/Aetc/wall/$f -a -d ${ADMNDIR}/etc/wall ]; then
                cp -p ${BACKUPDIR}/Aetc/wall/$f ${ADMNDIR}/etc/wall >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
            fi
        done
        if [ -f ${BACKUPDIR}/Aetc/wall/action -a -d ${ADMNDIR}/etc/wall ]; then
            cp -p ${BACKUPDIR}/Aetc/wall/action ${ADMNDIR}/etc/wall >/dev/null 2>&1
            chown nobody ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
            chgrp nobody ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
            chmod 0444 ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
        fi
        # WGϢꥹȥ
        if [ -d ${BACKUPDIR}/Aetc/wg/msg -a -d ${ADMNDIR}/etc/wg/msg ]; then
            cp -p ${BACKUPDIR}/Aetc/wg/msg/template ${ADMNDIR}/etc/wg/msg >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wg/msg/template >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wg/msg/template >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wg/msg/template >/dev/null 2>&1
            WGCNVS=`ls ${BACKUPDIR}/Aetc/wg/msg/*.html 2>/dev/null`
            for f in ${WGCNVS}
            do
                bf=`basename ${f} 2>/dev/null`
                if [ ${VER_MAJ} -gt 7 ] || [ ${VER_MAJ} -eq 7 -a ${VER_MIN} -ge 1 ]; then
                    # WALLv7.1 ʾʤʤ SUITEv4.1 ʾˤϥ֥åꥳԡ
                    cp -p ${f} ${ADMNDIR}/etc/wg/msg >/dev/null 2>&1
                else
                    # WALLv7.0 ʲʤʤ SUITEv4.0 ʲˤϥ֥åꥳС
                    sed "s/<!--#echo var=\"REQUEST_URI\" -->/<!--#echo var=\"DISPLAY_URI\" -->/g" ${f} >${ADMNDIR}/etc/wg/msg/${bf} 2>/dev/null
                fi
                chown root ${ADMNDIR}/etc/wg/msg/${bf} >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/wg/msg/${bf} >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/wg/msg/${bf} >/dev/null 2>&1
            done
        fi
        for f in admin.conf httpd.conf mail.conf wg.conf
        do
            if [ -f ${BACKUPDIR}/Aetc/wg/$f -a -d ${ADMNDIR}/etc/wg ]; then
                cp -p ${BACKUPDIR}/Aetc/wg/$f ${ADMNDIR}/etc/wg >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/wg/$f >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/wg/$f >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/wg/$f >/dev/null 2>&1
            fi
        done
        if [ -f ${BACKUPDIR}/Aetc/wg/mail.tpl -a -d ${ADMNDIR}/etc/wg ]; then
            if [ ${VER_MAJ} -gt 7 ] || [ ${VER_MAJ} -eq 7 -a ${VER_MIN} -ge 1 ]; then
                # WALLv7.1 ʾʤʤ SUITEv4.1 ʾˤΥ᡼ꥳԡ
                cp -p ${BACKUPDIR}/Aetc/wg/mail.tpl ${ADMNDIR}/etc/wg >/dev/null 2>&1
            else
                # WALLv7.0 ʲʤʤ SUITEv4.0 ʲˤΥ᡼ꥳС
                sed "s/{\$env.REQUEST_URI|truncate:45}/{\$env.DISPLAY_URI|mb_truncate:45}/g" ${BACKUPDIR}/Aetc/wg/mail.tpl >${ADMNDIR}/etc/wg/mail.tpl 2>/dev/null
            fi
            chown root ${ADMNDIR}/etc/wg/mail.tpl >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wg/mail.tpl >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wg/mail.tpl >/dev/null 2>&1
        fi
        if [ -f ${BACKUPDIR}/Aetc/wg/wg.keywd -a -d ${ADMNDIR}/etc/wg ]; then
            if [ ${VER_MAJ} -gt 6 ]; then
                # WALLv7 ʾʤʤ SUITEv4 ʾˤϥꥳԡ
                cp -p ${BACKUPDIR}/Aetc/wg/wg.keywd ${ADMNDIR}/etc/wg >/dev/null 2>&1
            else
                # WALLv6 ʲʤʤ SUITEv3 ʲˤϥꥳС
                sed 's/"/\\"/g' ${BACKUPDIR}/Aetc/wg/wg.keywd >${ADMNDIR}/etc/wg/wg.keywd 2>/dev/null
            fi
            chown root ${ADMNDIR}/etc/wg/wg.keywd >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wg/wg.keywd >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wg/wg.keywd >/dev/null 2>&1
        fi
        for f in mkdic.conf searchengine.conf searchengine_group.conf webmail.conf webmail_group.conf
        do
            if [ -f ${BACKUPDIR}/Awgconf/$f -a -d ${ADMNDIR}/wg/conf ]; then
                cp -p ${BACKUPDIR}/Awgconf/$f ${ADMNDIR}/wg/conf >/dev/null 2>&1
                chown root ${ADMNDIR}/wg/conf/$f >/dev/null 2>&1
                chgrp root ${ADMNDIR}/wg/conf/$f >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/wg/conf/$f >/dev/null 2>&1
            fi
        done
        for f in hierarchy names
        do
            if [ -f ${BACKUPDIR}/Awgconf/category/$f -a -d ${ADMNDIR}/wg/conf/category ]; then
                cp -p ${BACKUPDIR}/Awgconf/category/$f ${ADMNDIR}/wg/conf/category >/dev/null 2>&1
                chown root ${ADMNDIR}/wg/conf/category/$f >/dev/null 2>&1
                chgrp root ${ADMNDIR}/wg/conf/category/$f >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/wg/conf/category/$f >/dev/null 2>&1
            fi
        done
    else

        # WALLΥȴϢꥹȥ
        for f in admin manager sysadm
        do
            if [ -d ${BACKUPDIR}/etc/$f -a -d ${ADMNDIR}/etc/admin/$f ]; then
                cp -p ${BACKUPDIR}/etc/$f/*.conf ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/admin/$f/*.conf >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/admin/$f/*.conf >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/admin/$f/*.conf >/dev/null 2>&1
            fi
        done
        for f in .adminpasswd .mngpasswd .sysadmpasswd .usrmngpasswd
        do
            if [ -f ${BACKUPDIR}/http/$f -a -d ${ADMNDIR}/etc/admin ]; then
                cp -p ${BACKUPDIR}/http/$f ${ADMNDIR}/etc/admin >/dev/null 2>&1
                chown nobody ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
                chgrp nobody ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
                chmod 0600 ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
            fi
        done
        # WALLΥ롼׾ꥹȥ
        if [ -d ${BACKUPDIR}/etc/group -a -d ${ADMNDIR}/etc/wall/group ]; then
            cp -p ${BACKUPDIR}/etc/group/*.addr ${ADMNDIR}/etc/wall/group >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
            cp -p ${BACKUPDIR}/etc/group/*.ldap ${ADMNDIR}/etc/wall/group >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
        fi
        # WALLʸʤɥꥹȥ
        if [ -d ${BACKUPDIR}/template -a -d ${ADMNDIR}/etc/wall/template ]; then
            cp -p ${BACKUPDIR}/template/* ${ADMNDIR}/etc/wall/template >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
        fi
        # WALLγƼեꥹȥ
        if [ ${OLDVER} -eq 1 ]; then
            for f in mss.conf mss.acl domain.conf
            do
                if [ -f ${BACKUPDIR}/etc/$f -a -d ${ADMNDIR}/etc/wall ]; then
                    cp -p ${BACKUPDIR}/etc/$f ${ADMNDIR}/etc/wall >/dev/null 2>&1
                    chown root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                    chgrp root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                    chmod 0644 ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                fi
            done
            if [ -f ${BACKUPDIR}/etc/mss.mime -a -d ${ADMNDIR}/etc/wall/mss.mtype.d ]; then
                cp -p ${BACKUPDIR}/etc/mss.mime ${ADMNDIR}/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
            fi
            if [ -f ${BACKUPDIR}/etc/mss.form -a -d ${ADMNDIR}/etc/wall/mss.keywd.d ]; then
                ${GRDNDIR}/local/bin/nkf -Se ${BACKUPDIR}/etc/mss.form >${ADMNDIR}/etc/wall/mss.keywd.d/main.keywd
                chown root ${ADMNDIR}/etc/wall/mss.keywd.d/main.keywd >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/wall/mss.keywd.d/main.keywd >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/wall/mss.keywd.d/main.keywd >/dev/null 2>&1
            fi
            if [ -f ${BACKUPDIR}/etc/mss.notice -a -d ${ADMNDIR}/etc/wall ]; then
                sed 's|/opt/MailGuardian/Wall/mss/template/||' ${BACKUPDIR}/etc/mss.notice >${ADMNDIR}/etc/wall/mss.notice
                chown root ${ADMNDIR}/etc/wall/mss.notice >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/wall/mss.notice >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/wall/mss.notice >/dev/null 2>&1
            fi
        else
            for f in mss.conf local.conf mss.acl mss.mtype mss.keywd mss.notice domain.conf
            do
                if [ -f ${BACKUPDIR}/etc/$f -a -d ${ADMNDIR}/etc/wall ]; then
                    cp -p ${BACKUPDIR}/etc/$f ${ADMNDIR}/etc/wall >/dev/null 2>&1
                    chown root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                    chgrp root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                    chmod 0644 ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
                fi
            done
            if [ -d ${BACKUPDIR}/etc/mss.mtype.d -a -d ${ADMNDIR}/etc/wall/mss.mtype.d ]; then
                cp -p ${BACKUPDIR}/etc/mss.mtype.d/*.mtype ${ADMNDIR}/etc/wall/mss.mtype.d >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
            fi
            if [ -d ${BACKUPDIR}/etc/mss.keywd.d -a -d ${ADMNDIR}/etc/wall/mss.keywd.d ]; then
                cp -p ${BACKUPDIR}/etc/mss.keywd.d/*.keywd ${ADMNDIR}/etc/wall/mss.keywd.d >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
            fi
        fi
        # WALLưꥹȥե
        if [ -f ${BACKUPDIR}/http/action -a -d ${ADMNDIR}/etc/wall ]; then
            cp -p ${BACKUPDIR}/http/action ${ADMNDIR}/etc/wall >/dev/null 2>&1
            chown nobody ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
            chgrp nobody ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
            chmod 0444 ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
        fi
        #
        echo >>${ADMNDIR}/etc/wall/mss.conf 2>/dev/null

        # Ĵ
        if [ -x ${MSS_CONF} -a -x ${GSA_CONF} -a -x ${GSS_CONF} ]; then
            CSERVID=1
            while true
            do
                if [ -d ${ADMNDIR}/etc/admin/server/${CSERVID} ]; then
                    CSERVID=`expr ${CSERVID} + 1`
                    continue
                fi
                mkdir -p ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
                chown root ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
                chmod 0755 ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
                break
            done
            cp ${ADMNDIR}/etc/admin/default/server.conf ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf >/dev/null 2>&1
            cp ${ADMNDIR}/etc/admin/default/schedule.conf ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/schedule.conf >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/schedule.conf >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/schedule.conf >/dev/null 2>&1
            cp ${ADMNDIR}/etc/admin/default/timestamp.log ${ADMNDIR}/etc/admin/server/${CSERVID} >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/server/${CSERVID}/timestamp.log >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/server/${CSERVID}/timestamp.log >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/admin/server/${CSERVID}/timestamp.log >/dev/null 2>&1
            mkdir -p ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
            chmod 0755 ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
            cp ${ADMNDIR}/etc/cserv/default/server.conf ${ADMNDIR}/etc/cserv/server/mail >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/cserv/server/mail/server.conf >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/cserv/server/mail/server.conf >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/cserv/server/mail/server.conf >/dev/null 2>&1

            ASERV_F=${ADMNDIR}/etc/admin/server/${CSERVID}/server.conf
            CSERV_F=${ADMNDIR}/etc/cserv/server/mail/server.conf

            a_myaddr=`${SUPPORT} -i 2>/dev/null`
            if [ $? -ne 0 ]; then
                a_myaddr="127.0.0.1"
            fi
            ${GSA_CONF} -f${ASERV_F} -r -sGeneral -kIPaddress ${a_myaddr} >/dev/null 2>&1
            ${GSS_CONF} -f${CSERV_F} -r -sGeneral -kIPaddress ${a_myaddr} >/dev/null 2>&1

            a_myname=`uname -n 2>/dev/null`
            if [ $? -ne 0 ]; then
                a_myname="localhost"
            fi
            ${GSA_CONF} -f${ASERV_F} -r -sGeneral -kComment ${a_myname} >/dev/null 2>&1
            ${GSS_CONF} -f${CSERV_F} -r -sGeneral -kComment ${a_myname} >/dev/null 2>&1

            ${GSA_CONF} -f${ASERV_F} -r -sGeneral -kFilter mail >/dev/null 2>&1
            ${GSS_CONF} -f${CSERV_F} -r -sGeneral -kServerID ${CSERVID} >/dev/null 2>&1

            ${GSA_CONF} -f${ASERV_F} -r -sCGI -kUserName admin >/dev/null 2>&1
            ${GSS_CONF} -f${CSERV_F} -r -sCGI -kUserName admin >/dev/null 2>&1

            a_mypass=`${GPW_SCPT}|${PHP_COMD} 2>/dev/null`
            if [ $? -ne 0 ]; then
                a_mypass="Z3VhcmRpYW5zdWl0ZWFkbWlu"
            fi
            ${GSA_CONF} -f${ASERV_F} -r -sCGI -kPassword -- "${a_mypass}" >/dev/null 2>&1
            ${GSS_CONF} -f${CSERV_F} -r -sCGI -kPassword -- "${a_mypass}" >/dev/null 2>&1

            if [ "X${ADMPORT}" != "X8080" ]; then
                ${GSA_CONF} -f${ASERV_F} -r -sCGI -kPort ${ADMPORT} >/dev/null 2>&1
            fi

            tmpany=`${MSS_CONF} -a -sDirectories -kLogDirectory 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                ${GSA_CONF} -r -sDirectories -kLogDirectory ${tmpany} >/dev/null 2>&1
                ${GSA_CONF} -f${ASERV_F} -r -sDirectories -kLogDirectory ${tmpany} >/dev/null 2>&1
                ${GSA_CONF} -f${ADMSS_F} -d -sDirectories -kLogDirectory >/dev/null 2>&1
            fi
            tmpany=`${MSS_CONF} -l -sArchive -kArchiveDirectories 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                if [ "X${tmpany}" != "X" ]; then
                    ${GSA_CONF} -r -sArchive -kArchiveDirectories ${tmpany} >/dev/null 2>&1
                    ${GSA_CONF} -f${ASERV_F} -r -sArchive -kArchiveDirectories ${tmpany} >/dev/null 2>&1
                fi
                ${GSA_CONF} -f${ADMSS_F} -d -sArchive -kArchiveDirectories >/dev/null 2>&1
            fi
            tmpany=`${MSS_CONF} -l -sMail -kInternalDomains 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                ${GSA_CONF} -r -sMail -kInternalDomains -- "${tmpany}" >/dev/null 2>&1
            fi
            tmpany=`${MSS_CONF} -l -sAdmin -kAdminMailAddress 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                ${GSA_CONF} -r -sAdmin -kAdminMailAddress -- "${tmpany}" >/dev/null 2>&1
            fi
            tmpany=`${MSS_CONF} -l -sLicense -kLicenseKey 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                ${GSA_CONF} -r -sLicense -kLicenseKey ${tmpany} >/dev/null 2>&1
                ${GSA_CONF} -f${ASERV_F} -r -sLicense -kLicenseKey ${tmpany} >/dev/null 2>&1
                ${GSA_CONF} -f${ADMSS_F} -r -sLicense -kLicenseKey XXXX-XXXX-XXXX-XXXX >/dev/null 2>&1
            fi
            tmpany=`${MSS_CONF} -l -sSmtp -kMailSubmissionProgram 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                if [ "X${tmpany}" != "Xsendmail" ]; then
                    ${GSA_CONF} -r -sSmtp -kMailSubmissionProgram ${tmpany} >/dev/null 2>&1
                    ${GSA_CONF} -f${ASERV_F} -r -sSmtp -kMailSubmissionProgram ${tmpany} >/dev/null 2>&1
                fi
                ${GSA_CONF} -f${ADMSS_F} -d -sSmtp -kMailSubmissionProgram >/dev/null 2>&1
            fi
            tmpany=`${MSS_CONF} -l -sSmtp -kSendmailOption 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                if [ "X${tmpany}" != "X" ]; then
                    ${GSA_CONF} -r -sSmtp -kSendmailOption -- "${tmpany}" >/dev/null 2>&1
                    ${GSA_CONF} -f${ASERV_F} -r -sSmtp -kSendmailOption -- "${tmpany}" >/dev/null 2>&1
                fi
                ${GSA_CONF} -f${ADMSS_F} -d -sSmtp -kSendmailOption >/dev/null 2>&1
            fi
            tmpany=`${MSS_CONF} -l -sSmtp -kServerCommand 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{for(i=2; i<=NF; i++){if(i!=2) printf " "; printf "%s", $i;} printf "\n";}'`
                if [ "X${tmpany}" != "X/usr/lib/sendmail -bs" ]; then
                    ${GSA_CONF} -f${ASERV_F} -r -sSmtp -kServerCommand -- "${tmpany}" >/dev/null 2>&1
                fi
                ${GSA_CONF} -f${ADMSS_F} -d -sSmtp -kServerCommand >/dev/null 2>&1
            fi
            tmpany=`${MSS_CONF} -l -sScreening -kMaxWeight 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                if [ "X${tmpany}" != "X1" ]; then
                    ${GSA_CONF} -r -sScreening -kMaxWeight ${tmpany} >/dev/null 2>&1
                fi
            fi
            tmpany=`${MSS_CONF} -l -sScreening -kMIMEDefaultSet 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                if [ "X${tmpany}" != "Xmain" ]; then
                    ${GSA_CONF} -r -sScreening -kMIMEDefaultSet ${tmpany} >/dev/null 2>&1
                fi
            fi
            tmpany=`${MSS_CONF} -l -sScreening -kKEYWORDDefaultSet 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                if [ "X${tmpany}" != "Xmain" ]; then
                    ${GSA_CONF} -r -sScreening -kKEYWORDDefaultSet ${tmpany} >/dev/null 2>&1
                fi
            fi
            tmpany=`${MSS_CONF} -l -sScreening -kMIMEngLevel 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                if [ "X${tmpany}" != "X1" ]; then
                    ${GSA_CONF} -r -sScreening -kMIMEngLevel ${tmpany} >/dev/null 2>&1
                fi
            fi
            tmpany=`${MSS_CONF} -l -sScreening -kKEYWORDngLevel 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                if [ "X${tmpany}" != "X1" ]; then
                    ${GSA_CONF} -r -sScreening -kKEYWORDngLevel ${tmpany} >/dev/null 2>&1
                fi
            fi
            tmpany=`${MSS_CONF} -l -sArchive -kBackupDevice 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                if [ "X${tmpany}" != "X" ]; then
                    ${GSA_CONF} -r -sArchive -kBackupDevice ${tmpany} >/dev/null 2>&1
                fi
                ${GSA_CONF} -f${ADMSS_F} -d -sArchive -kBackupDevice >/dev/null 2>&1
            fi
            tmpany=`${MSS_CONF} -l -sArchive -kRestoreDirectories 2>/dev/null`
            if [ $? -eq 0 ]; then
                tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
                if [ "X${tmpany}" != "X" ]; then
                    ${GSA_CONF} -r -sArchive -kRestoreDirectories ${tmpany} >/dev/null 2>&1
                fi
                ${GSA_CONF} -f${ADMSS_F} -d -sArchive -kRestoreDirectories >/dev/null 2>&1
            fi

            # ᡼˴ؤƼ¸֤Ϥ٤ 0(̵) ˤ
            ${GSA_CONF} -r -sExpire -kSystemLog 0 >/dev/null 2>&1
            ${GSA_CONF} -r -sExpire -kDeliverLog 0 >/dev/null 2>&1
            ${GSA_CONF} -r -sExpire -kScreeningLog 0 >/dev/null 2>&1
            ${GSA_CONF} -r -sExpire -kArchiveLog 0 >/dev/null 2>&1
            ${GSA_CONF} -r -sExpire -kManagerLog 0 >/dev/null 2>&1
            ${GSA_CONF} -r -sExpire -kViewerLog 0 >/dev/null 2>&1

            # CGI, Admin, Managerϡetc/admin/admin.conf˰Ѥ
            CTMP=/tmp/.cam.tmp$$
            getallsec ${ADMSS_F} CGI >${CTMP} 2>/dev/null
            if [ -s ${CTMP} ]; then
                echo >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
                echo "[CGI]" >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
                cat ${CTMP} >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            fi
            (getallsec ${ADMSS_F} Admin|grep -iv '^AdminMailAddress[ ]*=') >${CTMP} 2>/dev/null
            if [ -s ${CTMP} ]; then
                echo >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
                echo "[Admin]" >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
                cat ${CTMP} >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            fi
            getallsec ${ADMSS_F} Manager >${CTMP} 2>/dev/null
            if [ -s ${CTMP} ]; then
                echo >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
                echo "[Manager]" >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
                cat ${CTMP} >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            fi
            rm -f ${CTMP} >/dev/null 2>&1
        fi
    fi

    # 塼顼(crontab)ꥹȥWALL6.0ʾΤȤΤߡ
    if [ ${VER_MAJ} -gt 5 -a -x ${JOB_COMD} ]; then
        ${JOB_COMD} -e >/dev/null 2>&1
    fi

    ## crontab
    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
    (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
    if [ ${OLDVER} -eq 1 ]; then
        case "${UNAME}" in
        SunOS)
            egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab
            ;;
        Linux)
            egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab -
            ;;
        esac
        if [ $? -ne 0 ]; then
            err_config "${ERR_10}"
        fi
        rm -f ${BACKUP_CRON}.$$

        puts 0 1 ""
        if [ -d /opt/MailGuardian/Wall/mss/logs ]; then
            for f in deliver archive screening manager viewer
            do
                if [ -d /opt/MailGuardian/Wall/mss/logs/$f ]; then
                    mv -f /opt/MailGuardian/Wall/mss/logs/$f/* ${WALLDIR}/logs/$f >/dev/null 2>&1
                fi
            done
            mv -f /opt/MailGuardian/Wall/mss/logs/log.* ${WALLDIR}/logs >/dev/null 2>&1
        fi
        for f in pqueue aqueue cqueue
        do
            if [ -d /opt/MailGuardian/Wall/mss/$f ]; then
                mv -f /opt/MailGuardian/Wall/mss/$f/* ${WALLDIR}/$f >/dev/null 2>&1
            fi
        done
    else
        case "${UNAME}" in
        SunOS)
            egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab
            ;;
        Linux)
            egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
            cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab -
            ;;
        esac
        if [ $? -ne 0 ]; then
            err_config "${ERR_10}"
        fi
        rm -f ${BACKUP_CRON}.$$
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

wg_affunc_u()
{
    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    # С
    s_affunc_a

    # С(WG)
    wg_affunc_a

    BACKUPDIR=${GRDNDIR}/backup/${WGPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}
    if [ ! -f ${BACKUPDIR}/VERSION ]; then
        return 0
    fi

    # WGϳƼեꥹȥ
    for f in admin.conf httpclient.conf mail.conf mkdic.conf urldb_manager.conf wg.conf
    do
        if [ -f ${BACKUPDIR}/conf/$f -a -d ${WEBGDIR}/conf ]; then
            cp -p ${BACKUPDIR}/conf/$f ${WEBGDIR}/conf >/dev/null 2>&1
            chown root ${WEBGDIR}/conf/$f >/dev/null 2>&1
            chgrp root ${WEBGDIR}/conf/$f >/dev/null 2>&1
            chmod 0644 ${WEBGDIR}/conf/$f >/dev/null 2>&1
        fi
    done
    if [ -f ${BACKUPDIR}/conf/httpd.conf -a -d ${WEBGDIR}/conf ]; then
        WGCmdArg="command=sbin\/wgtext args=\"wgtext -p -x %x -o %o %i\""
        sed "s/^\(WGTextCmd *\).*/\1${WGCmdArg}/" ${BACKUPDIR}/conf/httpd.conf >${WEBGDIR}/conf/httpd.conf 2>/dev/null
        chown root ${WEBGDIR}/conf/httpd.conf >/dev/null 2>&1
        chgrp root ${WEBGDIR}/conf/httpd.conf >/dev/null 2>&1
        chmod 0644 ${WEBGDIR}/conf/httpd.conf >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/data/dic -a -d ${WEBGDIR}/data/dic ]; then
        cp -p ${BACKUPDIR}/data/dic/*.dic ${WEBGDIR}/data/dic >/dev/null 2>&1
        chown root ${WEBGDIR}/data/dic/*.dic >/dev/null 2>&1
        chgrp root ${WEBGDIR}/data/dic/*.dic >/dev/null 2>&1
        chmod 0644 ${WEBGDIR}/data/dic/*.dic >/dev/null 2>&1
    fi
    if [ -f ${BACKUPDIR}/conf/wg.keywd -a -d ${WEBGDIR}/conf ]; then
        if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 1 ]; then
            # WGv3.1 ʾϥꥳԡ
            cp -p ${BACKUPDIR}/conf/wg.keywd ${WEBGDIR}/conf >/dev/null 2>&1
        else
            # WGv3.0 ʲϥꥳС
            sed 's/"/\\"/g' ${BACKUPDIR}/conf/wg.keywd >${WEBGDIR}/conf/wg.keywd 2>/dev/null
            # ˼
            ${WEBGDIR}/sbin/mkdic -s -o ${WEBGDIR}/data/dic/keywd.dic ${WEBGDIR}/conf/wg.keywd >/dev/null 2>&1
            chown root ${WEBGDIR}/data/dic/keywd.dic >/dev/null 2>&1
            chgrp root ${WEBGDIR}/data/dic/keywd.dic >/dev/null 2>&1
            chmod 0644 ${WEBGDIR}/data/dic/keywd.dic >/dev/null 2>&1
            chown nobody ${WEBGDIR}/var/logs/mkdic.log >/dev/null 2>&1
            chgrp nobody ${WEBGDIR}/var/logs/mkdic.log >/dev/null 2>&1
            chmod 0644   ${WEBGDIR}/var/logs/mkdic.log >/dev/null 2>&1
        fi
        chown root ${WEBGDIR}/conf/wg.keywd >/dev/null 2>&1
        chgrp root ${WEBGDIR}/conf/wg.keywd >/dev/null 2>&1
        chmod 0644 ${WEBGDIR}/conf/wg.keywd >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/data/htdocs -a -d ${WEBGDIR}/data/htdocs ]; then
        WGCNVS=`ls ${BACKUPDIR}/data/htdocs/*.html 2>/dev/null`
        for f in ${WGCNVS}
        do
            bf=`basename ${f} 2>/dev/null`
            if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 2 ]; then
                # WGv3.2 ʾϥ֥åꥳԡ
                cp -p ${f} ${WEBGDIR}/data/htdocs >/dev/null 2>&1
            else
                # WGv3.2 ʲϥ֥åꥳС
                sed "s/<!--#echo var=\"REQUEST_URI\" -->/<!--#echo var=\"DISPLAY_URI\" -->/g" ${f} >${WEBGDIR}/data/htdocs/${bf} 2>/dev/null
            fi
            chown root ${WEBGDIR}/data/htdocs/${bf} >/dev/null 2>&1
            chgrp root ${WEBGDIR}/data/htdocs/${bf} >/dev/null 2>&1
            chmod 0644 ${WEBGDIR}/data/htdocs/${bf} >/dev/null 2>&1
        done
    fi
    if [ -f ${BACKUPDIR}/data/mail/mail.tpl -a -d ${WEBGDIR}/data/mail ]; then
        if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 2 ]; then
            # WGv3.2 ʾΥ᡼ꥳԡ
            cp -p ${BACKUPDIR}/data/mail/mail.tpl ${WEBGDIR}/data/mail >/dev/null 2>&1
        else
            # WGv3.2 ʲΥ᡼ꥳС
            sed "s/{\$env.REQUEST_URI|truncate:45}/{\$env.DISPLAY_URI|mb_truncate:45}/g" ${BACKUPDIR}/data/mail/mail.tpl >${WEBGDIR}/data/mail/mail.tpl 2>/dev/null
        fi
        chown root ${WEBGDIR}/data/mail/mail.tpl >/dev/null 2>&1
        chgrp root ${WEBGDIR}/data/mail/mail.tpl >/dev/null 2>&1
        chmod 0644 ${WEBGDIR}/data/mail/mail.tpl >/dev/null 2>&1
    fi
    if [ -f ${WEBGDIR}/data/db/urldb.org ]; then
        rm -f ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    fi
    cp /dev/null ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    chown root ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    chgrp root ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    chmod 0644 ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1

    # СϢꥹȥ
    for f in admin.conf command.conf schedule.conf
    do
        if [ -f ${BACKUPDIR}/Aetc/cserv/$f -a -d ${ADMNDIR}/etc/cserv ]; then
            cp -p ${BACKUPDIR}/Aetc/cserv/$f ${ADMNDIR}/etc/cserv >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
        fi
    done
    grep -i '^SWEEP_TEMPDIR[ ]*=' ${ADMNDIR}/etc/cserv/command.conf >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        echo "SWEEP_TEMPDIR = /opt/Guardian/WG/sbin/sweep_tempdir" >>${ADMNDIR}/etc/cserv/command.conf 2>/dev/null
    fi
    grep -i '^SWEEP_TEMPDIR[ ]*=' ${ADMNDIR}/etc/cserv/schedule.conf >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        echo "SWEEP_TEMPDIR = * * * *" >>${ADMNDIR}/etc/cserv/schedule.conf 2>/dev/null
    fi

    # check HTTP proxy port
    if [ -f ${WEBGDIR}/conf/httpd.conf ]; then
        WPORTNO=`cat ${WEBGDIR}/conf/httpd.conf | sed -n 's/^Listen[^0-9]*\([0-9]*\)[^0-9]*/\1/p'`
        if [ "X${WPORTNO}" != "X" -a "X${WPORTNO}" != "X1088" ]; then
            PXYPORT=${WPORTNO}
        fi
    fi

    # 塼顼(crontab)ꥹȥ
    if [ -x ${JOB_COMD} ]; then
        ${JOB_COMD} -e >/dev/null 2>&1
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

wgs_affunc_u()
{
    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi
    # phpΥåե
    rm -f /tmp/sess_* >/dev/null 2>&1

    # С
    s_affunc_a

    # С(WG)
    wg_affunc_a

    BACKUPDIR=${GRDNDIR}/backup/${WGPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}
    if [ ! -f ${BACKUPDIR}/VERSION ]; then
        return 0
    fi

    # С(WG)¦Υꥹȥ
    # WGϳƼեꥹȥ
    for f in admin.conf httpclient.conf mail.conf mkdic.conf urldb_manager.conf wg.conf
    do
        if [ -f ${BACKUPDIR}/conf/$f -a -d ${WEBGDIR}/conf ]; then
            cp -p ${BACKUPDIR}/conf/$f ${WEBGDIR}/conf >/dev/null 2>&1
            chown root ${WEBGDIR}/conf/$f >/dev/null 2>&1
            chgrp root ${WEBGDIR}/conf/$f >/dev/null 2>&1
            chmod 0644 ${WEBGDIR}/conf/$f >/dev/null 2>&1
        fi
    done
    if [ -f ${BACKUPDIR}/conf/httpd.conf -a -d ${WEBGDIR}/conf ]; then
        WGCmdArg="command=sbin\/wgtext args=\"wgtext -p -x %x -o %o %i\""
        sed "s/^\(WGTextCmd *\).*/\1${WGCmdArg}/" ${BACKUPDIR}/conf/httpd.conf >${WEBGDIR}/conf/httpd.conf 2>/dev/null
        chown root ${WEBGDIR}/conf/httpd.conf >/dev/null 2>&1
        chgrp root ${WEBGDIR}/conf/httpd.conf >/dev/null 2>&1
        chmod 0644 ${WEBGDIR}/conf/httpd.conf >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/data/dic -a -d ${WEBGDIR}/data/dic ]; then
        cp -p ${BACKUPDIR}/data/dic/*.dic ${WEBGDIR}/data/dic >/dev/null 2>&1
        chown root ${WEBGDIR}/data/dic/*.dic >/dev/null 2>&1
        chgrp root ${WEBGDIR}/data/dic/*.dic >/dev/null 2>&1
        chmod 0644 ${WEBGDIR}/data/dic/*.dic >/dev/null 2>&1
    fi
    if [ -f ${BACKUPDIR}/conf/wg.keywd -a -d ${WEBGDIR}/conf ]; then
        if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 1 ]; then
            # WGv3.1 ʾϥꥳԡ
            cp -p ${BACKUPDIR}/conf/wg.keywd ${WEBGDIR}/conf >/dev/null 2>&1
        else
            # WGv3.0 ʲϥꥳС
            sed 's/"/\\"/g' ${BACKUPDIR}/conf/wg.keywd >${WEBGDIR}/conf/wg.keywd 2>/dev/null
            # ˼
            ${WEBGDIR}/sbin/mkdic -s -o ${WEBGDIR}/data/dic/keywd.dic ${WEBGDIR}/conf/wg.keywd >/dev/null 2>&1
            chown root ${WEBGDIR}/data/dic/keywd.dic >/dev/null 2>&1
            chgrp root ${WEBGDIR}/data/dic/keywd.dic >/dev/null 2>&1
            chmod 0644 ${WEBGDIR}/data/dic/keywd.dic >/dev/null 2>&1
            chown nobody ${WEBGDIR}/var/logs/mkdic.log >/dev/null 2>&1
            chgrp nobody ${WEBGDIR}/var/logs/mkdic.log >/dev/null 2>&1
            chmod 0644   ${WEBGDIR}/var/logs/mkdic.log >/dev/null 2>&1
        fi
        chown root ${WEBGDIR}/conf/wg.keywd >/dev/null 2>&1
        chgrp root ${WEBGDIR}/conf/wg.keywd >/dev/null 2>&1
        chmod 0644 ${WEBGDIR}/conf/wg.keywd >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/data/htdocs -a -d ${WEBGDIR}/data/htdocs ]; then
        WGCNVS=`ls ${BACKUPDIR}/data/htdocs/*.html 2>/dev/null`
        for f in ${WGCNVS}
        do
            bf=`basename ${f} 2>/dev/null`
            if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 2 ]; then
                # WGv3.2 ʾϥ֥åꥳԡ
                cp -p ${f} ${WEBGDIR}/data/htdocs >/dev/null 2>&1
            else
                # WGv3.2 ʲϥ֥åꥳС
                sed "s/<!--#echo var=\"REQUEST_URI\" -->/<!--#echo var=\"DISPLAY_URI\" -->/g" ${f} >${WEBGDIR}/data/htdocs/${bf} 2>/dev/null
            fi
            chown root ${WEBGDIR}/data/htdocs/${bf} >/dev/null 2>&1
            chgrp root ${WEBGDIR}/data/htdocs/${bf} >/dev/null 2>&1
            chmod 0644 ${WEBGDIR}/data/htdocs/${bf} >/dev/null 2>&1
        done
    fi
    if [ -f ${BACKUPDIR}/data/mail/mail.tpl -a -d ${WEBGDIR}/data/mail ]; then
        if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 2 ]; then
            # WGv3.2 ʾΥ᡼ꥳԡ
            cp -p ${BACKUPDIR}/data/mail/mail.tpl ${WEBGDIR}/data/mail >/dev/null 2>&1
        else
            # WGv3.2 ʲΥ᡼ꥳС
            sed "s/{\$env.REQUEST_URI|truncate:45}/{\$env.DISPLAY_URI|mb_truncate:45}/g" ${BACKUPDIR}/data/mail/mail.tpl >${WEBGDIR}/data/mail/mail.tpl 2>/dev/null
        fi
        chown root ${WEBGDIR}/data/mail/mail.tpl >/dev/null 2>&1
        chgrp root ${WEBGDIR}/data/mail/mail.tpl >/dev/null 2>&1
        chmod 0644 ${WEBGDIR}/data/mail/mail.tpl >/dev/null 2>&1
    fi
    if [ -f ${WEBGDIR}/data/db/urldb.org ]; then
        rm -f ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    fi
    cp /dev/null ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    chown root ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    chgrp root ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1
    chmod 0644 ${WEBGDIR}/data/db/urldb.org >/dev/null 2>&1

    # С¦Υꥹȥ
    # СϢꥹȥ
    for f in admin manager
    do
        if [ -d ${BACKUPDIR}/Aetc/admin/${f} -a -d ${ADMNDIR}/etc/admin/${f} ]; then
            URCNVS=`ls ${BACKUPDIR}/Aetc/admin/${f}/*.conf 2>/dev/null`
            for ff in ${URCNVS}
            do
                bff=`basename ${ff} 2>/dev/null`
                if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 2 ]; then
                    # WGv3.2 ʾʤʤ SUITEv4.1 ʾˤѼꥳԡ
                    cp -p ${ff} ${ADMNDIR}/etc/admin/${f} >/dev/null 2>&1
                else
                    # WGv3.1 ʲʤʤ SUITEv4.0 ʲˤѼꥳС
                    grep -ic '^\[WG\]' ${ff} >/dev/null 2>&1
                    if [ $? -ne 0 ]; then
                        cp -p ${ff} ${ADMNDIR}/etc/admin/${f} >/dev/null 2>&1
                        echo "[WG]" >>${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                        echo "SelectGroupList = True" >>${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                        echo "SelectGroup =" >>${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                    else
                        ${PRL_COMD} -pe "s/\[[Ww][Gg]\]/[WG]\nSelectGroupList = True\nSelectGroup =/" ${ff} >${ADMNDIR}/etc/admin/${f}/${bff} 2>/dev/null
                    fi
                fi
                chown root ${ADMNDIR}/etc/admin/${f}/${bff} >/dev/null 2>&1
                chgrp root ${ADMNDIR}/etc/admin/${f}/${bff} >/dev/null 2>&1
                chmod 0644 ${ADMNDIR}/etc/admin/${f}/${bff} >/dev/null 2>&1
            done
        fi
    done
    if [ -d ${BACKUPDIR}/Aetc/admin/sysadm -a -d ${ADMNDIR}/etc/admin/sysadm ]; then
        cp -p ${BACKUPDIR}/Aetc/admin/sysadm/*.conf ${ADMNDIR}/etc/admin/sysadm >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/sysadm/*.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/sysadm/*.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/sysadm/*.conf >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/Aetc/admin/schedule -a -d ${ADMNDIR}/etc/admin/schedule ]; then
        cp -p ${BACKUPDIR}/Aetc/admin/schedule/*.prm ${ADMNDIR}/etc/admin/schedule >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/schedule/*.prm >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/schedule/*.prm >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/schedule/*.prm >/dev/null 2>&1
    fi
    for f in .adminldap .adminpasswd .mngldap .mngpasswd .sysadmldap .sysadmpasswd .usrmngldap .usrmngpasswd
    do
        if [ -f ${BACKUPDIR}/Aetc/admin/$f -a -d ${ADMNDIR}/etc/admin ]; then
            cp -p ${BACKUPDIR}/Aetc/admin/$f ${ADMNDIR}/etc/admin >/dev/null 2>&1
            chown nobody ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
            chgrp nobody ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
            chmod 0600 ${ADMNDIR}/etc/admin/$f >/dev/null 2>&1
        fi
    done
    if [ -f ${BACKUPDIR}/Aetc/admin/admin.conf -a -d ${ADMNDIR}/etc/admin ]; then
        cp -p ${BACKUPDIR}/Aetc/admin/admin.conf ${ADMNDIR}/etc/admin >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/admin/admin.conf >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/admin/admin.conf >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/admin.conf >/dev/null 2>&1
    fi
    if [ -f ${BACKUPDIR}/Aetc/admin/timestamp.log -a -d ${ADMNDIR}/etc/admin ]; then
        cp -p ${BACKUPDIR}/Aetc/admin/timestamp.log ${ADMNDIR}/etc/admin >/dev/null 2>&1
        chown nobody ${ADMNDIR}/etc/admin/timestamp.log >/dev/null 2>&1
        chgrp nobody ${ADMNDIR}/etc/admin/timestamp.log >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/admin/timestamp.log >/dev/null 2>&1
    fi
    if [ -f ${BACKUPDIR}/Aetc/admin/schedule.conf -a -d ${ADMNDIR}/etc/admin ]; then
        if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 1 ]; then
            # WGv3.1 ʾʤʤ SUITEv4 ʾˤϥ塼顼ꥳԡ
            cp -p ${BACKUPDIR}/Aetc/admin/schedule.conf ${ADMNDIR}/etc/admin >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/admin/schedule.conf >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/admin/schedule.conf >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/admin/schedule.conf >/dev/null 2>&1
        else
            # WGv3.0 ʲʤʤ SUITEv3 ʲˤϥ塼顼ꥳС
            A_SCHEVAL=`cnv_schedule ${BACKUPDIR}/Aetc/admin/schedule.conf ${BACKUPDIR}/Aetc/admin/command.conf 2>/dev/null`
            if [ "X${A_SCHEVAL}" != "X" ]; then
                cp -p ${ADMNDIR}/etc/admin/schedule.conf ${ADMNDIR}/etc/admin/schedule.conf.bak >/dev/null 2>&1
                echo "${A_SCHEVAL}" >>${ADMNDIR}/etc/admin/schedule.conf 2>/dev/null
            fi
        fi
    fi
    # СϢꥹȥ
    for f in admin.conf command.conf schedule.conf
    do
        if [ -f ${BACKUPDIR}/Aetc/cserv/$f -a -d ${ADMNDIR}/etc/cserv ]; then
            cp -p ${BACKUPDIR}/Aetc/cserv/$f ${ADMNDIR}/etc/cserv >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/cserv/$f >/dev/null 2>&1
        fi
    done
    grep -i '^SWEEP_TEMPDIR[ ]*=' ${ADMNDIR}/etc/cserv/command.conf >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        echo "SWEEP_TEMPDIR = /opt/Guardian/WG/sbin/sweep_tempdir" >>${ADMNDIR}/etc/cserv/command.conf 2>/dev/null
    fi
    grep -i '^SWEEP_TEMPDIR[ ]*=' ${ADMNDIR}/etc/cserv/schedule.conf >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        echo "SWEEP_TEMPDIR = * * * *" >>${ADMNDIR}/etc/cserv/schedule.conf 2>/dev/null
    fi
    # WALLϢꥹȥ
    if [ -d ${BACKUPDIR}/Aetc/wall/group -a -d ${ADMNDIR}/etc/wall/group ]; then
        cp -p ${BACKUPDIR}/Aetc/wall/group/*.addr ${ADMNDIR}/etc/wall/group >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/group/*.addr >/dev/null 2>&1
        cp -p ${BACKUPDIR}/Aetc/wall/group/*.ldap ${ADMNDIR}/etc/wall/group >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/group/*.ldap >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/Aetc/wall/template -a -d ${ADMNDIR}/etc/wall/template ]; then
        cp -p ${BACKUPDIR}/Aetc/wall/template/* ${ADMNDIR}/etc/wall/template >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/template/* >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/Aetc/wall/data -a -d ${ADMNDIR}/etc/wall/data ]; then
        cp -p ${BACKUPDIR}/Aetc/wall/data/*.atl ${ADMNDIR}/etc/wall/data >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/data/*.atl >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/data/*.atl >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/data/*.atl >/dev/null 2>&1
        cp -p ${BACKUPDIR}/Aetc/wall/data/*.cer ${ADMNDIR}/etc/wall/data >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/data/*.cer >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/data/*.cer >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/data/*.cer >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/Aetc/wall/mss.mtype.d -a -d ${ADMNDIR}/etc/wall/mss.mtype.d ]; then
        cp -p ${BACKUPDIR}/Aetc/wall/mss.mtype.d/*.mtype ${ADMNDIR}/etc/wall/mss.mtype.d >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/Aetc/wall/mss.keywd.d -a -d ${ADMNDIR}/etc/wall/mss.keywd.d ]; then
        cp -p ${BACKUPDIR}/Aetc/wall/mss.keywd.d/*.keywd ${ADMNDIR}/etc/wall/mss.keywd.d >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
    fi
    if [ -d ${BACKUPDIR}/Aetc/wall/queue -a -d ${ADMNDIR}/etc/wall/queue ]; then
        cp -p ${BACKUPDIR}/Aetc/wall/queue/*.status ${ADMNDIR}/etc/wall/queue >/dev/null 2>&1
        chown nobody ${ADMNDIR}/etc/wall/queue/*.status >/dev/null 2>&1
        chgrp nobody ${ADMNDIR}/etc/wall/queue/*.status >/dev/null 2>&1
        chmod 0600 ${ADMNDIR}/etc/wall/queue/*.status >/dev/null 2>&1
    fi
    for f in mss.acl mss.conf mss.keywd mss.mtype mss.notice
    do
        if [ -f ${BACKUPDIR}/Aetc/wall/$f -a -d ${ADMNDIR}/etc/wall ]; then
            cp -p ${BACKUPDIR}/Aetc/wall/$f ${ADMNDIR}/etc/wall >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wall/$f >/dev/null 2>&1
        fi
    done
    if [ -f ${BACKUPDIR}/Aetc/wall/action -a -d ${ADMNDIR}/etc/wall ]; then
        cp -p ${BACKUPDIR}/Aetc/wall/action ${ADMNDIR}/etc/wall >/dev/null 2>&1
        chown nobody ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
        chgrp nobody ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
        chmod 0444 ${ADMNDIR}/etc/wall/action >/dev/null 2>&1
    fi
    # WGϢꥹȥ
    if [ -d ${BACKUPDIR}/Aetc/wg/msg -a -d ${ADMNDIR}/etc/wg/msg ]; then
        cp -p ${BACKUPDIR}/Aetc/wg/msg/template ${ADMNDIR}/etc/wg/msg >/dev/null 2>&1
        chown root ${ADMNDIR}/etc/wg/msg/template >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wg/msg/template >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wg/msg/template >/dev/null 2>&1
        WGCNVS=`ls ${BACKUPDIR}/Aetc/wg/msg/*.html 2>/dev/null`
        for f in ${WGCNVS}
        do
            bf=`basename ${f} 2>/dev/null`
            if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 2 ]; then
                # WGv3.2 ʾʤʤ SUITEv4.1 ʾˤϥ֥åꥳԡ
                cp -p ${f} ${ADMNDIR}/etc/wg/msg >/dev/null 2>&1
            else
                # WGv3.1 ʲʤʤ SUITEv4.0 ʲˤϥ֥åꥳС
                sed "s/<!--#echo var=\"REQUEST_URI\" -->/<!--#echo var=\"DISPLAY_URI\" -->/g" ${f} >${ADMNDIR}/etc/wg/msg/${bf} 2>/dev/null
            fi
            chown root ${ADMNDIR}/etc/wg/msg/${bf} >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wg/msg/${bf} >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wg/msg/${bf} >/dev/null 2>&1
        done
    fi
    for f in admin.conf httpd.conf mail.conf wg.conf
    do
        if [ -f ${BACKUPDIR}/Aetc/wg/$f -a -d ${ADMNDIR}/etc/wg ]; then
            cp -p ${BACKUPDIR}/Aetc/wg/$f ${ADMNDIR}/etc/wg >/dev/null 2>&1
            chown root ${ADMNDIR}/etc/wg/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/etc/wg/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/etc/wg/$f >/dev/null 2>&1
        fi
    done
    if [ -f ${BACKUPDIR}/Aetc/wg/mail.tpl -a -d ${ADMNDIR}/etc/wg ]; then
        if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 2 ]; then
            # WGv3.2 ʾʤʤ SUITEv4.1 ʾˤΥ᡼ꥳԡ
            cp -p ${BACKUPDIR}/Aetc/wg/mail.tpl ${ADMNDIR}/etc/wg >/dev/null 2>&1
        else
            # WGv3.2 ʲʤʤ SUITEv4.0 ʲˤΥ᡼ꥳС
            sed "s/{\$env.REQUEST_URI|truncate:45}/{\$env.DISPLAY_URI|mb_truncate:45}/g" ${BACKUPDIR}/Aetc/wg/mail.tpl >${ADMNDIR}/etc/wg/mail.tpl 2>/dev/null
        fi
        chown root ${ADMNDIR}/etc/wg/mail.tpl >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wg/mail.tpl >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wg/mail.tpl >/dev/null 2>&1
    fi
    if [ -f ${BACKUPDIR}/Aetc/wg/wg.keywd -a -d ${ADMNDIR}/etc/wg ]; then
        if [ ${VER_MAJ} -gt 3 ] || [ ${VER_MAJ} -eq 3 -a ${VER_MIN} -ge 1 ]; then
            # WGv3.1 ʾʤʤ SUITEv4 ʾˤϥꥳԡ
            cp -p ${BACKUPDIR}/Aetc/wg/wg.keywd ${ADMNDIR}/etc/wg >/dev/null 2>&1
        else
            # WGv3.0 ʲʤʤ SUITEv3 ʲˤϥꥳС
            sed 's/"/\\"/g' ${BACKUPDIR}/Aetc/wg/wg.keywd >${ADMNDIR}/etc/wg/wg.keywd 2>/dev/null
        fi
        chown root ${ADMNDIR}/etc/wg/wg.keywd >/dev/null 2>&1
        chgrp root ${ADMNDIR}/etc/wg/wg.keywd >/dev/null 2>&1
        chmod 0644 ${ADMNDIR}/etc/wg/wg.keywd >/dev/null 2>&1
    fi
    for f in mkdic.conf searchengine.conf searchengine_group.conf webmail.conf webmail_group.conf
    do
        if [ -f ${BACKUPDIR}/Awgconf/$f -a -d ${ADMNDIR}/wg/conf ]; then
            cp -p ${BACKUPDIR}/Awgconf/$f ${ADMNDIR}/wg/conf >/dev/null 2>&1
            chown root ${ADMNDIR}/wg/conf/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/wg/conf/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/wg/conf/$f >/dev/null 2>&1
        fi
    done
    for f in hierarchy names
    do
        if [ -f ${BACKUPDIR}/Awgconf/category/$f -a -d ${ADMNDIR}/wg/conf/category ]; then
            cp -p ${BACKUPDIR}/Awgconf/category/$f ${ADMNDIR}/wg/conf/category >/dev/null 2>&1
            chown root ${ADMNDIR}/wg/conf/category/$f >/dev/null 2>&1
            chgrp root ${ADMNDIR}/wg/conf/category/$f >/dev/null 2>&1
            chmod 0644 ${ADMNDIR}/wg/conf/category/$f >/dev/null 2>&1
        fi
    done

    # check HTTP proxy port
    if [ -f ${WEBGDIR}/conf/httpd.conf ]; then
        WPORTNO=`cat ${WEBGDIR}/conf/httpd.conf | sed -n 's/^Listen[^0-9]*\([0-9]*\)[^0-9]*/\1/p'`
        if [ "X${WPORTNO}" != "X" -a "X${WPORTNO}" != "X1088" ]; then
            PXYPORT=${WPORTNO}
        fi
    fi
    # check HTTP port
    if [ -f ${ADMNDIR}/httpd/conf/httpd.conf ]; then
        APORTNO=`cat ${ADMNDIR}/httpd/conf/httpd.conf | sed -n 's/^Port[^0-9]*\([0-9]*\)[^0-9]*/\1/p'`
        if [ "X${APORTNO}" != "X" -a "X${APORTNO}" != "X8080" ]; then
            ADMPORT=${APORTNO}
        fi
    fi

    # 塼顼(crontab)ꥹȥ
    if [ -x ${JOB_COMD} ]; then
        ${JOB_COMD} -e >/dev/null 2>&1
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}

sr_affunc_u()
{
    # phpΥåƥץ졼Ȥ
    if [ -d ${ADMNDIR}/php/var/cache ]; then
        rm -f ${ADMNDIR}/php/var/cache/* >/dev/null 2>&1
    fi
    if [ -d ${ADMNDIR}/php/var/templates_c ]; then
        rm -f ${ADMNDIR}/php/var/templates_c/* >/dev/null 2>&1
    fi

    return 0
}

srs_affunc_u()
{
# SUITEСΥåץ졼
    if [ $SUITE_ENV -eq 1 ]; then
        s_affunc_u
        return $?
    fi

# WALLʸץ󤫤Υåץ졼
    s_affunc_a

    if [ ${UNAME} = "Linux" ]; then
        if [ -f ${INITDIR}/MailWallS ]; then
            /sbin/chkconfig --del MailWallS >/dev/null 2>&1
            rm -f $INITDIR/MailWallS >/dev/null 2>&1
        fi
        if [ -f ${INITDIR}/MailWall ]; then
            /sbin/chkconfig --del MailWall >/dev/null 2>&1
            rm -f $INITDIR/MailWall >/dev/null 2>&1
        fi
    fi

    BACKUPDIR=$GRDNDIR/backup/${MSPKGN}-${VER_MAJ}.${VER_MIN}.${VER_REL}
    if [ ! -f $BACKUPDIR/VERSION ]; then
        return 0
    fi
    if [ `expr $VER_MAJ` -eq 2 ]; then
        OLDVER=0
    elif [ `expr $VER_MAJ` -eq 5 -a `expr $VER_MIN` -ge 1 ]; then
        OLDVER=0
    else
        OLDVER=1
    fi


    if [ -f $BACKUPDIR/http/httpd.conf.old -a -d $ADMNDIR/httpd/conf ]; then
        cp -p $BACKUPDIR/http/httpd.conf.old $ADMNDIR/httpd/conf >/dev/null 2>&1
        APORTNO=`cat $ADMNDIR/httpd/conf/httpd.conf.old | sed -n 's/^Port[^0-9]*\([0-9]*\)[^0-9]*/\1/p'`
        if [ "X$APORTNO" != "X" -a "X$APORTNO" != "X8080" ]; then
            sed 's/8080/'$APORTNO'/' $ADMNDIR/httpd/conf/httpd.conf.Admin >$ADMNDIR/httpd/conf/httpd.conf
            chown root $ADMNDIR/httpd/conf/httpd.conf >/dev/null 2>&1
            chgrp root $ADMNDIR/httpd/conf/httpd.conf >/dev/null 2>&1
            chmod 0644 $ADMNDIR/httpd/conf/httpd.conf >/dev/null 2>&1
        fi
    fi
    # check HTTP port
    if [ -f ${ADMNDIR}/httpd/conf/httpd.conf ]; then
        APORTNO=`cat ${ADMNDIR}/httpd/conf/httpd.conf | sed -n 's/^Port[^0-9]*\([0-9]*\)[^0-9]*/\1/p'`
        if [ "X$APORTNO" != "X" -a "X$APORTNO" != "X8080" ]; then
            ADMPORT=$APORTNO
        fi
    fi

    for f in admin manager sysadm
    do
        if [ -d $BACKUPDIR/etc/$f -a -d $ADMNDIR/etc/admin/$f ]; then
            cp -p $BACKUPDIR/etc/$f/*.conf $ADMNDIR/etc/admin/$f >/dev/null 2>&1
            chown root $ADMNDIR/etc/admin/$f/*.conf >/dev/null 2>&1
            chgrp root $ADMNDIR/etc/admin/$f/*.conf >/dev/null 2>&1
            chmod 0644 $ADMNDIR/etc/admin/$f/*.conf >/dev/null 2>&1
        fi
    done
    for f in .adminpasswd .mngpasswd .sysadmpasswd .usrmngpasswd
    do
        if [ -f $BACKUPDIR/http/$f -a -d $ADMNDIR/etc/admin ]; then
            cp -p $BACKUPDIR/http/$f $ADMNDIR/etc/admin >/dev/null 2>&1
            chown nobody $ADMNDIR/etc/admin/$f >/dev/null 2>&1
            chgrp nobody $ADMNDIR/etc/admin/$f >/dev/null 2>&1
            chmod 0600 $ADMNDIR/etc/admin/$f >/dev/null 2>&1
        fi
    done
    if [ -d $BACKUPDIR/etc/group -a -d $ADMNDIR/etc/wall/group ]; then
        cp -p $BACKUPDIR/etc/group/*.addr $ADMNDIR/etc/wall/group >/dev/null 2>&1
        chown root $ADMNDIR/etc/wall/group/*.addr >/dev/null 2>&1
        chgrp root $ADMNDIR/etc/wall/group/*.addr >/dev/null 2>&1
        chmod 0644 $ADMNDIR/etc/wall/group/*.addr >/dev/null 2>&1
        cp -p $BACKUPDIR/etc/group/*.ldap $ADMNDIR/etc/wall/group >/dev/null 2>&1
        chown root $ADMNDIR/etc/wall/group/*.ldap >/dev/null 2>&1
        chgrp root $ADMNDIR/etc/wall/group/*.ldap >/dev/null 2>&1
        chmod 0644 $ADMNDIR/etc/wall/group/*.ldap >/dev/null 2>&1
    fi
    if [ -d $BACKUPDIR/template -a -d $ADMNDIR/etc/wall/template ]; then
        cp -p $BACKUPDIR/template/* $ADMNDIR/etc/wall/template >/dev/null 2>&1
        chown root $ADMNDIR/etc/wall/template/* >/dev/null 2>&1
        chgrp root $ADMNDIR/etc/wall/template/* >/dev/null 2>&1
        chmod 0644 $ADMNDIR/etc/wall/template/* >/dev/null 2>&1
    fi
    if [ -d $BACKUPDIR/libdata -a -d $ADMNDIR/etc/wall/data ]; then
        cp -p $BACKUPDIR/libdata/*.atl $ADMNDIR/etc/wall/data >/dev/null 2>&1
        chown root $ADMNDIR/etc/wall/data/*.atl >/dev/null 2>&1
        chgrp root $ADMNDIR/etc/wall/data/*.atl >/dev/null 2>&1
        chmod 0644 $ADMNDIR/etc/wall/data/*.atl >/dev/null 2>&1
        cp -p $BACKUPDIR/libdata/*.cer $ADMNDIR/etc/wall/data >/dev/null 2>&1
        chown root $ADMNDIR/etc/wall/data/*.cer >/dev/null 2>&1
        chgrp root $ADMNDIR/etc/wall/data/*.cer >/dev/null 2>&1
        chmod 0644 $ADMNDIR/etc/wall/data/*.cer >/dev/null 2>&1
    fi

    if [ $OLDVER -eq 1 ]; then
        for f in mss.conf mss.acl domain.conf
        do
            if [ -f $BACKUPDIR/etc/$f -a -d $ADMNDIR/etc/wall ]; then
                cp -p $BACKUPDIR/etc/$f $ADMNDIR/etc/wall >/dev/null 2>&1
                chown root $ADMNDIR/etc/wall/$f >/dev/null 2>&1
                chgrp root $ADMNDIR/etc/wall/$f >/dev/null 2>&1
                chmod 0644 $ADMNDIR/etc/wall/$f >/dev/null 2>&1
            fi
        done
        if [ -f $BACKUPDIR/etc/mss.mime -a -d $ADMNDIR/etc/wall/mss.mtype.d ]; then
            cp -p $BACKUPDIR/etc/mss.mime $ADMNDIR/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
            chown root $ADMNDIR/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
            chgrp root $ADMNDIR/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
            chmod 0644 $ADMNDIR/etc/wall/mss.mtype.d/main.mtype >/dev/null 2>&1
        fi
        if [ -f $BACKUPDIR/etc/mss.form -a -d $ADMNDIR/etc/wall/mss.keywd.d ]; then
            $GRDNDIR/local/bin/nkf -Se $BACKUPDIR/etc/mss.form >$ADMNDIR/etc/wall/mss.keywd.d/main.keywd
            chown root $ADMNDIR/etc/wall/mss.keywd.d/main.keywd >/dev/null 2>&1
            chgrp root $ADMNDIR/etc/wall/mss.keywd.d/main.keywd >/dev/null 2>&1
            chmod 0644 $ADMNDIR/etc/wall/mss.keywd.d/main.keywd >/dev/null 2>&1
        fi
        if [ -f $BACKUPDIR/etc/mss.notice -a -d $ADMNDIR/etc/wall ]; then
            sed 's|/opt/MailGuardian/Wall/mss/template/||' $BACKUPDIR/etc/mss.notice >$ADMNDIR/etc/wall/mss.notice
            chown root $ADMNDIR/etc/wall/mss.notice >/dev/null 2>&1
            chgrp root $ADMNDIR/etc/wall/mss.notice >/dev/null 2>&1
            chmod 0644 $ADMNDIR/etc/wall/mss.notice >/dev/null 2>&1
        fi
    else
        for f in mss.conf local.conf mss.acl mss.mtype mss.keywd mss.notice domain.conf
        do
            if [ -f $BACKUPDIR/etc/$f -a -d $ADMNDIR/etc/wall ]; then
                cp -p $BACKUPDIR/etc/$f $ADMNDIR/etc/wall >/dev/null 2>&1
                chown root $ADMNDIR/etc/wall/$f >/dev/null 2>&1
                chgrp root $ADMNDIR/etc/wall/$f >/dev/null 2>&1
                chmod 0644 $ADMNDIR/etc/wall/$f >/dev/null 2>&1
            fi
        done
        if [ -d $BACKUPDIR/etc/mss.mtype.d -a -d $ADMNDIR/etc/wall/mss.mtype.d ]; then
            rm -f $ADMNDIR/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
            cp -p $BACKUPDIR/etc/mss.mtype.d/*.mtype $ADMNDIR/etc/wall/mss.mtype.d >/dev/null 2>&1
            chown root $ADMNDIR/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
            chgrp root $ADMNDIR/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
            chmod 0644 $ADMNDIR/etc/wall/mss.mtype.d/*.mtype >/dev/null 2>&1
        fi
        if [ -d $BACKUPDIR/etc/mss.keywd.d -a -d $ADMNDIR/etc/wall/mss.keywd.d ]; then
            rm -f $ADMNDIR/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
            cp -p $BACKUPDIR/etc/mss.keywd.d/*.keywd $ADMNDIR/etc/wall/mss.keywd.d >/dev/null 2>&1
            chown root $ADMNDIR/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
            chgrp root $ADMNDIR/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
            chmod 0644 $ADMNDIR/etc/wall/mss.keywd.d/*.keywd >/dev/null 2>&1
        fi
    fi
    if [ -f $BACKUPDIR/http/action -a -d $ADMNDIR/etc/wall ]; then
        cp -p $BACKUPDIR/http/action $ADMNDIR/etc/wall >/dev/null 2>&1
        chown nobody $ADMNDIR/etc/wall/action >/dev/null 2>&1
        chgrp nobody $ADMNDIR/etc/wall/action >/dev/null 2>&1
        chmod 0444 $ADMNDIR/etc/wall/action >/dev/null 2>&1
    fi
    OLD_MGSCONF=${BACKUPDIR}/etc/mss.conf
    if [ -f ${OLD_MGSCONF} -a -x ${GSA_CONF} ]; then
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sLicense -kSearchLicenseKey 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X" ]; then
                $GSA_CONF -r -sLicense -kSearchLicenseKey ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sMail -kInternalDomains 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            $GSA_CONF -r -sMail -kInternalDomains -- "${tmpany}" >/dev/null 2>&1
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sAdmin -kAdminMailAddress 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            $GSA_CONF -r -sAdmin -kAdminMailAddress -- "${tmpany}" >/dev/null 2>&1
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sSmtp -kMailSubmissionProgram 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "Xsendmail" ]; then
                $GSA_CONF -r -sSmtp -kMailSubmissionProgram ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sSmtp -kSendmailOption 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X" ]; then
                $GSA_CONF -r -sSmtp -kSendmailOption -- "${tmpany}" >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sScreening -kMaxWeight 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X1" ]; then
                $GSA_CONF -r -sScreening -kMaxWeight ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sScreening -kMIMEDefaultSet 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "Xmain" ]; then
                $GSA_CONF -r -sScreening -kMIMEDefaultSet ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sScreening -kKEYWORDDefaultSet 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "Xmain" ]; then
                $GSA_CONF -r -sScreening -kKEYWORDDefaultSet ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sScreening -kMIMEngLevel 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X1" ]; then
                $GSA_CONF -r -sScreening -kMIMEngLevel ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sScreening -kKEYWORDngLevel 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X1" ]; then
                $GSA_CONF -r -sScreening -kKEYWORDngLevel ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sArchive -kBackupDevice 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X" ]; then
                $GSA_CONF -r -sArchive -kBackupDevice ${tmpany} >/dev/null 2>&1
            fi
        fi

# ǥ쥯ȥϰѤ
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -a -sDirectories -kLogDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo $tmpany 2>/dev/null | awk '{print $2}'`


            if grep -i '^[ 	]*LogDirectory[ 	]*=' ${OLD_MGSCONF} >/dev/null; then
                true
            else
                tmpany='/opt/Guardian/WALL/logs/'
            fi
            $GSA_CONF -r -sDirectories -kLogDirectory $tmpany >/dev/null 2>&1
        fi
            
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sSearch -kMakeIndexWorkDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            $GSA_CONF -r -sSearch -kMakeIndexWorkDirectory ${tmpany} >/dev/null 2>&1
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sSearch -kMaxIndexProcs 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X1" ] ; then
                $GSA_CONF -r -sSearch -kMaxIndexProcs ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sSearch -kuseArchiveDirectories 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "Xtrue" ] ; then
                $GSA_CONF -r -sSearch -kuseArchiveDirectories ${tmpany} >/dev/null 2>&1
            fi
        fi
# ǥ쥯ȥξѤ
# /opt/Guardian/WALL/history ξ⤽.obsolete򤹤

        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sSearch -kHistoryDirectory 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo $tmpany 2>/dev/null | awk '{print $2}'`

            if grep -i '^[ 	]*HistoryDirectory[ 	]*=' ${OLD_MGSCONF} >/dev/null; then
                true
            else
                tmpany='/opt/Guardian/WALL/history/'
            fi

            $GSA_CONF -r -sSearch -kHistoryDirectory $tmpany >/dev/null 2>&1
                # ǥ쥯ȥ깽ѹˤʤΤǡХååפ
            if [ -d $tmpany ]; then
                if [ -d ${tmpany}/.obsolete ]; then
                    rm -rf ${tmpany}/.obsolete >/dev/null 2>&1
                else
                    mkdir -p ${tmpany}/.obsolete >/dev/null 2>&1
                fi
                mv -f ${tmpany}/* ${tmpany}/.obsolete >/dev/null 2>&1
                    # ʤˤʤä顢ǥ쥯ȥ
                rmdir ${tmpany}/.obsolete >/dev/null 2>&1
            fi
        fi

        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sSearch -kMaxPreserveHistories 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X50" ] ; then
                $GSA_CONF -r -sSearch -kMaxPreserveHistories ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${BACKUPED_DIR} -l -sSearch -kSearchIndexDirectories 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X" ] ; then
                $GSA_CONF -r -sSearch -kSearchIndexDirectories ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sSearch -kMaxSearchMessages 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X1000" ] ; then
                $GSA_CONF -r -sSearch -kMaxSearchMessages ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sSearch -kDirectoryLimitSize 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X0" ] ; then
                $GSA_CONF -r -sSearch -kDirectoryLimitSize ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sArchive -kRestoreDirectories 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X" ] ; then
                $GSA_CONF -r -sArchive -kRestoreDirectories ${tmpany} >/dev/null 2>&1
            fi
        fi
        tmpany=`${GSA_CONF} -f${OLD_MGSCONF} -l -sArchive -kArchiveDirectories 2>/dev/null`
        if [ $? -eq 0 ]; then
            tmpany=`echo ${tmpany} 2>/dev/null | awk '{print $2}'`
            if [ "X${tmpany}" != "X" ] ; then
                $GSA_CONF -r -sArchive -kArchiveDirectories ${tmpany} >/dev/null 2>&1
            fi
        fi

        # ᡼˴ؤƼ¸֤Ϥ٤ 0(̵) ˤ
        $GSA_CONF -r -sExpire -kSystemLog 0 >/dev/null 2>&1
        $GSA_CONF -r -sExpire -kDeliverLog 0 >/dev/null 2>&1
        $GSA_CONF -r -sExpire -kScreeningLog 0 >/dev/null 2>&1
        $GSA_CONF -r -sExpire -kArchiveLog 0 >/dev/null 2>&1
        $GSA_CONF -r -sExpire -kManagerLog 0 >/dev/null 2>&1
        $GSA_CONF -r -sExpire -kViewerLog 0 >/dev/null 2>&1

        CTMP=/tmp/.cgi.tmp$$
        (getallsec ${OLD_MGSCONF} CGI|grep -iv '^AlternativeSearch[ ]*=') >${CTMP} 2>/dev/null
        if [ -s ${CTMP} ]; then
            echo >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            echo "[CGI]" >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
            cat ${CTMP} >>${ADMNDIR}/etc/admin/admin.conf 2>/dev/null
        fi
        rm -f ${CTMP} >/dev/null 2>&1
    fi


    ## crontab
    puts 0 1 "${BOLD}${MSG_04}${NRML}"
    BACKUP_CRON="${ADMNDIR}/crontab_a.`date +%Y%m%d`"
    (/usr/bin/crontab -l > ${BACKUP_CRON}) 2>/dev/null
    if [ $OLDVER -eq 1 ]; then
        case "${UNAME}" in
            SunOS)
                egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl' $BACKUP_CRON > ${BACKUP_CRON}.$$
                cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab
                ;;
            Linux)
                egrep -iv '^# for GUARDIANWALL|/opt/MailGuardian/Wall/mss/support|/opt/MailGuardian/Wall/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
                cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab -
                ;;
        esac
        if [ $? -ne 0 ]; then
            err_config "${ERR_10}"
        fi
        rm -f ${BACKUP_CRON}.$$

        puts 0 1 ""
        if [ -d /opt/MailGuardian/Wall/mss/logs ]; then
            for f in deliver archive screening manager viewer
            do
                if [ -d /opt/MailGuardian/Wall/mss/logs/$f ]; then
                    mv -f /opt/MailGuardian/Wall/mss/logs/$f/* $WALLDIR/logs/$f >/dev/null 2>&1
                fi
            done
            mv -f /opt/MailGuardian/Wall/mss/logs/log.* $WALLDIR/logs >/dev/null 2>&1
        fi
        for f in pqueue aqueue cqueue
        do
            if [ -d /opt/MailGuardian/Wall/mss/$f ]; then
                mv -f /opt/MailGuardian/Wall/mss/$f/* $WALLDIR/$f >/dev/null 2>&1
            fi
        done
    else
        case "${UNAME}" in
            SunOS)
                egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl' $BACKUP_CRON > ${BACKUP_CRON}.$$
                cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab
                ;;
            Linux)
                egrep -iv '^# for GUARDIANWALL|/opt/Guardian/WALL/support|/opt/Guardian/httpd/support/apache\.daily|^# for GUARDIANSUITE|/opt/Guardian/Admin/bin/guts_launcher_[ac]\.pl|^# DO NOT EDIT|^# \(.* installed on|^# \(Cron version --' ${BACKUP_CRON} > ${BACKUP_CRON}.$$
                cat ${BACKUP_CRON}.$$ ${ADMNDIR}/etc/admin/default/admin.crontab ${ADMNDIR}/etc/cserv/default/admin.crontab | /usr/bin/crontab -
                ;;
        esac
        if [ $? -ne 0 ]; then
            err_config "${ERR_10}"
        fi
        rm -f ${BACKUP_CRON}.$$
    fi

    puts 0 1 ""
    xy_status ""
    return 0
}
