#!/bin/sh
# Copyright (c) 1996, 1997 SuSE Gmbh Fuerth, Germany.  All rights reserved.
#
# /sbin/init.d/i4l_hardware
#
# (c) Klaus Franken, SuSE GmbH, Fuerth <kfr@suse.de>
#     Remo Behn, SuSE GmbH, Fuerth <sray@suse.de>
#
# Version: 6.4 29.03.2000 (kkeil)
# Maintainer: kkeil@suse.de
#
#      04.12.98 include setup for Sedelbauer Speed Fax+
#               thanks  Marcus Niemann <niemann@www-bib.fh-bielefeld.de>
#      15.10.99 changes to support PCMCIA and direct driver
#               fix Dr. Neuhaus Niccy PnP
#               eaz mapping support
#      30.10.99 support AVM PCMCIA and fixes for AVM B1
#               workaround isdnlog and PCMCIA
#      12.02.00 new i4l rc.config layout activ cards now able to
#		be configured with yast
#      29.03.00 fixed debuglevel not set (BUG 2639)
#               fixed AVM B1 ISA load error (BUG 2640)
#      04.04.00 fixed I4L_HISAX_DOWNLOAD
#
#      20000928 capiinit patch
#	
# For more informatione see:
#    /usr/doc/packages/i4l* (especially README.SuSE)
#    /usr/src/linux/Documentation/isdn/*
# 
# This script is loading the needed ISDN-modules
# The net-confguration is done by /sbin/init.d/i4l


. /etc/rc.config

# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}

# Force execution if not called by a runlevel directory.
test $link = $base && I4L_START=yes

test "$I4L_START" = yes || exit 0

. /etc/rc.config.d/i4l_hardware.rc.config
test -e /etc/rc.config.d/i4l_unknown && . /etc/rc.config.d/i4l_unknown


SBIN=/usr/sbin
FIRMPATH=/usr/lib/isdn

case "$1" in
start)
    echo "Loading ISDN drivers ..."

    test -z "$ISDNLOG_START" && ISDNLOG_START="yes" 
    USED_IDX=""
    HiSAX_IDX=""
    AVM_IDX=""
    EICON_IDX=""
    ICN_IDX=""
    I=1
    if test -z $PCMCIA_I4L_TYPE ; then
	eval I4L_TYPE=\$I4L_TYPE_$I
    else
	I4L_TYPE=$PCMCIA_I4L_TYPE
    fi
    while test ! -z "$I4L_TYPE" ; do
	USED_IDX="$USED_IDX $I"
	eval I4L_IO=\$I4L_IO_$I
	eval I4L_IO0=\$I4L_IO0_$I
	eval I4L_IO1=\$I4L_IO1_$I
	eval I4L_IO2=\$I4L_IO2_$I
	eval I4L_IRQ=\$I4L_IRQ_$I
	eval I4L_MEMBASE=\$I4L_MEMBASE_$I
	eval I4L_PROTOCOL=\$I4L_PROTOCOL_$I
	eval I4L_ID=\$I4L_ID_$I
	if test $I4L_TYPE -lt 8000 ; then
	    ########################################################
	    # HiSax
	    ########################################################
	    if test -z "$HISAX_IDX" ; then 
		HISAX_TYPE=""
		HISAX_IO=""
		HISAX_IO0=""
		HISAX_IO1=""
		HISAX_IRQ=""
		HISAX_MEMBASE=""
		HISAX_ID=""
		HISAX_PROTOCOL=""
		HISAX_DUMMY=""
		HISAX_FIRM_IDX=""
	    else
		HISAX_TYPE="$HISAX_TYPE,"
		HISAX_IO="$HISAX_IO,"
		HISAX_IO0="$HISAX_IO0,"
		HISAX_IO1="$HISAX_IO1,"
		HISAX_IRQ="$HISAX_IRQ,"
		HISAX_MEMBASE="$HISAX_MEMBASE,"
		HISAX_PROTOCOL="$HISAX_PROTOCOL,"
		if test ! -z "$I4L_ID" -a ! -z "$HISAX_ID" ; then
		    HISAX_ID="${HISAX_ID}%"
		fi
		HISAX_DUMMY="$HISAX_DUMMY,"
	    fi
	    HISAX_IDX="$HISAX_IDX $I"
	    case "$I4L_TYPE" in
		8)
                    # Teles 16.3 PCMCIA
		    I4L_IO=$PCMCIA_I4L_IO
		    I4L_IRQ=$PCMCIA_I4L_IRQ
		    ISDNLOG_START="no"
 		    ;;
		10)
		    # ELSA PCMCIA
		    I4L_TYPE="0"
		    ISDNLOG_START="no"
		    ;;
		19)
		    # Compaq ISDN S0 ISA card
		    if test ! -z "$I4L_IO2" ; then
			I4L_IO=$I4L_IO2
		    fi
		    ;;
		22)
		    # Sedlbauer Speed Star (PCMCIA)
		    I4L_TYPE="0"
		    ISDNLOG_START="no"
		    ;;
		26)
		    # AVM A1 PCMCIA
		    I4L_TYPE="0"
		    ISDNLOG_START="no"
		    ;;
		28)
		    # Sedlbauer Speed Fax+
		    HISAX_FIRM_IDX="$HISAX_FIRM_IDX $I"
		    eval I4L_HISAX_DOWNLOAD_$I="$FIRMPATH/ISAR.BIN"
		    ;;
		29)
		    # Siemens I-Surf
		    HISAX_FIRM_IDX="$HISAX_FIRM_IDX $I"
		    eval I4L_HISAX_DOWNLOAD_$I="$FIRMPATH/ISAR.BIN"
		    ;;
		999)
		    # generic ISDN card used
		    # if HiSax is direct compiled into kernel
		    I4L_TYPE="0"
		    ;;
		*)
		    ;;
	    esac
	    HISAX_TYPE=${HISAX_TYPE}$I4L_TYPE
	    test -z "$I4L_IO" && I4L_IO="0"
	    HISAX_IO=${HISAX_IO}$I4L_IO
	    test -z "$I4L_IO0" && I4L_IO0="0"
	    HISAX_IO0=${HISAX_IO0}$I4L_IO0
	    test -z "$I4L_IO1" && I4L_IO1="0"
	    HISAX_IO1=${HISAX_IO1}$I4L_IO1
	    test -z "$I4L_IRQ" && I4L_IRQ="0"
	    HISAX_IRQ=${HISAX_IRQ}$I4L_IRQ
	    test -z "$I4L_MEMBASE" && I4L_MEMBASE="0"
	    HISAX_MEMBASE=${HISAX_MEMBASE}$I4L_MEMBASE
	    test -z "$I4L_PROTOCOL" && I4L_PROTOCOL="2"
	    HISAX_PROTOCOL=${HISAX_PROTOCOL}$I4L_PROTOCOL
	    HISAX_ID=${HISAX_ID}$I4L_ID
	    HISAX_DUMMY=${HISAX_DUMMY}0
	fi
	if test $I4L_TYPE -eq 8001 ; then
	    AVM_IDX="$AVM_IDX $I"
	fi
	if test $I4L_TYPE -eq 8010 ; then
	    EICON_IDX="$EICON_IDX $I"
	fi
	if test $I4L_TYPE -eq 8030 ; then
	    ICN_IDX="$ICN_IDX $I"
	fi
	I=`expr $I + 1`
	eval I4L_TYPE=\$I4L_TYPE_$I
    done
    if test ! -z "$HISAX_TYPE" -a "$HISAX_TYPE" != "$HISAX_DUMMY" ; then
        echo "Loading HiSax driver ..."
        # default values
	test -z "$I4L_HISAXDEBUG" && I4L_HISAXDEBUG="4"
	# Only one I4L_MODUL_OPTIONS is used, if set all other
	# variables are ignored 
        if test -z "$I4L_MODUL_OPTIONS_1"; then
	    HISAX_PAR="type=$HISAX_TYPE"
	    if test "$HISAX_IO" != "$HISAX_DUMMY" ; then
		HISAX_PAR="$HISAX_PAR io=$HISAX_IO"
	    fi
	    if test "$HISAX_IO0" != "$HISAX_DUMMY" ; then
		HISAX_PAR="$HISAX_PAR io0=$HISAX_IO0"
	    fi
	    if test "$HISAX_IO1" != "$HISAX_DUMMY" ; then
		HISAX_PAR="$HISAX_PAR io1=$HISAX_IO1"
	    fi
	    if test "$HISAX_IRQ" != "$HISAX_DUMMY" ; then
		HISAX_PAR="$HISAX_PAR irq=$HISAX_IRQ"
	    fi
	    if test "$HISAX_MEMBASE" != "$HISAX_DUMMY" ; then
		HISAX_PAR="$HISAX_PAR mem=$HISAX_MEMBASE"
	    fi
	    if test "$HISAX_PROTOCOL" != "$HISAX_DUMMY" ; then
		HISAX_PAR="$HISAX_PAR protocol=$HISAX_PROTOCOL"
	    fi
	    if test ! -z "$HISAX_ID" ; then
		HISAX_PAR="$HISAX_PAR id=$HISAX_ID"
	    fi
        else
	    HISAX_PAR="$I4L_MODUL_OPTIONS_1"
	fi
	/sbin/modprobe -v hisax $HISAX_PAR
	if test $? -ne 0; then
	    echo ""
	    echo "Initialization of HiSax failed!"
	    echo "Check /var/log/messages and /var/log/warn."
	    echo "Check that the values in '/etc/rc.config.d/*' are correct:"
	    echo "I4L_TYPE:          ${HISAX_TYPE}"
	    echo "I4L_MEMBASE:       ${HISAX_MEMBASE}"
	    echo "I4L_IRQ:           ${HISAX_IRQ}"
	    echo "I4L_IO:            ${HISAX_IO}"
	    echo "I4L_IO0:           ${HISAX_IO0}"
	    echo "I4L_IO1:           ${HISAX_IO1}"
	    echo "I4L_PROTOCOL:      ${HISAX_PROTOCOL}"
	    echo "I4L_MODUL_OPTIONS: ${HISAX_MODUL_OPTIONS}"
	    echo ""
	    modprobe -r hisax
	    exit 1
	fi
	# download firmware for Sedlbauer Speed Fax+
	if test ! -z "$HISAX_FIRM_IDX" ; then
	    for I in $HISAX_FIRM_IDX; do
		eval I4L_ID=\$I4L_ID_$I
		eval I4L_HISAX_DOWNLOAD=\$I4L_HISAX_DOWNLOAD_$I
	    done
	    test -z "$I4L_HISAX_DOWNLOAD" || 
		$SBIN/hisaxctrl ${I4L_ID} 9 ${I4L_HISAX_DOWNLOAD} 

	fi
    fi
    if test ! -z "$HISAX_IDX" ; then
	for I in $HISAX_IDX ; do
	    eval I4L_ID=\$I4L_ID_$I
	    eval I4L_HISAXDEBUG=\$I4L_HISAXDEBUG_$I
	    test -z "$I4L_HISAXDEBUG" && I4L_HISAXDEBUG="0x4"
	    test -z "$I4L_ID" || $SBIN/hisaxctrl ${I4L_ID} 1 $I4L_HISAXDEBUG
	    #
	    # eaz mapping
	    #
	    eval I4L_EAZMAP=\$I4L_EAZMAP_$I
	    test -z "$I4L_EAZMAP" || test -z "$I4L_ID" ||
		$SBIN/isdnctrl mapping "$I4L_ID" $I4L_EAZMAP
	done
    fi

    #########################################################
    # AVM-B1
    #########################################################
    if test ! -z "$AVM_IDX" ; then

	capiinit start

#	CONTR=1
#	for I in $AVM_IDX ; do
#	    eval I4L_SUBTYPE=\$I4L_SUBTYPE_$I
#	    eval I4L_IO=\$I4L_IO_$I
#	    eval I4L_IRQ=\$I4L_IRQ_$I
#	    eval I4L_ID=\$I4L_ID_$I
#	    eval I4L_PROTOCOL=\$I4L_PROTOCOL_$I
#            echo "Loading AVM-B1 driver ..."
#	    modprobe -v kernelcapi
#            if test $? -ne 0; then
#                echo "Initialization of the AVM-B1-CAPI2.0-modul failed!" 
#                exit 1
#            fi
#            modprobe -v capi
#            if test $? -ne 0; then
#                echo "Initialization of the AVM-B1-CAPI2.0-Interface failed!" 
#                modprobe -r kernelcapi
#                exit 1
#            fi
#            modprobe -v capidrv
#            if test $? -ne 0; then
#                echo "Initialization of the AVM-B1-I4L-Interface failed!" 
#                modprobe -r capi
#                exit 1
#            fi
#            if test $I4L_SUBTYPE -eq 1 ; then
#                modprobe -v b1pci
#                if test $? -ne 0; then
#                    echo "Initialization of the AVM-B1-PCI-module failed!" 
#                    exit 1
#                fi
#		I4L_IO=""
#		I4L_IRQ=""
#	    fi
#	    if test $I4L_SUBTYPE -eq 3 ; then
#		modprobe -v c4
#		if test $? -ne 0; then
#		    echo "Initialization of the AVM-C4-PCI-module failed!" 
#		    exit 1
#		fi
#		I4L_IO=""
#		I4L_IRQ=""
#	    fi
#	    if test $I4L_SUBTYPE -eq 2 ; then
#		echo "AVM-B1 PCMCIA driver "
#        	modprobe -v isdn
#		I4L_IRQ=""
#		I4L_IO=""
#		ISDNLOG_START="no"
#	    fi
#	    if test $I4L_SUBTYPE -eq 0 ; then
#		echo "AVM-B1 ISA driver "
#		if test -z  "$AVMISA_LOAD" ; then
#		    AVMISA_LOAD="yes"
#        	    modprobe -v b1isa
#		    if test $? -ne 0; then
#			echo "Initialization of the AVM-B1-ISA-module failed!"
#			exit 1
#		    fi
#		fi
#	    fi
#            if test ! -z "$I4L_IRQ" -a ! -z "$I4L_IO" ; then
#		echo "Adding AVM-B1 Controller $CONTR (IO:$I4L_IO, IRQ:$I4L_IRQ)..." 
#                avmcapictrl add $I4L_IO $I4L_IRQ
# 	        if test $? -ne 0; then
#                    echo ""
#                    echo "Adding AVM-B1-Controller $CONTR failed!" 
#                    echo ""
#                    exit 1
#                fi
#            fi
#            if test -z $I4L_PROTOCOL ; then
#		I4L_PROTOCOL="2"
#            fi
#            case "$I4L_PROTOCOL" in
#		1) B1_FIRM="$FIRMPATH/b1-1tr6.t4" ;;
#		2) B1_FIRM="$FIRMPATH/b1.t4" ;;
#		*) echo "ERROR: unknown ISDN-Protocoll: $I4L_PROTOCOL" 
#		   exit 1
#		   ;;
#	    esac
#	    if test $I4L_SUBTYPE -eq 3 ; then
#		C4_FIRM="$FIRMPATH/c4.bin"
#		echo "Loading AVM-C4 firmware to Controller $CONTR ..."
#		$SBIN/avmcapictrl load $C4_FIRM $CONTR
#		if test $? -ne 0; then
#		    echo ""
#		    echo "Loading of Firmware $C4_FIRM on Controller $CONTR failed!" 
#		    echo ""
#		    exit 1
#		fi
#	    else
#		echo "Loading AVM-B1 firmware to Controller $CONTR ..."
#		$SBIN/avmcapictrl load $B1_FIRM $CONTR 
#		if test $? -ne 0; then
#		    echo ""
#		    echo "Loading of Firmware $B1_FIRM on Controller $CONTR failed!" 
#		    echo ""
#		    exit 1
#		fi
#	    fi
#	    CONTR=`expr $CONTR + 1`
#        done
    fi
    #########################################################
    # EICON
    #########################################################
    if test ! -z "$EICON_IDX"; then
	echo "Loading  EICON driver ..."
	for I in $EICON_IDX ; do
	    eval I4L_SUBTYPE=\$I4L_SUBTYPE_$I
	    eval I4L_IRQ=\$I4L_IRQ_$I
	    eval I4L_MEMBASE=\$I4L_MEMBASE_$I
	    eval I4L_ID=\$I4L_ID_$I
	    eval I4L_PROTOCOL=\$I4L_PROTOCOL_$I
	    # this version dont support isdnlog
	    ISDNLOG_START="no" 
	    if test $I4L_SUBTYPE -le 4 ; then
            	EICON_PAR="irq=$I4L_IRQ membase=$I4L_MEMBASE"
	    fi
	    /sbin/modprobe -v eicon $EICON_PAR id=$I4L_ID
	    if test $? -ne 0; then
		echo ""
		echo "Initialization of the EICON-modul failed!"
		echo "Check that the values in '/etc/rc.config.d/*' are correct:"
		echo "  and see /usr/doc/packages/i4l/README.eicon"
		echo "I4_ID:       ${I4L_ID}"
		echo "I4L_IRQ:     ${I4L_IRQ}"
		echo "I4L_MEMBASE: ${I4L_MEMBASE}"
		echo ""
		modprobe -r eicon
		exit 1
	    fi
	    case "$I4L_PROTOCOL" in
		1) EICON_FIRM="1tr6" ;;
		2) EICON_FIRM="etsi" ;;
		3) EICON_FIRM="etsi -p" ;;
		4) EICON_FIRM="ni1" ;;
		*) echo "ERROR: unknown ISDN-Protocoll: $I4L_PROTOCOLL" 
		   exit 1
		   ;;
	    esac
	    case "$I4L_SUBTYPE" in
		0|1|2|3|5|6|7) EICON_OPT="" ;;
		4|8) EICON_OPT="-s2 -n" ;;
		*);;
	    esac
	    echo "Loading EICON firmware ..."
	    $SBIN/eiconctrl load $EICON_FIRM $EICON_OPT 
	    if test $? -ne 0; then
		echo "" 
		echo "Loading of Firmware $EICON_FIRM  $EICON_OPTfailed!" 
		echo "Check that the values in '/etc/rc.config.d/*' are correct:"
		echo "  and see /usr/doc/packages/i4l/README.eicon"
		echo "I4L_ID:      ${I4L_ID}"
		echo "I4L_IRQ:     ${I4L_IRQ}"
		echo "I4L_MEMBASE: ${I4L_MEMBASE}"
		echo ""
		modprobe -r eicon
		exit 1
	    fi
	    if test "$ISDNLOG_START" = "yes"; then 
		$SBIN/eiconctrl isdnlog on
	    fi
	done
    fi

    #########################################################
    # ICN
    #########################################################
    if test ! -z "$ICN_IDX"; then
	echo "Loading ICN driver ..."
	for I in $ICN_IDX ; do
	    eval I4L_SUBTYPE=\$I4L_SUBTYPE_$I
	    eval I4L_IO=\$I4L_IO_$I
	    eval I4L_MEMBASE=\$I4L_MEMBASE_$I
	    eval I4L_ID=\$I4L_ID_$I
	    eval I4L_PROTOCOL=\$I4L_PROTOCOL_$I
	    ISDNLOG_START="no" 
            ICN_PAR="portbase=$I4L_IO membase=$I4L_MEMBASE icn_id=$I4L_ID"
	    if test $I4L_SUBTYPE -eq 1 ; then
		ICN_PAR="$ICN_PAR icn_id2=${I4L_ID}2"
	    fi
	    /sbin/modprobe -v icn $ICN_PAR
	    if test $? -ne 0; then
		echo ""
		echo "Initialization of the ICN-modul failed!"
		echo "Check that the values in '/etc/rc.config.d/*' are correct:"
		echo "  and see /usr/doc/packages/i4l/README.icn"
		echo "I4L_ICN_ID:      ${I4L_ID}"
		echo "I4L_ICN_PORT:    ${I4L_IO}"
		echo "I4L_ICN_MEMBASE: ${I4L_MEMBASE}"
		echo ""
		modprobe -r icn
		exit 1
	    fi
	    case "$I4L_PROTOCOL" in
		1) ICN_FIRM="$FIRMPATH/pc_1t_ca.bin" ;;
		2) ICN_FIRM="$FIRMPATH/pc_eu_ca.bin" ;;
		*) echo "ERROR: unknown ISDN-Protocoll: $I4L_PROTOCOLL" 
		   exit 1
		   ;;
	    esac
	    if test $I4L_SUBTYPE -eq 1 ; then
		case "$I4L_PROTOCOL" in
		    1) ICN_FIRM2="$FIRMPATH/pc_1t_ca.bin" ;;
		    2) ICN_FIRM2="$FIRMPATH/pc_eu_ca.bin" ;;
		esac
	    fi
	    echo "Loading ICN firmware ..."
	    ICN_FIRM="$FIRMPATH/loadpg.bin $ICN_FIRM $ICN_FIRM2"
	    $SBIN/icnctrl load $ICN_FIRM 
	    if test $? -ne 0; then
		echo "" 
		echo "Loading of Firmware $ICN_FIRM failed!" 
		echo "Check that the values in '/etc/rc.config.d/*' are correct:"
		echo "  and see /usr/doc/packages/i4l/README.icn"
		echo "I4L_ICN_ID:      ${I4L_ID}"
		echo "I4L_ICN_PORT:    ${I4L_IO}"
		echo "I4L_ICN_MEMBASE: ${I4L_MEMBASE}"
		echo ""
		modprobe -r icn
		exit 1
	    fi
	done
    fi

    # start iprofd not longer recomented
    #
    test "$I4L_IPROFD" = "yes" &&
        ($SBIN/iprofd /etc/isdn/modemsettings &)
    # start isdnlog
    if test "$ISDNLOG_START" = "yes"; then 
	for optionfile in /etc/isdn/isdnlog.*.options; do
	    if test -f $optionfile; then
		device=${optionfile#*.}
		device=${device%.*}
		echo "Starting isdnlog with $optionfile for $device..."
		$SBIN/isdnlog -f $optionfile /dev/$device
	    else
		echo "Starting isdnlog with defaults for /dev/isdnctrl0..."
		$SBIN/isdnlog -D -l1015 -x4087 -M -n -W80 /dev/isdnctrl0 &
	    fi
	done
    fi
    ;;

stop)
    # kill iprofd
    test "$I4L_IPROFD" = "yes" &&
        killall iprofd
    # kill isdnlog
    for pidfile in /var/run/isdnlog.*.pid; do
        test -r $pidfile || continue
        /bin/kill `cat $pidfile`
        rm -f $pidfile
    done
    echo "Unloading ISDN drivers ..."
    # unload modules
    I=1
    AC=1
    eval I4L_TYPE=\$I4L_TYPE_$I
    while test ! -z "$I4L_TYPE" ; do
	if test $I4L_TYPE -lt 8000 ; then
	    ########################################################
	    # HiSax
	    ########################################################
	    if test $I4L_TYPE -ne 999 ; then
		HISAX_IDX="$HISAX_IDX $I"
	    fi
	fi
	if test $I4L_TYPE -eq 8001 ; then
	    AVM_IDX="$AVM_IDX $I"
	    AVM_CONTR="$AVM_CONTR $AC"
	    AC=`expr $AC + 1`
	fi
	if test $I4L_TYPE -eq 8010 ; then
	    EICON_IDX="$EICON_IDX $I"
	fi
	if test $I4L_TYPE -eq 8030 ; then
	    ICN_IDX="$ICN_IDX $I"
	fi
	I=`expr $I + 1`
	eval I4L_TYPE=\$I4L_TYPE_$I
    done
    if test ! -z "$HISAX_IDX"; then
        /sbin/modprobe -r hisax
    fi
    if test ! -z "$EICON_IDX"; then
        /sbin/modprobe -r eicon
    fi
    if test ! -z "$ICN_IDX"; then
        /sbin/modprobe -r icn 
    fi
    if test ! -z "$AVM_IDX" ; then

	capiinit stop
 
#       for CONTR in $AVM_CONTR ; do
#	    $SBIN/avmcapictrl reset $CONTR
#	    $SBIN/avmcapictrl remove $CONTR
#	done
#	for I in $AVM_IDX ; do
#	    eval I4L_SUBTYPE=\$I4L_SUBTYPE_$I
#	    eval I4L_ID=\$I4L_ID_$I
#	    if test $I4L_SUBTYPE -eq 0 ; then
#		modprobe -r b1isa
#	    fi
#	    if test $I4L_SUBTYPE -eq 1 ; then
#	    	modprobe -r b1pci
#	    fi
#	    if test $I4L_SUBTYPE -eq 2 ; then
#		modprobe -r avm_cs b1pcmcia
#	    fi
#	    if test $I4L_SUBTYPE -eq 3 ; then
#		modprobe -r c4
#	    fi
#	done
#	/sbin/modprobe -r capidrv capi kernelcapi capiutil
    fi
    /sbin/modprobe -r slhc
    ;;
*)
    echo "Usage: $0 {start|stop}"
    exit 1
    ;;
esac

exit 0

