070701001E043B000041ED00000000000000000000000F495DBAAD00000000000000080000000100000000000000000000000200000000.070701001F4A10000043FF000000000000000000000002495DB92E00000000000000080000000100000000000000000000000400000000tmp07070100148064000081A4000000000000000000000001495DBAAD0001608A000000080000000100000000000000000000000800000000include#================ # FILE : KIWILinuxRC.sh #---------------- # PROJECT : OpenSUSE Build-Service # COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH, Germany # : # AUTHOR : Marcus Schaefer # : # BELONGS TO : Operating System images # : # DESCRIPTION : This module contains common used functions # : for the suse linuxrc and preinit boot image # : files # : # : # STATUS : Development #---------------- #====================================== # Exports (General) #-------------------------------------- export ELOG_FILE=/var/log/boot.kiwi export ELOG_CONSOLE=/dev/tty3 export ELOG_BOOTSHELL=/dev/tty2 export ELOG_EXCEPTION=/dev/tty1 export KLOG_CONSOLE=4 export KLOG_DEFAULT=1 export PARTITIONER=sfdisk export TRANSFER_ERRORS_FILE=/tmp/transfer.errors #====================================== # Debug #-------------------------------------- function Debug { # /.../ # print message if variable DEBUG is set to 1 # ----- if test "$DEBUG" = 1;then echo "+++++> $1" fi } #====================================== # Echo #-------------------------------------- function Echo { # /.../ # print a message to the controling terminal # ---- local option="" local prefix="----->" local optn="" local opte="" while getopts "bne" option;do case $option in b) prefix=" " ;; n) optn="-n" ;; e) opte="-e" ;; *) echo "Invalid argument: $option" ;; esac done shift $(($OPTIND - 1)) echo $optn $opte "$prefix $1" OPTIND=1 } #====================================== # WaitKey #-------------------------------------- function WaitKey { # /.../ # if DEBUG is set wait for any key to continue # ---- if test "$DEBUG" = 1;then Echo -n "Press any key to continue..." read fi } #====================================== # closeKernelConsole #-------------------------------------- function closeKernelConsole { # /.../ # close the kernel console, set level to 1 # ---- klogconsole -l 1 } #====================================== # openKernelConsole #-------------------------------------- function openKernelConsole { # /.../ # move the kernel console to terminal 3 as you can't see the messages # now directly it looks like the kernel console is switched off # but it isn't really. If DEBUG is set the logging remains on # the first console # ---- if test "$DEBUG" = 0;then Echo "Kernel logging enabled on: /dev/tty$KLOG_CONSOLE" setctsid /dev/tty$KLOG_CONSOLE \ klogconsole -l 7 -r$KLOG_CONSOLE fi } #====================================== # reopenKernelConsole #-------------------------------------- function reopenKernelConsole { # /.../ # reopen kernel console to be able to see kernel messages # while the system is booting # ---- Echo "Kernel logging enabled on: /dev/tty$KLOG_DEFAULT" klogconsole -l 7 -r$KLOG_DEFAULT } #====================================== # importFile #-------------------------------------- function importFile { # /.../ # import the config. style format. the function # will export each entry of the file as variable into # the current shell environment # ---- IFS=" " while read line;do echo $line | grep -qi "^#" && continue key=`echo "$line" | cut -d '=' -f1` item=`echo "$line" | cut -d '=' -f2- | tr -d "\'" | tr -d "\""` if [ -z "$key" ] || [ -z "$item" ];then continue fi Debug "$key=$item" eval export "$key\=\"$item\"" done if [ ! -z "$ERROR_INTERRUPT" ];then Echo -e "$ERROR_INTERRUPT" systemException "*** interrupted ****" "shell" fi } #====================================== # systemException #-------------------------------------- function systemException { # /.../ # print a message to the controling terminal followed # by an action. Possible actions are reboot, wait # and opening a shell # ---- set +x local what=$2 if [ $what = "reboot" ];then if cat /proc/cmdline | grep -qi "kiwidebug=1";then what="shell" fi fi Echo "$1" case "$what" in "reboot") Echo "rebootException: error consoles at Alt-F3/F4" Echo "rebootException: reboot in 120 sec..."; sleep 120 /sbin/reboot -f -i >/dev/null ;; "wait") Echo "waitException: waiting for ever..." while true;do sleep 100;done ;; "shell") Echo "shellException: providing shell..." setctsid $ELOG_EXCEPTION /bin/bash -i || /bin/bash -i ;; *) Echo "unknownException..." ;; esac } #====================================== # copyDevices #-------------------------------------- function copyDeviceNodes { local search=$1 local prefix=$2 local dtype local major local minor local perms if [ -z "$search" ];then search=/dev fi pushd $search >/dev/null for i in *;do if [ -e $prefix/$i ];then continue fi if [ -b $i ];then dtype=b elif [ -c $i ];then dtype=c elif [ -p $i ];then dtype=p else continue fi info=`stat $i -c "0%a:0x%t:0x%T"` major=`echo $info | cut -f2 -d:` minor=`echo $info | cut -f3 -d:` perms=`echo $info | cut -f1 -d:` if [ $dtype = "p" ];then mknod -m $perms $prefix/$i $dtype else mknod -m $perms $prefix/$i $dtype $major $minor fi done popd >/dev/null } #====================================== # copyDevices #-------------------------------------- function createInitialDevices { local prefix=$1 mkdir -p $prefix if [ ! -d $prefix ];then return fi if [ -e $prefix/null ];then rm -f $prefix/null fi test -c $prefix/tty || mknod -m 0666 $prefix/tty c 5 0 test -c $prefix/tty1 || mknod -m 0666 $prefix/tty1 c 4 1 test -c $prefix/tty2 || mknod -m 0666 $prefix/tty2 c 4 2 test -c $prefix/tty3 || mknod -m 0666 $prefix/tty3 c 4 3 test -c $prefix/tty4 || mknod -m 0666 $prefix/tty4 c 4 4 test -c $prefix/console || mknod -m 0600 $prefix/console c 5 1 test -c $prefix/ptmx || mknod -m 0666 $prefix/ptmx c 5 2 exec < $prefix/console > $prefix/console test -c $prefix/null || mknod -m 0666 $prefix/null c 1 3 test -c $prefix/kmsg || mknod -m 0600 $prefix/kmsg c 1 11 test -c $prefix/snapshot || mknod -m 0660 $prefix/snapshot c 10 231 test -c $prefix/random || mknod -m 0666 $prefix/random c 1 8 test -c $prefix/urandom || mknod -m 0644 $prefix/urandom c 1 9 test -b $prefix/loop0 || mknod -m 0640 $prefix/loop0 b 7 0 test -b $prefix/loop1 || mknod -m 0640 $prefix/loop1 b 7 1 test -b $prefix/loop2 || mknod -m 0640 $prefix/loop2 b 7 2 mkdir -p -m 0755 $prefix/pts mkdir -p -m 1777 $prefix/shm test -L $prefix/fd || ln -s /proc/self/fd $prefix/fd test -L $prefix/stdin || ln -s fd/0 $prefix/stdin test -L $prefix/stdout || ln -s fd/1 $prefix/stdout test -L $prefix/stderr || ln -s fd/2 $prefix/stderr } #====================================== # mountSystemFilesystems #-------------------------------------- function mountSystemFilesystems { mount -t proc proc /proc mount -t sysfs sysfs /sys mount -t tmpfs -o mode=0755 udev /dev createInitialDevices /dev mount -t devpts devpts /dev/pts } #====================================== # umountSystemFilesystems #-------------------------------------- function umountSystemFilesystems { umount /dev/pts >/dev/null umount /sys >/dev/null umount /proc >/dev/null } #====================================== # createFramebufferDevices #-------------------------------------- function createFramebufferDevices { if [ -f /proc/fb ]; then Echo "Creating framebuffer devices" while read fbnum fbtype; do if [ $(($fbnum < 32)) ] ; then [ -c /dev/fb$fbnum ] || mknod -m 0660 /dev/fb$fbnum c 29 $fbnum fi done < /proc/fb fi } #====================================== # errorLogStart #-------------------------------------- function errorLogStart { # /.../ # Log all errors up to now to the terminal specified # by ELOG_CONSOLE # ---- if [ ! -f $ELOG_FILE ];then echo "KIWI Log:" >> $ELOG_FILE else killproc tail echo "KIWI PreInit Log" >> $ELOG_FILE fi Echo "Boot-Logging enabled on $ELOG_CONSOLE" setctsid -f $ELOG_CONSOLE /bin/bash -i -c "tail -f $ELOG_FILE" & exec 2>>$ELOG_FILE if [ -f .profile ];then echo "KIWI .profile contents:" 1>&2 cat .profile 1>&2 fi set -x 1>&2 } #====================================== # udevPending #-------------------------------------- function udevPending { local timeout=30 if [ -x /sbin/udevadm ];then /sbin/udevadm trigger /sbin/udevadm settle --timeout=$timeout else /sbin/udevtrigger /sbin/udevsettle --timeout=$timeout fi } #====================================== # udevSystemStart #-------------------------------------- function udevSystemStart { # /.../ # start udev while in pre-init phase. This means we can # run udev from the standard runlevel script # ---- /etc/init.d/boot.udev start echo } #====================================== # udevStart #-------------------------------------- function udevStart { # /.../ # start the udev daemon. # ---- echo "Creating device nodes with udev" # disable hotplug helper, udevd listens to netlink if [ -e /proc/sys/kernel/hotplug ];then echo "" > /proc/sys/kernel/hotplug fi # /.../ # At the moment we prevent udev from loading the storage # modules because it does not make a propper choice if # there are multiple possible modules available. Example # udev prefers ata_generic over ata_piix but the hwinfo # order is ata_piix first which also seems to make more # sense. I would love to let udev load the modules but # at the moment I don't see how I could solve that # problem in another way than: # ----- rm -f /etc/udev/rules.d/*-drivers.rules rm -f /lib/udev/rules.d/*-drivers.rules # start the udev daemon udevd --daemon udev_log="debug" # wait for pending triggered udev events. udevPending # start splashy if configured startSplashy } #====================================== # udevKill #-------------------------------------- function udevKill { killproc /sbin/udevd } #====================================== # startSplashy #-------------------------------------- function startSplashy { if [ -x /usr/sbin/splashy ];then splashy boot fi } #====================================== # startBlogD #-------------------------------------- function startBlogD { REDIRECT=$(showconsole 2>/dev/null) if test -n "$REDIRECT" ; then > /dev/shm/initrd.msg ln -sf /dev/shm/initrd.msg /var/log/boot.msg mkdir -p /var/run /sbin/blogd $REDIRECT fi } #====================================== # killBlogD #-------------------------------------- function killBlogD { # /.../ # kill blogd on /dev/console # ---- local umountProc=0 if [ ! -e /proc/mounts ];then mount -t proc proc /proc umountProc=1 fi Echo "Stopping boot logging" killall -9 blogd if [ $umountProc -eq 1 ];then umount /proc fi } #====================================== # installBootLoader #-------------------------------------- function installBootLoader { # /.../ # generic function to install the boot loader. # The selection of the bootloader happens according to # the architecture of the system # ---- local arch=`uname -m` case $arch in i*86) installBootLoaderGrub ;; x86_64) installBootLoaderGrub ;; ppc*) installBootLoaderLilo ;; *) systemException \ "*** boot loader setup for $arch not implemented ***" \ "reboot" esac } #====================================== # installBootLoaderRecovery #-------------------------------------- function installBootLoaderRecovery { # /.../ # generic function to install the boot loader into # the recovery partition. The selection of the bootloader # happens according to the architecture of the system # ---- local arch=`uname -m` case $arch in i*86) installBootLoaderGrubRecovery ;; x86_64) installBootLoaderGrubRecovery ;; *) systemException \ "*** boot loader setup for $arch not implemented ***" \ "reboot" esac } #====================================== # installBootLoaderGrub #-------------------------------------- function installBootLoaderGrub { # /.../ # install the grub according to the contents of # /etc/grub.conf and /boot/grub/menu.lst # ---- if [ -x /usr/sbin/grub ];then Echo "Installing boot loader..." /usr/sbin/grub --batch --no-floppy < /etc/grub.conf 1>&2 if [ ! $? = 0 ];then Echo "Failed to install boot loader" fi else Echo "Image doesn't have grub installed" Echo "Can't install boot loader" fi } #====================================== # installBootLoaderLilo #-------------------------------------- function installBootLoaderLilo { # /.../ # install the lilo according to the contents of # /etc/lilo.conf # ---- if [ -x /sbin/lilo ];then Echo "Installing boot loader..." /sbin/lilo 1>&2 if [ ! $? = 0 ];then Echo "Failed to install boot loader" fi else Echo "Image doesn't have lilo installed" Echo "Can't install boot loader" fi } #====================================== # installBootLoaderGrubRecovery #-------------------------------------- function installBootLoaderGrubRecovery { # /.../ # install the grub into the recovery partition. # By design the recovery partition is always the # fourth primary partition of the disk # ---- local input=/grub.input echo "device (hd0) $deviceDisk" > $input echo "root (hd0,3)" >> $input echo "setup (hd0,3)" >> $input echo "quit" >> $input if [ -x /mnt/usr/sbin/grub ];then /mnt/usr/sbin/grub --batch < $input 1>&2 else Echo "Image doesn't have grub installed" Echo "Can't install boot loader" systemException \ "recovery grub setup failed" \ "reboot" fi } #====================================== # setupSUSEInitrd #-------------------------------------- function setupSUSEInitrd { # /.../ # call mkinitrd on suse systems to create the distro initrd # based on /etc/sysconfig/kernel # ---- bootLoaderOK=1 local umountProc=0 local umountSys=0 local systemMap=0 for i in `find /boot/ -name "System.map*"`;do systemMap=1 done if [ $systemMap -eq 1 ];then if [ ! -e /proc/mounts ];then mount -t proc proc /proc umountProc=1 fi if [ ! -e /sys/block ];then mount -t sysfs sysfs /sys umountSys=1 fi if [ -f /etc/init.d/boot.device-mapper ];then /etc/init.d/boot.device-mapper start fi if ! mkinitrd;then Echo "Can't create initrd" systemIntegrity=unknown bootLoaderOK=0 fi if [ -f /etc/init.d/boot.device-mapper ];then /etc/init.d/boot.device-mapper stop fi if [ $umountSys -eq 1 ];then umount /sys fi if [ $umountProc -eq 1 ];then umount /proc fi else Echo "Image doesn't include kernel system map" Echo "Can't create initrd" systemIntegrity=unknown bootLoaderOK=0 fi } #====================================== # callSUSEInitrdScripts #-------------------------------------- function callSUSEInitrdScripts { # /.../ # create initrd with mkinitrd and extract the run_all.sh script # after that call the script in /lib/mkinitrd. The mkinitrd # package must be installed in the system image to do that # ---- local prefix=$1 if [ ! -d $prefix/lib/mkinitrd ];then Echo "No mkinitrd package installed" Echo "Can't call initrd scripts" return fi mkinitrd >/dev/null if [ ! -f $prefix/boot/initrd ];then Echo "No initrd file found" Echo "Can't call initrd scripts" return fi mkdir $prefix/tmp/suse cd $prefix/tmp/suse && gzip -cd $prefix/boot/initrd | cpio -i if [ ! -f $prefix/tmp/suse/run_all.sh ];then Echo "No run_all.sh script in initrd" Echo "Can't call initrd scripts" return fi Echo "Calling SUSE initrd scripts" chroot . bash ./run_all.sh } #====================================== # setupBootLoaderFiles #-------------------------------------- function setupBootLoaderFiles { # /.../ # generic function which returns the files used for a # specific bootloader. The selection of the bootloader # happens according to the architecture of the system # ---- local arch=`uname -m` case $arch in i*86) setupBootLoaderFilesGrub ;; x86_64) setupBootLoaderFilesGrub ;; ppc*) setupBootLoaderFilesLilo ;; *) systemException \ "*** boot loader files for $arch not implemented ***" \ "reboot" esac } #====================================== # setupBootLoaderFilesGrub #-------------------------------------- function setupBootLoaderFilesGrub { echo "/boot/grub/menu.lst /etc/grub.conf" } #====================================== # setupBootLoaderFilesLilo #-------------------------------------- function setupBootLoaderFilesLilo { echo "/etc/lilo.conf" } #====================================== # setupBootLoader #-------------------------------------- function setupBootLoader { # /.../ # generic function to setup the boot loader configuration. # The selection of the bootloader happens according to # the architecture of the system # ---- local arch=`uname -m` local para="" while [ $# -gt 0 ];do para="$para \"$1\"" shift done case $arch in i*86) eval setupBootLoaderGrub $para ;; x86_64) eval setupBootLoaderGrub $para ;; ppc*) eval setupBootLoaderLilo $para ;; *) systemException \ "*** boot loader setup for $arch not implemented ***" \ "reboot" esac } #====================================== # setupBootLoaderRecovery #-------------------------------------- function setupBootLoaderRecovery { # /.../ # generic function to setup the boot loader configuration # for the recovery partition. The selection of the bootloader # happens according to the architecture of the system # ---- local arch=`uname -m` local para="" while [ $# -gt 0 ];do para="$para \"$1\"" shift done case $arch in i*86) eval setupBootLoaderGrubRecovery $para ;; x86_64) eval setupBootLoaderGrubRecovery $para ;; *) systemException \ "*** boot loader setup for $arch not implemented ***" \ "reboot" esac } #====================================== # setupBootLoaderGrubRecovery #-------------------------------------- function setupBootLoaderGrubRecovery { # /.../ # create menu.lst file for the recovery boot system # ---- local mountPrefix=$1 # mount path of the image local destsPrefix=$2 # base dir for the config files local gfix=$3 # grub title postfix local menu=$destsPrefix/boot/grub/menu.lst local kernel="" local initrd="" #====================================== # import grub stages into recovery #-------------------------------------- cp $mountPrefix/boot/grub/stage1 $destsPrefix/boot/grub cp $mountPrefix/boot/grub/stage2 $destsPrefix/boot/grub #====================================== # backup current menu.lst #-------------------------------------- mv $menu $menu.system #====================================== # create recovery menu.lst #-------------------------------------- echo "timeout 0" > $menu local count=1 IFS="," ; for i in $KERNEL_LIST;do if test ! -z "$i";then kernel=`echo $i | cut -f1 -d:` initrd=`echo $i | cut -f2 -d:` #====================================== # create recovery entry #-------------------------------------- if [ ! -z "$OEM_RECOVERY" ];then echo "title Recovery [ $gfix ]" >> $menu gdev_recovery="(hd0,3)" rdev_recovery=$OEM_RECOVERY diskByID=`getDiskID $rdev_recovery` if [ $kernel = "vmlinuz-xen" ];then echo " root $gdev_recovery" >> $menu echo " kernel /boot/xen.gz" >> $menu echo -n " module /boot/$kernel" >> $menu echo -n " root=$diskByID $console" >> $menu echo -n " vga=0x314 splash=silent" >> $menu echo -n " $KIWI_INITRD_PARAMS" >> $menu echo -n " $KIWI_KERNEL_OPTIONS" >> $menu echo " KIWI_RECOVERY=1 showopts" >> $menu echo " module /boot/$initrd" >> $menu else echo -n " kernel $gdev_recovery/boot/$kernel" >> $menu echo -n " root=$diskByID $console" >> $menu echo -n " vga=0x314 splash=silent" >> $menu echo -n " $KIWI_INITRD_PARAMS" >> $menu echo -n " $KIWI_KERNEL_OPTIONS" >> $menu echo " KIWI_RECOVERY=1 showopts" >> $menu echo " initrd $gdev_recovery/boot/$initrd" >> $menu fi fi count=`expr $count + 1` fi done } #====================================== # setupBootLoaderGrub #-------------------------------------- function setupBootLoaderGrub { # /.../ # create grub.conf and menu.lst file used for # installing the bootloader # ---- local mountPrefix=$1 # mount path of the image local destsPrefix=$2 # base dir for the config files local gnum=$3 # grub boot partition ID local rdev=$4 # grub root partition local gfix=$5 # grub title postfix local swap=$6 # optional swap partition local menu=$destsPrefix/boot/grub/menu.lst local conf=$destsPrefix/etc/grub.conf local dmap=$destsPrefix/boot/grub/device.map local sysb=$destsPrefix/etc/sysconfig/bootloader local console="" local kname="" local kernel="" local initrd="" #====================================== # check for device by ID #-------------------------------------- local diskByID=`getDiskID $rdev` local swapByID=`getDiskID $swap` #====================================== # check for system image .profile #-------------------------------------- if [ -f $mountPrefix/image/.profile ];then importFile < $mountPrefix/image/.profile fi #====================================== # check for grub device #-------------------------------------- if test -z $gnum;then gnum=1 fi #====================================== # check for grub title postfix #-------------------------------------- if test -z $gfix;then gfix="unknown" fi #====================================== # check for boot TIMEOUT #-------------------------------------- if test -z $KIWI_BOOT_TIMEOUT;then KIWI_BOOT_TIMEOUT=10; fi #====================================== # check for UNIONFS_CONFIG #-------------------------------------- if [ ! -z "$UNIONFS_CONFIG" ] && [ $gnum -gt 0 ]; then rwDevice=`echo $UNIONFS_CONFIG | cut -d , -f 1` gnum=`echo $rwDevice | sed -e "s/\/dev.*\([0-9]\)/\\1/"` gnum=`expr $gnum - 1` fi #====================================== # create directory structure #-------------------------------------- for dir in $menu $conf $dmap $sysb;do dir=`dirname $dir`; mkdir -p $dir done #====================================== # setup grub device node #-------------------------------------- gdev="(hd0,$gnum)" #====================================== # create menu.lst file #-------------------------------------- echo "timeout $KIWI_BOOT_TIMEOUT" > $menu if [ -f /image/loader/message ] || [ -f /boot/message ];then echo "gfxmenu $gdev/boot/message" >> $menu fi local count=1 IFS="," ; for i in $KERNEL_LIST;do if test ! -z "$i";then #====================================== # create standard entry #-------------------------------------- kernel=`echo $i | cut -f1 -d:` initrd=`echo $i | cut -f2 -d:` kname=${KERNEL_NAME[$count]} if [ -z "$kiwi_iname" ];then echo "title $kname [ $gfix ]" >> $menu else echo "title $kiwi_iname-$kname [ $gfix ]" >> $menu fi if [ $kernel = "vmlinuz-xen" ];then echo " root $gdev" >> $menu echo " kernel /boot/xen.gz" >> $menu echo -n " module /boot/$kernel" >> $menu echo -n " root=$diskByID $console" >> $menu echo -n " vga=0x314 splash=silent" >> $menu if [ ! -z "$swap" ];then echo -n " resume=$swapByID" >> $menu fi echo -n " $KIWI_INITRD_PARAMS" >> $menu echo " $KIWI_KERNEL_OPTIONS showopts" >> $menu echo " module /boot/$initrd" >> $menu else echo -n " kernel $gdev/boot/$kernel" >> $menu echo -n " root=$diskByID $console" >> $menu echo -n " vga=0x314 splash=silent" >> $menu if [ ! -z "$swap" ];then echo -n " resume=$swapByID" >> $menu fi echo -n " $KIWI_INITRD_PARAMS" >> $menu echo " $KIWI_KERNEL_OPTIONS showopts" >> $menu echo " initrd $gdev/boot/$initrd" >> $menu fi #====================================== # create failsafe entry #-------------------------------------- if [ -z "$kiwi_iname" ];then echo "title Failsafe -- $kname [ $gfix ]" >> $menu else echo "title Failsafe -- $kiwi_iname-$kname [ $gfix ]" >> $menu fi if [ $kernel = "vmlinuz-xen" ];then echo " root $gdev" >> $menu echo " kernel /boot/xen.gz" >> $menu echo -n " module /boot/$kernel" >> $menu echo -n " root=$diskByID $console" >> $menu echo -n " vga=0x314 splash=silent" >> $menu echo -n " $KIWI_INITRD_PARAMS" >> $menu echo -n " $KIWI_KERNEL_OPTIONS showopts" >> $menu echo -n " ide=nodma apm=off acpi=off" >> $menu echo -n " noresume selinux=0 nosmp" >> $menu echo " noapic maxcpus=0 edd=off" >> $menu echo " module /boot/$initrd" >> $menu else echo -n " kernel $gdev/boot/$kernel" >> $menu echo -n " root=$diskByID $console" >> $menu echo -n " vga=0x314 splash=silent" >> $menu echo -n " $KIWI_INITRD_PARAMS" >> $menu echo -n " $KIWI_KERNEL_OPTIONS showopts" >> $menu echo -n " ide=nodma apm=off acpi=off" >> $menu echo -n " noresume selinux=0 nosmp" >> $menu echo " noapic maxcpus=0 edd=off" >> $menu echo " initrd $gdev/boot/$initrd" >> $menu fi #====================================== # create recovery entry #-------------------------------------- if [ ! -z "$OEM_RECOVERY" ];then echo "title Recovery [ $gfix ]" >> $menu echo " rootnoverify (hd0,3)" >> $menu echo " makeactive" >> $menu echo " chainloader +1" >> $menu fi count=`expr $count + 1` fi done #====================================== # create grub.conf file #-------------------------------------- echo -en "root $gdev\ninstall" > $conf echo -n " --stage2=/boot/grub/stage2" >> $conf echo -n " /boot/grub/stage1 d (hd0)" >> $conf echo -n " /boot/grub/stage2 0x8000" >> $conf echo " $gdev/boot/grub/menu.lst" >> $conf echo "quit" >> $conf #====================================== # create grub device map #-------------------------------------- rdisk=`echo $rdev | sed -e s"@[0-9]@@g"` echo "(hd0) $rdisk" > $dmap #====================================== # create sysconfig/bootloader #-------------------------------------- echo "LOADER_TYPE=\"grub\"" > $sysb echo "LOADER_LOCATION=\"mbr\"" >> $sysb } #====================================== # setupBootLoaderLilo #-------------------------------------- function setupBootLoaderLilo { # /.../ # create lilo.conf file used for # installing the bootloader # ---- local mountPrefix=$1 # mount path of the image local destsPrefix=$2 # base dir for the config files local gnum=$3 # lilo boot partition ID local bdev=$4 # lilo root partition local gfix=$5 # lilo title postfix local swap=$6 # optional swap partition local conf=$destsPrefix/etc/lilo.conf local sysb=$destsPrefix/etc/sysconfig/bootloader local kname="" local kernel="" local initrd="" local count=1 echo \ "setupBootLoaderLilo $# called with '$1' '$2' '$3' '$4' '$5' '$6' '$7'"\ >&2 #====================================== # check for system image .profile #-------------------------------------- if [ -f $mountPrefix/image/.profile ];then importFile < $mountPrefix/image/.profile fi #====================================== # check for boot TIMEOUT #-------------------------------------- if test -z $KIWI_BOOT_TIMEOUT;then KIWI_BOOT_TIMEOUT=10; fi #====================================== # create directory structure #-------------------------------------- for dir in $conf $sysb;do dir=`dirname $dir`; mkdir -p $dir done #====================================== # setup lilo device node #-------------------------------------- bdev=`echo $bdev |\ sed -e "/\/dev\/disk\/by/{s/\(\/dev.*\)\(-part[0-9]\+$\)/\\1/;p;d}; /\/dev\//s/\(\/dev\/.*\)\([0-9]\+$\)/\1/"` #====================================== # create menu.lst file #-------------------------------------- ( echo "# generated by kiwi '$1' '$2' '$3' '$4' '$5' '$6' '$7'" echo "boot=$bdev" echo "activate" echo "timeout=`expr $KIWI_BOOT_TIMEOUT \* 10`" echo "default=kiwi$count" IFS="," ; for i in $KERNEL_LIST;do if test ! -z "$i";then kernel=`echo $i | cut -f1 -d:` initrd=`echo $i | cut -f2 -d:` kname=${KERNEL_NAME[$count]} echo "image=/boot/$kernel" echo -n "###Don't change this comment - YaST2 identifier:" echo " Original name: linux###" echo "# kiwi_iname $kiwi_iname" echo " label=kiwi$count" echo " initrd=/boot/$initrd" echo " append=\"quiet sysrq=1 panic=9 $KIWI_INITRD_PARAMS\"" echo "" count=`expr $count + 1` fi done ) > $conf #====================================== # create sysconfig/bootloader #-------------------------------------- echo "LOADER_TYPE=\"ppc\"" > $sysb } #====================================== # setupDefaultPXENetwork #-------------------------------------- function setupDefaultPXENetwork { # /.../ # create the /sysconfig/network file according to the PXE # boot interface. # ---- local prefix=$1 local niface=$prefix/etc/sysconfig/network/ifcfg-$PXE_IFACE mkdir -p $prefix/etc/sysconfig/network cat > $niface < /dev/null echo "BOOTPROTO='dhcp'" >> $niface echo "STARTMODE='ifplugd'" >> $niface echo "USERCONTROL='no'" >> $niface } #====================================== # setupDefaultFstab #-------------------------------------- function setupDefaultFstab { # /.../ # create a new /etc/fstab file with the default entries # ---- local prefix=$1 local nfstab=$prefix/etc/fstab mkdir -p $prefix/etc cat > $nfstab < /dev/null echo "devpts /dev/pts devpts mode=0620,gid=5 0 0" >> $nfstab echo "proc /proc proc defaults 0 0" >> $nfstab echo "sysfs /sys sysfs noauto 0 0" >> $nfstab } #====================================== # updateRootDeviceFstab #-------------------------------------- function updateRootDeviceFstab { # /.../ # add one line to the fstab file for the root device # ---- IFS=$IFS_ORIG local prefix=$1 local rdev=$2 local nfstab=$prefix/etc/fstab local diskByID=`getDiskID $rdev` if [ ! -z "$NFSROOT" ];then local server=`echo $rdev | cut -f3 -d" "` local option=`echo $rdev | cut -f2 -d" "` echo "$server / nfs $option 0 0" >> $nfstab return fi #====================================== # check for device by ID #-------------------------------------- if [ -z "$UNIONFS_CONFIG" ]; then echo "$diskByID / $FSTYPE defaults 0 0" >> $nfstab fi } #====================================== # updateSwapDeviceFstab #-------------------------------------- function updateSwapDeviceFstab { # /.../ # add one line to the fstab file for the swap device # ---- local prefix=$1 local sdev=$2 local diskByID=`getDiskID $sdev` local nfstab=$prefix/etc/fstab echo "$diskByID swap swap pri=42 0 0" >> $nfstab } #====================================== # updateOtherDeviceFstab #-------------------------------------- function updateOtherDeviceFstab { # /.../ # check the contents of the $PART_MOUNT variable and # add one line to the fstab file for each partition # to mount. # ---- local prefix=$1 local nfstab=$prefix/etc/fstab local index=0 IFS=":" ; for i in $PART_MOUNT;do if test ! -z "$i";then count=0 IFS=":" ; for n in $PART_DEV;do device=$n if test $count -eq $index;then break fi count=`expr $count + 1` done index=`expr $index + 1` if test ! $i = "/" && test ! $i = "x";then probeFileSystem $device echo "$device $i $FSTYPE defaults 1 1" >> $nfstab fi fi done } #====================================== # setupKernelModules #-------------------------------------- function setupKernelModules { # /.../ # create sysconfig/kernel file which includes the # kernel modules to become integrated into the initrd # if created by the distro mkinitrd tool # ---- local prefix=$1 local ktempl=/mnt/var/adm/fillup-templates/sysconfig.kernel local syskernel=$prefix/etc/sysconfig/kernel mkdir -p $prefix/etc/sysconfig if [ ! -f $ktempl ];then systemException \ "Can't find kernel sysconfig template in system image !" \ "reboot" fi cp $ktempl $syskernel sed -i -e \ s"@^INITRD_MODULES=.*@INITRD_MODULES=\"$INITRD_MODULES\"@" \ $syskernel sed -i -e \ s"@^DOMU_INITRD_MODULES=.*@DOMU_INITRD_MODULES=\"$DOMURD_MODULES\"@" \ $syskernel } #====================================== # kernelCheck #-------------------------------------- function kernelCheck { # /.../ # Check this running kernel against the kernel # installed in the image. If the version does not # match we need to reboot to activate the system # image kernel. # ---- kactive=`uname -r` kreboot=1 prefix=$1 for i in $prefix/lib/modules/*;do if [ ! -d $i ];then continue fi kinstname=${i##*/} if [ $kinstname = $kactive ];then kreboot=0 break fi done if [ $kreboot = 1 ];then Echo "Kernel versions do not match rebooting in 5 sec..." REBOOT_IMAGE="yes" sleep 5 fi } #====================================== # probeFileSystem #-------------------------------------- function probeFileSystem { # /.../ # probe for the filesystem type. The function will # read the first 128 kB of the given device and check # the filesystem header data to detect the type of the # filesystem # ---- FSTYPE=unknown dd if=$1 of=/tmp/filesystem-$$ bs=128k count=1 >/dev/null data=$(file /tmp/filesystem-$$) && rm -f /tmp/filesystem-$$ case $data in *ext3*) FSTYPE=ext3 ;; *ext2*) FSTYPE=ext2 ;; *ReiserFS*) FSTYPE=reiserfs ;; *Squashfs*) FSTYPE=squashfs ;; *CROMFS*) FSTYPE=cromfs ;; *) FSTYPE=unknown ;; esac export FSTYPE } #====================================== # getSystemIntegrity #-------------------------------------- function getSystemIntegrity { # /.../ # check the variable SYSTEM_INTEGRITY which contains # information about the status of all image portions # per partition. If a number is given as parameter only # the information from the image assigned to this partition # is returned # ---- if [ -z "$SYSTEM_INTEGRITY" ];then echo "clean" else echo $SYSTEM_INTEGRITY | cut -f$1 -d: fi } #====================================== # getSystemMD5Status #-------------------------------------- function getSystemMD5Status { # /.../ # return the md5 status of the given image number. # the function works similar to getSystemIntegrity # ---- echo $SYSTEM_MD5STATUS | cut -f$1 -d: } #====================================== # probeUSB #-------------------------------------- function probeUSB { IFS="%" local module="" local stdevs="" local hwicmd="/usr/sbin/hwinfo" for i in \ `$hwicmd --usb | grep "Driver [IA]" | sed -es"@modprobe\(.*\)\"@\1%@" | tr -d "\n"` do if echo $i | grep -q "#0";then module=`echo $i | cut -f2 -d"\"" | tr -d " "` module=`echo $module | sed -es"@modprobe@@g"` IFS=";" for m in $module;do if ! echo $stdevs | grep -q $m;then stdevs="$stdevs $m" fi done fi done IFS="%" for i in \ `$hwicmd --usb-ctrl | grep "Driver [IA]" | sed -es"@modprobe\(.*\)\"@\1%@" | tr -d "\n"` do if echo $i | grep -q "#0";then module=`echo $i | cut -f2 -d"\"" | tr -d " "` module=`echo $module | sed -es"@modprobe@@g"` IFS=";" for m in $module;do if ! echo $stdevs | grep -q $m;then stdevs="$stdevs $m" fi done fi done IFS=$IFS_ORIG stdevs=`echo $stdevs` for module in $stdevs;do Echo "Probing module: $module" modprobe $module >/dev/null done # /.../ # load hid driver manually # ---- modprobe usbhid &>/dev/null } #====================================== # probeDevices #-------------------------------------- function probeDevices { Echo "Including required kernel modules..." IFS="%" local module="" local stdevs="" local hwicmd="/usr/sbin/hwinfo" for i in \ `$hwicmd --storage | grep "Driver [IA]" | sed -es"@modprobe\(.*\)\"@\1%@" | tr -d "\n"` do if echo $i | grep -q "#0";then module=`echo $i | cut -f2 -d"\"" | tr -d " "` module=`echo $module | sed -es"@modprobe@@g"` IFS=";" for m in $module;do if ! echo $stdevs | grep -q $m;then stdevs="$stdevs $m" fi done fi done IFS=$IFS_ORIG stdevs=`echo $stdevs` if [ ! -z "$kiwikernelmodule" ];then for module in $kiwikernelmodule;do Echo "Probing module (cmdline): $module" INITRD_MODULES="$INITRD_MODULES $module" modprobe $module >/dev/null done fi for module in $stdevs;do loadok=1 for broken in $kiwibrokenmodule;do if [ $broken = $module ];then Echo "Prevent loading module: $module" loadok=0; break fi done if [ $loadok = 1 ];then Echo "Probing module: $module" INITRD_MODULES="$INITRD_MODULES $module" modprobe $module >/dev/null fi done hwinfo --block &>/dev/null # /.../ # older systems require ide-disk to be present at any time # for details on this crappy call see bug: #250241 # ---- modprobe ide-disk modprobe rd &>/dev/null modprobe brd &>/dev/null modprobe edd &>/dev/null probeUSB } #====================================== # CDDevice #-------------------------------------- function CDDevice { # /.../ # changed this function so that it finds config.isoclient on vfat disks, e.g. USB drives # ---- find /lib/modules/*/kernel/fs/nls/nls* -exec insmod {} \; # needed for vfat filesystem find /lib/modules/*/kernel/fs/*fat/*.ko -exec insmod {} \; # needed for vfat filesystem insmod /lib/modules/*/kernel/drivers/usb/storage/usb-storage.ko # needed for USB sleep 5 # fixme; do this in a proper way cddevs=`/usr/sbin/hwinfo --disk | grep sd | grep "Device File:" | cut -f2 -d: | cut -f2 -d " "` # looks for disks instead of CDs echo cddevs $cddevs for i in $cddevs;do i=$i"1" # fixme; looks on the first partition only echo i $i if [ -b $i ];then test -z $cddev && cddev=$i || cddev=$cddev:$i echo cddev $cddev fi done if [ -z $cddev ]; then systemException \ “Failed to detect CD drive !” \ “reboot” fi } function USBStickDevice { stickFound=0 #====================================== # check virtual environments #-------------------------------------- diskmodels=`getDiskModels` if echo $diskmodels | grep -q "QEMU HARDDISK";then Echo "QEMU system, skipping USB stick search" return fi #====================================== # search for USB removable devices #-------------------------------------- Echo -n "Waiting for USB devices to settle..." for redo in 1 2 3 4 5 6 7 8 9 10;do for device in /sys/bus/usb/drivers/usb-storage/*;do if [ ! -L $device ];then continue fi descriptions=$device/host*/target*/*/block* for description in $descriptions;do if [ ! -d $description ];then continue fi isremovable=$description/removable storageID=`echo $description | cut -f1 -d: | xargs basename` devicebID=`basename $description | cut -f2 -d:` if [ $devicebID = "block" ];then devicebID=`ls -1 $description` isremovable=$description/$devicebID/removable fi serial="/sys/bus/usb/devices/$storageID/serial" device="/dev/$devicebID" if [ ! -b $device ];then continue; fi if [ ! -f $isremovable ];then continue; fi if ! partitionSize $device >/dev/null;then continue; fi if [ ! -f $serial ];then serial="USB Stick (unknown type)" else serial=`cat $serial` fi removable=`cat $isremovable` if [ $removable -eq 1 ];then stickRoot=$device stickDevice="$device"1 if ! kiwiMount "$stickDevice" "/mnt";then continue fi if \ [ ! -e /mnt/etc/ImageVersion ] && \ [ ! -e /mnt/config.isoclient ] then umountSystem continue fi umountSystem stickFound=1 stickSerial=$serial echo . return fi done done echo -n . sleep 3 done echo . } #====================================== # CDMount #-------------------------------------- function CDMount { # /.../ # search all CD/DVD drives and use the one we can find # the CD configuration on # ---- local count=0 mkdir -p /cdrom && CDDevice Echo -n "Mounting live boot drive..." while true;do IFS=":"; for i in $cddev;do if [ -x /usr/bin/driveready ];then driveready $i && mount $i /cdrom >/dev/null else mount $i /cdrom >/dev/null fi if [ -f $LIVECD_CONFIG ];then cddev=$i; echo; if [ "$mediacheck" = 1 ]; then test -e /proc/splash && echo verbose > /proc/splash checkmedia $cddev Echo -n "Press any key for reboot: "; read nope systemException "CheckMedia" "reboot" fi return fi umount $i &>/dev/null done IFS=$IFS_ORIG if [ $count -eq 12 ]; then break else echo -n . sleep 1 fi count=`expr $count + 1` done echo systemException \ "Couldn't find Live image configuration file" \ "reboot" } #====================================== # CDUmount #-------------------------------------- function CDUmount { # /.../ # umount the CD device # ---- umount $cddev } #====================================== # CDEject #-------------------------------------- function CDEject { eject $cddev } #====================================== # searchBIOSBootDevice #-------------------------------------- function searchBIOSBootDevice { # /.../ # search for the BIOS boot device which is the device # with the BIOS id 0x80. The test may fail if the boot # device is a CD/DVD drive. If the test fails we search # for the MBR disk label and compare it with the kiw # written mbrid file in /boot/grub/ of the system image # ---- local h=/usr/sbin/hwinfo local c="Device File:|BIOS id" local ddevs=`$h --disk|grep -E "$c"|sed -e"s@(.*)@@"|cut -f2 -d:|tr -d " "` local pred for curd in $ddevs;do if [ $curd = "0x80" ];then echo $pred; return fi pred=$curd done for curd in $ddevs;do mbrM=`dd if=$curd bs=1 count=4 skip=$((0x1b8))|hexdump -n4 -e '"0x%x"'` mbrI=0 for id in 1 2;do if mount $curd$id /mnt;then if [ -f /mnt/boot/grub/mbrid ];then read mbrI < /mnt/boot/grub/mbrid umount /mnt break fi umount /mnt fi done if [ "$mbrM" = "$mbrI" ];then echo $curd; return fi done } #====================================== # searchSwapSpace #-------------------------------------- function searchSwapSpace { # /.../ # search for a type=82 swap partition # ---- if [ ! -z $kiwinoswapsearch ];then return fi local hwapp=/usr/sbin/hwinfo local diskdevs=`$hwapp --disk | grep "Device File:" | cut -f2 -d:` diskdevs=`echo $diskdevs | sed -e "s@(.*)@@"` for diskdev in $diskdevs;do for disknr in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15;do id=`partitionID $diskdev $disknr` if [ "$id" = "82" ];then echo $diskdev$disknr return fi done done } #====================================== # searchDiskSpace #-------------------------------------- function searchDiskSpace { # /.../ # search for a free non swap partition # ---- if [ ! -z $kiwinoswapsearch ];then return fi local hwapp=/usr/sbin/hwinfo local diskdevs=`$hwapp --disk | grep "Device File:" | cut -f2 -d:` diskdevs=`echo $diskdevs | sed -e "s@(.*)@@"` for diskdev in $diskdevs;do for disknr in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15;do id=`partitionID $diskdev $disknr` if [ -z $id ];then id=0 fi if [ "$id" -ne 82 ] && [ "$id" -ne 0 ];then echo $diskdev$disknr return fi done done } #====================================== # updateMTAB #-------------------------------------- function updateMTAB { prefix=$1 umount=0 if [ ! -e /proc/mounts ];then mount -t proc proc /proc umount=1 fi cat /proc/mounts > $prefix/etc/mtab if [ $umount -eq 1 ];then umount /proc fi } #====================================== # probeNetworkCard #-------------------------------------- function probeNetworkCard { # /.../ # use hwinfo to probe for all network devices. The # function will check for the driver which is needed # to support the card and returns the information in # the networkModule variable # ---- IFS="%" local module="" local hwicmd="/usr/sbin/hwinfo" for i in \ `$hwicmd --netcard | grep "Driver [IA]" | sed -es"@modprobe\(.*\)\"@\1%@" | tr -d "\n"` do if echo $i | grep -q "#0";then module=`echo $i | cut -f2 -d"\"" | tr -d " "` module=`echo $module | sed -es"@modprobe@@g"` IFS=";" for m in $module;do if ! echo $networkModule | grep -q $m;then if [ ! -z "$networkModule" ];then networkModule="$networkModule:$m" else networkModule=$m fi fi done fi done IFS=$IFS_ORIG networkModule=`echo $networkModule` } #====================================== # setupNetwork #-------------------------------------- function setupNetwork { # /.../ # probe for the existing network interface names and # hardware addresses. Match the BOOTIF address from PXE # to the correct linux interface name. Setup the network # interface using a dhcp request. On success the dhcp # info file is imported into the current shell environment # and the nameserver information is written to # /etc/resolv.conf # ---- IFS=" " local MAC=0 local DEV=0 local mac_list=0 local dev_list=0 local index=0 local hwicmd=/usr/sbin/hwinfo local iface=eth0 for i in `$hwicmd --netcard`;do IFS=$IFS_ORIG if echo $i | grep -q "HW Address:";then MAC=`echo $i | sed -e s"@HW Address:@@"` MAC=`echo $MAC` mac_list[$index]=$MAC index=`expr $index + 1` fi if echo $i | grep -q "Device File:";then DEV=`echo $i | sed -e s"@Device File:@@"` DEV=`echo $DEV` dev_list[$index]=$DEV fi done if [ -z $BOOTIF ];then # /.../ # there is no PXE boot interface information. We will use # the first detected interface as fallback solution # ---- iface=${dev_list[0]} else # /.../ # evaluate the information from the PXE boot interface # if we found the MAC in the list the appropriate interface # name is assigned. if not eth0 is used as fallback # ---- index=0 BOOTIF=`echo $BOOTIF | cut -f2- -d - | tr "-" ":"` for i in ${mac_list[*]};do if [ $i = $BOOTIF ];then iface=${dev_list[$index]} fi index=`expr $index + 1` done fi export PXE_IFACE=$iface dhcpcd $PXE_IFACE 1>&2 if test $? != 0;then systemException \ "Failed to setup DHCP network interface !" \ "reboot" fi ifconfig lo 127.0.0.1 netmask 255.0.0.0 up for i in 1 2 3 4 5 6 7 8 9 0;do [ -s /var/lib/dhcpcd/dhcpcd-$PXE_IFACE.info ] && break sleep 5 done importFile < /var/lib/dhcpcd/dhcpcd-$PXE_IFACE.info echo "search $DOMAIN" > /etc/resolv.conf IFS="," ; for i in $DNS;do echo "nameserver $i" >> /etc/resolv.conf done } #====================================== # updateNeeded #-------------------------------------- function updateNeeded { # /.../ # check the contents of the IMAGE key and compare the # image version file as well as the md5 sum of the installed # and the available image on the tftp server # ---- SYSTEM_INTEGRITY="" SYSTEM_MD5STATUS="" local count=0 IFS="," ; for i in $IMAGE;do field=0 IFS=";" ; for n in $i;do case $field in 0) field=1 ;; 1) imageName=$n ; field=2 ;; 2) imageVersion=$n; field=3 ;; 3) imageServer=$n ; field=4 ;; 4) imageBlkSize=$n; field=5 ;; 5) imageZipped=$n ; esac done atversion="$imageName-$imageVersion" versionFile="/mnt/etc/ImageVersion-$atversion" IFS=" " if [ -f "$versionFile" ];then read installed sum2 < $versionFile fi imageMD5s="image/$imageName-$imageVersion.md5" [ -z "$imageServer" ] && imageServer=$SERVER [ -z "$imageBlkSize" ] && imageBlkSize=8192 if [ ! -f /etc/image.md5 ];then fetchFile $imageMD5s /etc/image.md5 uncomp $imageServer fi read sum1 blocks blocksize zblocks zblocksize < /etc/image.md5 if [ ! -z "$sum1" ];then SYSTEM_MD5STATUS="$SYSTEM_MD5STATUS:$sum1" else SYSTEM_MD5STATUS="$SYSTEM_MD5STATUS:none" fi if [ ! -z "$1" ];then continue fi if test "$count" = 1;then if test "$SYSTEM_INTEGRITY" = ":clean";then Echo "Main OS image update needed" Echo -b "Forcing download for multi image session" RELOAD_IMAGE="yes" fi fi count=$(($count + 1)) Echo "Checking update status for image: $imageName" if test ! -z $RELOAD_IMAGE;then Echo -b "Update forced via RELOAD_IMAGE..." Echo -b "Update status: Clean" SYSTEM_INTEGRITY="$SYSTEM_INTEGRITY:clean" continue fi if test ! -f $versionFile;then Echo -b "Update forced: /etc/ImageVersion-$atversion not found" Echo -b "Update status: Clean" SYSTEM_INTEGRITY="$SYSTEM_INTEGRITY:clean" RELOAD_IMAGE="yes" continue fi Echo -b "Current: $atversion Installed: $installed" if test "$atversion" = "$installed";then if test "$sum1" = "$sum2";then Echo -b "Update status: Fine" SYSTEM_INTEGRITY="$SYSTEM_INTEGRITY:fine" continue fi Echo -b "Image Update for image [ $imageName ] needed" Echo -b "Image version equals but md5 checksum failed" Echo -b "This means the contents of the new image differ" RELOAD_IMAGE="yes" else Echo -b "Image Update for image [ $imageName ] needed" Echo -b "Name and/or image version differ" RELOAD_IMAGE="yes" fi Echo -b "Update status: Clean" SYSTEM_INTEGRITY="$SYSTEM_INTEGRITY:clean" done SYSTEM_INTEGRITY=`echo $SYSTEM_INTEGRITY | cut -f2- -d:` SYSTEM_MD5STATUS=`echo $SYSTEM_MD5STATUS | cut -f2- -d:` } #====================================== # cleanSweep #-------------------------------------- function cleanSweep { # /.../ # zero out a the given disk device # ---- diskDevice=$1 dd if=/dev/zero of=$diskDevice bs=32M >/dev/null } #====================================== # createFileSystem #-------------------------------------- function createFileSystem { # /.../ # create a filesystem on the specified partition # if the partition is of type LVM a volume group # is created # ---- diskPartition=$1 diskID=`echo $diskPartition | sed -e s@[^0-9]@@g` diskPD=`echo $diskPartition | sed -e s@[0-9]@@g` diskPartitionType=`partitionID $diskPD $diskID` if test "$diskPartitionType" = "8e";then Echo "Creating Volume group [systemvg]" pvcreate $diskPartition >/dev/null vgcreate systemvg $diskPartition >/dev/null else # .../ # Create partition in case it is not root system and # there is no system already created There is no need to # create a filesystem on the root partition # ---- if test $diskID -gt 2; then if ! mount $diskPartition /mnt; then Echo "Partition $diskPartition is not valid, formating..." mke2fs -j $diskPartition 1>&2 if test $? != 0; then systemException \ "Failed to create filesystem on: $diskPartition !" \ "reboot" fi else Echo "Partition $diskPartition is valid, leave it untouched" umount /mnt 1>&2 fi fi fi } #====================================== # checkExtended #-------------------------------------- function checkExtended { # /.../ # check the IMAGE system partition and adapt if the index # was increased due to an extended partition # ---- local iDevice="" local iNumber="" local iNewDev="" local iPartNr="" IFS="," ; for i in $PART;do iPartNr=`expr $iPartNr + 1` done if [ $iPartNr -gt 4 ];then iDevice=`echo $IMAGE | cut -f1 -d";" | cut -f2 -d=` iNumber=`echo $iDevice | tr -d "a-zA-Z\/"` if [ $iNumber -ge 4 ];then iNumber=`expr $iNumber + 1` iNewDev=$DISK$iNumber IMAGE=`echo $IMAGE | sed -e s@$iDevice@$iNewDev@` fi fi } #====================================== # sfdiskGetPartitionID #-------------------------------------- function sfdiskGetPartitionID { # /.../ # prints the partition ID for the given device and number # ---- sfdisk -c $1 $2 } #====================================== # sfdiskGetPartitionSize #-------------------------------------- function sfdiskGetPartitionSize { # /.../ # prints the partition or disk size in kB # ---- local cyl_count=`sfdisk -g $1 2>&1 | cut -f2 -d: | cut -f2 -d" "` local cyl_bsize=`sfdisk -l $1 2>&1 | grep Units | cut -f5 -d" "` if [ ! -z "$cyl_bsize" ];then expr \( $cyl_count - 1 \) \* $cyl_bsize / 1024 else sfdisk -s $1 fi } #====================================== # sfdiskPartitionCount #-------------------------------------- function sfdiskPartitionCount { # /.../ # calculate the number of partitions to create. If the # number is more than 4 an extended partition needs to be # created. # ---- IFS="," ; for i in $PART;do PART_NUMBER=`expr $PART_NUMBER + 1` done if [ $PART_NUMBER -gt 4 ];then PART_NEED_EXTENDED=1 fi PART_NUMBER=`expr $PART_NUMBER + 1` PART_NEED_FILL=`expr $PART_NUMBER / 8` PART_NEED_FILL=`expr 8 - \( $PART_NUMBER - $PART_NEED_FILL \* 8 \)` } #====================================== # sfdiskFillPartition #-------------------------------------- function sfdiskFillPartition { # /.../ # in case of an extended partition the number of input lines # must be a multiple of 4, so this function will fill the input # with empty lines to make sfdisk happy # ---- while test $PART_NEED_FILL -gt 0;do echo >> $PART_FILE PART_NEED_FILL=`expr $PART_NEED_FILL - 1` done } #====================================== # sfdiskCreateSwap #-------------------------------------- function sfdiskCreateSwap { # /.../ # create the sfdisk input line for setting up the # swap space # ---- IFS="," ; for i in $PART;do field=0 IFS=";" ; for n in $i;do case $field in 0) partSize=$n ; field=1 ;; 1) partID=$n ; field=2 ;; 2) partMount=$n; esac done if test $partID = "82" -o $partID = "S";then echo "0,$partSize,$partID,-" > $PART_FILE PART_COUNT=`expr $PART_COUNT + 1` return fi done } #====================================== # sfdiskCreatePartition #-------------------------------------- function sfdiskCreatePartition { # /.../ # create the sfdisk input lines for setting up the # partition table except the swap space # ---- devices=1 IFS="," ; for i in $PART;do field=0 IFS=";" ; for n in $i;do case $field in 0) partSize=$n ; field=1 ;; 1) partID=$n ; field=2 ;; 2) partMount=$n; esac done if test $partID = "82" -o $partID = "S";then continue fi if test $partSize = "x";then partSize="" fi if [ $PART_COUNT -eq 1 ];then echo ",$partSize,$partID,*" >> $PART_FILE else echo ",$partSize,$partID,-" >> $PART_FILE fi PART_COUNT=`expr $PART_COUNT + 1` if [ $PART_NEED_EXTENDED -eq 1 ];then if [ $PART_COUNT -eq 3 ];then echo ",,E" >> $PART_FILE NO_FILE_SYSTEM=1 fi fi devices=`expr $devices + 1` if test -z "$PART_MOUNT";then PART_MOUNT="$partMount" PART_DEV="$DISK$devices" else PART_MOUNT="$PART_MOUNT:$partMount" if [ $NO_FILE_SYSTEM -eq 2 ];then devices=`expr $devices + 1` NO_FILE_SYSTEM=0 fi PART_DEV="$PART_DEV:$DISK$devices" fi if [ $NO_FILE_SYSTEM -eq 1 ];then NO_FILE_SYSTEM=2 fi done if [ $PART_NEED_EXTENDED -eq 1 ];then sfdiskFillPartition fi export PART_MOUNT export PART_DEV } #====================================== # sfdiskWritePartitionTable #-------------------------------------- function sfdiskWritePartitionTable { # /.../ # write the partition table using PART_FILE as # input for sfdisk # ---- diskDevice=$1 dd if=/dev/zero of=$diskDevice bs=512 count=1 >/dev/null sfdisk -uM --force $diskDevice < $PART_FILE >/dev/null if test $? != 0;then systemException \ "Failed to create partition table on: $diskDevice !" \ "reboot" fi verifyOutput=`sfdisk -V $diskDevice` if test $? != 0;then systemException \ "Failed to verify partition table on $diskDevice: $verifyOutput" \ "reboot" fi rm -f $PART_FILE } #====================================== # partedGetPartitionID #-------------------------------------- function partedGetPartitionID { # /.../ # prints the partition ID for the given device and number # ---- local disk=`echo $1 | sed -e s"@[0-9]@@g"` parted -m -s $disk print | grep ^$2: | cut -f10 -d, | cut -f2 -d= } #====================================== # partedGetPartitionSize #-------------------------------------- function partedGetPartitionSize { # /.../ # prints the partition or disk size in kB # ---- local disk=`echo $1 | sed -e s"@[0-9]@@g"` local step=2 if echo $1 | grep -q [0-9];then step=4 fi local size=`parted -m -s $disk unit B print |\ sed -e "s@^\([0-4]\):@$disk\1:@" | grep ^$1:|cut -f$step -d: | tr -d B` expr $size / 1000 } #====================================== # partedCreatePartition #-------------------------------------- function partedCreatePartition { # /.../ # create the parted input data for setting up the # partition table # ---- p_stopp=0 dd if=/dev/zero of=$DISK bs=512 count=1 >/dev/null && \ /usr/sbin/parted -s $DISK mklabel msdos if [ $? -ne 0 ];then systemException \ "Failed to clean partition table on: $DISK !" \ "reboot" fi p_opts="-s $DISK unit s print" p_size=`/usr/sbin/parted $p_opts | grep "^Disk" | cut -f2 -d: | cut -f1 -ds` p_size=`echo $p_size` p_size=`expr $p_size - 1` p_cmd="/usr/sbin/parted -s $DISK unit s" IFS="," ; for i in $PART;do field=0 IFS=";" ; for n in $i;do case $field in 0) partSize=$n ; field=1 ;; 1) partID=$n ; field=2 ;; 2) partMount=$n; esac done PART_COUNT=`expr $PART_COUNT + 1` if test $partSize = "x";then partSize=$p_size else partSize=`expr $partSize \* 2048` fi if test $partID = "82" -o $partID = "S";then partedGetSectors 63 $partSize p_cmd="$p_cmd mkpartfs primary linux-swap $p_start $p_stopp" continue fi if [ $p_stopp = 0 ];then systemException \ "Invalid partition setup: $PART !" \ "reboot" fi partedGetSectors $p_stopp $partSize if [ $PART_COUNT -le 3 ];then p_cmd="$p_cmd mkpart primary $p_start $p_stopp" p_cmd="$p_cmd set $PART_COUNT type 0x$partID" else if [ $PART_COUNT -eq 4 ];then p_cmd="$p_cmd mkpart extended $p_start $p_size" p_cmd="$p_cmd set $PART_COUNT type 0x85" PART_COUNT=`expr $PART_COUNT + 1` NO_FILE_SYSTEM=1 fi p_start=`expr $p_start + 1` p_cmd="$p_cmd mkpart logical $p_start $p_stopp" p_cmd="$p_cmd set $PART_COUNT type 0x$partID" fi if test -z "$PART_MOUNT";then PART_MOUNT="$partMount" PART_DEV="$DISK$devices" else PART_MOUNT="$PART_MOUNT:$partMount" if [ $NO_FILE_SYSTEM -eq 2 ];then NO_FILE_SYSTEM=0 fi PART_DEV="$PART_DEV:$DISK$devices" fi if [ $NO_FILE_SYSTEM -eq 1 ];then NO_FILE_SYSTEM=2 fi done export PART_MOUNT export PART_DEV p_cmd="$p_cmd set 2 boot on" } #====================================== # partedGetSectors #-------------------------------------- function partedGetSectors { # /.../ # calculate start/end sector for given # sector size # --- p_start=$1 if [ $p_start -gt 63 ];then p_start=`expr $p_start + 1` fi p_stopp=`expr $p_start + $2` if [ $p_stopp -gt $p_size ];then p_stopp=$p_size fi } #====================================== # partedWritePartitionTable #-------------------------------------- function partedWritePartitionTable { # /.../ # write the partition table using parted # ---- diskDevice=$1 eval $p_cmd if test $? != 0;then systemException \ "Failed to create partition table on: $diskDevice !" \ "reboot" fi } #====================================== # partitionID #-------------------------------------- function partitionID { diskDevice=$1 diskNumber=$2 if [ $PARTITIONER = "sfdisk" ];then sfdiskGetPartitionID $diskDevice $diskNumber else partedGetPartitionID $diskDevice $diskNumber fi } #====================================== # partitionSize #-------------------------------------- function partitionSize { diskDevice=$1 if [ $PARTITIONER = "sfdisk" ];then sfdiskGetPartitionSize $diskDevice else partedGetPartitionSize $diskDevice fi } #====================================== # partitionCount #-------------------------------------- function partitionCount { if [ $PARTITIONER = "sfdisk" ];then sfdiskPartitionCount fi } #====================================== # createSwap #-------------------------------------- function createSwap { if [ $PARTITIONER = "sfdisk" ];then sfdiskCreateSwap fi } #====================================== # createPartition #-------------------------------------- function createPartition { if [ $PARTITIONER = "sfdisk" ];then sfdiskCreatePartition else partedCreatePartition fi } #====================================== # writePartitionTable #-------------------------------------- function writePartitionTable { if [ $PARTITIONER = "sfdisk" ];then sfdiskWritePartitionTable $1 else partedWritePartitionTable $1 fi } #====================================== # linuxPartition #-------------------------------------- function linuxPartition { # /.../ # check for a linux partition on partition number 2 # using the given disk device. On success return 0 # ---- diskDevice=$1 diskPartitionType=`partitionID $diskDevice 2` if test "$diskPartitionType" = "83";then return 0 fi return 1 } #====================================== # kernelList #-------------------------------------- function kernelList { # /.../ # check for all installed kernels whether there are valid # links to the initrd and kernel files. The function will # save the valid linknames in the variable KERNEL_LIST # ---- local prefix=$1 local kcount=0 local kname="" local kernel="" local initrd="" KERNEL_LIST="" KERNEL_NAME="" for i in $prefix/lib/modules/*;do if [ ! -d $i ];then continue fi unset KERNEL_PAIR unset kernel unset initrd kname=`basename $i` for k in $prefix/boot/vmlinu[zx]-${i##*/}; do if [ -f $k ];then kernel=${k##*/} initrd=initrd-${i##*/} fi done if [ -z $kernel ];then continue fi kcount=$((kcount+1)) KERNEL_PAIR=$kernel:$initrd KERNEL_NAME[$kcount]=$kname if [ $kcount = 1 ];then KERNEL_LIST=$KERNEL_PAIR elif [ $kcount -gt 1 ];then KERNEL_LIST=$KERNEL_LIST,$KERNEL_PAIR fi done if [ -z "$KERNEL_LIST" ];then # /.../ # the system image doesn't provide the kernel and initrd but # if there is a downloaded kernel and initrd from the KIWI_INITRD # setup. the kernelList function won't find initrds that gets # downloaded over tftp so make sure the vmlinu[zx]/initrd combo # gets added # ---- if [ -e $prefix/boot/vmlinuz ];then KERNEL_LIST="vmlinuz:initrd" KERNEL_NAME[1]=vmlinuz fi if [ -e $prefix/boot/vmlinux ];then KERNEL_LIST="vmlinux:initrd" KERNEL_NAME[1]=vmlinux fi fi export KERNEL_LIST export KERNEL_NAME } #====================================== # validateSize #-------------------------------------- function validateSize { # /.../ # check if the image fits into the requested partition. # An information about the sizes is printed out # ---- haveBytes=`partitionSize $imageDevice` haveBytes=`expr $haveBytes \* 1024` haveMByte=`expr $haveBytes / 1048576` needBytes=`expr $blocks \* $blocksize` needMByte=`expr $needBytes / 1048576` Echo "Have size: $imageDevice -> $haveBytes Bytes [ $haveMByte MB ]" Echo "Need size: $needBytes Bytes [ $needMByte MB ]" if test $haveBytes -gt $needBytes;then return 0 fi return 1 } #====================================== # validateTarSize #-------------------------------------- function validateTarSize { # /.../ # this function requires a destination directory which # could be a tmpfs mount and a compressed tar source file. # The function will then check if the tar file could be # unpacked according to the size of the destination # ---- local tsrc=$1 local haveKByte=0 local haveMByte=0 local needBytes=0 local needMByte=0 haveKByte=`cat /proc/meminfo | grep MemFree | cut -f2 -d: | cut -f1 -dk` haveMByte=`expr $haveKByte / 1024` needBytes=`du --bytes $tsrc | cut -f1` needMByte=`expr $needBytes / 1048576` Echo "Have size: proc/meminfo -> $haveMByte MB" Echo "Need size: $tsrc -> $needMByte MB [ uncompressed ]" if test $haveMByte -gt $needMByte;then return 0 fi return 1 } #====================================== # validateBlockSize #-------------------------------------- function validateBlockSize { # /.../ # check the block size value. atftp limits to a maximum of # 65535 blocks, so the block size must be checked according # to the size of the image. The block size itself is also # limited to 65464 bytes # ---- if [ -z "$zblocks" ] && [ -z "$blocks" ];then # md5 file not yet read in... skip return fi if [ ! -z "$zblocks" ];then isize=`expr $zblocks \* $zblocksize` else isize=`expr $blocks \* $blocksize` fi isize=`expr $isize / 65535` if [ $isize -gt $imageBlkSize ];then imageBlkSize=`expr $isize + 1024` fi if [ $imageBlkSize -gt 65464 ];then systemException \ "Maximum blocksize for atftp protocol exceeded" \ "reboot" fi } #====================================== # loadOK #-------------------------------------- function loadOK { # /.../ # check the output of the atftp command, unfortunately # there is no useful return code to check so we have to # check the output of the command # ---- for i in "File not found" "aborting" "no option named" "unknown host" ; do if echo "$1" | grep -q "$i" ; then return 1 fi done return 0 } #====================================== # includeKernelParameters #-------------------------------------- function includeKernelParameters { # /.../ # include the parameters from /proc/cmdline into # the current shell environment # ---- IFS=$IFS_ORIG for i in `cat /proc/cmdline`;do if ! echo $i | grep -q "=";then continue fi kernelKey=`echo $i | cut -f1 -d=` kernelVal=`echo $i | cut -f2 -d=` eval export $kernelKey=$kernelVal done if [ ! -z "$kiwikernelmodule" ];then kiwikernelmodule=`echo $kiwikernelmodule | tr , " "` fi if [ ! -z "$kiwibrokenmodule" ];then kiwibrokenmodule=`echo $kiwibrokenmodule | tr , " "` fi if [ ! -z "$kiwistderr" ];then export ELOG_CONSOLE=$kiwistderr export ELOG_EXCEPTION=$kiwistderr fi if [ ! -z "$ramdisk_size" ];then local modfile=/etc/modprobe.conf.local if [ -f $modfile ];then sed -i -e s"@rd_size=.*@rd_size=$ramdisk_size@" $modfile fi fi } #====================================== # checkServer #-------------------------------------- function checkServer { # /.../ # check the kernel commandline parameter kiwiserver. # If it exists its contents will be used as # server address stored in the SERVER variabe # ---- if [ ! -z $kiwiserver ];then Echo "Found server in kernel cmdline" SERVER=$kiwiserver fi if [ ! -z $kiwiservertype ]; then Echo "Found server type in kernel cmdline" SERVERTYPE=$kiwiservertype else SERVERTYPE=tftp fi } #====================================== # umountSystem #-------------------------------------- function umountSystem { local retval=0 local OLDIFS=$IFS local mountPath=/mnt IFS=$IFS_ORIG if test ! -z $UNIONFS_CONFIG;then roDir=/read-only rwDir=/read-write xiDir=/xino if ! umount $mountPath >/dev/null;then retval=1 fi for dir in $roDir $rwDir $xiDir;do if ! umount $dir >/dev/null;then retval=1 fi done elif test ! -z $COMBINED_IMAGE;then rm -f /read-only >/dev/null rm -f /read-write >/dev/null umount /mnt/read-only >/dev/null || retval=1 umount /mnt/read-write >/dev/null || retval=1 umount /mnt >/dev/null || retval=1 else if ! umount $mountPath >/dev/null;then retval=1 fi fi IFS=$OLDIFS return $retval } #====================================== # isFSTypeReadOnly #-------------------------------------- function isFSTypeReadOnly { if [ "$FSTYPE" = "squashfs" ] || [ "$FSTYPE" = "cromfs" ];then return 0 fi return 1 } #====================================== # kiwiMount #-------------------------------------- function kiwiMount { local src=$1 local dst=$2 local opt=$3 local lop=$4 #====================================== # load not autoloadable fs modules #-------------------------------------- modprobe squashfs &>/dev/null modprobe fuse &>/dev/null #====================================== # store old FSTYPE value #-------------------------------------- if [ ! -z "$FSTYPE" ];then FSTYPE_SAVE=$FSTYPE fi #====================================== # probe filesystem #-------------------------------------- if [ ! "$FSTYPE" = "nfs" ];then if [ ! -z "$lop" ];then probeFileSystem $lop else probeFileSystem $src fi fi if [ -z $FSTYPE ] || [ $FSTYPE = "unknown" ];then FSTYPE="auto" fi #====================================== # decide for a mount method #-------------------------------------- if [ $FSTYPE = "cromfs" ];then if [ ! -z "$lop" ];then src=$lop fi if ! cromfs-driver $src $dst >/dev/null;then return 1 fi else if [ ! -z "$lop" ];then losetup /dev/loop1 $lop fi if ! mount -t $FSTYPE $opt $src $dst >/dev/null;then return 1 fi fi if [ ! -z "$FSTYPE_SAVE" ];then FSTYPE=$FSTYPE_SAVE fi return 0 } #====================================== # mountSystemUnified #-------------------------------------- function mountSystemUnified { local loopf=$1 local roDir=/read-only local rwDir=/read-write local xiDir=/xino for dir in $roDir $rwDir $xiDir;do mkdir -p $dir done local rwDevice=`echo $UNIONFS_CONFIG | cut -d , -f 1` local roDevice=`echo $UNIONFS_CONFIG | cut -d , -f 2` local unionFST=`echo $UNIONFS_CONFIG | cut -d , -f 3` #====================================== # check read/only device location #-------------------------------------- if [ ! -z "$NFSROOT" ];then roDevice="$imageRootDevice" fi #====================================== # check read/write device location #-------------------------------------- getDiskDevice $rwDevice | grep -q ram if [ $? = 0 ];then # /.../ # write part is a ram location, use tmpfs for ram # disk data storage # ---- if ! mount -t tmpfs tmpfs $rwDir >/dev/null;then return 1 fi else # /.../ # write part is not a ram disk, create ext3 filesystem on it # check and mount the filesystem # ---- if [ $LOCAL_BOOT = "no" ] && [ $systemIntegrity = "clean" ];then if [ "$RELOAD_IMAGE" = "yes" ] || \ ! mount $rwDevice $rwDir >/dev/null then Echo "Checking filesystem for RW data on $rwDevice..." e2fsck -f $rwDevice -y if [ "$RELOAD_IMAGE" = "yes" ] || \ ! mount $rwDevice $rwDir >/dev/null then Echo "Creating filesystem for RW data on $rwDevice..." if ! mke2fs -j $rwDevice >/dev/null;then Echo "Failed to create ext3 filesystem" return 1 fi e2fsck -f $rwDevice -y >/dev/null fi else umount $rwDevice fi fi if ! mount $rwDevice $rwDir >/dev/null;then Echo "Failed to mount read/write filesystem" return 1 fi fi #====================================== # mount read only device #-------------------------------------- if ! kiwiMount "$roDevice" "$roDir" "" $loopf;then Echo "Failed to mount read only filesystem" return 1 fi #====================================== # setup overlay mount #-------------------------------------- if [ $unionFST = "aufs" ];then mount -t tmpfs tmpfs $xiDir >/dev/null || retval=1 mount -t aufs \ -o dirs=$rwDir=rw:$roDir=ro,xino=$xiDir/.aufs.xino none /mnt \ >/dev/null || return 1 else mount -t unionfs \ -o dirs=$rwDir=rw:$roDir=ro none /mnt >/dev/null || return 1 fi usleep 500000 return 0 } #====================================== # mountSystemCombined #-------------------------------------- function mountSystemCombined { local mountDevice=$1 local loopf=$2 local roDevice=$mountDevice local rwDevice=`getNextPartition $mountDevice` mkdir /read-only >/dev/null # /.../ # mount the read-only partition to /read-only and use # mount option -o ro for this filesystem # ---- if ! kiwiMount "$roDevice" "/read-only" "" $loopf;then Echo "Failed to mount read only filesystem" return 1 fi # /.../ # mount a tmpfs as /mnt which will become the root fs (/) later on # and extract the rootfs tarball with the RAM data and the read-only # and read-write links into the tmpfs. # ---- local rootfs=/read-only/rootfs.tar if [ ! -f $rootfs ];then Echo "Can't find rootfs tarball" umount "$roDevice" &>/dev/null return 1 fi # /.../ # count inode numbers for files in rootfs tarball # ---- local inr=`tar -tf $rootfs | wc -l` inr=`expr $inr \* 11 / 10 / 1024` inr=$inr"k" # /.../ # mount tmpfs, reserve max 512MB for the rootfs data # ---- mount -t tmpfs tmpfs -o size=512M,nr_inodes=$inr /mnt >/dev/null || return 1 if ! validateTarSize $rootfs;then systemException \ "Not enough RAM space available for temporary data" \ "reboot" fi cd /mnt && tar xf $rootfs >/dev/null && cd / # /.../ # create a /mnt/read-only mount point and move the /read-only # mount into the /mnt root tree. After that remove the /read-only # directory and create a link to /mnt/read-only instead # /read-only -> /mnt/read-only # ---- mkdir /mnt/read-only >/dev/null mount --move /read-only /mnt/read-only >/dev/null rm -rf /read-only >/dev/null ln -s /mnt/read-only /read-only >/dev/null || return 1 if ! echo $rwDevice | grep -q loop;then if partitionSize $rwDevice &>/dev/null;then # /.../ # mount the read-write partition to /mnt/read-write and create # a link to it: /read-write -> /mnt/read-write # ---- mkdir /mnt/read-write >/dev/null mount $rwDevice /mnt/read-write >/dev/null rm -f /read-write >/dev/null ln -s /mnt/read-write /read-write >/dev/null fi fi } #====================================== # mountSystemStandard #-------------------------------------- function mountSystemStandard { local mountDevice=$1 if [ ! -z $FSTYPE ] && [ ! $FSTYPE = "unknown" ] && [ ! $FSTYPE = "auto" ] then kiwiMount "$mountDevice" "/mnt" else mount $mountDevice /mnt >/dev/null fi return $? } #====================================== # mountSystem #-------------------------------------- function mountSystem { local retval=0 local OLDIFS=$IFS IFS=$IFS_ORIG #====================================== # set primary mount device #-------------------------------------- local mountDevice="$imageRootDevice" if test ! -z $1;then mountDevice="$1" fi #====================================== # wait for storage device to appear #-------------------------------------- if echo $mountDevice | grep -q ^/;then waitForStorageDevice $mountDevice fi #====================================== # check root tree type #-------------------------------------- if test ! -z $COMBINED_IMAGE;then mountSystemCombined "$mountDevice" $2 retval=$? elif test ! -z $UNIONFS_CONFIG;then mountSystemUnified $2 retval=$? else mountSystemStandard "$mountDevice" retval=$? fi IFS=$OLDIFS return $retval } #====================================== # cleanDirectory #-------------------------------------- function cleanDirectory { local directory=$1 shift 1 local save=$@ local tmpdir=`mktemp -d` for saveItem in $save;do mv $directory/$saveItem $tmpdir >/dev/null done rm -rf $directory/* mv $tmpdir/* $directory rm -rf $tmpdir } #====================================== # cleanInitrd #-------------------------------------- function cleanInitrd { cp /usr/bin/chroot /bin cp /usr/sbin/klogconsole /bin cp /sbin/killproc /bin cp /sbin/halt /bin/reboot for dir in /*;do case "$dir" in "/lib") continue ;; "/lib64") continue ;; "/bin") continue ;; "/mnt") continue ;; "/read-only") continue ;; "/read-write") continue ;; "/xino") continue ;; "/dev") continue ;; esac rm -rf $dir/* &>/dev/null done if test -L /read-only;then rm -f /read-only fi if test -L /read-write;then rm -f /read-write fi # mount opens fstab so we give them one touch /etc/fstab hash -r } #====================================== # searchAlternativeConfig #-------------------------------------- function searchAlternativeConfig { # Check config.IP in Hex (pxelinux style) localip=$IPADDR hexip1=`echo $localip | cut -f1 -d'.'` hexip2=`echo $localip | cut -f2 -d'.'` hexip3=`echo $localip | cut -f3 -d'.'` hexip4=`echo $localip | cut -f4 -d'.'` hexip=`printf "%02X" $hexip1 $hexip2 $hexip3 $hexip4` STEP=8 while [ $STEP -gt 0 ]; do hexippart=`echo $hexip | cut -b -$STEP` Echo "Checking for config file: config.$hexippart" fetchFile KIWI/config.$hexippart $CONFIG if test -s $CONFIG;then break fi let STEP=STEP-1 done # Check config.default if no hex config was found if test ! -s $CONFIG;then Echo "Checking for config file: config.default" fetchFile KIWI/config.default $CONFIG fi } #====================================== # runHook #-------------------------------------- function runHook { HOOK="/hooks/$1.sh" if [ -e $HOOK ]; then . $HOOK fi } #====================================== # getNextPartition #-------------------------------------- function getNextPartition { part=$1 nextPart=`echo $part | sed -e "s/\(.*\)[0-9]/\1/"` nextPartNum=`echo $part | sed -e "s/.*\([0-9]\)/\1/"` nextPartNum=`expr $nextPartNum + 1` nextPart="${nextPart}${nextPartNum}" echo $nextPart } #====================================== # startShell #-------------------------------------- function startShell { # /.../ # start a debugging shell on ELOG_BOOTSHELL # ---- if [ -z "$kiwistderr" ] && [ ! -z $kiwidebug ];then Echo "Starting boot shell on $ELOG_BOOTSHELL" setctsid -f $ELOG_BOOTSHELL /bin/bash -i fi } #====================================== # killShell #-------------------------------------- function killShell { # /.../ # kill debugging shell on ELOG_BOOTSHELL # ---- local umountProc=0 if [ ! -e /proc/mounts ];then mount -t proc proc /proc umountProc=1 fi if [ -z "$kiwistderr" ];then Echo "Stopping boot shell" fuser -k $ELOG_BOOTSHELL >/dev/null fi if [ $umountProc -eq 1 ];then umount /proc fi } #====================================== # waitForStorageDevice #-------------------------------------- function waitForStorageDevice { # /.../ # function to check access on a storage device # which could be a whole disk or a partition. # the function will wait until the size of the # storage device could be obtained or the check # counter equals 4 # ---- local device=$1 local check=0 while true;do partitionSize $device &>/dev/null if [ $? = 0 ];then return 0 fi if [ $check -eq 4 ];then return 1 fi Echo "Waiting for device $device to settle..." check=`expr $check + 1` sleep 2 done } #====================================== # waitForBlockDevice #-------------------------------------- function waitForBlockDevice { # /.../ # function to check if the given block device # exists. If not the function will wait until the # device appears or the check counter equals 4 # ---- local device=$1 local check=0 while true;do if [ -b $device ] || [ $check -eq 4 ];then break fi Echo "Waiting for device $device to settle..." check=`expr $check + 1` sleep 2 done } #====================================== # fetchFile #-------------------------------------- function fetchFile { # /.../ # the generic fetcher which is able to use different protocols # tftp,ftp, http, https. fetchFile is used in the netboot linuxrc # and uses curl and atftp to download files from the network # ---- local path=$1 local dest=$2 local izip=$3 local host=$4 local type=$5 if test -z "$path"; then systemException "No path specified" "reboot" fi if test -z "$host"; then if test -z "$SERVER"; then systemException "No server specified" "reboot" fi host=$SERVER fi if test -z "$type"; then if test -z "$SERVERTYPE"; then type="tftp" else type="$SERVERTYPE" fi fi if test "$izip" = "compressed"; then path="$path.gz" fi case "$type" in "http") if test "$izip" = "compressed"; then curl -f http://$host/$path 2>$TRANSFER_ERRORS_FILE |\ gzip -d > $dest 2>>$TRANSFER_ERRORS_FILE else curl -f http://$host/$path > $dest 2> $TRANSFER_ERRORS_FILE fi loadCode=$? ;; "https") if test "$izip" = "compressed"; then curl -f -k https://$host/$path 2>$TRANSFER_ERRORS_FILE |\ gzip -d > $dest 2>>$TRANSFER_ERRORS_FILE else curl -f -k https://$host/$path > $dest 2> $TRANSFER_ERRORS_FILE fi loadCode=$? ;; "ftp") if test "$izip" = "compressed"; then curl ftp://$host/$path 2>$TRANSFER_ERRORS_FILE |\ gzip -d > $dest 2>>$TRANSFER_ERRORS_FILE else curl ftp://$host/$path > $dest 2> $TRANSFER_ERRORS_FILE fi loadCode=$? ;; "tftp") validateBlockSize if [ -z "$multicast" ];then multicast="disable" fi if test "$izip" = "compressed"; then # mutlicast is disabled because you can't seek in a pipe atftp \ --option "disable multicast" \ --option "blksize $imageBlkSize" -g -r $path \ -l /dev/stdout $host 2>$TRANSFER_ERRORS_FILE |\ gzip -d > $dest 2>>$TRANSFER_ERRORS_FILE else atftp \ --option "$multicast multicast" \ --option "blksize $imageBlkSize" \ -g -r $path -l $dest $host &> $TRANSFER_ERRORS_FILE fi loadCode=$? ;; *) systemException "Unknown download type: $type" "reboot" ;; esac loadStatus=`cat $TRANSFER_ERRORS_FILE` return $loadCode } #====================================== # putFile #-------------------------------------- function putFile { # /.../ # the generic putFile function is used to upload boot data on # a server. Supported protocols are tftp, ftp, http, https # ---- local path=$1 local dest=$2 local host=$3 local type=$4 if test -z "$path"; then systemException "No path specified" "reboot" fi if test -z "$host"; then if test -z "$SERVER"; then systemException "No server specified" "reboot" fi host=$SERVER fi if test -z "$type"; then if test -z "$SERVERTYPE"; then type="tftp" else type="$SERVERTYPE" fi fi case "$type" in "http") curl -f -T $path http://$host/$dest > $TRANSFER_ERRORS_FILE 2>&1 return $? ;; "https") curl -f -T $path https://$host/$dest > $TRANSFER_ERRORS_FILE 2>&1 return $? ;; "ftp") curl -T $path ftp://$host/$dest > $TRANSFER_ERRORS_FILE 2>&1 return $? ;; "tftp") atftp -p -l $path -r $dest $host >/dev/null 2>&1 return $? ;; *) systemException "Unknown download type: $type" "reboot" ;; esac } #====================================== # importBranding #-------------------------------------- function importBranding { # /.../ # include possible custom boot loader and bootsplash files # to the system to allow to use them persistently # ---- if [ -f /image/loader/message ];then mv /image/loader/message /mnt/boot fi if [ -f /image/loader/branding/logo.mng ];then if [ -d /mnt/etc/bootsplash/themes ];then for theme in /mnt/etc/bootsplash/themes/*;do if [ -d $theme/images ];then cp /image/loader/branding/logo.mng $theme/images cp /image/loader/branding/logov.mng $theme/images cp /image/loader/branding/*.jpg $theme/images cp /image/loader/branding/*.cfg $theme/config fi done fi fi } #====================================== # validateRootTree #-------------------------------------- function validateRootTree { # /.../ # after the root of the system image has been mounted we should # check whether that mount is a valid system tree or not. Therefore # some sanity checks are made here # ---- if [ ! -x /mnt/sbin/init ];then systemException "/sbin/init no such file or not executable" "reboot" fi } #====================================== # getDiskID #-------------------------------------- function getDiskID { # /.../ # this function is able to turn a given standard device # name into the udev ID based representation # ---- local device=$1 if [ -z "$device" ];then echo $device return fi for i in /dev/disk/by-id/*;do if echo $i | grep -q edd-;then continue fi local dev=`readlink $i` dev=/dev/`basename $dev` if [ $dev = $device ];then echo $i return fi done echo $device } #====================================== # getDiskDevice #-------------------------------------- function getDiskDevice { # /.../ # this function is able to turn the given udev disk # ID label into the /dev/ device name # ---- local device=`readlink $1` if [ -z $device ];then echo $1 return fi device=`basename $device` device=/dev/$device echo $device } #====================================== # getDiskModel #-------------------------------------- function getDiskModels { # /.../ # this function returns the disk identifier as # registered in the sysfs layer # ---- local models=`cat /sys/block/*/device/model 2>/dev/null` if [ ! -z "$models" ];then echo $models; return fi echo "unknown" } #====================================== # setupInittab #-------------------------------------- function setupInittab { # /.../ # setup default runlevel according to /proc/cmdline # information. If textmode is set to 1 we will boot into # runlevel 3 # ---- local prefix=$1 if cat /proc/cmdline | grep -qi "textmode=1";then sed -i -e s"@id:.*:initdefault:@id:3:initdefault:@" $prefix/etc/inittab fi } #====================================== # setupConfigFiles #-------------------------------------- function setupConfigFiles { # /.../ # all files created below /config inside the initrd are # now copied into the system image # ---- cd /config find . -type d | while read d ; do mkdir -p /mnt/$d ; done find . -type f | while read f ; do cp $f /mnt/$f ; done cd / rm -rf /config } #====================================== # activateImage #-------------------------------------- function activateImage { # /.../ # move the udev created nodes from the initrd into # the system root tree call the pre-init phase which # already runs in the new tree and finaly switch the # new tree to be the new root (/) # ---- #====================================== # setup image name #-------------------------------------- local name if [ ! -z "$stickSerial" ];then name="$stickSerial on -> $stickDevice" elif [ ! -z "$imageName" ];then name=$imageName elif [ ! -z "$imageRootName" ];then name=$imageRootName elif [ ! -z "$imageRootDevice" ];then name=$imageRootDevice elif [ ! -z "$deviceDisk" ];then name=$deviceDisk else name="unknown" fi #====================================== # move union mount points to system #-------------------------------------- local roDir=/read-only local rwDir=/read-write local xiDir=/xino if [ -d $roDir ];then mkdir -p /mnt/$roDir && mount --move /$roDir /mnt/$roDir fi if [ -d $rwDir ];then mkdir -p /mnt/$rwDir && mount --move /$rwDir /mnt/$rwDir fi if [ -d $xiDir ];then mkdir -p /mnt/$xiDir && mount --move /$xiDir /mnt/$xiDir fi #====================================== # move device nodes #-------------------------------------- Echo "Activating Image: [$name]" reopenKernelConsole udevPending mount --move /dev /mnt/dev umount -t devpts /mnt/dev/pts udevKill udevPending #====================================== # copy boot log file into system image #-------------------------------------- mkdir -p /mnt/var/log cp /var/log/boot.kiwi /mnt/var/log/boot.kiwi #====================================== # run preinit stage #-------------------------------------- Echo "Calling preinit phase..." cd /mnt /mnt/sbin/pivot_root . mnt >/dev/null 2>&1 if test $? != 0;then PIVOT=false cleanInitrd && mount --move . / && chroot . ./preinit chroot . rm -f ./preinit chroot . rm -f ./include chroot . rm -rf ./image else PIVOT=true ./preinit rm -f ./preinit rm -f ./include rm -rf ./image fi } #====================================== # bootImage #-------------------------------------- function bootImage { # /.../ # call the system image init process and therefore # boot into the operating system # ---- local reboot=no local option=$@ #====================================== # turn runlevel 4 to 5 if found #-------------------------------------- option=$(echo $@ | sed -e s@4@5@) echo && Echo "Booting System: $option" export IFS=$IFS_ORIG #====================================== # check for reboot request #-------------------------------------- if [ ! -z "$OEM_REBOOT" ];then reboot=yes fi if [ $LOCAL_BOOT = "no" ] && [ ! -z "$REBOOT_IMAGE" ];then reboot=yes fi #====================================== # reboot if requested #-------------------------------------- if [ $reboot = "yes" ];then mount -n -o remount,ro / 2>/dev/null Echo "Reboot requested... rebooting now" /sbin/reboot -f -i >/dev/null 2>&1 fi #====================================== # directly boot #-------------------------------------- mount -n -o remount,rw / &>/dev/null exec < dev/console >dev/console 2>&1 if [ $PIVOT = "true" ];then umount -n -l /mnt fi umount proc &>/dev/null && \ umount proc &>/dev/null exec chroot . /sbin/init $option } #====================================== # setupUnionFS #-------------------------------------- function setupUnionFS { # /.../ # export the UNIONFS_CONFIG environment variable # which contains a three part coma separated list of the # following style: rwDevice,roDevice,unionType. The # devices are stores by disk ID if possible # ---- local rwDevice=`getDiskID $1` local roDevice=`getDiskID $2` local unionFST=$3 export UNIONFS_CONFIG="$rwDevice,$roDevice,$unionFST" } 070701001480600000816D000000000000000000000001495DB93000000403000000080000000100000000000000000000000800000000preinit#!/bin/bash #================ # FILE : preinit #---------------- # PROJECT : OpenSuSE KIWI Image System # COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved # : # AUTHOR : Marcus Schaefer # : # BELONGS TO : Operating System images # : # DESCRIPTION : This file is called after the image root # : has changed by the linuxrc script # : # STATUS : BETA #---------------- #====================================== # Functions... #-------------------------------------- . /include #====================================== # 1) start error log #-------------------------------------- Echo "Calling pre-init stage in system image" errorLogStart #====================================== # 2) update mount table #-------------------------------------- updateMTAB #====================================== # 3) create framebuffer devices #-------------------------------------- createFramebufferDevices 070701001F4A23000041ED000000000000000000000002495DB92F00000000000000080000000100000000000000000000000500000000boot070701001E8995000041ED000000000000000000000003495DB92E00000000000000080000000100000000000000000000000400000000dev07070100558FDA00001180000000000000000000000001495DB92E00000000000000080000000100000000000000000000000C00000000dev/initctl07070100558FCC000021B6000000000000000000000001495DB92E00000000000000080000000100000001000000070000000900000000dev/full07070100558FD20000A1FF000000000000000000000001495DB92E00000004000000080000000100000000000000000000000B00000000dev/stderrfd/207070100558FCE000021A4000000000000000000000001495DB92E00000000000000080000000100000001000000090000000C00000000dev/urandom07070100558FD30000A1FF000000000000000000000001495DB92E00000004000000080000000100000000000000000000000A00000000dev/stdinfd/007070100558FD6000061A0000000000000000000000001495DB92E00000000000000080000000100000007000000010000000A00000000dev/loop107070100558FD10000A1FF000000000000000000000001495DB92E0000000D000000080000000100000000000000000000000700000000dev/fd/proc/self/fd07070100558FCA000021B6000000000000000000000001495DB92E00000000000000080000000100000001000000030000000900000000dev/null07070100558FD40000A1FF000000000000000000000001495DB92E00000004000000080000000100000000000000000000000B00000000dev/stdoutfd/107070100558FD0000021B6000000000000000000000001495DB92E00000000000000080000000100000005000000020000000900000000dev/ptmx07070100558FD5000061A0000000000000000000000001495DB92E00000000000000080000000100000007000000000000000A00000000dev/loop0070701001E8996000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000000800000000dev/pts07070100558FD8000061A0000000000000000000000001495DB92E00000000000000080000000100000007000000030000000A00000000dev/loop307070100558FD9000011A0000000000000000000000001495DB92E00000000000000080000000100000000000000000000000900000000dev/blog07070100558FCF000021B6000000000000000000000001495DB92E00000000000000080000000100000005000000000000000800000000dev/tty07070100558FD7000061A0000000000000000000000001495DB92E00000000000000080000000100000007000000020000000A00000000dev/loop207070100558FCD000021B6000000000000000000000001495DB92E00000000000000080000000100000001000000080000000B00000000dev/random07070100558FCB000021B6000000000000000000000001495DB92E00000000000000080000000100000001000000050000000900000000dev/zero070701002008CB000041ED000000000000000000000002495DB93000000000000000080000000100000000000000000000000400000000sys070701001E89A1000041ED000000000000000000000007495DB92E00000000000000080000000100000000000000000000000400000000var070701001F0671000043FD000000000000000E00000003495DB92E00000000000000080000000100000000000000000000000900000000var/lock070701001F0672000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000001000000000var/lock/subsys070701004A803A0000A1FF000000000000000000000001495DB92E0000000A000000080000000100000000000000000000000900000000var/mailspool/mail070701001F0673000041ED000000000000000000000005495DB92E00000000000000080000000100000000000000000000000800000000var/run070701001F0674000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000001000000000var/run/setrans070701001F0675000041ED000000640000006500000002495DB92E00000000000000080000000100000000000000000000000D00000000var/run/dbus070701001F0676000041ED000000660000006700000004495DB92E00000000000000080000000100000000000000000000000D00000000var/run/hald070701001F4A0F000041ED000000660000006700000002495DB92E00000000000000080000000100000000000000000000001900000000var/run/hald/hald-runner070701001F0677000041ED000000660000006700000002495DB92E00000000000000080000000100000000000000000000001800000000var/run/hald/hald-local070701001E89A2000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000000800000000var/log070701001E89A3000041ED00000000000000000000000D495DB92E00000000000000080000000100000000000000000000000800000000var/lib070701001E89A4000041ED000000000000000000000003495DB92E00000000000000080000000100000000000000000000000D00000000var/lib/dpkg0707010089405C000081A4000000000000000000000001495DB92E00000000000000080000000100000000000000000000001400000000var/lib/dpkg/status0707010089405E000081A4000000000000000000000001495DB92E00000000000000080000000100000000000000000000001700000000var/lib/dpkg/available070701001E89A5000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000001500000000var/lib/dpkg/updates070701001F066E000041ED000000000000000000000003495DB92E00000000000000080000000100000000000000000000001100000000var/lib/hardware070701001F066F000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000001500000000var/lib/hardware/udi070701001F066C000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000000D00000000var/lib/dbus070701000243F2000081A4000000000000000000000001495DB92E00000021000000080000000100000000000000000000001800000000var/lib/dbus/machine-id5f493e08ebe6e057cd505480493f6e49 070701001F0669000041ED0000FFFE0000000000000002495DB92E00000000000000080000000100000000000000000000000F00000000var/lib/nobody070701001E89AA000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000000E00000000var/lib/empty070701001F066D000041F8000000650000006600000002495DB92E00000000000000080000000100000000000000000000001200000000var/lib/PolicyKit0707010001027C00008134000000000000006600000001495DB92E000000FA000000080000000100000000000000000000002700000000var/lib/PolicyKit/user-haldaemon.auths# This file lists authorizations for user haldaemon # # File format may change at any time; do not rely on it. To manage # authorizations use polkit-auth(1) instead. scope=grant:action-id=org.freedesktop.policykit.read:when=1228893786:granted-by=0 070701001F066A000041C0000000000000000000000002495DB92E00000000000000080000000100000000000000000000001400000000var/lib/pam_devperm070701001E89A6000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000000D00000000var/lib/zypp070701004BC249000081A4000000000000000000000001495DB92E00000025000000080000000100000000000000000000001F00000000var/lib/zypp/AnonymousUniqueId929a4ffa-c9d1-4338-86e0-b2cd6d191a25 070701001EC7DD000041ED000000090000000D00000002495DB92E00000000000000080000000100000000000000000000000D00000000var/lib/news070701001EC729000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000000D00000000var/lib/misc070701001F066B000041ED0000001E0000000000000002495DB92E00000000000000080000000100000000000000000000000F00000000var/lib/wwwrun070701001F0670000043FF000000000000000000000002495DB92E00000000000000080000000100000000000000000000000A00000000var/crash07070100200146000041ED000000000000000000000002495DB93000000000000000080000000100000000000000000000000400000000mnt070701001E8997000041ED000000000000000000000007495DB92E00000000000000080000000100000000000000000000000400000000etc070701001E8998000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000001100000000etc/ld.so.conf.d070701001E899A000041ED000000000000000000000003495DB92E00000000000000080000000100000000000000000000000900000000etc/udev070701001E899D000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000001100000000etc/udev/rules.d07070100324035000081A4000000000000000000000001495DB92E0000002E000000080000000100000000000000000000001E00000000etc/udev/rules.d/90-hal.rulesRUN+="socket:/org/freedesktop/hal/udev_event" 070701004AC408000081A4000000000000000000000001495DB92E000000DA000000080000000100000000000000000000001300000000etc/udev/udev.conf# The initial syslog(3) priority: "err", "info", "debug" or its # numerical equivalent. For runtime debugging, the daemons internal # state can be changed with: "udevadm control --log-priority=". udev_log="err" 0707010066027A000081A4000000000000000000000001495DB92E0000008A000000080000000100000000000000000000000F00000000etc/ld.so.conf/usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/lib/Xaw3d /usr/i386-suse-linux/lib /usr/local/lib /opt/kde3/lib include /etc/ld.so.conf.d/*.conf 070701006602820000A1FF000000000000000000000001495DB92E00000017000000080000000100000000000000000000000C00000000etc/termcap/usr/share/misc/termcap070701001E8999000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000000D00000000etc/xinetd.d070701004A8039000081A4000000000000000000000001495DB92E00000218000000080000000100000000000000000000001400000000etc/xinetd.d/systat# Finger, systat and netstat give out user information which may be # valuable to potential "system crackers." Many sites choose to disable # some or all of these services to improve security. # Try "telnet localhost systat" and "telnet localhost netstat" to see that # information yourself! # service systat { disable = yes socket_type = stream protocol = tcp wait = no user = nobody server = /bin/ps server_args = -auwwx } 0707010066027F000081A4000000000000000000000001495DB92E000004A8000000080000000100000000000000000000001200000000etc/nsswitch.conf# # /etc/nsswitch.conf # # An example Name Service Switch config file. This file should be # sorted with the most-used services at the beginning. # # The entry '[NOTFOUND=return]' means that the search for an # entry should stop if the search in the previous entry turned # up nothing. Note that if the search failed due to some other reason # (like no NIS server responding) then the search continues with the # next entry. # # Legal entries are: # # compat Use compatibility setup # nisplus Use NIS+ (NIS version 3) # nis Use NIS (NIS version 2), also called YP # dns Use DNS (Domain Name Service) # files Use the local files # [NOTFOUND=return] Stop searching if not found so far # # For more information, please read the nsswitch.conf.5 manual page. # # passwd: files nis # shadow: files nis # group: files nis passwd: compat group: compat hosts: files dns networks: files dns services: files protocols: files rpc: files ethers: files netmasks: files netgroup: files nis publickey: files bootparams: files automount: files nis aliases: files 070701001E899F000041ED000000000000000000000003495DB92E00000000000000080000000100000000000000000000000F00000000etc/ConsoleKit070701001E89A0000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000001D00000000etc/ConsoleKit/run-session.d07070100884069000081ED000000000000000000000001495DB92E0000027C000000080000000100000000000000000000003000000000etc/ConsoleKit/run-session.d/dbus_at_console.ck#!/bin/bash # # use consolekit to support legacy at_console setting # reason="$1" dir=/var/run/dbus/at_console # for at_console we are only interested in local sessions test "$CK_SESSION_IS_LOCAL" = true || exit 0 test "$reason" = "session_added" -o "$reason" = "session_removed" || exit 0 sessid=${CK_SESSION_ID##*/} sessid=${sessid//[^A-Za-z0-9]/_} test -n "$sessid" || exit 1 name=`getent passwd "$CK_SESSION_USER_UID" 2>/dev/null | awk -F: '{print $1}'` test -n "$name" || exit 1 if test "$reason" = "session_added"; then mkdir -p "$dir/$name" touch "$dir/$name/$sessid" else rm "$dir/$name/$sessid" rmdir "$dir/$name" fi 0707010066027B000081A4000000000000000000000001495DB92E00000071000000080000000100000000000000000000000A00000000etc/magic# Localstuff: file(1) magic(5) for locally observed files # global magic file is /usr/share/misc/magic(.mgc) 070701001E899E000041ED000000000000000000000002495DB92E00000000000000080000000100000000000000000000000F00000000etc/modprobe.d070701004BC247000081A4000000000000000000000001495DB92E00000086000000080000000100000000000000000000001B00000000etc/modprobe.d/pnp-aliases# do not edit this file, it will be overwritten on update # installed by udev alias acpi*:PNP0700:* floppy alias pnp:dPNP0700 floppy 070701004BC246000081A4000000000000000000000001495DB92E00000214000000080000000100000000000000000000002300000000etc/modprobe.d/unsupported-modules# # Every kernel module has a flag 'supported'. If this flag is not set loading # this module will taint your kernel. You will not get much help with a kernel # problem if your kernel is marked as tainted. In this case you firstly have # to avoid loading of unsupported modules. # # Setting allow_unsupported_modules 1 enables loading of unsupported modules # by modprobe, setting allow_unsupported_modules 0 disables it. This can # be overriden using the --allow-unsupported-modules commandline switch. allow_unsupported_modules 1 070701004BC248000081A4000000000000000000000001495DB92E0000035A000000080000000100000000000000000000001E00000000etc/modprobe.d/module-renames# Modules that have been renamed (from *-new to *, etc.) # # Note: we mostly care about storage drivers in this list; others # will not usually end up in sysconfig files, and so the appropriate # modules will get loaded when matchign hardware is detected. For # convenience, we also include the foo-new drivers from older # distributions here. # # This table has been created based on the results of the # misc/obsolete-module-aliases script in the SUSE kernel CVS. ## SLES8 => SLES10 alias bcm-new bcm alias aic79xx-new aic79xx ## SLES9 GA .. SLES9 SP3 => SLES10 alias bcm4400 b44 alias bcm5700 tg3 alias bcm5700-new tg3 alias carmel sx8 alias e1000-new e1000 alias lpfcdd lpfc alias qla2100 qla2xxx alias qla2200 qla2xxx alias qla2300 qla2xxx alias qla2322 qla2xxx alias qla2400 qla2xxx alias qla6312 qla2xxx alias qla6322 qla2xxx alias tg3-new tg3 0707010066022A000081A4000000000000000000000001495DB92E00002131000000080000000100000000000000000000001000000000etc/bash.bashrc# /etc/bash.bashrc for SuSE Linux # # PLEASE DO NOT CHANGE /etc/bash.bashrc There are chances that your changes # will be lost during system upgrades. Instead use /etc/bash.bashrc.local # for your local settings, favourite global aliases, VISUAL and EDITOR # variables, etc ... # # Check which shell is reading this file # if test -z "$is" ; then if test -f /proc/mounts ; then case "`/bin/ls --color=never -l /proc/$$/exe`" in */bash) is=bash read -t 1 a r /dev/null` test -z "$EUID" && readonly EUID=`path id -u 2> /dev/null` # # Colored file listings # if test -x /usr/bin/dircolors ; then # # set up the color-ls environment variables: # if test -f $HOME/.dir_colors ; then eval "`/usr/bin/dircolors -b $HOME/.dir_colors`" elif test -f /etc/DIR_COLORS ; then eval "`/usr/bin/dircolors -b /etc/DIR_COLORS`" fi fi # # ls color option depends on the terminal # If LS_COLROS is set but empty, the terminal has no colors. # if test "${LS_COLORS+empty}" = "${LS_COLORS:+empty}" ; then LS_OPTIONS=--color=tty else LS_OPTIONS=--color=none fi if test "$UID" = 0 ; then LS_OPTIONS="-A -N $LS_OPTIONS -T 0" else LS_OPTIONS="-N $LS_OPTIONS -T 0" fi # # Avoid trouble with Emacs shell mode # if test "$EMACS" = "t" ; then LS_OPTIONS='-N --color=none -T 0'; path tset -I -Q path stty cooked pass8 dec nl -echo fi export LS_OPTIONS # # Set prompt and aliases to something useful for an interactive shell # case "$-" in *i*) # # Some useful functions # if test -z "$restricted" ; then startx () { test -x /usr/bin/startx || { echo "No startx installed" 1>&2 return 1; } /usr/bin/startx ${1+"$@"} 2>&1 | tee $HOME/.xsession-errors } remount () { /bin/mount -o remount,${1+"$@"} ; } fi # # Set prompt to something useful # case "$is" in bash) # Force a reset of the readline library unset TERMCAP # Returns short path (last two directories) spwd () { ( IFS=/ set $PWD if test $# -le 3 ; then echo "$PWD" else eval echo \"..\${$(($#-1))}/\${$#}\" fi ) ; } # Set xterm prompt with short path (last 18 characters) ppwd () { local _t="$1" _w _x _u="$USER" _h="$HOST" test -n "$_t" || return test "${_t#tty}" = $_t && _t=pts/$_t test -O /dev/$_t || return _w="$(dirs +0)" _x=$((${#_w}-18)) test ${#_w} -le 18 || _w="...${_w#$(printf "%.*s" $_x "$_w")}" printf "\e]2;%s@%s:%s\007\e]1;%s\007" "$_u" "$_h" "$_w" "$_h" > /dev/$_t } # If set: do not follow sym links # set -P # # Other prompting for root _t="" if test "$UID" -eq 0 ; then _u="\h" _p=" #" else _u="\u@\h" _p=">" if test \( "$TERM" = "xterm" -o "${TERM#screen}" != "$TERM" \) \ -a -z "$EMACS" -a -z "$MC_SID" -a -n "$DISPLAY" then _t="\$(ppwd \l)" fi if test -n "$restricted" ; then _t="" fi fi case "$(declare -p PS1 2> /dev/null)" in *-x*PS1=*) ;; *) # With full path on prompt PS1="${_t}${_u}:\w${_p} " # # With short path on prompt # PS1="${_t}${_u}:\$(spwd)${_p} " # # With physical path even if reached over sym link # PS1="${_t}${_u}:\$(pwd -P)${_p} " ;; esac # Colored root prompt (see bugzilla #144620) if test "$UID" -eq 0 -a -t ; then _bred="$(path tput bold 2> /dev/null; path tput setaf 1 2> /dev/null)" _sgr0="$(path tput sgr0 2> /dev/null)" PS1="\[$_bred\]$PS1\[$_sgr0\]" unset _bred _sgr0 fi unset _u _p _t ;; ash) cd () { local ret command cd "$@" ret=$? PWD=$(pwd) if test "$UID" = 0 ; then PS1="${HOST}:${PWD} # " else PS1="${USER}@${HOST}:${PWD}> " fi return $ret } cd . ;; ksh) # Some users of the ksh are not common with the usage of PS1. # This variable should not be exported, because normally only # interactive shells set this variable by default to ``$ ''. if test "${PS1-\$ }" = '$ ' ; then if test "$UID" = 0 ; then PS1="${HOST}:"'${PWD}'" # " else PS1="${USER}@${HOST}:"'${PWD}'"> " fi fi ;; zsh) # setopt chaselinks if test "$UID" = 0; then PS1='%n@%m:%~ # ' else PS1='%n@%m:%~> ' fi ;; *) # PS1='\u:\w> ' PS1='\h:\w> ' ;; esac PS2='> ' if test "$is" = "ash" ; then # The ash shell does not have an alias builtin in # therefore we use functions here. This is a seperate # file because other shells may run into trouble # if they parse this even if they do not expand. test -s /etc/profile.d/alias.ash && . /etc/profile.d/alias.ash else unalias ls 2>/dev/null case "$is" in bash) alias ls='ls $LS_OPTIONS' ;; zsh) alias ls='\ls $=LS_OPTIONS' ;; *) alias ls='/bin/ls $LS_OPTIONS' ;; esac alias dir='ls -l' alias ll='ls -l' alias la='ls -la' alias l='ls -alF' alias ls-l='ls -l' # # Set some generic aliases # alias o='less' alias ..='cd ..' alias ...='cd ../..' alias cd..='cd ..' if test "$is" != "ksh" ; then alias -- +='pushd .' alias -- -='popd' fi alias rd=rmdir alias md='mkdir -p' if test "$is" = "bash" -a ! -x /bin/which -a ! -x /usr/bin/which ; then # # Other shells use the which command in path (e.g. ash) or # their own builtin for the which command (e.g. ksh and zsh). # _which () { local file=$(type -p ${1+"$@"} 2>/dev/null) if test -n "$file" -a -x "$file"; then echo "$file" return 0 fi hash -r type -P ${1+"$@"} } alias which=_which fi alias rehash='hash -r' alias you='test "$EUID" = 0 && /sbin/yast2 online_update || su - -c "/sbin/yast2 online_update"' if test "$is" != "ksh" ; then alias beep='echo -en "\007"' else alias beep='echo -en "\x07"' fi alias unmount='echo "Error: Try the command: umount" 1>&2; false' test -s $HOME/.alias && . $HOME/.alias fi # # Expert mode: if we find $HOME/.bash.expert we skip our settings # used for interactive completion and read in the expert file. # if test "$is" = "bash" -a -r $HOME/.bash.expert ; then . $HOME/.bash.expert elif test "$is" = "bash" ; then # Complete builtin of the bash 2.0 and higher case "$BASH_VERSION" in [2-9].*) if test -e $HOME/.bash_completion ; then . $HOME/.bash_completion elif test -e /etc/bash_completion ; then . /etc/bash_completion elif test -s /etc/profile.d/complete.bash ; then . /etc/profile.d/complete.bash fi for s in /etc/bash_completion.d/*.sh ; do test -r $s && . $s done if test -f /etc/bash_command_not_found ; then . /etc/bash_command_not_found fi ;; *) ;; esac fi # Do not save dupes and lines starting by space in the bash history file HISTCONTROL=ignoreboth if test "$is" = "ksh" ; then # Use a ksh specific history file and enable # emacs line editor : ${HISTFILE=$HOME/.kshrc_history} : ${VISUAL=emacs} case $(set -o) in *multiline*) set -o multiline esac fi # command not found handler in zsh version if test "$is" = "zsh" ; then if test -f /etc/zsh_command_not_found ; then . /etc/zsh_command_not_found fi fi ;; esac # # Just in case the user excutes a command with ssh # if test -n "$SSH_CONNECTION" -a -z "$PROFILEREAD" ; then _SOURCED_FOR_SSH=true . /etc/profile > /dev/null 2>&1 unset _SOURCED_FOR_SSH fi if test "$is" != "ash" ; then # # And now let's see if there is a local bash.bashrc # (for options defined by your sysadmin, not SuSE Linux) # test -s /etc/bash.bashrc.local && . /etc/bash.bashrc.local fi if test -n "$restricted" -a -z "$PROFILEREAD" ; then PATH=/usr/lib/restricted/bin export PATH fi # # End of /etc/bash.bashrc # 0707010066027C000081A4000000000000000000000001495DB92E00002A69000000080000000100000000000000000000001200000000etc/modprobe.conf# # Copyright (c) 1996-2002 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # Author: Hubert Mantel , 1996-2002 # # Configuration file for loadable modules; used by modprobe # # Please don't edit this file. Place your settings into # /etc/modprobe.conf.local instead. # # ######################################################################## # Aliases - specify your hardware ######################################################################## install eth0 /bin/true install eth1 /bin/true install tr0 /bin/true install scsi_hostadapter /bin/true install fb0 /bin/true ######################################################################## # only used for Mylex or Compaq Raid as module ######################################################################## install block-major-48 /bin/true install block-major-49 /bin/true install block-major-72 /bin/true install block-major-73 /bin/true ######################################################################## # only needed for fifth and sixth IDE adaptor ######################################################################## install block-major-56 /bin/true install block-major-57 /bin/true ######################################################################## # mouse (for older busmice) ######################################################################## install char-major-10 /bin/true ######################################################################## # If you want to use the new autofs4 ######################################################################## alias autofs autofs4 ######################################################################## # For parallel port devices, uncomment the following two lines and # change "frpw" to the protocol type you use ######################################################################## # install paride /sbin/modprobe --ignore-install paride && { /sbin/modprobe --ignore-install frpw; } # remove paride { /sbin/modprobe -r --ignore-remove frpw; } ; /sbin/modprobe -r --ignore-remove paride ######################################################################## # Options; these are examples; uncomment and modify the lines you need ######################################################################## # options cdu31a cdu31a_port=0x340 cdu31a_irq=0 # options aztcd aztcd=0x320 # options cm206 cm206=0x340,11 # options gscd gscd=0x340 # options mcdx mcdx=0x300,11 # options optcd optcd=0x340 # options sjcd sjcd_base=0x340 # options sonycd535 sonycd535=0x340 # options ne io=0x300 irq=5 # Use this if you have two cards: # options ne io=0x300,0x320 irq=5,7 # options tulip options=0 # options 3c59x options=0 # options 3c501 io=0x280 irq=5 # options 3c503 io=0x280 irq=5 xcvr=0 # options 3c505 io=0x300 irq=10 # options 3c507 io=0x300 irq=10 # options 3c509 irq=10 # options at1700 io=0x260 irq=10 # options wd io=0x300 irq=10 # options smc9194 io=0x200 irq=10 ifport=0 # options e2100 io=0x300 irq=10 mem=0xd0000 xcvr=0 # options depca io=0x200 irq=7 # options ewrk3 io=0x300 irq=10 # options eexpress io=0x300 irq=10 # options hp io=0x300 irq=10 # options hp100 hp100_port=0x380 # options ac3200 io=0x300 irq=10 mem=0xd0000 # options de620 io=0x378 irq=7 bnc=1 # options ibmtr io=0xa20 # options arcnet io=0x300 irq=10 shmem=0xd0000 # options plip io=0x378 irq=7 # options eepro io=0x260 irq=10 mem=0x6000 # options eth16i io=0x2a0 irq=10 # options ni52 io=0x360 irq=9 memstart=0xd0000 memend=0xd4000 # options bttv pll=1 radio=0 card=0 # options tuner type=0 # options msp3400 once=1 simple=1 # install bttv /sbin/modprobe --ignore-install bttv && { /sbin/modprobe -k tuner; /sbin/modprobe -k msp3400; } # install dummy0 /sbin/modprobe -o dummy0 --ignore-install dummy install dummy1 /sbin/modprobe -o dummy1 --ignore-install dummy remove dummy0 /sbin/modprobe -r -o dummy0 --ignore-remove dummy remove dummy1 /sbin/modprobe -r -o dummy1 --ignore-remove dummy ######################################################################## # block dev aliases ######################################################################## install block-major-3 /bin/true alias block-major-13 xd alias block-major-15 cdu31a alias block-major-16 gscd alias block-major-17 optcd alias block-major-18 sjcd alias block-major-20 mcdx install block-major-22 /bin/true alias block-major-24 sonycd535 alias block-major-29 aztcd alias block-major-32 cm206 install block-major-33 /bin/true install block-major-34 /bin/true # network block device install block-major-43 /bin/true alias block-major-45 pd alias block-major-46 pcd alias block-major-47 pf ######################################################################## # char dev aliases ######################################################################## install char-major-10-134 /bin/true install char-major-10-135 /bin/true alias char-major-10-175 agpgart alias char-major-10-181 toshiba alias char-major-10-250 sonypi options sonypi minor=250 install char-major-15 /bin/true alias char-major-19 cyclades alias char-major-20 cyclades install char-major-29 /bin/true # alias char-major-43 hisax # alias char-major-44 hisax # alias char-major-45 hisax install char-major-43 /bin/true install char-major-44 /bin/true install char-major-45 /bin/true alias char-major-67 coda alias char-major-75 specialix alias char-major-76 specialix alias char-major-81 videodev install char-major-81-0 /bin/true install char-major-81-1 /bin/true install char-major-81-2 /bin/true install char-major-81-3 /bin/true alias char-major-96 pt alias char-major-97 pg # remove this if sound is configured install char-major-116 /bin/true ######################################################################## # ppp over ethernet # the kernel 2.2 uses pppox # the kernel 2.4 uses pppoe ######################################################################## alias char-major-144 pppoe ######################################################################## # IrDA ######################################################################## alias char-major-161 ircomm-tty alias char-major-162 raw ######################################################################## # ISDN ######################################################################## install b1pci /bin/true install c4 /bin/true install sc /bin/true install hisax /bin/true install hisax_fcpcipnp /bin/true install hfc4s8s_l1 /bin/true install hysdn /bin/true install pcbit /bin/true install t1pci /bin/true install divas /bin/true install fcdsl /bin/true install fcdsl2 /bin/true install fcpci /bin/true install fcpnp /bin/true install fcdslsl /etc/sysconfig/isdn/scripts/hotplug_pci ######################################################################## # USB ######################################################################## install char-major-166 /bin/true ######################################################################## # Moxa Multiport Serial Boards ######################################################################## alias char-major-172 moxa alias char-major-173 moxa # options moxa type=2,,, baseaddr=0xdc000,,, numports=8,,, alias char-major-174 mxser alias char-major-175 mxser # options mxser ioaddr=0x180 #alias char-major-180 usbcore alias char-major-188 usbserial alias char-major-212 /bin/true alias binfmt-204 binfmt_aout alias binfmt-263 binfmt_aout alias binfmt-264 binfmt_aout alias binfmt-267 binfmt_aout alias binfmt-0064 binfmt_aout alias binfmt-0008 binfmt_aout alias iso9660 isofs # alias tty-ldisc-7 6pack install tty-ldisc-7 /bin/true # alias ax0 mkiss install ax0 /bin/true # alias sp0 6pack install sp0 /bin/true alias slip0 slip alias sl0 slip alias slip1 slip alias sl1 slip ######################################################################## # the kernel 2.2 uses ppp.o as ppp driver, # the kernel 2.4 uses ppp_generic.o ######################################################################## alias ppp0 ppp_generic alias ppp1 ppp_generic alias plip0 plip alias plip1 plip # Tunnel interfaces alias sit0 ipv6 alias gre0 ip_gre alias ipip0 ipip alias xfrm-type-2-50 esp4 alias xfrm-type-2-51 ah4 alias xfrm-type-2-108 ipcomp alias xfrm-type-10-50 esp6 alias xfrm-type-10-51 ah6 alias xfrm-type-10-108 ipcomp6 # Linux-ABI install binfmt_misc /sbin/modprobe --ignore-install binfmt_misc && { mount -t binfmt_misc none /proc/sys/fs/binfmt_misc; } remove binfmt_misc { umount /proc/sys/fs/binfmt_misc; } ; /sbin/modprobe -r --ignore-remove binfmt_misc # NFS alias nfs4 nfs # rpc_pipefs install rpc_pipefs /sbin/modprobe sunrpc # we don't want ide-scsi handle CD drives [#242009] options ide-scsi idescsi_nocd=1 # pata_acpi is useful for certain limited cases but it tries to attach any # controller with IDE class code causing more harm than good if loaded by # default. Blacklist it so that it can be used selectively. blacklist pata_acpi # end of common part for modprobe.conf # begin of i386 part for modprobe.conf alias parport_lowlevel parport_pc # disable DMA for parallel port (bnc#180390) options parport_pc dma=none # options parport_pc io=0x378 irq=none # If you have multiple parallel ports, specify them this way: # options parport_pc io=0x378,0x278 irq=none,none # Linux ACP modem (Mwave) alias char-major-10-219 mwave # options mwave dspirq=10 dspio=0x130 uartirq=3 uartio=0x2f8 # IBM thinkpad tpctl # see /usr/share/doc/packages/tpctl/ alias char-major-10-170 thinkpad # options thinkpad enable_smapi=0 # required for DRI support on SiS chips options sisfb mode=none mem=12288 # ata_piix can't handle ICH6 in AHCI mode install ata_piix /sbin/modprobe ahci 2>&1 |:; /sbin/modprobe --ignore-install ata_piix # QEMU/KVM can handle ACPI Hotplugging alias dmi:bvnQEMU:bvrQEMU:* acpiphp # end of i386 part for modprobe.conf # please keep this at the end and add local modifications to modules.conf.local include /etc/modprobe.d include /etc/modprobe.conf.local 0707010066027D00008124000000000000000000000001495DB92E0000001B000000080000000100000000000000000000001800000000etc/modprobe.conf.localoptions brd rd_size=512000 07070100660279000081A4000000000000000000000001495DB92E000001A8000000080000000100000000000000000000000A00000000etc/grouproot:x:0: bin:x:1:daemon daemon:x:2: sys:x:3: tty:x:5: disk:x:6: lp:x:7: www:x:8: kmem:x:9: wheel:x:10: mail:x:12: news:x:13: uucp:x:14: shadow:x:15: dialout:x:16: audio:x:17: floppy:x:19: cdrom:x:20: console:x:21: utmp:x:22: public:x:32: video:x:33: games:x:40: xok:x:41: trusted:x:42: modem:x:43: ftp:x:49: man:x:62: users:x:100: nobody:x:65533: nogroup:x:65534:nobody messagebus:!:101: polkituser:!:102: haldaemon:!:103: 07070100660280000081A4000000000000000000000001495DB92E000002F7000000080000000100000000000000000000000B00000000etc/passwdroot:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false games:x:12:100:Games account:/var/games:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash news:x:9:13:News system:/etc/news:/bin/bash uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash messagebus:x:100:101:User for D-Bus:/var/run/dbus:/bin/false polkituser:x:101:102:PolicyKit:/var/run/PolicyKit:/bin/false haldaemon:x:102:103:User for haldaemon:/var/run/hald:/bin/false 0707010066028300008180000000000000000000000001495DB92E00000000000000080000000100000000000000000000000E00000000etc/.pwd.lock07070100660263000081A4000000000000000000000001495DB92E0000001A000000080000000100000000000000000000001000000000etc/filesystemsvfat hfs minix reiserfs * 0707010066027E000081A4000000000000000000000001495DB92E00000000000000080000000100000000000000000000000900000000etc/mtab07070100660281000081A4000000000000000000000001495DB92E0000029A000000080000000100000000000000000000001300000000etc/scsi_id.config# # scsi_id configuration # # lower or upper case has no effect on the left side. Quotes (") are # required for spaces in values. Model is the same as the SCSI # INQUIRY product identification field. Per the SCSI INQUIRY, the vendor # is limited to 8 bytes, model to 16 bytes. # # The first matching line found is used. Short matches match longer ones, # if you do not want such a match space fill the extra bytes. If no model # is specified, only the vendor string need match. # # options= # vendor=string[,model=string],options= # some libata drives require vpd page 0x80 vendor="ATA",options=-p 0x80 070701002A4039000081A4000000000000000000000001495DB92E00000759000000080000000100000000000000000000000900000000.profilekiwi_iname="initrd-isoboot-suse-11.1" kiwi_timezone="" kiwi_type="cpio" kiwi_usbdrivers="drivers/usb/host/ehci-hcd.ko,drivers/usb/host/uhci-hcd.ko,drivers/usb/core/usbcore.ko,drivers/usb/storage/usb-storage.ko" kiwi_language="en_US.UTF-8" kiwi_revision="1810" kiwi_profiles="default" kiwi_keytable="" kiwi_iversion="2.1.2" kiwi_size="60M" kiwi_compressed="yes" kiwi_delete="ConsoleKit ConsoleKit-32bit PolicyKit aaa_skel audit-libs audit-libs-32bit bind-libs bind-utils binutils blocxx bootsplash bootsplash-branding-openSUSE cpio cracklib-dict-full cron cyrus-sasl db dbus-1-glib device-mapper dhcpcd diffutils expat fillup freetype2 fribidi gawk gdbm gfxboot gfxboot-devel glib2 glib2-lang glibc-locale gnome-filesystem gpg gpg2 grub hdparm info insserv iproute2 irqbalance keyutils-libs libblkid1 libbz2-1 libcom_err2 libexpat1 libext2fs2 libjpeg liblcms libmng libnscd libopenssl0_9_8 libsmbios-libs libtiff3 libxcrypt libxcrypt-32bit libxml2 libzio limal limal-bootloader limal-perl logrotate lvm2 make mdadm memtest86+ mingetty mkinitrd mktemp mtools net-tools netcfg openSUSE-release openldap2-client openslp openssl-certs pam pam-32bit pam-config pam-modules parted pcre perl perl-Bootloader perl-HTML-Parser perl-HTML-Tagset perl-base perl-gettext permissions pm-utils pmtools popt postfix pwdutils resmgr satsolver-tools setserial suse-build-key sysconfig syslinux syslog-ng xorg-x11-libX11 xorg-x11-libXau xorg-x11-libxcb" kiwi_drivers="drivers/hid/*,drivers/ide/*,drivers/block/loop.ko,drivers/block/brd.ko,fs/ext3/*,fs/ext2/*,fs/fat/*,fs/vfat/*,fs/binfmt_aout.ko,fs/binfmt_misc.ko,fs/mbcache.ko,fs/quota_v1.ko,fs/quota_v2.ko,fs/jbd/*,fs/fuse/*,fs/squashfs/*,updates/aufs.ko,weak-updates/aufs.ko,fs/nls/nls_utf8.ko,fs/nls/nls_cp437.ko,fs/nls/nls_iso8859-1.ko,drivers/cdrom/*,drivers/scsi/*,drivers/message/fusion/*,drivers/ata/*,drivers/parport/*,drivers/acpi/dock.ko" 070701001E0E8F000081A4000000000000000000000001495DB92E0000823B000000080000000100000000000000000000000900000000.kconfig#================ # FILE : KIWIConfig.sh #---------------- # PROJECT : OpenSUSE Build-Service # COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH, Germany # : # AUTHOR : Marcus Schaefer # : # BELONGS TO : Operating System images # : # DESCRIPTION : This module contains common used functions # : for the config.sh image scripts # : # : # STATUS : Development #---------------- #====================================== # suseInsertService #-------------------------------------- function suseInsertService { # /.../ # Recursively insert a service. If there is a service # required for this service it will be inserted first # ----- local service=$1 local result while true;do result=`/sbin/insserv $service 2>&1` if [ $? = 0 ];then echo "Service $service inserted" break else result=`echo $result | head -n 1 | cut -f3 -d " "` if [ -f /etc/init.d/$result ];then suseInsertService /etc/init.d/$result else echo "$service: required service: $result not found...skipped" break fi fi done } #====================================== # suseRemoveService #-------------------------------------- function suseRemoveService { # /.../ # Remove a service and its dependant services # using insserv -r # ---- local service=/etc/init.d/$1 while true;do /sbin/insserv -r $service &>/dev/null if [ $? = 0 ];then echo "Service $service removed" break else result=`/sbin/insserv -r $service 2>&1|tail -n 2|cut -f10 -d " "` if [ -f /etc/init.d/$result ];then suseRemoveService $result else echo "$service: $result not found...skipped" break fi fi done } #====================================== # suseActivateServices #-------------------------------------- function suseActivateServices { # /.../ # Check all services in /etc/init.d/ and activate them # by calling insertService # ----- for i in /etc/init.d/*;do if [ -x $i ] && [ -f $i ];then echo $i | grep -q skel if [ $? = 0 ];then continue fi suseInsertService $i fi done } #====================================== # suseActivateDefaultServices #-------------------------------------- function suseActivateDefaultServices { # /.../ # Call all postin scriptlets which among other things activates # all default services required using insserv # ----- local ifss=$IFS local file=kiwi-services.default local name="" local name1=$name local name2=$name rm -f $file for p in `rpm -qa --qf "%{NAME}\n"`;do rpm -q --qf \ "%|POSTIN?{%|POSTINPROG?{}|%{POSTIN}\n}:{%|POSTINPROG?{}|}|" \ $p > $p.sh if [ -s "$p.sh" ];then echo "Calling post script $p.sh" bash $p.sh 2>&1 cat $p.sh | sed -e s@\$SCRIPTNAME@$p@g | grep insserv >> $file fi rm -f $p.sh done IFS=" " for i in \ `cat $file | grep -v ^.*# | cut -f2- -d"/" | grep ^insserv` do name=`echo $i | cut -f2 -d. | cut -f2 -d/` if echo $name | grep -q insserv; then name1=`echo $name | cut -f2 -d" "` name2=`echo $name | cut -f3 -d" "` if [ ! -z $name1 ];then name=$name1 fi if [ ! -z $name2 ];then name=$name2 fi else name=`echo $name | tr -d " "` fi if [ -f /etc/init.d/$name ];then echo $name >> kiwi-services.tmp fi done for i in `cat kiwi-services.tmp | sort | uniq`;do suseInsertService $i done rm -f kiwi-services.tmp rm -f $file IFS=$ifss } #====================================== # suseService #-------------------------------------- function suseService { # /.../ # if a service exist then enable or disable it using chkconfig # example : suseService apache2 on # example : suseService apache2 off # ---- local service=$1 local action=$2 if [ -x /etc/init.d/$i ] && [ -f /etc/init.d/$service ];then if [ $action = on ];then /sbin/chkconfig $service on elif [ $action = off ];then /sbin/chkconfig $service off fi fi } #====================================== # suseServiceDefaultOn #-------------------------------------- function suseServiceDefaultOn { # /.../ # Some basic services that needs to be on. # ---- services=( boot.rootfsck boot.cleanup boot.localfs boot.localnet boot.clock policykitd dbus consolekit haldaemon network atd syslog cron kbd ) for i in "${services[@]}";do if [ -x /etc/init.d/$i ] && [ -f /etc/init.d/$i ];then /sbin/chkconfig $i on fi done } #====================================== # suseCloneRunlevel #-------------------------------------- function suseCloneRunlevel { # /.../ # Clone the given runlevel to work in the same way # as the default runlevel 3. # ---- local clone=$1 if [ -z "$clone" ];then echo "suseCloneRunlevel: no runlevel given... abort" return 1 fi if [ $clone = 3 ];then echo "suseCloneRunlevel: can't clone myself... abort" return 1 fi if [ -d /etc/init.d/rc$clone.d ];then rm -rf /etc/init.d/rc$clone.d fi cp -a /etc/init.d/rc3.d /etc/init.d/rc$clone.d sed -i -e s"@#l$clone@l4@" /etc/inittab } #====================================== # baseSetupOEMPartition #-------------------------------------- function baseSetupOEMPartition { local oemfile=/config.oempartition if [ -e $oemfile ];then echo "config.oempartition already defined:" cat $oemfile return fi if [ ! -z "$kiwi_oemreboot" ];then echo "Setting up OEM_REBOOT=1" echo "OEM_REBOOT=1" >> $oemfile fi if [ ! -z "$kiwi_oemswap" ];then echo "Setting up OEM_WITHOUTSWAP=1" echo "OEM_WITHOUTSWAP=1" >> $oemfile fi if [ ! -z "$kiwi_oemswapMB" ];then echo "Setting up OEM_SWAPSIZE=$kiwi_oemswapMB" echo "OEM_SWAPSIZE=$kiwi_oemswapMB" >> $oemfile fi if [ ! -z "$kiwi_oemhome" ];then echo "Setting up OEM_WITHOUTHOME=1" echo "OEM_WITHOUTHOME=1" >> $oemfile fi if [ ! -z "$kiwi_oemrootMB" ];then echo "Setting up OEM_SYSTEMSIZE=$kiwi_oemrootMB" echo "OEM_SYSTEMSIZE=$kiwi_oemrootMB" >> $oemfile fi if [ ! -z "$kiwi_oemtitle" ];then echo "Setting up OEM_BOOT_TITLE=$kiwi_oemtitle" echo "OEM_BOOT_TITLE=$kiwi_oemtitle" >> $oemfile fi if [ ! -z "$kiwi_oemrecovery" ];then echo "Setting up OEM_RECOVERY=1" echo "OEM_RECOVERY=1" >> $oemfile fi } #====================================== # baseSetupUserPermissions #-------------------------------------- function baseSetupUserPermissions { while read line in;do dir=`echo $line | cut -f6 -d:` uid=`echo $line | cut -f3 -d:` usern=`echo $line | cut -f1 -d:` group=`echo $line | cut -f4 -d:` if [ -d "$dir" ] && [ $uid -gt 200 ] && [ $usern != "nobody" ];then group=`cat /etc/group | grep "$group" | cut -f1 -d:` chown -c -R $usern:$group $dir/* fi done < /etc/passwd } #====================================== # baseSetupBoot #-------------------------------------- function baseSetupBoot { if [ -f /linuxrc ];then cp linuxrc init exit 0 fi } #====================================== # suseConfig #-------------------------------------- function suseConfig { #====================================== # keytable #-------------------------------------- if [ ! -z "$kiwi_keytable" ];then cat etc/sysconfig/keyboard |\ sed -e s"@KEYTABLE=\".*\"@KEYTABLE=\"$kiwi_keytable\"@" \ > etc/sysconfig/keyboard.new mv etc/sysconfig/keyboard.new etc/sysconfig/keyboard fi #====================================== # locale #-------------------------------------- if [ ! -z "$kiwi_language" ];then cat /etc/sysconfig/language |\ sed -e s"@RC_LANG=\".*\"@RC_LANG=\"$kiwi_language\"@" \ > etc/sysconfig/language.new mv etc/sysconfig/language.new etc/sysconfig/language fi #====================================== # timezone #-------------------------------------- if [ ! -z "$kiwi_timezone" ];then if [ -f /usr/share/zoneinfo/$kiwi_timezone ];then mv /usr/share/zoneinfo/$kiwi_timezone /etc/localtime else echo "timezone: $kiwi_timezone not found" fi fi #====================================== # SuSEconfig #-------------------------------------- /sbin/SuSEconfig } #====================================== # baseGetPackagesForDeletion #-------------------------------------- function baseGetPackagesForDeletion { echo $kiwi_delete } #====================================== # baseGetProfilesUsed #-------------------------------------- function baseGetProfilesUsed { echo $kiwi_profiles } #====================================== # baseCleanMount #-------------------------------------- function baseCleanMount { umount /proc/sys/fs/binfmt_misc umount /proc umount /dev/pts umount /sys } #====================================== # baseStripMans #-------------------------------------- function baseStripMans { # /..,/ # remove all manual pages, except # one given as parametr # # params - name of keep man pages # example baseStripMans less # ---- local keepMans="$@" local directories=" /opt/gnome/share/man /usr/local/man /usr/share/man /opt/kde3/share/man/packages " find $directories -mindepth 1 -maxdepth 2 -type f 2>/dev/null |\ baseStripAndKeep ${keepMans} } #====================================== # baseStripDocs #-------------------------------------- function baseStripDocs { # /.../ # remove all documentation, except # one given as parametr # # params - name of package of which # doc to keep # ---- local keepDocs="$@" local directories=" /opt/gnome/share/doc/packages /usr/share/doc/packages /opt/kde3/share/doc/packages " for dir in $directories; do find $dir -mindepth 1 -maxdepth 1 -type d 2>/dev/null |\ baseStripAndKeep "${keepDocs}" done } #====================================== # baseStripLocales #-------------------------------------- function baseStripLocales { local imageLocales="$@" local directories=" /opt/gnome/share/locale /usr/share/locale /opt/kde3/share/locale /usr/lib/locale " find $directories -mindepth 1 -maxdepth 1 -type d 2>/dev/null |\ baseStripAndKeep ${keepLocale} } #====================================== # baseStripInfos #-------------------------------------- function baseStripInfos { # /.../ # remove all info files, # except one given as parametr # # params - name of keep info files # ---- local keepInfos="$@" local directories=" /usr/share/info " find $directories -mindepth 1 -maxdepth 1 -type f 2>/dev/null |\ baseStripAndKeep "${keepInfos}" } #====================================== # baseStripAndKeep #-------------------------------------- function baseStripAndKeep { # /.../ # helper function for strip* functions # read stdin lines of files to check # for removing # - params - files which should be keep # ---- local keepFiles="$@" while read file; do local baseFile=`/usr/bin/basename $file` local found="no" for keep in $keepFiles;do if echo $baseFile | grep -q $keep; then found="yes" break fi done if test $found = "no";then Rm -rf $file fi done } #====================================== # baseStripTools #-------------------------------------- function baseStripTools { local tpath=$1 local tools=$2 for file in `find $tpath`;do found=0 base=`/usr/bin/basename $file` for need in $tools;do if [ $base = $need ];then found=1 break fi done if [ $found = 0 ] && [ ! -d $file ];then Rm -f $file fi done } #====================================== # suseStripPackager #-------------------------------------- function suseStripPackager { # /.../ # remove smart o zypper packages and db # files. Also remove rpm package and db # if "-a" given # # params [-a] # ---- local removerpm=falseq if [ ! -z ${1} ] && [ $1 = "-a" ]; then removerpm=true fi #zypper# Rpm -e --nodeps zypper libzypp satsolver-tools Rm -rf /var/lib/zypp #smart Rpm -e --nodeps smart smart-gui Rm -rf /var/lib/smart if [ $removerpm = true ]; then Rpm -e --nodeps rpm Rm -rf /var/lib/rpm fi } #====================================== # suseStripRPM #-------------------------------------- function baseStripRPM { # /.../ # remove rpms defined in config.xml # under image=delete section # ---- for i in `baseGetPackagesForDeletion` do Rpm -e --nodeps $i done } #====================================== # baseSetupInPlaceSVNRepository #-------------------------------------- function baseSetupInPlaceSVNRepository { # /.../ # create an in place subversion repository for the # specified directories. A standard call could look like this # baseSetupInPlaceSVNRepository /etc /srv /var/log # ---- local paths=$1 local repo=/var/adm/sys-repo if [ ! -x /usr/bin/svn ];then echo "subversion not installed... skipped" return fi svnadmin create $repo chmod 700 $repo svn mkdir -m created file:///$repo/trunk local ifss=$IFS local subp="" for dir in $paths;do subp="" IFS="/"; for n in $dir;do if [ -z $n ];then continue fi subp="$subp/$n" svn mkdir -m created file:///$repo/trunk/$subp done done IFS=$ifss for dir in $paths;do chmod 700 $dir/.svn svn add $dir/* find $dir -name .svn | xargs chmod 700 svn ci -m initial $dir done } #====================================== # baseSetupPlainTextGITRepository #-------------------------------------- function baseSetupPlainTextGITRepository { # /.../ # create an in place git repository of the root # directory containing all plain/text files. # ---- if [ ! -x /usr/bin/git ];then echo "git not installed... skipped" return fi pushd / local ignore="" #====================================== # directories to ignore #-------------------------------------- local dirs=" /sys /dev /var/log /home /media /var/run /var/tmp /tmp /var/lock /image /var/spool /var/cache /var/lib /boot /root /var/adm /usr/share/doc /base-system /usr/lib /usr/lib64 /usr/bin /usr/sbin /usr/share/man /proc /bin /sbin /lib /lib64 /opt /usr/share/X11 /.git " #====================================== # files to ignore #-------------------------------------- local files=" ./etc/Image* *.lock ./etc/resolv.conf *.gif *.png *.jpg *.eps *.ps *.la *.so */lib */lib64 */doc */zoneinfo " #====================================== # creae .gitignore and find list #-------------------------------------- for entry in $files;do echo $entry >> .gitignore if [ -z "$ignore" ];then ignore="-wholename $entry" else ignore="$ignore -or -wholename $entry" fi done for entry in $dirs;do echo $entry >> .gitignore if [ -z "$ignore" ];then ignore="-path .$entry" else ignore="$ignore -or -path .$entry" fi done #====================================== # init git base #-------------------------------------- git init #====================================== # find all text/plain files except ign #-------------------------------------- for i in `find . \( $ignore \) -prune -o -print`;do file=`echo $i | cut -f2 -d.` if file -i $i | grep -q "text/*";then git add $i fi if file -i $i | grep -q "application/x-shellscript";then git add $i fi if file -i $i | grep -q "application/x-awk";then git add $i fi if file -i $i | grep -q "application/x-c";then git add $i fi if file -i $i | grep -q "application/x-c++";then git add $i fi if file -i $i | grep -q "application/x-not-regular-file";then echo $file >> .gitignore fi if file -i $i | grep -q "application/x-gzip";then echo $file >> .gitignore fi if file -i $i | grep -q "application/x-empty";then echo $file >> .gitignore fi done #====================================== # commit the git #-------------------------------------- git commit -m "deployed" popd } #====================================== # baseSetupInPlaceGITRepository #-------------------------------------- function baseSetupInPlaceGITRepository { # /.../ # create an in place git repository of the root # directory. This process may take some time and you # may expect problems with binary data handling # ---- if [ ! -x /usr/bin/git ];then echo "git not installed... skipped" return fi pushd / echo /proc > .gitignore local files=" /sys /dev /var/log /home /media /var/run /etc/Image* /var/tmp /tmp /var/lock *.lock /image /var/spool /var/cache /var/lib /boot /root /var/adm /base-system " for entry in $files;do echo $entry >> .gitignore done git init && git add . && \ git commit -m "deployed" popd } #====================================== # Rm #-------------------------------------- function Rm { # /.../ # delete files & anounce it to log # ---- Debug "rm $@" rm $@ } #====================================== # Rpm #-------------------------------------- function Rpm { # /.../ # all rpm function & anounce it to log # ---- Debug "rpm $@" rpm $@ } #====================================== # Echo #-------------------------------------- function Echo { # /.../ # print a message to the controling terminal # ---- local option="" local prefix="----->" local optn="" local opte="" while getopts "bne" option;do case $option in b) prefix=" " ;; n) optn="-n" ;; e) opte="-e" ;; *) echo "Invalid argument: $option" ;; esac done shift $(($OPTIND - 1)) echo $optn $opte "$prefix $1" OPTIND=1 } #====================================== # Debug #-------------------------------------- function Debug { # /.../ # print message if variable DEBUG is set to 1 # ----- if test "$DEBUG" = 1;then echo "+++++> (caller:${FUNCNAME[1]}:${FUNCNAME[2]} ) $@" fi } #====================================== # baseSetupBusyBox #-------------------------------------- function baseSetupBusyBox { # /.../ # activates busybox if installed for all links from # the busybox/busybox.links file - you can choose custom apps to # be forced into busybox with the "-f" option as first parameter # --- # example: baseSetupBusyBox -f /bin/zcat /bin/vi # --- local applets="" local force=no local busyboxlinks=/usr/share/busybox/busybox.links if ! rpm -q --quiet busybox; then echo "Busybox not installed... skipped" return 0 fi if [ $# -gt 0 ] && [ "$1" = "-f" ]; then force=yes shift fi if [ $# -gt 0 ]; then for i in "$@"; do if grep -q "^$i$" "$busyboxlinks"; then applets="${applets} $i" fi done else applets=`cat "$busyboxlinks"` fi for applet in $applets; do if [ ! -f "$applet" ] || [ "$force" = "yes" ]; then echo "Busybox Link: ln -sf /usr/bin/busybox $applet" ln -sf /usr/bin/busybox "$applet" fi done } #====================================== # stripUnusedLibs #-------------------------------------- function baseStripUnusedLibs { # /.../ # remove libraries which are not directly linked # against applications in the bin directories # ---- local needlibs local found local dir local lnk local new # /.../ # find directly used libraries, by calling ldd # on files in *bin* # --- rm -f /tmp/needlibs for i in /usr/bin/* /bin/* /sbin/* /usr/sbin/*;do for n in `ldd $i 2>/dev/null`;do if [ -e $n ];then echo $n >> /tmp/needlibs fi done done count=0 for i in `cat /tmp/needlibs | sort | uniq`;do needlibs[$count]=$i count=`expr $count + 1` if [ -L $i ];then dir=`dirname $i` lnk=`readlink $i` new=$dir/$lnk needlibs[$count]=$new count=`expr $count + 1` fi done # /.../ # add exceptions # ---- while [ ! -z $1 ];do for i in /lib*/$1* /usr/lib*/$1*;do if [ -e $i ];then needlibs[$count]=$i count=`expr $count + 1` fi done shift done # /.../ # find unused libs and remove it, dl loaded libs # seems not to be that important within the initrd # ---- #mkdir /mylibs rm -f /tmp/needlibs for i in /lib/lib* /lib64/lib* /usr/lib/lib* /usr/lib64/lib*;do found=0 if [ -d $i ];then continue fi for n in ${needlibs[*]};do if [ $i = $n ];then found=1; break fi done if [ $found -eq 0 ];then echo "Removing: $i" #mv $i /mylibs rm $i fi done } #====================================== # baseSysConfig #-------------------------------------- function baseUpdateSysConfig { # /.../ # update sysconfig variable contents # ---- local FILE=$1 local VAR=$2 local VAL=$3 sed -i "s/^\($VAR=\).*$/\1\"$VAL\"/" $FILE } #====================================== # suseStripInitrd #-------------------------------------- function suseStripInitrd { #========================================== # remove unneeded files #------------------------------------------ rpm -e popt --nodeps --noscripts &>/dev/null rm -rf `find -type d | grep .svn` local files=" /usr/share/info /usr/share/man /usr/share/cracklib /usr/lib*/python* /usr/lib*/perl* /usr/share/locale* /usr/share/doc/packages /var/lib/rpm /usr/lib*/rpm /var/lib/smart /opt/* /usr/include /root/.gnupg /etc/PolicyKit /etc/sysconfig /etc/init.d /etc/profile.d /etc/skel /etc/ssl /etc/java /etc/default /etc/cron* /etc/dbus* /etc/pam.d* /etc/DIR_COLORS /etc/rc* /usr/share/hal /usr/share/ssl /usr/lib*/hal /usr/lib*/*.a /usr/lib*/*.la /usr/lib*/librpm* /usr/lib*/libpanel* /usr/lib*/libncursesw* /usr/lib*/libmenu* /usr/lib*/libx* /usr/src/packages/RPMS /usr/X11R6 /usr/lib*/X11 /var/X11R6 /usr/share/X11 /etc/X11 /usr/lib*/libX* /usr/lib*/xorg /usr/lib*/libidn* /etc/ppp /etc/xdg /etc/NetworkManager /lib*/YaST /lib*/security /lib*/mkinitrd /srv /var/adm /usr/lib*/engines /usr/src/packages /usr/src/linux* /usr/local /var/log/* /usr/share/pixmaps /usr/share/gtk-doc /var/games /opt /var/spool /var/opt /var/cache /var/tmp /etc/rpm /etc/cups /etc/opt /usr/share/terminfo /home /media /lib/firmware /usr/lib*/lsb /usr/lib*/krb5 /usr/lib*/ldscripts /usr/lib*/getconf /usr/lib*/pwdutils /usr/lib*/pkgconfig /usr/lib*/browser-plugins /usr/share/omc /usr/share/tmac /usr/share/emacs /usr/share/idnkit /usr/share/games /usr/share/PolicyKit /usr/share/tabset /usr/share/mkinitrd /usr/share/xsessions /usr/share/pkgconfig /usr/share/dbus-1 /usr/share/sounds /usr/share/dict /usr/share/et /usr/share/ss /usr/share/java /usr/share/themes /usr/share/doc /usr/share/applications /usr/share/mime /usr/share/icons /usr/share/xml /usr/share/sgml /usr/share/fonts /usr/games /usr/lib/mit /usr/lib/news /usr/lib/pkgconfig /usr/lib/smart /usr/lib/browser-plugins /usr/lib/restricted /usr/x86_64-suse-linux /etc/logrotate* /etc/susehelp* /etc/SuSEconfig /etc/permissions.d /etc/aliases.d /etc/hal /etc/news /etc/pwdutils /etc/uucp /etc/openldap /etc/xinetd /etc/depmod.d /etc/smart /etc/lvm /etc/named* /etc/bash_completion* /lib/modules/*/kernel/drivers/net/wireless /lib/modules/*/kernel/drivers/net/pcmcia /lib/modules/*/kernel/drivers/net/tokenring /lib/modules/*/kernel/drivers/net/bonding /lib/modules/*/kernel/drivers/net/hamradio " for i in $files;do rm -rf $i done #========================================== # remove unneeded files #------------------------------------------ if [ -d /var/cache/zypp ];then files=" /usr/lib*/libzypp* /lib*/libgcrypt* /lib*/libgpg* /usr/lib*/dirmngr /usr/lib*/gnupg* /usr/lib*/gpg* /usr/lib*/libboost* /usr/lib*/libcurl* /usr/lib*/libicu* /usr/lib*/libksba* /usr/lib*/libpth* /var/cache/zypp /usr/lib*/zypp* /usr/share/curl /usr/share/emacs /usr/share/gnupg /usr/share/zypp* /var/lib/zypp* /var/log/zypper.log " for i in $files;do rm -rf $i done fi #========================================== # remove unneeded tools #------------------------------------------ local tools=" tune2fs swapon swapoff shutdown sfdisk resize_reiserfs reiserfsck reboot halt pivot_root modprobe modinfo rmmod mkswap mkinitrd mkreiserfs mkfs.ext3 mkfs.ext2 mkfs.cramfs losetup ldconfig insmod init ifconfig fdisk e2fsck dhcpcd depmod atftpd klogconsole hwinfo xargs wc tail tac readlink mkfifo md5sum head expr file free find env du dirname cut column chroot atftp tr host test printf mount dd uname umount true touch sleep sh pidof sed rmdir rm pwd ps mv mkdir kill hostname gzip grep false df cp cat bash basename arch sort ls uniq lsmod usleep parted mke2fs pvcreate vgcreate lvm resize2fs ln hdparm dmesg splash fbmngplay portmap start-statd sm-notify rpc.statd rpc.idmapd nbd-client mount.nfs mount.nfs4 eject blockdev posbios ping killall killall5 udevcontrol udevd udevsettle udevtrigger mknod stat path_id hwup scsi_id scsi_tur usb_id ata_id vol_id edd_id setctsid dumpe2fs debugreiserfs fuser udevadm blogd showconsole killproc curl tar cromfs-driver cvcromfs ldd driveready checkmedia splashy bzip2 hexdump " tools="$tools $@" for path in /sbin /usr/sbin /usr/bin /bin;do baseStripTools "$path" "$tools" done #========================================== # remove unused libs #------------------------------------------ baseStripUnusedLibs \ librt libutil libsysfs libnss_files libnss_compat libnsl libpng #========================================== # remove images.sh and /root #------------------------------------------ rm -f /image/images.sh rm -rf /root #========================================== # strip down configuration files #------------------------------------------ rm -rf /tmp/* rm -rf /tmp/.* files=" /etc/modprobe.conf /etc/modprobe.conf.local /etc/mtab /etc/protocols /etc/services /etc/termcap /etc/aliases /etc/bash.bashrc /etc/filesystems /etc/ld.so.conf /etc/magic /etc/group /etc/passwd /etc/nsswitch.conf /etc/scsi_id.config " for i in $files;do if [ -e $i ];then mv $i /tmp fi done rm -f /etc/* mv /tmp/* /etc } #====================================== # suseGFXBoot #-------------------------------------- function suseGFXBoot { local theme=$1 local loader=$2 export PATH=$PATH:/usr/sbin #====================================== # check for gfxboot package #-------------------------------------- if [ ! -d /usr/share/gfxboot ];then echo "gfxboot not installed... skipped" else #====================================== # create boot theme #-------------------------------------- cd /usr/share/gfxboot # check for new source layout local newlayout= [ -f themes/$theme/config ] && newlayout=1 [ "$newlayout" ] || make -C themes/$theme prep if [ ! -z "$kiwi_language" ];then local l1=`echo $kiwi_language | cut -f1 -d.` local l2=`echo $kiwi_language | cut -f1 -d_` local found=0 for lang in $l1 $l2;do if [ -f themes/$theme/po/$lang.po ];then echo "Found language default: $lang" make -C themes/$theme DEFAULT_LANG=$lang found=1 break fi done if [ $found -eq 0 ];then echo "Language $kiwi_language not found, skipped" make -C themes/$theme fi else make -C themes/$theme fi mkdir /image/loader local gfximage= local bootimage= if [ "$newlayout" ] ; then gfximage=themes/$theme/bootlogo bootimage=themes/$theme/message else gfximage=themes/$theme/install/bootlogo bootimage=themes/$theme/boot/message fi if [ $loader = "isolinux" ];then # isolinux boot data... cp $gfximage /image/loader if [ -x /usr/sbin/gfxboot ] ; then gfxboot --archive /image/loader/bootlogo \ --change-config livecd=1 else echo "livecd=1" >> /image/loader/gfxboot.cfg fi bin/unpack_bootlogo /image/loader mv /usr/share/syslinux/isolinux.bin /image/loader mv /usr/share/syslinux/mboot.c32 /image/loader mv /boot/memtest.bin /image/loader/memtest else # boot loader graphics image file... mv $bootimage /image/loader fi make -C themes/$theme clean fi #====================================== # create splash screen #-------------------------------------- if [ ! -f /sbin/splash ];then echo "bootsplash not installed... skipped" return fi sname[0]="08000600.spl" sname[1]="10240768.spl" sname[2]="12801024.spl" index=0 if [ ! -d /etc/bootsplash/themes/$theme ];then theme="SuSE-$theme" fi mkdir -p /image/loader/branding cp /etc/bootsplash/themes/$theme/images/logo.mng /image/loader/branding cp /etc/bootsplash/themes/$theme/images/logov.mng /image/loader/branding for cfg in 800x600 1024x768 1280x1024;do cp /etc/bootsplash/themes/$theme/images/bootsplash-$cfg.jpg \ /image/loader/branding cp /etc/bootsplash/themes/$theme/images/silent-$cfg.jpg \ /image/loader/branding cp /etc/bootsplash/themes/$theme/config/bootsplash-$cfg.cfg \ /image/loader/branding done mkdir -p /image/loader/animations cp /etc/bootsplash/themes/$theme/animations/* \ /image/loader/animations &>/dev/null for cfg in 800x600 1024x768 1280x1024;do /sbin/splash -s -c -f \ /etc/bootsplash/themes/$theme/config/bootsplash-$cfg.cfg |\ gzip -9c \ > /image/loader/${sname[$index]} tdir=/image/loader/xxx mkdir $tdir cp -a --parents /etc/bootsplash/themes/$theme/config/*-$cfg.* $tdir cp -a --parents /etc/bootsplash/themes/$theme/images/*-$cfg.* $tdir ln -s /etc/bootsplash/themes/$theme/config/bootsplash-$cfg.cfg \ $tdir/etc/splash.cfg pushd $tdir chmod -R a+rX . find | cpio --quiet -o -H newc |\ gzip -9 >> /image/loader/${sname[$index]} popd rm -rf $tdir index=`expr $index + 1` done } #====================================== # suseSetupProductInformation #-------------------------------------- function suseSetupProductInformation { # /.../ # This function will use zypper to search for the installed # product and prepare the product specific information # for YaST # ---- if [ ! -x /usr/bin/zypper ];then echo "zypper not installed... skipped" return fi local zypper="zypper --non-interactive --no-gpg-checks" local product=$($zypper search -t product | grep product | head -n 1) local p_alias=$(echo $product | cut -f4 -d'|') local p_name=$(echo $product | cut -f 4-5 -d'|' | tr '|' '-' | tr -d " ") p_alias=$(echo $p_alias) p_name=$(echo $p_name) echo "Installing product information for $p_name" $zypper install -t product $p_alias } #====================================== # suseStripKernel #-------------------------------------- function suseStripKernel { # /.../ # this function will strip the kernel according to the # drivers information in the xml descr. It also will create # the vmlinux.gz and vmlinuz files which are required # for the kernel extraction in case of kiwi boot images # ---- local ifss=$IFS local kversion local i local d local mod local stripdir local kdata for kversion in /lib/modules/*;do IFS=" " if [ -x /bin/rpm ];then kdata=$(rpm -qf $kversion) else kdata=$kversion fi for p in $kdata;do #========================================== # get kernel VERSION information #------------------------------------------ if [ ! $? = 0 ];then # not in a package... IFS=$ifss continue fi if echo $p | grep -q "\-kmp\-";then # a kernel module package... IFS=$ifss continue fi VERSION=$(/usr/bin/basename $kversion) echo "Stripping kernel $p: Image [$kiwi_iname]..." #========================================== # run depmod, deps should be up to date #------------------------------------------ /sbin/depmod -F /boot/System.map-$VERSION $VERSION #========================================== # strip the modules but take care for deps #------------------------------------------ stripdir=/tmp/stripped_modules IFS=, for mod in \ $kiwi_usbdrivers $kiwi_scsidrivers \ $kiwi_netdrivers $kiwi_drivers do local path=`/usr/bin/dirname $mod` local base=`/usr/bin/basename $mod` for d in kernel updates weak-updates;do if [ "$base" = "*" ];then if test -d $kversion/$d/$path ; then mkdir -pv $stripdir$kversion/$d/$path cp -avl $kversion/$d/$path/* \ $stripdir$kversion/$d/$path fi else if test -f $kversion/$d/$mod ; then mkdir -pv $stripdir$kversion/$d/$path cp -avl $kversion/$d/$mod \ $stripdir$kversion/$d/$mod elif test -L $kversion/$d/$base ; then mkdir -pv $stripdir$kversion/$d cp -avl $kversion/$d/$base \ $stripdir$kversion/$d elif test -f $kversion/$d/$base ; then mkdir -pv $stripdir$kversion/$d cp -avl $kversion/$d/$base \ $stripdir$kversion/$d fi fi done done IFS=$ifss for mod in `find $stripdir -name "*.ko"`;do d=`/usr/bin/basename $mod` i=`/sbin/modprobe \ -C /etc/modprobe.conf \ --set-version $VERSION \ --ignore-install \ --show-depends \ ${d%.ko} | sed -ne 's:.*insmod /\?::p'` for d in $i; do case "$d" in *=*) ;; *) if ! test -f $stripdir/$d ; then echo "Fixing kernel module Dependency: $d" mkdir -vp `/usr/bin/dirname $stripdir/$d` cp -flav $d $stripdir/$d fi ;; esac done done rm -rf $kversion mv -v $stripdir/$kversion $kversion rm -rf $stripdir #========================================== # run depmod #------------------------------------------ /sbin/depmod -F /boot/System.map-$VERSION $VERSION #========================================== # create common kernel files, last wins ! #------------------------------------------ pushd /boot if [ -f vmlinux-$VERSION.gz ];then mv vmlinux-$VERSION.gz vmlinux.gz mv vmlinuz-$VERSION vmlinuz elif [ -f vmlinuz-$VERSION ];then mv vmlinuz-$VERSION vmlinuz else rm -f vmlinux cp vmlinux-$VERSION vmlinux mv vmlinux-$VERSION vmlinuz fi popd done done } 070701002003A00000416D000000000000000000000002495DB93000000000000000080000000100000000000000000000000500000000proc070701001F4A24000041ED000000000000000000000006495DB93000000000000000080000000100000000000000000000000400000000lib070701001FC69C000041ED000000000000000000000004495DB93000000000000000080000000100000000000000000000000900000000lib/udev070701005E942F000081ED000000000000000000000001495DB930000057A4000000080000000100000000000000000000001F00000000lib/udev/create_floppy_devicesELFp4R4 (444  TTT(A(AOOhhh\\Ptd@;@@DDQtdRtdO/lib/ld-linux.so.2GNUSuSESuSE GNU '-g<+v0Q%:,/(.4")26+3%#0-&1$ 59 87 ! *' 1 M 137|CEK8qX2M4Qe s:/%p="(OE|^>  Bc5-gT[4< ]libselinux.so.1__gmon_start___Jv_RegisterClasses_initfreeconsetfscreateconlsetfilecon_finimatchpathconmatchpathcon_init_prefixgetfscreateconis_selinux_enabledlibc.so.6_IO_stdin_used__printf_chkreaddirstrncmpoptindstrrchr__strdupclosedirstrncpy__stack_chk_failunlinkchmodstrtolfgetsgetpwnamstrlenopenlog__errno_locationgetopt__fprintf_chkgetgrnamfclosemallocstrcasecmpopendirgetenv__ctype_b_locoptargstderr__snprintf_chkreadlinkstrncasecmp__xmknodchownstrchr__vfprintf_chk__vsyslog_chk__sprintf_chkfopen64strcmpstrerror__libc_start_mainfree_edata__bss_start_endGLIBC_2.4GLIBC_2.3GLIBC_2.1GLIBC_2.3.4GLIBC_2.0ii lii vii ti ii 849   $ ( , 048<@DHLPTX\`dhlptx |!"#$%&'()*+,-./0US[ìSt^('X[5%%h%h%h% h%h %h(%h0%h8p% h@`%$hHP%(hP@%,hX0%0h` %4hh%8hp%<hx%@h%Dh%Hh%Lh%Ph%Th%Xh%\hp%`h`%dhP%hh@%lh0%ph %th%xh%|h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp1^PTRh h0QVh0US=u@- X9sB 9r[]Ív'Utt $ÐL$qUWVSQeE1ytD$1D$$DD$t$Dž|EEEEEED$|$$0G-v ֍$ D$D$$o|룍vD$D$$GE{vElt&E[vD$t$E9D$D$$%ED$t$Eu 9BD$$D$Ue3ĨY[^_]a1݋D$@D$D$<$UUt\$ED$U|$D$C$T$ ,sxD$ĵD$ D$$Fm|D$(t$ ĉ<$Ql|$D$t$ ˉ M01 pMEED$ l|$$T$at$W UT$E<$D$-l<$T$t4$1qD$ D$UD$T$ t&'UU E E UUEU]UEt]ÐUE]@Ðt&UU EP]fUE]@Ðt&UE]@ Ðt&U1UtB] U1UtB ] UE]] uuD$D$ D$$]]uuE E]&U(UM 9J}Ðt&E D$ED$ED$ED$ EL$$D$RÉ'U(UE BT$D$$D$D$ rD$D$$mÍt&'US$]t ~$[]ÐCuiC $C$C$\$$D$D$D$ ]D$D$]$[]&C$C냍UWVS\$$eE1$1 󫋕BBB $t /dev@A $t /sys@B$t"/etc@/ude@v/ud@ ev.c@onfA t y$OD$D$ĹD$ 5$D$D$m $DžUe3)\[^_]Ít&q$t2B$4$YAD$/$ $˷t80uxvu @ $Էt&$E4$D$/$ D$O$Dž&D$$L$Dut&DA u#ttD$=$Zp@9DG tDG u$CDDG t t&BDG u 4$‰|DH lDGDH uޅ<"<'D$$+$ Ac$$}t2A $$B D$/$Y $ 9t$ AX fH[cB$D$D$D$͹D$ SD$D$Qt,A $D$$D$9D$ĹD$ *L$ $D$D$OB$D$MD$ĹD$D$ +D$D$D$^D$ĹL$$D$ ,D$D$B $D$pD$ĹD$D$ -D$D$AD$D$ĹD$ .D$D$D$ $XBt4D$D$D$ĹD$ 0D$D$$ $:D$|T$L$D$ĹD$ D$D$$uD$"D$͹D$ WD$D$$wBD$LL$D$D$ĹD$ D$D$$1D$$\uLB $ $)B D$/$wD$$PA$#$BD$/$`t&'US$]Cu$[]ÐC$y$D$D$ڹD$ D$D$D$$륍t&US4]Cu4[]ÐEED$ED$E $x$E$UxUE$4[]Ít&E D$ӸD$D$ D$D$D$$9ut&$D$E D$D$D$ D$D$D$$\US4]Cu4[]ÐEED$ED$E $x,ED$E $.xVE$4[]Ðt&E D$ӸD$D$ oD$D$D$$Amt&$D$E D$ D$D$ sD$D$D$$[U1VMSu] t9sut[^]É'UWVSEEuuE tÉD$E $JurC< vkC<vdC<v]\uEU|xxPӋDP _uEuEuvE[^_]Ðt&EW&ʉρEt^%=EtI%=Et4%=Et%=EE1<&9Ex%=S%=g%=h!EN%tf %? ǃ;U|؃o~*~~1f9E/#%=0fEEt&U}t&U D$ $ EEM!E!E!E!E'UVSut[U11:u v:t 9ލvw9t4M t&t9vu[^]1ۋE $E[^] UWVS u} t84$t*\8uB8u Bu [^_]ÍUWVS1ۃEEtxE1$t&E/EUEEtIU-UUtȋu2uE\EfUME룋M[^_] UWVS1ۃ} eE1uD)čL$u6<\t\BtƉ֋CBCC $$9u΃ [^_]ÍUWVS } 79u *f9t"CU$T$=t;] u΃ 1[^_]Ít&FBF 4$E [^_]ÍUWVSE$NjE 9t3|$Es4$D$fu |;=;] u$ 1ED$ED$D$ D$D$FD$$CsƆF0[^_]Ít&ED$E4$D$D$ D$D$D$ƃ[^_]Ð1ۃ[^_]ÍUWVS} 79u *f9t"UC$T$lu[^_]fEuy$ 1Et֋}1D$ED$E$UFӉV2B[^_]Ðt&UF$T$69ut&|vUWVS<EU }E<$eU1҉.4$P .tހ#vt֋X t-X D$.$Zt$T$$u\$|$D$ͺD$ D$D$$T$ED$ D$$ 4$84$1Ue3u <[^_]$|$D$D$-D$ D$yD$D$$됐U]Ít&'UWVSOù, )t$1ED$E D$E$9rރ [^_]Ë$ÐUStfЋu[]ÐUS[,,Y[create_floppy_devicescudm:U:G:M:t:fdInvalid major number %d Invalid CMOS type %d %s%s%s b %d %d %d d360h1200u360u720h360h720u1440u2880CompaQh1440u1680h410u820h1476u1722h420u830h1494u1743h880u1040u1120h1600u1760u1920u3200u3520u3840u1840u800u1600Usage: %s [OPTION] device -c create -d debug -m Major number -t floppy type number -U device node user ownership -G device node group owner -M device node mode Device '%s' is not a floppy device Floppy device number %d out of range (0-7) Бp`8tT@@oRW]bglqw}ǴʹӴٴߴlibudev: %s: ../../udev/lib/libudev.ccontext %p released SYSFS_PATHUDEV_RUNUDEV_CONFIG_FILEudev_logudev_rootudev_rulesUDEV_ROOTUDEV_LOGselinux=%i getfscreatecon failed context %p created log_priority=%d config_file='%s' dev_path='%s' sys_path='%s' rules_path='%s' context creation failed setfscreatecon failed: %s matchpathcon(%s) failed setfscreatecon %s failed: %s setfilecon %s failed: %s custom logging function %p registered missing = in '%s'[%i], skip line inconsistent quoting in '%s'[%i], skip line udev_set_log_fnudev_unrefudev_newselinux_initudev_selinux_resetfscreateconudev_selinux_setfscreateconudev_selinux_lsetfilecon\x2f\x5cerrinfodebug../driversubsystemspecified group '%s' unknown ../../udev/udev_utils.cspecified user '%s' unknown %s=%sunable to open '%s': %s %s/%serror resolving group '%s': %s error resolving user '%s': %s lookup_grouplookup_useradd_matching_files;@'X @,`Dd|`$ D@d0@ @`PppP@0pP@p| (0D  F AB DD"AB \AB t  AB 0AB @ AB P AB `AD AD YAB IF$GAB <PEAB TAB DpPeAB IlAB D0AB D AB D 7AD E`AB F$AB EDTAB FdpAB C AB CAB DZAB FAB FqAB I @BAB AJ@ AB X AB pЬAB IAB INAB EAB F$AB FAB F0AB IzR| 0AB 8$ZAB C < āoH0  xĊ oDooЉŒҌ"2BRbrҍ"2BRbrŽҎ"2BRb    OsPWGcreate_floppy_devices.debug\.shstrtab.interp.note.ABI-tag.note.SuSE.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.SUSE.OPTs.gnu_debuglink TThh !,$Cā?oHHHI Q00YoЉ tfoDD `u  ~ Ċ x<< 0ll ppL$33` @@;D<O  OOOOOP Q0QQ Q070701005E942D000081ED000000000000000000000001495DB93000000206000000080000000100000000000000000000001500000000lib/udev/firmware.sh#!/bin/sh -e FIRMWARE_DIRS="/lib/firmware/$(uname -r) /lib/firmware" err() { echo "$@" >&2 logger -t "${0##*/}[$$]" "$@" 2>/dev/null || true } if [ ! -e /sys$DEVPATH/loading ]; then err "udev firmware loader misses sysfs directory" exit 1 fi for DIR in $FIRMWARE_DIRS; do [ -e "$DIR/$FIRMWARE" ] || continue echo 1 > /sys$DEVPATH/loading cat "$DIR/$FIRMWARE" > /sys$DEVPATH/data echo 0 > /sys$DEVPATH/loading exit 0 done echo -1 > /sys$DEVPATH/loading err "Cannot find firmware file '$FIRMWARE'" exit 1 070701005E942C000081ED000000000000000000000001495DB930000026A0000000080000000100000000000000000000001100000000lib/udev/collectELF4!4 (444  TTT      hhh\\Ptd44QtdRtd   /lib/ld-linux.so.2GNUSuSESuSE GNU]qi\YhOcq%&!$ % "  # # "#%K93p0S! v09K)B_Z~)=L__gmon_start__libc.so.6_IO_stdin_usedstrcpy__printf_chkexitftruncateoptindsignalputs__stack_chk_failmkdirreallocstrpbrkcallocstrlenlockfmemset__errno_locationread__fprintf_chklseekmemcpymallocstderralarm__snprintf_chkgetopt_longfwritecloseopen__sprintf_chk__xstatstrcmpstrerror__libc_start_mainfreeGLIBC_2.4GLIBC_2.3.4GLIBC_2.0ii Pti Zii f%$   $ ( , 0 48<@DHLPTX\`dhlptx| !"US[@'tX[5%%h%h%h% h%h %h(%h0%h8p% h@`%$hHP%(hP@%,hX0%0h` %4hh%8hp%<hx%@h%Dh%Hh%Lh%Ph%Th%Xh%\hp%`h`%dhP%hh@%lh0%ph %th%xh%|h%h%h1^PTRh@hPQVhUS=u@-X9sB9r[]Ív'Utt $ÐUVSÁeE1D$\$$DDt$\$D$ D$D$4$nD$D$B4$ D$D$$x Ue3HĀ[^]Ít&> tG t&t>t$Lt$ D$7D$D$$7념t&$D$D$$ Nt$ D$"D$$(D$$v{$t$ D$D$D$$&D$ D$xD$$['L$qUWVSQXIEEMD$D$ @D$UUT$M $dtrfavtVXY[^_]aÍvhtruE&댍$1 XY[^_]aÍt&EZt&GEă9EE/MUċEUȉED$ $8 UȸEEg$CD$ E{D$ D$M $E]؉EfU܉T$ML$EЉ$?t&f+vMx9tg$qËE$$YUCT$$C CEt0~}D$<$b`9}M܉L$ED$U$VMD$ L$E$EE썶}+}܉EfL$ D$ŘD$$'fM܉L$ED$U$MD$ L$E$mE}덐t&NjMq4$@9D$<$uʼn<$HD$D$MЉ $EЉ$t=tt&=um\$ UD$R$T$wI$Z-ңE$D$D$UЉ$[U]$e9]~{MċE]ԍLME18&C|$$1uދuPF EEԃE9Eu؅o1t5&CM̉$L$u C ދuׅt(t$ED$D$D$ $t==t v=uD$ D$$AD$ fƃ{ uCBCC $$뼉|$ D$D$$$ MË$$MC$T$C C(D$D$UЉ$D$MЉ $Z$}1=Et!UB &UUu߉<$LUD$D$T$ $ J1t&CM̉$L$>u C ދuD$ D$D$$AK$D$oD$D$ $)UD$ԘD$D$ $At$D$ND$ D$D$<$L<$|$D$EЉ$UD$D$T$ $hGUD$1D$T$ $?D$D$$D$ PvU$U]Ít&'UWVSOÙ ?)t$1ED$E D$E$9rރ [^_]Ë$ÐUS t fЋu[]ÐUS[ LY[%s/%sCannot open %s: %s Acquired lock on %s Could not get lock on %s: %s ardhMissing parameter(s)Cannot set SIGALRM: %s Using checkpoint '%s' /dev/.udev/collectOut of memory Found word %s ID %s: not in database ID %s: found in database Removing ID '%s' ID '%s' not in database Adding ID '%s' Prune lists %s COLLECT_%s=%d addremovedebughelpLock taken, wait for %d seconds usage: collect [--add|--remove] [--debug] Adds ID to the list governed by . must be part of the list . If all IDs given by are listed (ie collect has been invoked for each ID in ) collect returns 0, the number of missing IDs otherwise. On error a negative number is returned. ID overflow, restarting with size %zi aaerldrh;0@HPh| ЋAB AC(8= D  F AB Dd AB zR| AB 8ZAB C  ܗāo$ p o@oo .>N^n~Ήމ.>N^n~ΊފOsPWGcollect.debug$.shstrtab.interp.note.ABI-tag.note.SuSE.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.SUSE.OPTs.gnu_debuglink TThh !,$Cā4?o,I $$`QpYoLfo@@@u ~ 0؈0 ܗ 4ě      0   070701005E9433000081ED000000000000000000000001495DB93000000A01000000080000000100000000000000000000001800000000lib/udev/write_cd_rules#!/bin/sh -e # This script is run if an optical drive lacks a rule for persistent naming. # # It adds symlinks for optical drives based on the device class determined # by cdrom_id and used ID_PATH to identify the device. # # (C) 2006 Marco d'Itri # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation version 2 of the License. RULES_FILE="/etc/udev/rules.d/70-persistent-cd.rules" . /lib/udev/rule_generator.functions find_next_available() { raw_find_next_available "$(find_all_rules 'SYMLINK+=' "$1")" } write_rule() { local match="$1" local link="$2" local comment="$3" { if [ "$PRINT_HEADER" ]; then PRINT_HEADER= echo "# This file was automatically generated by the $0" echo "# program, probably run by the cd-aliases-generator.rules rules file." echo "#" echo "# You can modify it, as long as you keep each rule on a single line" echo "# and set the \$GENERATED variable." echo "" fi [ "$comment" ] && echo "# $comment" echo "$match, SYMLINK+=\"$link\", ENV{GENERATED}=\"1\"" } >> $RULES_FILE SYMLINKS="$SYMLINKS $link" } if [ -z "$DEVPATH" ]; then echo "Missing \$DEVPATH." >&2 exit 1 fi if [ -z "$ID_CDROM" ]; then echo "$DEVPATH is not a CD reader." >&2 exit 1 fi if [ "$1" ]; then METHOD="$1" else METHOD='by-path' fi case "$METHOD" in by-path) if [ -z "$ID_PATH" ]; then echo "$DEVPATH not supported by path_id. by-id may work." >&2 exit 1 fi RULE="ENV{ID_PATH}==\"$ID_PATH\"" ;; by-id) if [ "$ID_SERIAL" ]; then RULE="ENV{ID_SERIAL}==\"$ID_SERIAL\"" elif [ "$ID_MODEL" -a "$ID_REVISION" ]; then RULE="ENV{ID_MODEL}==\"$ID_MODEL\", ENV{ID_REVISION}==\"$ID_REVISION\"" else echo "$DEVPATH not supported by ata_id. by-path may work." >&2 exit 1 fi ;; *) echo "Invalid argument (must be either by-path or by-id)." >&2 exit 1 ;; esac # Prevent concurrent processes from modifying the file at the same time. lock_rules_file # Check if the rules file is writeable. choose_rules_file link_num=$(find_next_available 'cdrom[0-9]*') match="ENV{ID_CDROM}==\"?*\", $RULE" comment="$ID_MODEL ($ID_PATH)" write_rule "$match" "cdrom$link_num" "$comment" [ "$ID_CDROM_CD_R" -o "$ID_CDROM_CD_RW" ] && \ write_rule "$match" "cdrw$link_num" [ "$ID_CDROM_DVD" ] && \ write_rule "$match" "dvd$link_num" [ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ] && \ write_rule "$match" "dvdrw$link_num" unlock_rules_file echo $SYMLINKS exit 0 070701005E942E000081ED000000000000000000000001495DB930000046C4000000080000000100000000000000000000001000000000lib/udev/edd_idELFЎ4A4 (444  TTT::??hhh\\Ptd5  QtdRtd?/lib/ld-linux.so.2GNUSuSESuSE GNUL!Ok{,)3#)G%7).-3"!+152#/,%0$ 4 6 &('* 0 @ 026|CEK8qX-QC :p>#%xW^mXfBcQ;(/4 ]̰libselinux.so.1__gmon_start___Jv_RegisterClasses_initfreeconsetfscreateconlsetfilecon_finimatchpathconmatchpathcon_init_prefixgetfscreateconis_selinux_enabledlibc.so.6_IO_stdin_used__printf_chkreaddirstrrchr__strdupclosedirstrncpyputs__stack_chk_failstrtolfgetsstrlenopenlog__errno_locationread__fprintf_chklseekfclosestrtoulmallocstrcasecmpopendirgetenv__ctype_b_locstderr__snprintf_chkreadlinkstrncasecmpfwriteopenstrchr__vfprintf_chk__vsyslog_chkfopen64strcmpstrerror__libc_start_maincloselogfree_edata__bss_start_endGLIBC_2.4GLIBC_2.3GLIBC_2.1GLIBC_2.3.4GLIBC_2.0ii @ii Jii Tti ^ii j3   $ ( , 048<@DHLPTX\`dhlptx |!"#$%&'()*+,-./US[8Dtn$X[5%%h%h%h% h%h %h(%h0%h8p% h@`%$hHP%(hP@%,hX0%0h` %4hh%8hp%<hx%@h%Dh%Hh%Lh%Ph%Th%Xh%\hp%`h`%dhP%hh@%lh0%ph %th%xh%|h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh1^PTRh0h@QVhUS=u@- X9sB 9r[]Ív'Utt $ÐL$qUWVSQXIeU1Dž1>fG D$D$$D$@ $ ;DžDžDž'9~/ 4߉uDž뿍v$~(D$<$ D$D$$hD$D$4$-fUD$ZD$T$ $D$ZD$߲D$ eL$D$D$<$4$$ $؋ue35mXY[^_]aD$.D$߲D$ JD$D$4$D$D$$.D$ gvD$TD$߲D$ _|$D$D$$|$D$ED$߲D$ RD$D$$a|$ D$ED$$vD$0D$߲D$ ZT$D$D$ $LD$D$߲D$ BD$D$ $D$D$$D$ D$D$4$xrD$D$4$D$wD$߲D$ qL$D$D$<$XD$tD$߲D$ lD$D$D$$ D$D$D$߲D$ vD$D$D$$auq D$D$L$ $D$ıD$߲D$ y|$D$D$$D$xvL$D$$>$$9Ƅ=T$L$D$D$߲D$ D$D$<$JD$D$$\;$x .t $D$D$D$ D$D$ƅD$<$L|$D$ܱD$߲D$ D$D$$hC|$D$D$߲D$ D$D$$#u{D$$T$Ɖ֋CBCC $$9u΃ [^_]ÍUWVS } 79u *f9t"CU$T$@u [^_]fUuy$1it@@@ E$GtCF~7G8 [^_]Ðt&FU$T$69ut&|<$1 WvUWVS,E eU1҉E$l1f tw  uD$4$|$ED$\$4$ƄٻDž ο󦋍8t1ۍvD$/$tN;~؋UD$T$4$}4$|$D$z1 Ue3u ,[^_] UWVS,Ue]1ۉ$1҉Év tw uD$|$4$D$D$4$D$4$D$D$t$4$=v!]e3u ,[^_]ƄD$/4$C1tTt"9E vTuދM t뇍&'UUM EU UU]UUM EU UU]pU]Ít&'UWVSOé W)t$1ED$E D$E$9rރ [^_]Ë$ÐUStfЋu[]ÐUS[Y[edd_id--exportno node specified edd_id.c/sys/firmware/eddno kernel EDD support unable to open '%s' no valid MBR signature '%s' read signature failed '%s' read id 0x%08x from '%s' no EDD signature '%s' '%s' signature is zero unable to open sysfs '%s' read sysfs '%s' failed read '%s' from '%s' ID_EDD=%s seek to MBR validity failed '%s' read MBR validity failed '%s' seek to signature failed '%s' /sys/firmware/edd/%s/mbr_signature'%s' does not have a unique signature mainlibudev: %s: ../../udev/lib/libudev.ccontext %p released SYSFS_PATHUDEV_RUNUDEV_CONFIG_FILEudev_logudev_rootudev_rulesUDEV_ROOTUDEV_LOGselinux=%i getfscreatecon failed context %p created log_priority=%d config_file='%s' dev_path='%s' sys_path='%s' rules_path='%s' context creation failed setfscreatecon failed: %s matchpathcon(%s) failed setfscreatecon %s failed: %s setfilecon %s failed: %s custom logging function %p registered missing = in '%s'[%i], skip line inconsistent quoting in '%s'[%i], skip line udev_set_log_fnudev_unrefudev_newselinux_initudev_selinux_resetfscreateconudev_selinux_setfscreateconudev_selinux_lsetfilecon\x2f\x5cerrinfodebug../driversubsystem; Ph @0H@`|` 0Pp ` ,0LPdp| ,D  F AB CFH@"AB `pAB x AB AB  AB  AB AD AD YAB IF(`GAB @EAB XAB DteAB I lAB DAB DAB D7AD EAB F(AB EHpTAB FhЩAB CAB C@AB DZAB F@AB F qAB I$BAB AJD AB \ AB zR| AB 8ZAB C  ̰āo<| t p@0oЉoo`&6FVfvƌ֌&6FVfvƍ֍&6FVfvƎOsPWGedd_id.debugKO.shstrtab.interp.note.ABI-tag.note.SuSE.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.SUSE.OPTs.gnu_debuglink TThh !,$Cāx?o<<@I ||pQtYo`` nfoЉ `u 00 ~ @@ p 0 Ў!̰005 ̶6?  ?????@@ 0@@@070701005E9434000081ED000000000000000000000001495DB93000007908000000080000000100000000000000000000001100000000lib/udev/scsi_idELF40t4 (444  TTT|g|goohhh\\Ptd`llQtdRtdo/lib/ld-linux.so.2GNUSuSESuSE GNUR8쌢EgAK%A243;50$,9=1")6 7(8' <@ >:#&*?%!-+ . / 8 M 8:>|CEK8qX2ELQV  (:">=pUp6sl/t! dBcz/gEu$|4L ] (libselinux.so.1__gmon_start___Jv_RegisterClasses_initfreeconsetfscreateconlsetfilecon_finimatchpathconmatchpathcon_init_prefixgetfscreateconis_selinux_enabledlibc.so.6_IO_stdin_usedstrcpy__printf_chkexitstrncmpoptindstrrchr__strdupstrncpyputs__stack_chk_failstrtolfgetscallocstrlenopenlogmemset__errno_location__fprintf_chkstrnlenmemcpyfcloserandstrtoulmallocstrcasecmpgetenv__ctype_b_locoptargstderrioctlreadlinkgetopt_longstrncasecmp__fxstatstrncat__strsep_gusleepopenstrchr__vfprintf_chk__vsyslog_chk__sprintf_chkfopen64strcmpstrerror__libc_start_maincloselogfree_edata__bss_start_endGLIBC_2.1.1GLIBC_2.4GLIBC_2.3GLIBC_2.1GLIBC_2.3.4GLIBC_2.0qi ii ii ii ti ii  ?$;(@   $ ( , 048<@DHLPTX\`dhlptx |!"#$%&'()*+,-./01234567US[Ürtn 8EX[5%%h%h%h% h%h %h(%h0%h8p% h@`%$hHP%(hP@%,hX0%0h` %4hh%8hp%<hx%@h%Dh%Hh%Lh%Ph%Th%Xh%\hp%`h`%dhP%hh@%lh0%ph %th%xh%|h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h1^PTRh@hPQVh`{US=,u@0- X9sB0 09r,[]Ív'Utt $ÐUWVSà 8"tN5t$$t;5t>33DA u [^_]Í&5뫍vp3뻍&UWVS\D$ẺUȉM$E$_ljEKE EUD$<$T$ÉE.E<$| L CE]DA ut#tD$=$Et ED$Z1$kEt`D$g$PE܋Ủ|$D$D$D$D$ *D$D$$'KE t]tD$=$;Et ED$a$ELEEt]JD$=$UU؅EEEoGu U؅Uȅ+ 4$t$D$Eȉ$E؅t)U؉$Uĉ$D$E؉D$\$<$1v< uYD$$U |U8&E uЋ1tDUt8< < u"t&v< < u1UЉU9 E땄t&vE܋UD$<D$D$D$ D$D$$%<$Eԉ$2\[^_]ËUАBUЉU9 l1atÉ$hD$D$D$D$ D$D$ED$$$rE̻D$%D$D$ PD$D$$$"U̻D$%D$D$ D$D$$s$&'UWVSL$EU$EUUE8 mt BDG u1fE;]DG EDG t8UK &փDG uUM_U/tEME;]s%EM9딍t&u$Et&UE[^_]Í0E8t&'UU E E UUEU]j&'UWVSӃ,EM EUD$D$ D$T$$;V"v$f$X맍t&P뚍&T뇍t&(D$ D$$U(uD$D$`D$D$ D$D$4$!ft&(oEHt&$$@(D$$D$'&Ltu (DD$4$D$ƆA@,$$TutuaH 9~? Du5Uu D$D4$D$J1Ɔv1,[^_]Ëuy uH}EUD$D$`D$D$ D$D$$ 뗐t&L$qUWVS1Q9eE1q2!HDD$D$$D$PH$`1Dž`1҉D$d$H1`hDthDD$lT$H/=D91?hDžDT$D$H4$S+H`DžT@LTD$X$H8 D$D$ D$lTD$X$tggBp&b&D$D$D$|D$qD$ D$D$H4$Tt$ T$t&H4$"؋Ue3Y[^_]aÍt&Dd$lD$HAx`${f1(o@DžLvD$D$zD$ D$D$H4$@`hq@\D$D$$29\tPvT$D$$4&D$t$LD$ DhD$T$H$:X>5T0 f9v z_t_DF u؈ᐋ@tuDžLt&@y uDžL}t&$,@D$D$qD$ D$D$D$H$bXNDt&<$17D$`D$$D$D$$D$D$$x\$D$$Nd\$1D$-$&D$D$A$ $t&U~1SE] tt"tct []Í&Et:}t&~/Et6M@Qtƒt9tb[]Ðt&UB1҃} ~ƋMQ 뽐t&(v)ugt&'UH]]}׉uE1ƃu}E{"u_@E\$D$t$D$QD$ D$D$$ Eu\$D$D$ t$D$QD$ ED$D$$]u}]fA9}ExAYQuD$G@T$$\$ D$D$XD$QD$ D$D$4$3jA_@t$u\$D$D$ D$QD$ D$D$4$t&)؉D$ G@\$D$D$D$QD$ t&u)؉D$ G@\$D$D$D$QD$ D$D$4$\&B@D$ED$D$QD$ D$D$$MuG@D$D$D$Qt$D$ ED$D$$f Q~Y Q 4t&D$G@D$D$0D$QD$ 뙍vU8u։T$ $]ˉ}D$F D$D$$$4tHD$ F@D$D$D$D$D$ D$D$<$]u}]Í&'UWVS\U EMe=}1}EEEUEEEV@DžfU1}ʉ}ESEEE EEEMEE|$D$"$uOG/O.W,D$ GD$G2D$G0$t&]}e3=\[^_]f1(UMDžQDž}DžDž,DžDž Dž8Dž<&G,CO0f_2W.D$(‰D$$D$ ÉD$D$L$D$aD$ D$D$$2,0D$,D$ T$D$7D$ D$D$D$ $Y@G1ɋWtD$ G0D$GlD$Gp$t&t^&vtV$D$D$7L$D$ mD$D$D$<$t&udžOtmGp2WlL$$D$ T$D$L$D$DD$ -D$D$$taO0vW.t(_2&_2O0W.&_2fD$aD$D$aD$ D$D$$OG/$AdsWlD$DD$D$DD$ 'eWlGp}D$D$7|$D$ BD$D$$.'UWVSˁ\U Ee M1ɉ?1fD$ t$D$$@tFG0u9\9suID$6D$D$ c@D$D$D$$ Ue3@\[^_]Ðt&VtG8SF9AGGtɍPuP9UK>u4$C8tKӺfA9~Ƌ\$$1t&34$StC1A9|ËD$$1DT$ UD$\L$T$D$D$ D$D$$ >&D9~vUWVSLU Ee M1ɉ?1fD$ \$D$$;ES¸xT~tѺ9~t$D$$11Ue3L[^_]Ðt&F@D$D$MD$D$ $D$D$ 뜍t&UD$ F@D$T$D$\D$D$ D$D$ $ FUW VSLU MEuꀉUD$eE1T$ $@D$4$Ë$ t$D$dT$D$D$ D$ VD$D$ $;u7kø )iҠ)Ӎ $MUe3<L[^_]Ív}}t&K}}vMɐt&E?fD$ t$D$$1<(uB9<uML$D$$u11׹?fT$D$ D$$xOD$6D$D$ D$D$D$$jf $ED$D$T$D$D$ D$D$ $UT$L$$~^1\UT$L$$n1Ґt& t&9<uML$D$$u1fML$D$$6D$|D$kT$D$ D$D$ $.D$D$T$D$kD$ D$D$ $ND$$L$ED$D$kD$ D$rqƁ3$pv ЃC9~1'UWVSE}eU1ҋu D$<$eD$$T$D$ D$ȉ 0 ʉD$؁% ЉD$F@D$$1׹?fT$D$ D$$V 1FFF B BB FFFD$ D$D$D$F$$Ue3Č[^_]Í&$|$D$D$D$ &D$D$D$$V눍t&g$}|$D$D$D$ ,D$D$D$$pUEt]ÐUE]@Ðt&UU EP]fUE]@Ðt&UE]@ Ðt&U1UtB] U1UtB ] UE]] uuD$D$ D$$$]]uuE $E]&U(UM 9J}Ðt&E D$ED$ED$ED$ EL$$D$RÉ'U(UE BT$D$D$D$ rD$D$$mÍt&'US$]t ~$[]ÐCuiC $C$C$t\$$D$D$ D$ ]D$D$]$[]3&C$C냍UWVS\$$eE1$1 󫋕BBB $t /dev@A $vt /sys@B$St"/etc@/ude@v/ud@ ev.c@onfA t y$D$D$+D$ 5$D$D$m $DžUe3)\[^_]Ít&q$$t2B$a4$YAD$/$ $/tt80uxvu @ $8It&$4$D$/$ D$$SDž&D$$L$ut&DA u#ttD$=$SZp@9DG tDG u$CDDG t t&BDG u 4$G‰|DH lDGDH uޅ<"<'D$I$$ Ac$I$gt2A $$B D$/$Y $qt$ AX fH[B$D$D$zD$4D$ SD$D$Qt,A $D$$mD$D$+D$ *L$ $D$D$OB$D$D$+D$D$ +D$D$D$D$+L$$D$ ,D$D$B $D$D$+D$D$ -D$D$AD$D$+D$ .D$D$D$ $XBt4D$D$D$+D$ 0D$D$$ $e:D$T$L$D$+D$ D$D$$uD$D$4D$ WD$D$$wBD$L$D$D$+D$ D$D$$1D$R$uLB $7 $)B D$/$wD$\$PA$$BD$/$`t&'US$]Cu$[]ÐC$y0$FD$D$AD$ D$D$D$$륍t&US4]Cu4[]ÐEED$ED$E $dx$E$%xUE$F4[]Ít&E D$7D$_D$ D$D$D$$9ut&G$]D$E D$PD$_D$ D$D$D$$\US4]Cu4[]ÐEED$ED$E $tx,ED$E $xVE$O4[]Ðt&E D$7D${D$ oD$D$D$$Amt&O$eD$E D$nD${D$ sD$D$D$$[U1VMSu] t9sut[^]É'UWVSEEuuE tÉD$E $urC< vkC<vdC<v]\uEU|xxPӋDP _uEuEuvE[^_]Ðt&EW&ʉρEt^%=EtI%=Et4%=Et%=EE1<&9Ex%=S%=g%=h!EN%tf %? ǃ;U|؃o~*~~1f9E/#%=0fEEt&U}t&U D$ $y EEM!E!E!E!E'UVSut[U11:u v:t 9ލvw9t4M t&t9vu[^]1ۋE $[^] UWVS u} t84$t*\8uB8u Bu [^_]ÍUWVS1ۃEEtxE1$t&E/EUEEtIUUUtȋu࿙uE\EfUME룋M[^_] UWVS1ۃ} eE1uD)čL$u6<\t\BtƉ֋CBCC $$9u΃ [^_]ÍUWVS } 79u *f9t"CU$T$,u [^_]fUuy$1%t@@@ E$GtCF~7G8 [^_]Ðt&FU$T$69ut&|<$1西WvUWVS,E eU1҉E$l1f tw  uD$4$|$ED$\$4$]ƄٻDž ο󦋍8t1ۍvD$/$ntN;~؋UD$T$4$}4$|$D$z1 Ue3u ,[^_]K UWVS,Ue]1ۉ$1҉Év tw uD$|$4$D$D$4$D$4$D$D$t$4$课=v!]e3u ,[^_]WƄD$/4$1tTt"9E vTuދM t뇍&'UUM EU UU]UUM EU UU]pU]Ít&'UWVSOÙ- )t$1ED$E D$E$9rރ [^_]Ë$ÐUStfЋu[]ÐUS[ -,Y[can't open %s: %s scsi_id.ccan't allocate memory Config file line %d too long VENDORMODELOPTIONS0x800x83pre-spc3-83Unknown page code '%s' Unknown SG version '%s' 128scsi_idno device specified genericdisktapeopticalcdID_VENDOR=%s ID_MODEL=%s ID_REVISION=%s ID_SERIAL=%s ID_SERIAL_SHORT=%s ID_TYPE=%s , " deviceconfigpageblacklistedwhitelistedreplace-whitespacesg-versionverboseexporthelpError parsing config file line %d '%s' Usage: scsi_id OPTIONS --device= device node for SG_IO commands --config= location of config file --page=0x80|0x83|pre-spc3-83 SCSI page (0x80, 0x83, pre-spc3-83) --sg-version=3|4 use SGv3 or SGv4 --blacklisted threat device as blacklisted --whitelisted threat device as whitelisted --replace-whitespace replace all whitespaces by underscores --verbose verbose logging --version print version --export print values as environment keys --help print this help text Unknown or bad option '%c' (0x%x) pҘҘҘҘҘҘҘҘҘҘҘ`Ҙ(ؙҘҘҘҘҘҘҘҘҘҘҘ@@ܠ@ܠ@@@@@@ܠd:f:ghip:uvVxmainget_file_optionsMPSdZfapfbrg~usvVxhset_optionsbgp:per_dev_options%s: sense buffer empty scsi_serial.c%s: invalid sense code 0x%x %s: old sense key: 0x%x %s: sense = %2x %2x buflen %d too long %s: ioctl failed: %s %s: called with no error %s: Invalid page 0x83 %s: Invalid page 0x80 %s: cannot open %s: %s %s: page 0 not available. %s: invalid page0 data scsi_id: cannot open %s: %s scsi_id: cannot stat %s: %s %d:%d%x%s: sense buffer too small %d bytes, %d bytes too short %s: sense result too small %d bytes %s: sense key 0x%x ASC 0x%x ASCQ 0x%x %s: non-extended sense class %d code 0x%0x %s: expected length %d, got length %d %s: sg_io failed status 0x%x 0x%x 0x%x %s: sg_io failed status 0x%x 0x%x 0x%x 0x%x %s: Unable to get INQUIRY vpd %d page 0x%x. %s: length %d too short - need %d %s: unsupported page code 0x%d %s: page 0 buffer too long %d scsi_get_serial0123456789abcdefdo_scsi_page83_prespc3_inquiryscsi_inquiryscsi_dump_v4scsi_dump_sensescsi_dumpdo_scsi_page0_inquirydo_scsi_page83_inquirycheck_fill_0x83_idprepend_vendor_modeldo_scsi_page80_inquiryscsi_std_inquirylibudev: %s: ../../udev/lib/libudev.ccontext %p released SYSFS_PATHUDEV_RUNUDEV_CONFIG_FILEudev_logudev_rootudev_rulesUDEV_ROOTUDEV_LOGselinux=%i getfscreatecon failed context %p created log_priority=%d config_file='%s' dev_path='%s' sys_path='%s' rules_path='%s' context creation failed setfscreatecon failed: %s matchpathcon(%s) failed setfscreatecon %s failed: %s setfilecon %s failed: %s custom logging function %p registered missing = in '%s'[%i], skip line inconsistent quoting in '%s'[%i], skip line udev_set_log_fnudev_unrefudev_newselinux_initudev_selinux_resetfscreateconudev_selinux_setfscreateconudev_selinux_lsetfilecon\x2f\x5cerrinfodebug../driversubsystem;h,lL9I(nЧ%3&)(.%,0-"*!+ / 1#$' 2 + I +-1|CEK8qX3#Q4 c:pjJXKQBBcĬx4 ]libselinux.so.1__gmon_start___Jv_RegisterClasses_initfreeconsetfscreateconlsetfilecon_finimatchpathconmatchpathcon_init_prefixgetfscreateconis_selinux_enabledlibc.so.6_IO_stdin_used__printf_chkoptindstrrchr__strdupstrncpyputs__stack_chk_failstrtolfgetsstrlenopenlog__errno_location__fprintf_chkstrnlenfclosemallocstrcasecmpgetenv__ctype_b_locstderrioctlreadlinkgetopt_longstrncasecmpopenstrchr__vfprintf_chk__vsyslog_chkfopen64strcmpstrerror__libc_start_maincloselogfree_edata__bss_start_endGLIBC_2.4GLIBC_2.3GLIBC_2.1GLIBC_2.3.4GLIBC_2.0ii ii )ii 3ti =ii I2.   $ ( , 048<@DHLPTX\`dhlptx |!"#$%&'()*US[Dtn=!X[5%%h%h%h% h%h %h(%h0%h8p% h@`%$hHP%(hP@%,hX0%0h` %4hh%8hp%<hx%@h%Dh%Hh%Lh%Ph%Th%Xh%\hp%`h`%dhP%hh@%lh0%ph %th%xh%|h%h%h%h%h%h %h(%h0%h8p%h@`1^PTRhhQVh+US=u@- X9sB 9r[]Ív'Utt $ÐUWVSL$EU$EUUE8 mt BDG u1fE;]DG EDG t8UK &փDG uUM_U/tEME;]s%EM9딍t&u$Et&UE[^_]Í0E8t&'L$qU]1ۉMu}1eE1yJtrD$1D$$Ȭ.D$$ D$D$ D$Ϭ|$4$tkhtIxt‹$؋Ue3M]u}]aÍ$믐t&4D$4$TqD$D$ <$pte8t$D$<D$`D$ D$D$$<$(EuEt&&$+zE1ۉD$D$H$mt$D$U$UUT$D$c$:$st$D$D$`D$ D$D$$N}E1ۉt$ D$D$~$D$ҬD$`D$ ~D$D$$[t$D$D$`D$ D$D$$U1ۉ$$;&}i$d$M$&5vUU E E UUEU]UEt]ÐUE]@Ðt&UU EP]fUE]@Ðt&UE]@ Ðt&U1UtB] U1UtB ] UE]] uuD$D$ D$$]]uuE E]s&U(UM 9J}Ðt&E D$ED$ED$ED$ EL$$D$RÉ'U(UE BT$D$PD$ذD$ rD$D$$mÍt&'US$]t ~$[]ÐCuiC $zC$oC$d\$$D$׮D$D$ ]D$D$]$[]#&C$C냍UWVS\$$eE1$1 󫋕BBB $It /dev@A $&t /sys@B$t"/etc@/ude@v/ud@ ev.c@onfA t y$D$˯D$D$ 5$D$D$m $DžUe3)\[^_]Ít&q$t2B$Q4$AD$/$ $t80uxvu @ $it&$4$MD$/$ D$~$SDž&D$$L$ut&DA u#ttD$=$sZp@9DG tDG u$QCDDG t t&BDG u 4$‰|DH lDGDH uޅ<"<'D$$$ Ac$9$/=t2A $$B D$/$Y $9t$ AX fH[B$D$D$BD$D$ SD$D$Qt,A $D$$MD$eD$D$ *L$ $D$D$OB$D$yD$D$D$ +D$D$D$D$L$$D$ ,D$D$B $D$D$D$D$ -D$D$AD$D$D$ .D$D$D$ $XBt4D$D$D$D$ 0D$D$$ $U:D$T$L$D$D$ D$D$$uD$ND$D$ WD$D$$wBD$xL$D$D$D$ D$D$$=1D$$uLB $' $B D$/$wD$$$|PA$$%BD$/$`t&'US$]Cu$[]ÐC$iyP$fD$D$ D$ D$D$D$$륍t&US4]Cu4[]ÐEED$ED$E $x$E$xUE$V4[]Ít&E D$D$'D$ D$D$D$$9ut&g$}D$E D$D$'D$ D$D$D$$\US4]Cu4[]ÐEED$ED$E $$x,ED$E $xVE$_4[]Ðt&E D$D$CD$ oD$D$D$$Amt&o$D$E D$6D$CD$ sD$D$D$$[U1VMSu] t9sut[^]É'UWVSEEuuE tÉD$E $ urC< vkC<vdC<v]\uEU|xxPӋDP _uEuEuvE[^_]Ðt&EW&ʉρEt^%=EtI%=Et4%=Et%=EE1<&9Ex%=S%=g%=h!EN%tf %? ǃ;U|؃o~*~~1f9E/#%=0fEEt&U}t&U D$ $ EEM!E!E!E!E'UVSut[U11:u v:t 9ލvw9t4M t&t9vu[^]1ۋE $[^] UWVS u} t84$t*\8uB8u Bu [^_]ÍUWVS1ۃEEtxE1$t&E/EUEEtIU\UUtȋuauE\EfUME룋M[^_] UWVS1ۃ} eE1uD)čL$u6<\t\BtƉ֋CBCC $$9u΃ [^_]ÍUWVS } 79u *f9t"CU$T$u [^_]fUuy$1t@@@ E$YGtCF~7G8 [^_]Ðt&FU$T$69ut&|<$1WvUWVS,E eU1҉E$l1f tw  uD$4$|$ED$\$4$ ƄٻDž οu󦋍8t1ۍvD$/$ntN;~؋UD$wT$4$}4$|$D$z1 Ue3u ,[^_] UWVS,Ue]1ۉ$1҉Év tw uD$|$4$D$D$w4$D$4$D$D$t$4$_=v!]e3u ,[^_]ƄD$/4$1tTt"9E vTuދM t뇍&'UUM EU UUy]UUM EU UU]pU]Ít&'UWVSO# )t$1ED$E D$E$9rރ [^_]Ë$ÐUStfЋu[]ÐUS[\#|Y[ata_idxhno node specified ata_id.cunable to open '%s' ID_TYPE=cdID_TYPE=tapeID_TYPE=opticalID_TYPE=genericID_TYPE=diskID_MODEL=%s ID_SERIAL=%s ID_REVISION=%s ID_BUS=ata%s_%s exporthelpUsage: ata_id [--export] [--help] --export print values as environemt keys --help print this help text HDIO_GET_IDENTITY unsupported for '%s' HDIO_GET_IDENTITY failed for '%s' mainxhlibudev: %s: ../../udev/lib/libudev.ccontext %p released SYSFS_PATHUDEV_RUNUDEV_CONFIG_FILEudev_logudev_rootudev_rulesUDEV_ROOTUDEV_LOGselinux=%i getfscreatecon failed context %p created log_priority=%d config_file='%s' dev_path='%s' sys_path='%s' rules_path='%s' context creation failed setfscreatecon failed: %s matchpathcon(%s) failed setfscreatecon %s failed: %s setfilecon %s failed: %s custom logging function %p registered missing = in '%s'[%i], skip line inconsistent quoting in '%s'[%i], skip line udev_set_log_fnudev_unrefudev_newselinux_initudev_selinux_resetfscreateconudev_selinux_setfscreateconudev_selinux_lsetfilecon\x2f\x5cerrinfodebug../driversubsystem;!$(dHtx 48Xp4T8XxttT4T$tDdt| 5AB F,8 D  F AB IKh"AB 0AB @ AB PAB ` AB p AB AD AD (YAB IFH GAB `pEAB xAB DpeAB IlAB DPAB D@AB D@7AD E(AB FHAB Eh0TAB FAB C@AB CAB DZAB FAB F$qAB ID`BAB AJd AB |Ы AB zR| AB 8ZAB C  āo,p S Hԉo\oobr‹ҋ"2BRbrŒҌ"2BRbrҍOsPWGata_id.debugK\.shstrtab.interp.note.ABI-tag.note.SuSE.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.SUSE.OPTs.gnu_debuglink TThh !,$Cāh?o,,DI pp0QSYoffo\\ `u  ~ ԉ H 0LL  ,, 12?  ?????@@0@@@070701005E9435000081ED000000000000000000000001495DB930000076F8000000080000000100000000000000000000001000000000lib/udev/usb_idELF4 r4 (444  TTT|_|_oohhh\\Ptd4X44QtdRtdo/lib/ld-linux.so.2GNUSuSESuSE GNUgہ͕ CB;/ P%A3756< &%.:>21+84!*9)=   ?$#'( ,;"/-0@ 9 I 9;?|CEK8qX3U [QkD y:0Lpdf)F?N(Bc 6v6T$4< ]libselinux.so.1__gmon_start___Jv_RegisterClasses_initfreeconsetfscreateconlsetfilecon_finimatchpathconmatchpathcon_init_prefixgetfscreateconis_selinux_enabledlibc.so.6_IO_stdin_used__printf_chkreaddirstrncmpoptindstrrchr__strdupclosedirstrncpyputs__stack_chk_fail__lxstatstrtolfgetsgetpwnamstrlenopenlogstrstr__errno_locationread__fprintf_chkgetgrnamstrnlenfclosestrtoulmallocstrcasecmpopendirgetenv__ctype_b_locsscanfstderr__snprintf_chkreadlinkgetopt_longstrncasecmpfwriteopenstrchr__vfprintf_chk__vsyslog_chk__sprintf_chk__xstatfopen64strcmpstrerror__libc_start_maincloselogfree_edata__bss_start_endGLIBC_2.4GLIBC_2.3GLIBC_2.1GLIBC_2.3.4GLIBC_2.0ii ii ii ti ii @<   $ ( , 048<@DHLPTX\`dhlptx |!"#$%&'()*+,-./012345678US[ìbt~XAX[5%%h%h%h% h%h %h(%h0%h8p% h@`%$hHP%(hP@%,hX0%0h` %4hh%8hp%<hx%@h%Dh%Hh%Lh%Ph%Th%Xh%\hp%`h`%dhP%hh@%lh0%ph %th%xh%|h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h1^PTRhPh`QVh@{US=u@ - X9sB   9r[]Ív'Utt $ÐUWVSL$EU$AEQUUE0 mt BDF u1fE;]DF EDF t8UK &׃DF uUM_U/u\EU.E;]s$EM1듍vu$Et&UE[^_]Í0M‹1F tEME3E0'UU E E UUEU]&'L$qUx]1ۉMu}1eE1y D$D$$(LD$$ #D$D$ D$/|$4$=n&VhvuX$I$o :3؋Ue3M]u}]aÃutxt&뱍>v ,&$4p}D$D$<$2|$$0+D$D$$1  D$qT$$&D$D$$t4tD$?1D$$>t$ \$D$D$D$ D$D$hD$$ D$D$$0>=@uJ ɍZ [D$=\$$%?@=uJZ 6D$N\$$D%¹?==D$D$@$D$D$i$;D$D$$#==@ /D$@D$m$lD$D${$PD$D$$4\$D$$=+D$D$$=@tD$@D$$$1 sD$D$$<D$ A|$D$QD$D$ D$hD$$68LD$T$$- D$D$D$ D$D$4$`t$D$D$D$ D$hD$$R$1v^D$b D$$8"¹ D$X D$$!¹?~|$D$D$D$ D$hD$$D$1D$$x!D$D$$;ƸtD$?D$$D$D$k$RD$D$@$:,D$D$i$D$D$$D$D$D$  D$D$hD$$;D$0\$$< |t&D$F\$$ &D$D$$D$8D$D$ <D$hD$$|$D$@D$D$ $`C9/%{ D$|$$/¹?@D$|$$1¹?D$|$$ED$D$$;tT$D$?$rD$,|$$X¹?D$D$ D$@D$D$$@s1|$D$lD$D$ D$hD$$t$D$D$D$ t$D$D$D$ $|t$D$D$D$ t$D$D$D$ $$UEt]ÐUE]@Ðt&UU EP]fUE]@Ðt&UE]@ Ðt&U1UtB] U1UtB ] UE]] uuD$D$ D$$]]uuE E]&U(UM 9J}Ðt&E D$ED$ED$ED$ EL$$D$RÉ'U(UE BT$D$D$=D$ rD$%D$$mÍt&'US$]t ~$[]ÐCuiC $C$C$\$$D$>D$MD$ ]D$%D$]$[]&C$!C냍UWVS\$$eE1y$1 󫋕BBB $)t /dev@A $t /sys@B$t"/etc@/ude@v/ud@ ev.c@onfA t y$D$2D$XD$ 5$D$%D$m $DžUe3)\[^_]Ít&q$SXt2B$4$AD$/$ $^t80uxvu @ $gt&$4$}D$/$ D$;$Dž&D$$L$u@t&DA u#ttD$=$Zp@9DG tDG u$CDDG t t&BDG u 4$‰|DH lDGDH uޅ<"<'D$x$[$ Ac$$t2A $V$NB D$/$Y $yt$ AX fH[B$D$D$D$aD$ SD$%D$Qt,A $D$.$D$D$XD$ *L$ $D$%D$OB$D$D$XD$D$ +D$%D$D$D$XL$$D$ ,D$%D$B $D$D$XD$D$ -D$%D$AD$D$XD$ .D$D$%D$ $XBt4D$D$!D$XD$ 0D$%D$$ $:D$T$L$D$XD$ D$%D$$uD$D$aD$ WD$%D$$wBD$L$D$D$XD$ D$%D$$1D$$uLB $ $B D$/$wD$$,PA$c$UBD$/$`t&'US$]Cu$[]ÐC$Iy$D$KD$nD$ D$%D$D$$륍t&US4]Cu4[]ÐEED$ED$E $x$E$xUE$4[]Ít&E D$fD$D$ D$D$%D$$9ut&$D$E D$D$D$ D$D$%D$$\US4]Cu4[]ÐEED$ED$E $x,ED$E $NxVE$4[]Ðt&E D$fD$D$ oD$D$%D$$Amt&$D$E D$D$D$ sD$D$%D$$[U1VMSu] t9sut[^]É'UWVSEEuuE tÉD$E $urC< vkC<vdC<v]\uEU|xxP_ӋDP _uEuEuvE[^_]Ðt&EW&ʉρEt^%=EtI%=Et4%=Et%=EE1<&9Ex%=S%=g%=h!EN%tf %? ǃ;U|؃o~*~~1f9E/#%=0fEEt&U}t&U D$ $ EEM!E!E!E!E'UVSut[U11:u v:t 9ލvw9t4M t&t9vu[^]1ۋE $[^] UWVS u} t84$Pt*\8uB8u Bu [^_]ÍUWVS1ۃEEtxE1$t&E/EUEEtIUUUtȋuuE\EfUME룋M[^_] UWVS1ۃ} eE1uD)čL$u6<\t\BtƉ֋CBCC $*$ 9u΃ [^_]ÍUWVS } 79u *f9t"CU$T$u [^_]fUuy$1t@@@ E$GtCF~7G8 [^_]Ðt&FU$T$B69ut&|<$15WvUWVS,E eU1҉E$l1f tw  uD$4$|$ED$\$4$ƄٻDž ο󦋍8t1ۍvD$/$tN;~؋UD$T$4$}4$|$D$z1 Ue3u ,[^_] UWVS,Ue]1ۉ$1҉Év tw uD$|$4$D$D$4$D$4$D$D$t$4$?=v!]e3u ,[^_]ƄD$/4$o1tTt"9E vTuދM t뇍&'UUM EU UU3]UUM EU UU(]pU1]ÐUW(VSEU u]eE1$4$D$D$ ‰||+D$\$$t|\$T$4$|$D$$%=u|t$D$$ue35Č[^_]Ðup|+D$\$$|\$T$4$D$D$$+11dD$<$D$,D$:<$(t|+D$$\$|\$|$4$14$\$D$4$\$D$T$t$$CI|\$D$$e|\$|$$|\$D$4$\$\$D$4$ \$4$T$V|$t$$h&|+D$|$$||$\$$||$D$ 4$4$|$D$T$t$$||$D$$||$\$$e||$D$ 4$K4$|$D$/T$t$$qw||$D$$||$\$$||$D$4$|$D$4$T$Lf+D$|$D$&UWVS| ] eE1E}$D$$D$=vƍ\$D$$$D$D$|$D$<$u @t6Ct$$u㋃}e3=| [^_]f$ 1tŋ1󫍽D$t$$PBD$|$$]u%%==@tu"D$<$xӍD$D$$$xt$Ƅ5D$ D$|$ $ND$\$<$,ƄD$/$ D$D$ $At&'UWVSu ]}F ED$ED$E$t D$\$$t D$|$$D$/E$+ D$D$$z t" vt=t;] u΃ 1[^_]Ít&FBF 4$E [^_]ÍUWVSE$NjE 9t3|$Es4$D$u |;=;] u$ 1ED$ED$D$ D$D$FD$$@CsƆF0[^_]Ít&ED$E4$D$D$ D$D$D$ƃ[^_]Ð1ۃ[^_]ÍUWVS} 79u *f9t"UC$T$u[^_]fEuy$ 1Et֋}1D$ED$E$UFӉV2B[^_]Ðt&UF$T$269ut&|vUWVS<EU }E<$eU1҉4$P .tހ#vt֋X t-X D$.$Zt$T$tu\$|$D$D$ D$D$$ T$ED$ D$$ 4$84$1Ue3u <[^_]聿$藿|$D$D$!D$ D$nD$D$$됐U]Ít&'UWVSOÉ! þ)t$1ED$E D$E$9rރ [^_]Ë$ÐUStfЋu[]ÐUS[ Y[usb_idnuxhDEVPATHNo device specified unable to access '%s' usb_id.cbInterfaceClassbInterfaceSubClassgenericcdtapefloppydiskaudiohidprinterstorage%s: if_class %d protocol %d scsi%d:%d:%d:%dinvalid scsi device '%s' vendormodeltypeopticalrevmanufactureridVendorproductidProductbcdDeviceserial_-ID_VENDOR=%s ID_MODEL=%s ID_REVISION=%s ID_SERIAL=%s ID_SERIAL_SHORT=%s ID_TYPE=%s ID_INSTANCE=%s ID_BUS=usbusb-infonum-infoexporthelpUsage: usb_id [--usb-info] [--num-info] [--export] [--help] --usb-info use usb strings instead --num-info use numerical values --export print values as environemt keys --help print this help text unable to access usb_interface device of '%s' %s: cannot get bInterfaceClass attribute unable to find parent 'usb' device of '%s' unable to find parent 'scsi' device of '%s' %s: cannot get SCSI vendor attribute %s: cannot get SCSI model attribute %s: cannot get SCSI type attribute %s: cannot get SCSI revision attribute No USB vendor information available ؞unxhusb_idlibudev: %s: ../../udev/lib/libudev.ccontext %p released SYSFS_PATHUDEV_RUNUDEV_CONFIG_FILEudev_logudev_rootudev_rulesUDEV_ROOTUDEV_LOGselinux=%i getfscreatecon failed context %p created log_priority=%d config_file='%s' dev_path='%s' sys_path='%s' rules_path='%s' context creation failed setfscreatecon failed: %s matchpathcon(%s) failed setfscreatecon %s failed: %s setfilecon %s failed: %s custom logging function %p registered missing = in '%s'[%i], skip line inconsistent quoting in '%s'[%i], skip line udev_set_log_fnudev_unrefudev_newselinux_initudev_selinux_resetfscreateconudev_selinux_setfscreateconudev_selinux_lsetfilecon\x2f\x5cerrdebug..//subsystem//bus/module/module/drivers/drivers//devices//class//block//subsystem/driver/class/block/devicespecified group '%s' unknown ../../udev/udev_utils.cspecified user '%s' unknown %s=%sunable to open '%s': %s %s/%serror resolving group '%s': %s error resolving user '%s': %s lookup_grouplookup_useradd_matching_files;0|ܺ  8P h<\ \ |<Xt<,0PAB I,`AB ULJAB Fl`AB DAB IAB INAB EAB F$AB F(AB FHAB IzR|  AB 8ZAB C < āod  lo ooҍ"2BRbrŽҎ"2BRbrҏ"2BRbrҐOsPWGusb_id.debug[.shstrtab.interp.note.ABI-tag.note.SuSE.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.SUSE.OPTs.gnu_debuglink TThh !,$Cā?oddDI QYo fo  `u ll ~  << 0ll =N  O 44XYo  ooooopp 0ppq070701005E9430000081A4000000000000000000000001495DB93000000956000000080000000100000000000000000000002200000000lib/udev/rule_generator.functions# functions used by the udev rule generator # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation version 2 of the License. PATH='/sbin:/bin' # Read a single line from file $1 in the $DEVPATH directory. # The function must not return an error even if the file does not exist. sysread() { local file="$1" [ -e "/sys$DEVPATH/$file" ] || return 0 local value read value < "/sys$DEVPATH/$file" || return 0 echo "$value" } sysreadlink() { local file="$1" [ -e "/sys$DEVPATH/$file" ] || return 0 readlink -f /sys$DEVPATH/$file 2> /dev/null || true } # Return true if a directory is writeable. writeable() { if ln -s test-link $1/.is-writeable 2> /dev/null; then rm -f $1/.is-writeable return 0 else return 1 fi } # Create a lock file for the current rules file. lock_rules_file() { [ -e /dev/.udev/ ] || return 0 RULES_LOCK="/dev/.udev/.lock-${RULES_FILE##*/}" retry=30 while ! mkdir $RULES_LOCK 2> /dev/null; do if [ $retry -eq 0 ]; then echo "Cannot lock $RULES_FILE!" >&2 exit 2 fi sleep 1 retry=$(($retry - 1)) done } unlock_rules_file() { [ "$RULES_LOCK" ] || return 0 rmdir $RULES_LOCK || true } # Choose the real rules file if it is writeable or a temporary file if not. # Both files should be checked later when looking for existing rules. choose_rules_file() { local tmp_rules_file="/dev/.udev/tmp-rules--${RULES_FILE##*/}" [ -e "$RULES_FILE" -o -e "$tmp_rules_file" ] || PRINT_HEADER=1 if writeable ${RULES_FILE%/*}; then RO_RULES_FILE='/dev/null' else RO_RULES_FILE=$RULES_FILE RULES_FILE=$tmp_rules_file fi } # Return the name of the first free device. raw_find_next_available() { local links="$1" local basename=${links%%[ 0-9]*} local max=-1 for name in $links; do local num=${name#$basename} [ "$num" ] || num=0 [ $num -gt $max ] && max=$num done local max=$(($max + 1)) # "name0" actually is just "name" [ $max -eq 0 ] && return echo "$max" } # Find all rules matching a key (with action) and a pattern. find_all_rules() { local key="$1" local linkre="$2" local match="$3" local search='.*[[:space:],]'"$key"'"('"$linkre"')".*' echo $(sed -n -r -e 's/^#.*//' -e "${match}s/${search}/\1/p" \ $RO_RULES_FILE \ $([ -e $RULES_FILE ] && echo $RULES_FILE) \ 2>/dev/null) } 070701005E9432000081ED000000000000000000000001495DB93000002E18000000080000000100000000000000000000001100000000lib/udev/path_id#!/bin/sh # provide the shortest possible unique hardware path to a device # for the Linux Persistent Device Naming scheme # # Copyright (C) 2005-2006 SUSE Linux Products GmbH # Author: # Hannes Reinecke # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation version 2 of the License. SYSFS=/sys RESULT=1 TYPE= OPWD="`pwd`" full_sysfs_path= full_sysfs_device_path= if [ -z "$DEVPATH" -a -z "$1" ] ; then exit 1 fi if [ -z "$DEVPATH" ] ; then case "$1" in $SYSFS/*) DEVPATH="${1#$SYSFS}" ;; *) DEVPATH=$1 ;; esac fi if [ ! -e $SYSFS$DEVPATH/dev ] ; then exit 1 fi case "$DEVPATH" in /devices/*) cd "$SYSFS$DEVPATH/subsystem"; TYPE="`pwd -P`" cd "$OPWD" TYPE="${TYPE##*/}" ;; /class/*) TYPE="${DEVPATH#/class/}" TYPE="${TYPE%%/*}" ;; /block/*) TYPE=block ;; *) exit 1 ;; esac get_port_offset () { local type offset port type=$1 offset=$2 for i in $type[0-9]* ; do : i $i port="${i#$type}" if [ "$port" -lt "$offset" ] ; then offset=$port ; fi done echo $offset } handle_pci () { local DEV=$1 cd -P $1 DEV=${PWD} pci_id=${DEV##*/} host_dev_path=$DEV # cciss devices don't have a separate sysfs node for blk_link in block*; do if [ -L "$blk_link" ]; then case "$blk_link" in *cciss*) d=cciss-${blk_link#*cciss\!} ;; esac fi done while [ ! -z "$host_dev_path" ] ; do case "$host_dev_path" in */pci[0-9]*) host_dev_path=${host_dev_path%/*} ;; *) break ;; esac done if [ "$d" ]; then d="pci-$pci_id-$d" else d="pci-$pci_id" fi D="$host_dev_path" RESULT=0 } handle_platform () { local DEV=$1 cd -P $1 DEV=${PWD} platform_id=${DEV##*/} host_dev_path=$DEV while [ ! -z "$host_dev_path" ] ; do case "$host_dev_path" in */platform*) host_dev_path=${host_dev_path%/*} ;; *) break ;; esac done if [ "$d" ]; then d="platform-$platform_id-$d" else d="platform-$platform_id" fi D="$host_dev_path" RESULT=0 } handle_serio () { local DEV=$1 cd -P $1 DEV=${PWD} serio_id=${DEV##*/serio} host_dev_path=$DEV while [ ! -z "$host_dev_path" ] ; do case "$host_dev_path" in */serio*) host_dev_path=${host_dev_path%/*} ;; *) break ;; esac done if [ "$d" ]; then d="serio-$serio_id-$d" else d="serio-$serio_id" fi D="$host_dev_path" RESULT=0 } handle_ide () { : handle_ide $* local DEV=$1 local port idedev idecontroller # IDE : DEV $DEV port=${DEV##*/} idedev=${DEV%/*} idecontroller=${idedev%/*} # port info if the controller has more than one interface port="${port#ide}" : port $port d $d : idedev $idedev kernel_port $port case "${port#*.}" in 0) channel=0 ;; 1) channel=1 ;; *) echo "Error: $idedev is neither master or slave" >&2 ;; esac cd $idecontroller offset="`get_port_offset ide ${port%.*}`" cd "$OPWD" : port offset $offset port=$((${port%.*} - $offset)) if [ "$d" ] ; then d="ide-${port}:$channel-$d" else d="ide-${port}:$channel" fi D=$idecontroller RESULT=0 } handle_scsi () { : handle_scsi $* local DEV=$1 local cil controller_port controller_dev # SCSI device cil="${DEV##*/}" cil="${cil#*:}" target_dev=${DEV%/*} target_id=${target_dev##*/target} cd "$target_dev" target_num=0 for tid in ${target_id}* ; do target_num=$(( $target_num + 1 )) done controller_port=${target_dev%/*} controller_dev="${controller_port%/*}" : controller_dev $controller_dev : controller_port $controller_port # a host controller may have more than one interface/port controller_port="${controller_port##*/host}" # cd "$controller_dev" controller_offset=$(get_port_offset host $controller_port) cd "$OPWD" controller_port=$(( $controller_port - $controller_offset)) scsi_id="scsi-${controller_port}:${cil}" if [ "$d" ] ; then d="${scsi_id}-$d" else d="$scsi_id" fi D="$controller_dev" RESULT=0 } handle_firewire () { : handle_firewire $* local DEV=$1 if [ -f "$D/ieee1394_id" ] ; then read ieee1394_id < $D/ieee1394_id fi if [ -z "$ieee1394_id" ] ; then : no IEEE1394 ID RESULT=1 return fi fw_host_dev=${DEV%/fw-host*} # IEEE1394 devices are always endpoints d="ieee1394-0x$ieee1394_id" D="$fw_host_dev" RESULT=0 } handle_fc () { : handle_fc $* local DEV=$1 local cil controller_port controller_dev # SCSI-FC device fc_tgt_hcil="${DEV##*/}" fc_tgt_lun="${fc_tgt_hcil##*:}" fc_tgt_path="${DEV%/*}" fc_tgt_num="${fc_tgt_path##*/}" fc_tgt_dev="${fc_tgt_path}/fc_transport/${fc_tgt_num}" if [ -e "$fc_tgt_dev/port_name" ]; then read wwpn < $fc_tgt_dev/port_name fi if [ -z "$wwpn" ] ; then : no WWPN D= RESULT=1 return fi # Linux currently knows about 32bit luns tmp_lun3=$(printf "%04x" $(($fc_tgt_lun & 0xFFFF))) tmp_lun2=$(printf "%04x" $(( ($fc_tgt_lun >> 16) & 0xFFFF))) tmp_lun1="0000" tmp_lun0="0000" if (($fc_tgt_lun == 0)) ; then lun="0x0000000000000000" else lun="0x${tmp_lun3}${tmp_lun2}${tmp_lun1}${tmp_lun0}" fi controller_dev="${fc_tgt_path%/host[0-9]*}" # FC devices are always endpoints d="fc-${wwpn}:${lun}" D="$controller_dev" RESULT=0 } handle_sas () { : handle_sas $* local DEV=$1 local cil adapter controller_dev # SAS device sas_host_path="${DEV%%/port*}" sas_phy_path="${DEV#*/host*/}" sas_phy_path="${sas_phy_path%%/target*}" sas_phy_id="${sas_phy_path%%/*}" sas_phy_id="${sas_phy_id##*port-}" sas_port_id="${sas_phy_path%%/end_device*}" sas_port_id="${sas_port_id##*port-}" sas_end_id="${sas_phy_path##*end_device-}" sas_phy_dev="/sys/class/sas_phy/phy-${sas_phy_id}" if [ -e "$sas_phy_dev/sas_address" ]; then read phy_address < $sas_phy_dev/sas_address read phy_id < $sas_phy_dev/phy_identifier fi if [ -z "$phy_address" ] ; then : no initiator address D= RESULT=1 return fi sas_port_dev="/sys/class/sas_port/port-${sas_port_id}" if [ -e "$sas_port_dev/num_phys" ] ; then read phy_port < $sas_port_dev/num_phys fi if [ -z "$phy_port" ] ; then : no initiator address D= RESULT=1 return fi sas_phy_address="$phy_address:$phy_port:$phy_id" sas_end_dev="/sys/class/sas_device/end_device-${sas_end_id}" if [ -e "$sas_end_dev/sas_address" ]; then read end_address < $sas_end_dev/sas_address read end_id < $sas_end_dev/phy_identifier fi if [ -z "$end_address" ] ; then : no initiator address D= RESULT=1 return fi sas_end_address="$end_address:$end_id" controller_dev="${sas_host_path%/host[0-9]*}" # SAS devices are always endpoints d="sas-${sas_phy_address}-${sas_end_address}" D="$controller_dev" RESULT=0 } handle_iscsi() { local DEV=$1 local iscsi_session_dir local iscsi_session iscsi_session_path local iscsi_connection iscsi_connection_path local iscsi_scsi_lun # iSCSI device iscsi_session_dir="${DEV%%/target*}" iscsi_session="${iscsi_session_dir##*/}" iscsi_session_path=/sys/class/iscsi_session/${iscsi_session} if [ ! -d "$iscsi_session_path" ] ; then : no iSCSI session path RESULT=1 return fi # Currently we're not doing MC/S for conn in ${iscsi_session_dir}/connection* ; do iscsi_conn_num=${conn##*:} if [ "$iscsi_conn_num" = '0' ] ; then iscsi_connection=$(basename $conn) fi done if [ -z "$iscsi_connection" ] ; then : no iSCSI connection found RESULT=1 return fi iscsi_connection_path=/sys/class/iscsi_connection/${iscsi_connection} if [ ! -d "$iscsi_connection_path" ] ; then : no iSCSI connection path RESULT=1 return fi if [ -e "${iscsi_session_path}/targetname" ]; then read iscsi_tgtname < ${iscsi_session_path}/targetname fi if [ -z "$iscsi_tgtname" ] ; then : No iSCSI Targetname RESULT=1 return fi if [ -e "${iscsi_connection_path}/persistent_address" ] ; then read iscsi_address < ${iscsi_connection_path}/persistent_address fi if [ -z "$iscsi_address" ] ; then : No iSCSI Target address RESULT=1 return fi if [ -e "${iscsi_connection_path}/persistent_port" ] ; then read iscsi_port < ${iscsi_connection_path}/persistent_port fi iscsi_scsi_lun="${DEV##*:}" d="ip-${iscsi_address}:${iscsi_port}-iscsi-${iscsi_tgtname}-lun-${iscsi_scsi_lun}" RESULT=0 } handle_usb () { : handle_usb $* local DEV=$1 cd -P $1 DEV=${PWD} port_id=${DEV##*/} port_num=${port_id#*-} host_dev_path=$DEV while [ ! -z "$host_dev_path" ] ; do case "$host_dev_path" in */usb*) usb_host_path=$host_dev_path host_dev_path="${host_dev_path%/*}" ;; *) break ;; esac done : host_dev_path $host_dev_path usb_host_num=${usb_host_path##*/usb} cd "$host_dev_path" usb_host_offset=$(get_port_offset usb $usb_host_num) usb_host_port=$(($usb_host_num - $usb_host_offset)) cd "$OPWD" if [ "$d" ] ; then d="usb-$usb_host_port:$port_num-${d}" else d="usb-$usb_host_port:$port_num" fi D="$host_dev_path" RESULT=0 } handle_device () { full_sysfs_path="$SYSFS$DEVPATH" case "$DEVPATH" in /devices/*) full_sysfs_path="${full_sysfs_path%/*}" # skip parent device of the same subsystem if [ -L $full_sysfs_path/subsystem ]; then cd "$full_sysfs_path/subsystem"; subsys="`pwd -P`" cd "$OPWD" subsys="${subsys##*/}" if [ "$subsys" = "$TYPE" ]; then : skip same subsystem parent full_sysfs_path="${full_sysfs_path%/*}" fi fi # skip subsystem directory subsys="${full_sysfs_path##*/}" if [ "$subsys" = "$TYPE" ]; then : skip subsystem directory full_sysfs_path="${full_sysfs_path%/*}" fi cd $full_sysfs_path ;; *) # old sysfs layout if [ ! -L $full_sysfs_path/device ]; then full_sysfs_path="${full_sysfs_path%/*}" : full_sysfs_path "$full_sysfs_path" if [ ! -L $full_sysfs_path/device -o ! -f $full_sysfs_path/dev ]; then return fi fi if [ -L $full_sysfs_path/device/device ]; then cd $full_sysfs_path/device/device else cd $full_sysfs_path/device fi ;; esac full_sysfs_device_path="`pwd -P`" cd "$OPWD" D=$full_sysfs_device_path while [ ! -z "$D" ] ; do case "$D" in */ide[0-9]/[0-9].[0-9]*|*/ide[0-9][0-9]/[0-9][0-9].[0-9]*) handle_ide "$D" ;; */css0/*) if [ -r $full_sysfs_device_path/wwpn ]; then read wwpn < $full_sysfs_device_path/wwpn fi if [ -r $full_sysfs_device_path/fcp_lun ]; then read lun < $full_sysfs_device_path/fcp_lun fi if [ -r $full_sysfs_device_path/hba_id ]; then read bus_id < $full_sysfs_device_path/hba_id fi if [ "$bus_id" -a "$wwpn" -a "$lun" ]; then # S/390 zfcp adapter d="ccw-$bus_id-zfcp-$wwpn:$lun" RESULT=0 else # DASD devices bus="ccw" adapter=${D##*/} d="$bus-$adapter" RESULT=0 fi D= ;; */rport-[0-9]*:[0-9]*-[0-9]*/*) handle_fc "$D" ;; */end_device-[0-9]*:[0-9]*:[0-9]*/*) handle_sas "$D" ;; */fw-host[0-9]*/*) handle_firewire "$D" ;; */session[0-9]*/*) handle_iscsi "$D" D= ;; */host[0-9]*/[0-9]*:[0-9]*:[0-9]*:[0-9]*) handle_scsi "$D" ;; */usb[0-9]*/[0-9]*/*) handle_usb "$D" ;; */pci[0-9]*:[0-9]*) handle_pci "$D" ;; */serio[0-9]*) handle_serio "$D" ;; */platform/*) handle_platform "$D" ;; */devices) D= ;; *) : not handled RESULT=1 return ;; esac done if [ "$TYPE" = "scsi_tape" ] ; then devname=${full_sysfs_path##*/} rewind="${devname%%st*}" mode="${devname##*st}" case "$mode" in *l) mode="l" ;; *m) mode="m" ;; *a) mode="a" ;; *) mode="" ;; esac if [ "$d" ]; then d="$d-${rewind}st${mode}" fi fi } handle_device if [ -z "$d" ]; then exit 1 fi echo "ID_PATH=$d" exit 0 070701005E9436000081ED000000000000000000000001495DB930000056F4000000080000000100000000000000000000001000000000lib/udev/vol_idELF4R4 (444  TTTCCNOhhh\\Ptd>QtdRtdN/lib/ld-linux.so.2GNUSuSESuSE GNU;) NCF2).->@9'5;0B7=4 ( ?:#63E%/"<8&,1 C  !+A *$D< M+<?C@ |CEK8qX2>On(\Y " ~E {1L6o/6}vgMn[C&!JdQ$X?  hlibvolume_id.so.1__gmon_start___Jv_RegisterClassesvolume_id_get_labelvolume_id_log_fnvolume_id_get_uuidvolume_id_closevolume_id_encode_stringvolume_id_get_typevolume_id_probe_filesystemvolume_id_probe_allvolume_id_all_probersvolume_id_open_fdvolume_id_get_type_versionvolume_id_get_usagelibselinux.so.1_initfreeconsetfscreateconlsetfilecon_finimatchpathconmatchpathcon_init_prefixgetfscreateconis_selinux_enabledlibc.so.6_IO_stdin_usedsetuid__printf_chkoptindstrrchr__strdupstrncpyputs__stack_chk_failstrtolfgetsgetpwnamstrlenopenlog__errno_locationsetgroups__fprintf_chkstrnlenfclosemallocstrcasecmpgetenv__ctype_b_locoptargstderrioctlgetuidreadlinkgetopt_longstrncasecmpstrtoullfwriteopenstrchr__vfprintf_chk__vsyslog_chkfopen64setgidstrcmpstrerror__libc_start_maincloselogfree_edata__bss_start_endGLIBC_2.4GLIBC_2.3GLIBC_2.1GLIBC_2.3.4GLIBC_2.0ii iii sii }ti ii  D@<E   $ ( , 048<@DHLPTX\`dhlptx |!"#$%&'()*+,-./0123456789:;US[PtIt'X[5%%h%h%h% h%h %h(%h0%h8p% h@`%$hHP%(hP@%,hX0%0h` %4hh%8hp%<hx%@h%Dh%Hh%Lh%Ph%Th%Xh%\hp%`h`%dhP%hh@%lh0%ph %th%xh%|h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%hP1^PTRhPh`QVh US=u@-X9sB9r[]Ív'U tt $ ÐUS$EU] D$ T$EU$D$T$Ut$1[]ÍED$$ytE$j$1[]fL$qUWV1SQ9eE1Y D$D$$(D$$D 0DžDžDžDžDžD$D$ D$/\$<$4KL,v;1$ Ue3ĈY[^_]aÐt&$@DžyDžiDžYDžI8:D$D$$JDž$1%t& $D$$DžDž<D$<$I${D$D$r$tDžDžD$hD$ȉT$$L$D$ \$D$ D$ED$$mID$ T$T$D$$N|$ D$D$$0$M|$ D$ND$$"D$:D$D$ D$ED$$cD$ D$$:D$ D$ $AttD$$utXD$$tƉ֋CBCC $$9u΃ [^_]ÍUWVS } 79u *f9t"CU$T$@u [^_]fUuy$1)t@@@ E$GtCF~7G8 [^_]Ðt&FU$T$69ut&|<$1WvUWVS,E eU1҉E$l1f tw  uD$4$|$ED$\$4$qƄٻDž ο󦋍8t1ۍvD$/$rtN;~؋UD$T$4$}4$|$D$z1 Ue3u ,[^_]O UWVS,Ue]1ۉ$1҉Év tw uD$|$4$D$D$4$D$4$D$D$t$4$=v!]e3u ,[^_][ƄD$/4$1tTt"9E vTuދM t뇍&'UUM EU UU]UUM EU UU]pU]Ít&'UWVSOÉ) )t$1ED$E D$E$9rރ [^_]Ë$ÐUStfЋu[]ÐUS[(,Y[vol_idlLutxsaodhno device vol_id.c%s: error opening volume BLKGETSIZE64=%llu (%lluGB) nobody%s: unknown volume type #+-.:=@_/ $%?,ID_FS_USAGE=%s ID_FS_TYPE=%s ID_FS_VERSION=%s ID_FS_UUID=%s ID_FS_UUID_ENC=%s ID_FS_LABEL=%s ID_FS_LABEL_ENC=%s ID_FS_LABEL_SAFE=%s labellabel-rawuuidtypeexportskip-raidprobe-alloffsetdebughelpUsage: vol_id [options] --export export key/value pairs --type filesystem type --label filesystem label --label-raw raw label --uuid filesystem uuid --skip-raid don't probe for raid --probe-all find possibly conflicting signatures --offset= probe at the given offset --debug print debug output to stderr --help unable to drop privileges: %s 0 ȕp`P@Z&main?lELOuTtYx`sjato{dhlibudev: %s: ../../udev/lib/libudev.ccontext %p released SYSFS_PATHUDEV_RUNUDEV_CONFIG_FILEudev_logudev_rootudev_rulesUDEV_ROOTUDEV_LOGselinux=%i getfscreatecon failed context %p created log_priority=%d config_file='%s' dev_path='%s' sys_path='%s' rules_path='%s' context creation failed setfscreatecon failed: %s matchpathcon(%s) failed setfscreatecon %s failed: %s setfilecon %s failed: %s custom logging function %p registered missing = in '%s'[%i], skip line inconsistent quoting in '%s'[%i], skip line udev_set_log_fnudev_unrefudev_newselinux_initudev_selinux_resetfscreateconudev_selinux_setfscreateconudev_selinux_lsetfilecon\x2f\x5cerrinfo../driversubsystem;"0|L| ,<0\H|`,|, $@<`\L\<\|l| ^AB D,4 l D  F AB BDdAB L0VAB DAB  AB AB  AB О AB AD 0AD H YAB IFhGAB ПEAB  AB DРeAB I@lAB DAB D AB D(7AD EHAB FhAB ETAB FAB CAB C`AB DZAB F$`AB FD@qAB IdBAB AJ AB 0 AB zR| AB 8ZAB C/  āo<  P((oȌoo:fvƏ֏&6FVfvƐ֐&6FVfvƑ֑&6FVfvƒ֒OsPWGvol_id.debugUӊ.shstrtab.interp.note.ABI-tag.note.SuSE.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.SUSE.OPTs.gnu_debuglink TThh !,$Cā,?oLI <<`QYo:: foȌ `u (( (~ PP   0PP#6  7 >?NO  OOOOPP 0PP Q070701005E9431000081ED000000000000000000000001495DB930000046B8000000080000000100000000000000000000001600000000lib/udev/fstab_importELF@4A4 (444  TTT77??hhh\\Ptd2ȲȲQtdRtd?/lib/ld-linux.so.2GNUSuSESuSE GNU^O=(da%4(*)/%-1.!+", 0 2#&$' 3 , I ,.2|CEK8qX35QF w: p-~T&le[Bc4!ĭ(4T ]libselinux.so.1__gmon_start___Jv_RegisterClasses_initfreeconsetfscreateconlsetfilecon_finimatchpathconmatchpathcon_init_prefixgetfscreateconis_selinux_enabledlibc.so.6_IO_stdin_used__printf_chkstrncmpoptindstrrchr__strdupstrncpyputs__stack_chk_failstrtolsetmntentfgetsstrlenopenlog__errno_location__fprintf_chkfclosegetmntentmallocstrcasecmpgetenv__ctype_b_locstderrreadlinkgetopt_longstrncasecmpfwritestrchrendmntent__vfprintf_chk__vsyslog_chkfopen64strcmpstrerror__libc_start_maincloselogfree_edata__bss_start_endGLIBC_2.4GLIBC_2.3GLIBC_2.1GLIBC_2.3.4GLIBC_2.0ii 9ii Cii Mti Wii c3/   $ ( , 048<@DHLPTX\`dhlptx |!"#$%&'()*+US[ÔDtnU!X[5%%h%h%h% h%h %h(%h0%h8p% h@`%$hHP%(hP@%,hX0%0h` %4hh%8hp%<hx%@h%Dh%Hh%Lh%Ph%Th%Xh%\hp%`h`%dhP%hh@%lh0%ph %th%xh%|h%h%h%h%h%h %h(%h0%h8p%h@`%hHP1^PTRhhQVhPUS=u@- X9sB 9r[]Ív'Utt $ÐUWVS,EtrZt&ރt]D$|$D$ȭD$D$ 2D$ޭD$E$|$$u,[^_]Í,1[^_]Í&'USӃD$$D$1CD$$D$CD$ $D$C D$$D$CD$($D$CD$7$D$[]ÍL$qUX]Mu}9IeE1t~D$D$$HD$$D$D$ D$Q<$t$htMxftdvtV$؋Ue3M]u}]aÐ$봐t&$BD$$'t&D$$U$9BD$D$zD$D$ D$D$ޭD$4$B8/t}SC"tm'thaA1ۋ4$Dt&xnvD$D$$CC$D$aUt&WsSC"t 'D$D$$C$D$z2D$"D$$DD$ d24$$4$:\$D$<$4$$L1C^'$8D$`D$D$ $7u&'U]U u Eu] u]]uuE U]D$ D$D$$]]uuE E]UEt]ÐUE]@Ðt&UU EP]fUE]@Ðt&UE]@ Ðt&U1UtB] U1UtB ] UE]] uuD$D$ D$$]]uuE E]&U(UM 9J}Ðt&E D$ED$ED$ED$ EL$$D$RÉ'U(UE BT$D$D$D$ rD$D$$mÍt&'US$]t ~$[]ÐCuiC $C$C$\$$D$D$,D$ ]D$D$]$[]K&C$C냍UWVS\$$eE1$1 󫋕BЕBB $at /dev@A $>t /sys@B$t"/etc@/ude@v/ud@ ev.c@onfA t y$D$D$7D$ 5$D$D$m $DžUe3)\[^_]Ít&q$0t2B$y4$AD$/$ $;t80uxvu @ $Dt&$ 4$D$/$ D$${Dž&D$$L$,ut&DA u#ttD$=$Zp@9DG tDG u$iCDDG t t&BDG u 4$/‰|DH lDGDH uޅ<"<'D$U$$ Ac$Q$set2A $$VB D$/$Y $}!t$ AX fH[B$D$D$D$@D$ SD$D$Qt,A $D$$eD$D$7D$ *L$ $D$D$OB$D$D$7D$D$ +D$D$D$ΰD$7L$$D$ ,D$D$B $D$D$7D$D$ -D$D$AD$D$7D$ .D$D$D$ $XBt4D$D$D$7D$ 0D$D$$ $}:D$T$L$D$7D$ D$D$$uD$D$@D$ WD$D$$wBD$L$D$D$7D$ D$D$$u1D$^$uLB $O $B D$/$wD$h$PA$$]BD$/$`t&'US$]Cu$[]ÐC$yx$D$(D$MD$ D$D$D$$륍t&US4]Cu4[]ÐEED$ED$E $Ɖ֋CBCC $$9u΃ [^_]ÍUWVS } 79u *f9t"CU$T$u [^_]fUuy$1t@@@ E$GtCF~7G8 [^_]Ðt&FU$T$J69ut&|<$1WvUWVS,E eU1҉E$l1f tw  uD$4$|$ED$\$4$5ƄٻDž ο󦋍8t1ۍvD$/$tN;~؋UD$T$4$}4$|$D$z1 Ue3u ,[^_]3 UWVS,Ue]1ۉ$1҉Év tw uD$|$4$D$D$4$D$4$D$D$t$4$=v!]e3u ,[^_]?ƄD$/4$1tTt"9E vTuދM t뇍&'UUM EU UU]UUM EU UU]pU]Ít&'UWVSO" +)t$1ED$E D$E$9rރ [^_]Ë$ÐUStfЋu[]ÐUS[L"Y[compare '%s' == '%s' fstab_import.cFSTAB_NAME=%s FSTAB_DIR=%s FSTAB_TYPE=%s FSTAB_OPTS=%s FSTAB_FREQ=%d FSTAB_PASSNO=%d fstab_iddxh/etc/fstaberror: opening fstab: %s found '%s'@'%s' LABEL=UUID=exportdebughelpUsage: fstab_id [OPTIONS] name [...] --export print environment keys --debug debug to stderr --help print this help text error: missing device(s) to match mainxdhmatches_device_listlibudev: %s: ../../udev/lib/libudev.ccontext %p released SYSFS_PATHUDEV_RUNUDEV_CONFIG_FILEudev_logudev_rootudev_rulesUDEV_ROOTUDEV_LOGselinux=%i getfscreatecon failed context %p created log_priority=%d config_file='%s' dev_path='%s' sys_path='%s' rules_path='%s' context creation failed setfscreatecon failed: %s matchpathcon(%s) failed setfscreatecon %s failed: %s setfilecon %s failed: %s custom logging function %p registered missing = in '%s'[%i], skip line inconsistent quoting in '%s'[%i], skip line udev_set_log_fnudev_unrefudev_newselinux_initudev_selinux_resetfscreateconudev_selinux_setfscreateconudev_selinux_lsetfilecon\x2f\x5cerrinfo../driversubsystem;"80Tpx 8Phh(,HhxH$HD(d8H|  AB ACF<AB A,XPRD  F AB INAB L@AB P AB `AB p AB  AB  AD 8AD PЕYAB IFp0GAB EAB ЖAB DeAB IlAB D`AB DPAB D0P7AD EPAB FpAB E@TAB FAB CPAB CAB D ZAB F,AB FLqAB IlpBAB AJ AB  AB zR| DAB 88ZAB C T āo0t m Pooo"ʋڋ *:JZjzʌڌ *:JZjzʍڍ *OsPWGfstab_import.debug.shstrtab.interp.note.ABI-tag.note.SuSE.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.SUSE.OPTs.gnu_debuglink TThh !,$Cāl?o00DI tt@QmYo"" hfo `u  ~  PTT 0 @@\-- Ȳ23?  ?????@@0@@@070701001FC69E000041ED000000000000000000000005495DB93000000000000000080000000100000000000000000000001100000000lib/udev/devices070701001480480000A1FF000000000000000000000001495DB9300000000B000000080000000100000000000000000000001600000000lib/udev/devices/core/proc/kcore0707010014804E000021B0000000000000000000000001495DB9300000000000000008000000010000006C000000000000001500000000lib/udev/devices/ppp0707010014805B000021B0000000000000000E00000001495DB93000000000000000080000000100000004000000440000001700000000lib/udev/devices/ttyS407070100148046000021B0000000000000000000000001495DB9300000000000000008000000010000000A000000C80000001B00000000lib/udev/devices/fwmonitor0707010014804700002180000000000000000000000001495DB93000000000000000080000000100000005000000010000001900000000lib/udev/devices/console0707010014805C000021B0000000000000000E00000001495DB93000000000000000080000000100000004000000450000001700000000lib/udev/devices/ttyS50707010014805600002190000000000000000500000001495DB93000000000000000080000000100000004000000010000001600000000lib/udev/devices/tty1070701001480520000A1FF000000000000000000000001495DB9300000000F000000080000000100000000000000000000001800000000lib/udev/devices/stderr/proc/self/fd/2070701001FC69F000041ED000000000000000000000002495DB93000000000000000080000000100000000000000000000001500000000lib/udev/devices/net0707010014C07A000021B6000000000000000000000001495DB9300000000000000008000000010000000A000000C80000001900000000lib/udev/devices/net/tun07070100148057000021B0000000000000000E00000001495DB93000000000000000080000000100000004000000400000001700000000lib/udev/devices/ttyS00707010014805A000021B0000000000000000E00000001495DB93000000000000000080000000100000004000000430000001700000000lib/udev/devices/ttyS30707010014805E000021B0000000000000000E00000001495DB93000000000000000080000000100000004000000470000001700000000lib/udev/devices/ttyS7070701001480530000A1FF000000000000000000000001495DB9300000000F000000080000000100000000000000000000001700000000lib/udev/devices/stdin/proc/self/fd/0070701001FC6A1000041ED000000000000000000000002495DB93000000000000000080000000100000000000000000000001500000000lib/udev/devices/shm070701001480490000A1FF000000000000000000000001495DB9300000000D000000080000000100000000000000000000001400000000lib/udev/devices/fd/proc/self/fd07070100148058000021B0000000000000000E00000001495DB93000000000000000080000000100000004000000410000001700000000lib/udev/devices/ttyS10707010014804A000021B6000000000000000000000001495DB93000000000000000080000000100000001000000030000001600000000lib/udev/devices/null070701001480540000A1FF000000000000000000000001495DB9300000000F000000080000000100000000000000000000001800000000lib/udev/devices/stdout/proc/self/fd/10707010014804C000021B0000000000000000700000001495DB93000000000000000080000000100000006000000000000001500000000lib/udev/devices/lp00707010014804D000021B6000000000000000500000001495DB93000000000000000080000000100000005000000020000001600000000lib/udev/devices/ptmx0707010014804F000021B0000000000000000000000001495DB9300000000000000008000000010000000A000000C80000001600000000lib/udev/devices/skip07070100148050000021B0000000000000000000000001495DB93000000000000000080000000100000024000000000000001700000000lib/udev/devices/route07070100148051000021B0000000000000000000000001495DB9300000000000000008000000010000000A000000820000001A00000000lib/udev/devices/watchdog070701001FC6A0000041ED000000000000000000000002495DB93000000000000000080000000100000000000000000000001500000000lib/udev/devices/pts0707010014804B000021B0000000000000000000000001495DB930000000000000000800000001000000010000000B0000001600000000lib/udev/devices/kmsg07070100148055000021B6000000000000000500000001495DB93000000000000000080000000100000005000000000000001500000000lib/udev/devices/tty07070100148059000021B0000000000000000E00000001495DB93000000000000000080000000100000004000000420000001700000000lib/udev/devices/ttyS20707010014805D000021B0000000000000000E00000001495DB93000000000000000080000000100000004000000460000001700000000lib/udev/devices/ttyS60707010014805F000021B6000000000000000000000001495DB93000000000000000080000000100000001000000050000001600000000lib/udev/devices/zero070701001FC69D000041ED000000000000000000000002495DB93000000000000000080000000100000000000000000000001100000000lib/udev/rules.d070701007EC2A2000081A4000000000000000000000001495DB930000003BA000000080000000100000000000000000000002800000000lib/udev/rules.d/64-device-mapper.rules# do not edit this file, it will be overwritten on update KERNEL=="device-mapper", SYMLINK+="mapper/control" KERNEL!="dm-*", GOTO="device_mapper_end" ACTION!="add|change", GOTO="device_mapper_end" IMPORT{program}="/sbin/dmsetup export -j%M -m%m" ENV{DM_NAME}!="?*", GOTO="device_mapper_end" SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}", OPTIONS+="string_escape=replace" ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}" ENV{DM_STATE}=="SUSPENDED", GOTO="device_mapper_end" ENV{DM_TARGET_TYPES}=="|*error*", GOTO="device_mapper_end" IMPORT{program}="vol_id --export $tempnode" OPTIONS+="link_priority=-100" ENV{DM_TARGET_TYPES}=="*snapshot-origin*", OPTIONS+="link_priority=-90" ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" LABEL="device_mapper_end" 070701007EC2A5000081A4000000000000000000000001495DB93000000963000000080000000100000000000000000000003300000000lib/udev/rules.d/75-persistent-net-generator.rules# do not edit this file, it will be overwritten on update # these rules generate rules for persistent network device naming # # variables used to communicate: # MATCHADDR MAC address used for the match # MATCHID bus_id used for the match # MATCHDRV driver name used for the match # MATCHIFTYPE interface type match # COMMENT comment to add to the generated rule # INTERFACE_NAME requested name supplied by external tool # INTERFACE_NEW new interface name returned by rule writer ACTION!="add", GOTO="persistent_net_generator_end" SUBSYSTEM!="net", GOTO="persistent_net_generator_end" # ignore the interface if a name has already been set NAME=="?*", GOTO="persistent_net_generator_end" # device name whitelist KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end" # ignore Xen virtual interfaces SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" # read MAC address ENV{MATCHADDR}="$attr{address}" # match interface type ENV{MATCHIFTYPE}="$attr{type}" # do not use "locally administered" MAC address ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" # do not use empty address ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}="" # build comment line for generated rule: SUBSYSTEMS=="pci", ENV{COMMENT}="PCI device $attr{vendor}:$attr{device} ($driver)" SUBSYSTEMS=="usb", ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct} ($driver)" SUBSYSTEMS=="pcmcia", ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id} ($driver)" SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})" # ibmveth likes to use "locally administered" MAC addresses DRIVERS=="ibmveth", ENV{MATCHADDR}="$attr{address}", ENV{COMMENT}="ibmveth ($id)" # S/390 uses id matches only, do not use MAC address match SUBSYSTEMS=="ccwgroup", ENV{COMMENT}="S/390 $driver device at $id", ENV{MATCHID}="$id", ENV{MATCHDRV}="$driver", ENV{MATCHADDR}="" # see if we got enough data to create a rule ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", GOTO="persistent_net_generator_end" # default comment ENV{COMMENT}=="", ENV{COMMENT}="net device ($attr{driver})" # write rule DRIVERS=="?*", IMPORT{program}="write_net_rules" # rename interface if needed ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" LABEL="persistent_net_generator_end" 070701007EC2A4000081A4000000000000000000000001495DB93000000186000000080000000100000000000000000000002F00000000lib/udev/rules.d/75-cd-aliases-generator.rules# these rules generate rules for the /dev/{cdrom,dvd,...} symlinks # the path of removable devices changes frequently ACTION=="add", SUBSYSTEM=="block", SUBSYSTEMS=="usb|ieee1394", ENV{ID_CDROM}=="?*", ENV{GENERATED}!="?*", PROGRAM="write_cd_rules by-id", SYMLINK+="%c" ACTION=="add", SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{GENERATED}!="?*", PROGRAM="write_cd_rules", SYMLINK+="%c" 070701007EC2A7000081A4000000000000000000000001495DB9300000034A000000080000000100000000000000000000002200000000lib/udev/rules.d/80-drivers.rules# do not edit this file, it will be overwritten on update ACTION!="add", GOTO="drivers_end" DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/sbin/modprobe $env{MODALIAS}" SUBSYSTEM=="pnp", DRIVER!="?*", ENV{MODALIAS}!="?*", \ RUN{ignore_error}+="/bin/sh -c '/sbin/modprobe -a $$(while read id; do echo pnp:d$$id; done < /sys$devpath/id)'" SUBSYSTEM=="tifm", RUN+="/sbin/modprobe --all tifm_sd tifm_ms" SUBSYSTEM=="memstick", RUN+="/sbin/modprobe --all ms_block mspro_block" SUBSYSTEM=="mmc", RUN+="/sbin/modprobe mmc_block" SUBSYSTEM=="i2o", RUN+="/sbin/modprobe i2o_block" SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="/sbin/modprobe ide-scsi" SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/sbin/modprobe sg" SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/sbin/modprobe ppdev" LABEL="drivers_end" 070701007EC2A3000081A4000000000000000000000001495DB930000006CB000000080000000100000000000000000000002200000000lib/udev/rules.d/64-md-raid.rules# do not edit this file, it will be overwritten on update SUBSYSTEM!="block", GOTO="md_end" ACTION!="add|change", GOTO="md_end" # import data from a raid member and activate it #ENV{ID_FS_TYPE}=="linux_raid_member", IMPORT{program}="/sbin/mdadm --examine --export $tempnode", RUN+="/sbin/mdadm --incremental $env{DEVNAME}" # import data from a raid set KERNEL!="md*", GOTO="md_end" # container devices have a metadata version of e.g. 'external:ddf' and # never leave state 'inactive' ATTR{md/metadata_version}=="external:[A-Za-z]*", ATTR{md/array_state}=="inactive", GOTO="md_ignore_state" ATTR{md/array_state}=="|clear|inactive", GOTO="md_end" LABEL="md_ignore_state" IMPORT{program}="/sbin/mdadm --detail --export $tempnode" ENV{DEVTYPE}=="disk", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}", OPTIONS+="string_escape=replace" ENV{DEVTYPE}=="disk", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}" ENV{DEVTYPE}=="disk", ENV{MD_DEVNAME}=="?*", SYMLINK+="md/$env{MD_DEVNAME}" ENV{DEVTYPE}=="partition", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}-part%n", OPTIONS+="string_escape=replace" ENV{DEVTYPE}=="partition", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}-part%n" ENV{DEVTYPE}=="partition", ENV{MD_DEVNAME}=="*[^0-9]", SYMLINK+="md/$env{MD_DEVNAME}%n" ENV{DEVTYPE}=="partition", ENV{MD_DEVNAME}=="*[0-9]", SYMLINK+="md/$env{MD_DEVNAME}p%n" IMPORT{program}="vol_id --export $tempnode" OPTIONS+="link_priority=100" ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" LABEL="md_end" 070701007EC29C000081A4000000000000000000000001495DB930000005D5000000080000000100000000000000000000002B00000000lib/udev/rules.d/60-persistent-input.rules# do not edit this file, it will be overwritten on update ACTION!="add|change", GOTO="persistent_input_end" SUBSYSTEM!="input", GOTO="persistent_input_end" KERNEL=="input[0-9]*", GOTO="persistent_input_end" # usb devices SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export" SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="01", ENV{ID_CLASS}="kbd" SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="02", ENV{ID_CLASS}="mouse" # other devices DRIVERS=="pcspkr", ENV{ID_CLASS}="spkr" DRIVERS=="atkbd", ENV{ID_CLASS}="kbd" DRIVERS=="psmouse", ENV{ID_CLASS}="mouse" ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{ID_CLASS}="ir" # joystick (ABS_X || ABS_WHEEL || ABS_THROTTLE) && !BTN_TOUCH ATTRS{modalias}=="input:*-*a[068],*|input:*-*a*,[68],*m*", ATTRS{modalias}!="input:*-*k*14A,*r*", ENV{ID_CLASS}="joystick" # fill empty serial number ENV{ID_CLASS}=="?*", ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial" # by-id links KERNEL=="mouse*|js*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}" KERNEL=="event*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{ID_CLASS}" # by-path IMPORT{program}="path_id %p" ENV{ID_PATH}=="?*", KERNEL=="mouse*|js*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}" ENV{ID_PATH}=="?*", KERNEL=="event*", SYMLINK+="input/by-path/$env{ID_PATH}-event-$env{ID_CLASS}" LABEL="persistent_input_end" 070701007EC29D000081A4000000000000000000000001495DB9300000008D000000080000000100000000000000000000002300000000lib/udev/rules.d/60-cdrom_id.rules# import optical drive properties ACTION=="add|change", KERNEL=="sr[0-9]*|hd[a-z]|pcd[0-9]*", IMPORT{program}="cdrom_id --export $tempnode" 070701007EC29A000081A4000000000000000000000001495DB930000001E4000000080000000100000000000000000000001F00000000lib/udev/rules.d/40-suse.rules# do not edit this file, it will be overwritten on update KERNEL=="pmu", GROUP="video" KERNEL=="nvidia*|nvidiactl*", GROUP="video" KERNEL=="nvidia*|nvidiactl*", GROUP="video" KERNEL=="dv1394*|video1394*|raw1394*", GROUP="video" KERNEL=="vttuner*", GROUP="video" KERNEL=="vtx*|vbi*", GROUP="video" KERNEL=="winradio*", GROUP="video" SUBSYSTEM=="dvb", GROUP="video" SUBSYSTEM=="graphics", GROUP="video" SUBSYSTEM=="video4linux", GROUP="video" KERNEL=="agpgart", GROUP="video" 070701004EC107000081A4000000000000000000000001495DB93000000FE8000000080000000100000000000000000000002700000000lib/udev/rules.d/50-udev-default.rules# do not edit this file, it will be overwritten on update KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="0660", OPTIONS+="last_rule" KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="0660", OPTIONS+="last_rule" KERNEL=="ptmx", GROUP="tty", MODE="0666", OPTIONS+="last_rule" KERNEL=="tty", GROUP="tty", MODE="0666", OPTIONS+="last_rule" KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620", OPTIONS+="last_rule" KERNEL=="vcs|vcs[0-9]*|vcsa|vcsa[0-9]*", GROUP="tty", OPTIONS+="last_rule" KERNEL=="console", MODE="0600", OPTIONS+="last_rule" # serial KERNEL=="tty[A-Z]*|pppox*|ircomm*|noz*", GROUP="uucp" KERNEL=="ppp", MODE="0600", OPTIONS+="ignore_remove" KERNEL=="mwave", NAME="modems/mwave", GROUP="uucp" KERNEL=="hvc*|hvsi*", GROUP="uucp" KERNEL=="lirc0", SYMLINK+="lirc" # mem KERNEL=="null|zero|full|random|urandom", MODE="0666" KERNEL=="null", SYMLINK+="XOR" KERNEL=="mem|kmem|port|nvram", GROUP="kmem", MODE="0640" KERNEL=="ram0", SYMLINK+="ramdisk" KERNEL=="ram1", SYMLINK+="ram" # input KERNEL=="mouse*|mice|event*", NAME="input/%k", MODE="0640" KERNEL=="ts[0-9]*|uinput", NAME="input/%k", MODE="0600" KERNEL=="js[0-9]*", NAME="input/%k", MODE="0644", SYMLINK+="%k" # video4linux KERNEL=="vbi0", SYMLINK+="vbi" KERNEL=="radio0", SYMLINK+="radio" KERNEL=="video0", SYMLINK+="video" # graphics KERNEL=="agpgart", MODE="0600" KERNEL=="card[0-9]*", NAME="dri/%k", MODE="0666" KERNEL=="fb0", SYMLINK+="fb" # DVB video SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c" # Firewire KERNEL=="dv1394*", SYMLINK+="dv1394/%n" KERNEL=="video1394*", NAME="video1394/%n" # firmware class requests SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh" # libusb device nodes SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644" # printer KERNEL=="parport[0-9]*", GROUP="lp" SUBSYSTEM=="printer", KERNEL=="lp*", GROUP="lp" SUBSYSTEM=="usb", KERNEL=="lp*", NAME="usb/%k", SYMLINK+="usb%k", GROUP="lp" KERNEL=="lp[0-9]*", GROUP="lp", SYMLINK+="par%n" KERNEL=="irlpt[0-9]*", GROUP="lp" # block, tapes, block-releated SUBSYSTEM=="block", GROUP="disk" SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n" KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions" KERNEL=="fd[0-9]", GROUP="floppy" KERNEL=="fd[0-9]", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0640 -G floppy $root/%k" KERNEL=="sch[0-9]*", GROUP="disk" KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0640" KERNEL=="ht[0-9]*|nht[0-9]*", GROUP="disk" KERNEL=="pg[0-9]*", GROUP="disk" KERNEL=="pt[0-9]*|npt[0-9]*", GROUP="disk" KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk" KERNEL=="rawctl", NAME="raw/%k", GROUP="disk" SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk" KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%k" KERNEL=="pktcdvd", NAME="pktcdvd/control" KERNEL=="qft0", SYMLINK+="ftape" SUBSYSTEM=="bsg", NAME="bsg/%k" SUBSYSTEM=="aoe", NAME="etherd/%k", GROUP="disk" # network KERNEL=="tun", NAME="net/%k", MODE="0666", OPTIONS+="ignore_remove" # CPU KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid" KERNEL=="msr[0-9]*", NAME="cpu/%n/msr" KERNEL=="microcode", NAME="cpu/microcode", MODE="0600" # miscellaneous KERNEL=="fuse", MODE="0666" KERNEL=="rtc|rtc0", MODE="0644" KERNEL=="rtc0", SYMLINK+="rtc" KERNEL=="auer[0-9]*", NAME="usb/%k" KERNEL=="hw_random", NAME="hwrng", SYMLINK+="%k" KERNEL=="mmtimer", MODE="0644" KERNEL=="rflash[0-9]*", MODE="0400" KERNEL=="rrom[0-9]*", MODE="0400" KERNEL=="sbpcd0", SYMLINK+="sbpcd" KERNEL=="slram[0-9]*", SYMLINK+="xpram%n" KERNEL=="sxctl", NAME="specialix_sxctl", SYMLINK+="%k" KERNEL=="rioctl", NAME="specialix_rioctl", SYMLINK+="%k" KERNEL=="iowarrior[0-9]*", NAME="usb/%k" # do not delete static device nodes ACTION=="remove", NAME=="?*", TEST=="/lib/udev/devices/$name", OPTIONS+="ignore_remove" 070701007EC2A1000081A4000000000000000000000001495DB9300000020D000000080000000100000000000000000000003100000000lib/udev/rules.d/61-persistent-storage-edd.rules# do not edit this file, it will be overwritten on update ACTION!="add|change", GOTO="persistent_storage_edd_end" SUBSYSTEM!="block", GOTO="persistent_storage_edd_end" KERNEL!="sd*|hd*", GOTO="persistent_storage_edd_end" # BIOS Enhanced Disk Device ENV{DEVTYPE}=="disk", IMPORT{program}="edd_id --export $tempnode" ENV{DEVTYPE}=="disk", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}" ENV{DEVTYPE}=="partition", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}-part%n" LABEL="persistent_storage_edd_end" 070701007EC29E000081A4000000000000000000000001495DB930000005A4000000080000000100000000000000000000003200000000lib/udev/rules.d/60-persistent-storage-tape.rules# do not edit this file, it will be overwritten on update # persistent storage links: /dev/tape/{by-id,by-path} ACTION!="add|change", GOTO="persistent_storage_tape_end" # type 8 devices are "Medium Changers" KERNEL=="sg[0-9]*", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{program}="scsi_id --sg-version=3 --export --whitelisted -d $tempnode", SYMLINK+="tape/by-id/scsi-$env{ID_SERIAL}" SUBSYSTEM!="scsi_tape", GOTO="persistent_storage_tape_end" KERNEL=="st*[0-9]|nst*[0-9]", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394" KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export %p" KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", KERNELS=="[0-9]*:*[0-9]", ENV{BSG_DEV}="$root/bsg/$id" KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", WAIT_FOR="$env{BSG_DEV}", IMPORT="scsi_id --whitelisted --export --device=$env{BSG_DEV}", ENV{ID_BUS}="scsi" KERNEL=="st*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}" KERNEL=="nst*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst" # by-path (parent device path) KERNEL=="st*[0-9]|nst*[0-9]", IMPORT{program}="path_id %p" KERNEL=="st*[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}" KERNEL=="nst*[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}-nst" LABEL="persistent_storage_tape_end" 070701007EC2A6000081A4000000000000000000000001495DB93000000089000000080000000100000000000000000000002700000000lib/udev/rules.d/79-fstab_import.rulesACTION=="add|change", SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="filesystem|other", IMPORT="fstab_import $name $links mapper/$env{DM_NAME}" 070701007EC29B000081A4000000000000000000000001495DB930000000FA000000080000000100000000000000000000002100000000lib/udev/rules.d/40-zaptel.rules# do not edit this file, it will be overwritten on update KERNEL=="zap[0-9]*", NAME="zap/%n" KERNEL=="zapchannel", NAME="zap/channel" KERNEL=="zapctl", NAME="zap/ctl" KERNEL=="zappseudo", NAME="zap/pseudo" KERNEL=="zaptimer", NAME="zap/timer" 070701007EC29F000081A4000000000000000000000001495DB93000001027000000080000000100000000000000000000002D00000000lib/udev/rules.d/60-persistent-storage.rules# do not edit this file, it will be overwritten on update # persistent storage links: /dev/disk/{by-id,by-uuid,by-label,by-path} # scheme based on "Linux persistent device names", 2004, Hannes Reinecke # forward scsi device event to corresponding block device ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change" ACTION!="add|change", GOTO="persistent_storage_end" SUBSYSTEM!="block", GOTO="persistent_storage_end" # skip rules for inappropriate block devices KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*|btibm*", GOTO="persistent_storage_end" # never access non-cdrom removable ide devices, the drivers are causing event loops on open() KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end" KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GOTO="persistent_storage_end" # ignore partitions that span the entire disk TEST=="whole_disk", GOTO="persistent_storage_end" # /sys/class/block will export this ENV{DEVTYPE}!="?*", ATTR{range}=="?*", ENV{DEVTYPE}="disk" ENV{DEVTYPE}!="?*", ATTR{start}=="?*", ENV{DEVTYPE}="partition" # for partitions import parent information ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*" # by-id (hardware serial number) KERNEL=="hd*[!0-9]", IMPORT{program}="ata_id --export $tempnode" KERNEL=="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}" KERNEL=="hd*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}-part%n" KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export %p" KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="scsi" KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="cciss" KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" # firewire KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" # libata compat (ata-* links, like old hd* devices did create) KERNEL=="sd*[!0-9]|sr*", ENV{ID_VENDOR}=="ATA", PROGRAM="ata_id $tempnode", RESULT=="?*", ENV{ID_ATA_COMPAT}="$result", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}" KERNEL=="sd*[0-9]", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}-part%n" KERNEL=="mmcblk[0-9]", SUBSYSTEMS=="mmc", ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}" KERNEL=="mmcblk[0-9]p[0-9]", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n" # by-path (parent device path) ENV{DEVTYPE}=="disk", IMPORT{program}="path_id %p" ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}" ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n" # skip unpartitioned removable media devices from drivers which do not send "change" events ENV{DEVTYPE}=="disk", KERNEL!="sd*|sr*", ATTR{removable}=="1", GOTO="persistent_storage_end" # probe filesystem metadata of optical drives which have a media inserted KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT}=="?*", IMPORT{program}="vol_id --export --skip-raid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET} $tempnode" # probe filesystem metadata of disks KERNEL!="sr*", IMPORT{program}="vol_id --export $tempnode" # by-label/by-uuid links (filesystem metadata) ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" LABEL="persistent_storage_end" 070701007EC2A0000081A4000000000000000000000001495DB9300000021C000000080000000100000000000000000000002900000000lib/udev/rules.d/60-persistent-v4l.rules# do not edit this file, it will be overwritten on update ACTION!="add|change", GOTO="persistent_v4l_end" SUBSYSTEM!="video4linux", GOTO="persistent_v4l_end" # check for valid "index" number TEST!="index", GOTO="persistent_v4l_end" ATTR{index}!="?*", GOTO="persistent_v4l_end" IMPORT{program}="path_id %p" ENV{ID_PATH}=="?*", KERNEL=="video*|vbi*", SYMLINK+="v4l/by-path/$env{ID_PATH}-video-index$attr{index}" ENV{ID_PATH}=="?*", KERNEL=="audio*", SYMLINK+="v4l/by-path/$env{ID_PATH}-audio-index$attr{index}" LABEL="persistent_v4l_end" 070701007EC2A8000081A4000000000000000000000001495DB930000000EA000000080000000100000000000000000000002400000000lib/udev/rules.d/95-udev-late.rules# do not edit this file, it will be overwritten on update # run a command on remove events ACTION=="remove", ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}" # event to be catched by udevmonitor RUN+="socket:@/org/kernel/udev/monitor" 070701005E942A000081ED000000000000000000000001495DB930000066B0000000080000000100000000000000000000001200000000lib/udev/cdrom_idELF4a4 (444  TTTSS__hhh\\PtdM<<QtdRtd_/lib/ld-linux.so.2GNUSuSESuSE GNU#RiS ^T%3&)(.%,0- *"+! / 1#$' 2 + I +-1|CEK8qX3#Q4 [:pwbBPCIB}cDp 4 ]libselinux.so.1__gmon_start___Jv_RegisterClasses_initfreeconsetfscreateconlsetfilecon_finimatchpathconmatchpathcon_init_prefixgetfscreateconis_selinux_enabledlibc.so.6_IO_stdin_used__printf_chkoptindstrrchr__strdupstrncpyputs__stack_chk_failstrtolfgetsstrlenopenlog__errno_location__fprintf_chkfclosemallocstrcasecmpgetenv__ctype_b_locstderrioctlreadlinkgetopt_longstrncasecmpfwriteopenstrchr__vfprintf_chk__vsyslog_chkfopen64strcmpstrerror__libc_start_maincloselogfree_edata__bss_start_endGLIBC_2.4GLIBC_2.3GLIBC_2.1GLIBC_2.3.4GLIBC_2.0ii ii (ii 2ti <ii H2.   $ ( , 048<@DHLPTX\`dhlptx |!"#$%&'()*US[dtnA4X[5%%h%h%h% h%h %h(%h0%h8p% h@`%$hHP%(hP@%,hX0%0h` %4hh%8hp%<hx%@h%Dh%Hh%Lh%Ph%Th%Xh%\hp%`h`%dhP%hh@%lh0%ph %th%xh%|h%h%h%h%h%h %h(%h0%h8p%h@`1^PTRhhQVh'US=u@- X9sB 9r[]Ív'Utt $ÐUSÃ4tRD$$$D$ L$T$D$D$D$ {D$SD$4[]ÉT$D$HD$D$ xD$SD$$l4[]ÍUɉ]ˉu}uHع+B,EzlBB BlSBu@EǂCuBtE}]]Ív'USӃEB|E BpBxBlD$D$" $uAu[]f;tC8S9 S. uɐ[]Í'U1ɉWVS\eE1$ډ$$ډ$p$ډD$$puhED$ ED$xD$D$wD$D$ D$SD$<$x1Ue3uI\[^_]Í&D$fD$D$ D$SD$<$(^둍&U1ɉWVS0 _:T$$D$ (L$D$D$D$D$ D$SD$4$xtZ1ɉ8$C8$8$ 8$0U$8D$ ]ED$D$ ED$ D$SD$ E4$ E\$D$ 㣀1[C'L$qU]1ۉMu}1eE1yJtD$D$$-D$0$ D$D$ @D$6|$4$hxt&tdvt>$ f؋Ue3LM]u}]aÐ $@ YD$$1 >t&$1tt& D$$x\$D$ZD$ D$ 5D$SD$$| D$D$1S4$\ t @t fy t t t  t T$Q 1ɉ0$  $ẺD$ ډ$aED$D$D$ D$D$SD$ $ E΃dtEU УhEU UңlE Уp$>z=T. X3=x R ,X\`sN=(  $,(0l4G<"8@=DH LfPTdtD$D$$mhlpxct91ۡ 4$m\$D$ED$ D$ 1D$SD$ $FD$:D$ D$ )D$SD$$xD$ D$$:D$ D$iD$D$ D$SD$$D$1ۉT$ D$d$D$D$@$D$D$$D$D$$VD$D$$,D$D$$g$XF+$A/&$+&$&$&$&n$&I$&$$&$o&$W&$?&$x'&$a&\$K&6$7&$&$t&$&$&|$g&W$O&2$7& $&$&$t&$`&u$I&P$4&+$ &$w&$_&$G&$/&p$&J$&$$&$&$&$q&U]U u Eu] u]]uuE U]D$ D$D$$]]uuE E]UEt]ÐUE]@Ðt&UU EP]fUE]@Ðt&UE]@ Ðt&U1UtB] U1UtB ] UE]] uuD$D$ D$$]]uuE E]&U(UM 9J}Ðt&E D$ED$ED$ED$ EL$$D$RÉ'U(UE BT$D$D$D$ rD$D$$mÍt&'US$]t ~$[]ÐCuiC $C$C$\$$D$D$$D$ ]D$D$]$[]&C$ C냍UWVS\$$eE1$1 󫋕BPBB $t /dev@A $t /sys@B$t"/etc@/ude@v/ud@ ev.c@onfA t y$[D$D$/D$ 5$D$D$m $DžUe3)\[^_]Ít&q$(Dt2B$4$%AD$/$ $3t80uxvu @ $<t&$Q4$D$/$ D$ $Dž&D$$L$pu t&DA u#ttD$=$Zp@9DG tDG u$CDDG t t&BDG u 4$‰|DH lDGDH uޅ<"<'D$M$$ Ac$$kt2A $"$B D$/$Y $uet$ AX fH[OB$D$D$~D$8D$ SD$D$Qt,A $D$$D$D$/D$ *L$ $D$D$OB$D$D$/D$D$ +D$D$D$D$/L$$D$ ,D$D$B $D$D$/D$D$ -D$D$AD$D$/D$ .D$D$D$ $XBt4D$D$D$/D$ 0D$D$$ $:D$T$L$D$/D$ D$D$$uD$D$8D$ WD$D$$wBD$L$D$D$/D$ D$D$$1D$V$HuLB $ $B D$/$wD$`$PA$/$BD$/$`t&'US$]Cu$[]ÐC$y$D$ D$ED$ D$D$D$$륍t&US4]Cu4[]ÐEED$ED$E $x$E$AxUE$4[]Ít&E D$;D$cD$ D$D$D$$9ut&$D$E D$TD$cD$ D$D$D$$\US4]Cu4[]ÐEED$ED$E $x,ED$E $jxVE$4[]Ðt&E D$;D$D$ oD$D$D$$Amt&$D$E D$rD$D$ sD$D$D$$[U1VMSu] t9sut[^]É'UWVSEEuuE tÉD$E $vurC< vkC<vdC<v]\uEU|xxP+ӋDP _uEuEuvE[^_]Ðt&EW&ʉρEt^%=EtI%=Et4%=Et%=EE1<&9Ex%=S%=g%=h!EN%tf %? ǃ;U|؃o~*~~1f9E/#%=0fEEt&U}t&U D$ $ EEM!E!E!E!E'UVSut[U11:u v:t 9ލvw9t4M t&t9vu[^]1ۋE $A[^] UWVS u} t84$ t*\8uB8u Bu [^_]ÍUWVS1ۃEEtxE1$t&E/EUEEtIUUUtȋu࿝uE\EfUME룋M[^_] UWVS1ۃ} eE1uD)čL$u6<\t\BtƉ֋CBCC $$9u΃ [^_]ÍUWVS } 79u *f9t"CU$T$u [^_]fUuy$1Qt@@@ E$GtCF~7G8 [^_]Ðt&FU$T$~69ut&|<$1WvUWVS,E eU1҉E$l1f tw  uD$4$|$ED$\$4$yƄٻDž ο󦋍8t1ۍvD$/$tN;~؋UD$T$4$}4$|$D$z1 Ue3u ,[^_]w UWVS,Ue]1ۉ$1҉Év tw uD$|$4$D$D$4$D$4$D$D$t$4$=v!]e3u ,[^_]ƄD$/4$[1tTt"9E vTuދM t뇍&'UUM EU UU]UUM EU UU]pU]Ít&'UWVSOY0 o)t$1ED$E D$E$9rރ [^_]Ë$ÐUStfЋu[]ÐUS[/Y[%s failed cdrom_id.cINQUIRYnot an MMC unit INQUIRY: [%.8s][%.16s][%.4s] GET CONFIGURATIONinvalid number of profiles current profile 0x%02x READ TOCREAD TOC: len: %d READ TOC (tracks)audioREAD TOC (multi session)datacdrom_iddxhno device unable to open '%s' probing: '%s' CDROM_GET_CAPABILITY failed READ DISC INFORMATIONdisk type %02x ID_CDROM=1ID_CDROM_CD=1ID_CDROM_CD_R=1ID_CDROM_CD_RW=1ID_CDROM_DVD=1ID_CDROM_DVD_R=1ID_CDROM_DVD_RW=1ID_CDROM_DVD_RAM=1ID_CDROM_DVD_PLUS_R=1ID_CDROM_DVD_PLUS_RW=1ID_CDROM_DVD_PLUS_R_DL=1ID_CDROM_DVD_PLUS_RW_DL=1ID_CDROM_BD=1ID_CDROM_BD_R=1ID_CDROM_BD_RE=1ID_CDROM_HDDVD=1ID_CDROM_HDDVD_R=1ID_CDROM_HDDVD_RW=1ID_CDROM_MO=1ID_CDROM_MRW=1ID_CDROM_MRW_W=1ID_CDROM_MEDIA_MO=1ID_CDROM_MEDIA_MRW=1ID_CDROM_MEDIA_MRW_W=1ID_CDROM_MEDIA_CD=1ID_CDROM_MEDIA_CD_R=1ID_CDROM_MEDIA_CD_RW=1ID_CDROM_MEDIA_DVD=1ID_CDROM_MEDIA_DVD_R=1ID_CDROM_MEDIA_DVD_RAM=1ID_CDROM_MEDIA_DVD_RW=1ID_CDROM_MEDIA_DVD_PLUS_R=1ID_CDROM_MEDIA_DVD_PLUS_RW=1ID_CDROM_MEDIA_BD=1ID_CDROM_MEDIA_BD_R=1ID_CDROM_MEDIA_BD_RE=1ID_CDROM_MEDIA_HDDVD=1ID_CDROM_MEDIA_HDDVD_R=1ID_CDROM_MEDIA_HDDVD_RW=1ID_CDROM_MEDIA_STATE=%s exportdebughelpblankappendablecompleteother%s failed with SK=%Xh/ASC=%02Xh/ACQ=%02Xh GET CONFIGURATION: number of profiles %i no current profile, assuming no media track=%u info=0x%x(%s) start_block=%u last track %u starts at block %u Usage: cdrom_id [options] --export export key/value pairs --debug debug to stderr --help print this help text ID_CDROM_MEDIA_DVD_PLUS_RW_DL=1ID_CDROM_MEDIA_DVD_PLUS_R_DL=1ID_CDROM_MEDIA_SESSION_NEXT=%d ID_CDROM_MEDIA_SESSION_COUNT=%d ID_CDROM_MEDIA_TRACK_COUNT=%d ID_CDROM_MEDIA_TRACK_COUNT_AUDIO=%d ID_CDROM_MEDIA_TRACK_COUNT_DATA=%d ID_CDROM_MEDIA_SESSION_LAST_OFFSET=%llu hhhXH88(ؔؔȔ{jYH7&&ѕ~mainxdhcd_capability_compatcd_inquiryinfo_scsi_cmd_errcd_profilescd_media_toccd_media_infolibudev: %s: ../../udev/lib/libudev.ccontext %p released SYSFS_PATHUDEV_RUNUDEV_CONFIG_FILEudev_logudev_rootudev_rulesUDEV_ROOTUDEV_LOGselinux=%i getfscreatecon failed context %p created log_priority=%d config_file='%s' dev_path='%s' sys_path='%s' rules_path='%s' context creation failed setfscreatecon failed: %s matchpathcon(%s) failed setfscreatecon %s failed: %s setfilecon %s failed: %s custom logging function %p registered missing = in '%s'[%i], skip line inconsistent quoting in '%s'[%i], skip line udev_set_log_fnudev_unrefudev_newselinux_initudev_selinux_resetfscreateconudev_selinux_setfscreateconudev_selinux_lsetfilecon\x2f\x5cerrinfo../driversubsystem;8&Pl p<\t 0@Pp$@<T@p Pp$D`dp0 @X| AB A4PvAB HHTЏAB A p`IAD ACCAD IP'AD BI, D  F AB IK0AB L$AB <Ч AB TAB l AB  AB AD 0AD PYAB IFGAB EAB PAB D8eAB IXplAB DtAB DгAB Dд7AD EAB F0AB E TAB F, AB CLйAB ClAB D0ZAB FAB FpqAB IBAB AJ@ AB  ` AB zR| 0AB 8$ZAB C  āo,p R HЉoXoo^n~΋ދ.>N^n~Όތ.>N^n~΍ލOsPWGcdrom_id.debug܀.shstrtab.interp.note.ABI-tag.note.SuSE.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.SUSE.OPTs.gnu_debuglink TThh !,$Cāh?o,,DI pp0QRYoffoXX `u  ~ Љ H 0HH  ,2@@@@ M<N_  _____``0```070701005E9437000081ED000000000000000000000001495DB93000000C88000000080000000100000000000000000000001900000000lib/udev/write_net_rules#!/bin/sh -e # # Copyright (C) 2006 Marco d'Itri # Copyright (C) 2007 Kay Sievers # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation version 2 of the License. # # This script is run to create persistent network device naming rules # based on properties of the device. # If the interface needs to be renamed, INTERFACE_NEW= will be printed # on stdout to allow udev to IMPORT it. # variables used to communicate: # MATCHADDR MAC address used for the match # MATCHID bus_id used for the match # MATCHDEVID dev_id used for the match # MATCHDRV driver name used for the match # MATCHIFTYPE interface type match # COMMENT comment to add to the generated rule # INTERFACE_NAME requested name supplied by external tool # INTERFACE_NEW new interface name returned by rule writer RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' . /lib/udev/rule_generator.functions interface_name_taken() { local value="$(find_all_rules 'NAME=' $INTERFACE)" if [ "$value" ]; then return 0 else return 1 fi } find_next_available() { raw_find_next_available "$(find_all_rules 'NAME=' "$1")" } write_rule() { local match="$1" local name="$2" local comment="$3" { if [ "$PRINT_HEADER" ]; then PRINT_HEADER= echo "# This file was automatically generated by the $0" echo "# program run by the persistent-net-generator.rules rules file." echo "#" echo "# You can modify it, as long as you keep each rule on a single line." fi echo "" [ "$comment" ] && echo "# $comment" echo "SUBSYSTEM==\"net\", ACTION==\"add\"$match, NAME=\"$name\"" } >> $RULES_FILE } if [ -z "$INTERFACE" ]; then echo "missing \$INTERFACE" >&2 exit 1 fi # Prevent concurrent processes from modifying the file at the same time. lock_rules_file # Check if the rules file is writeable. choose_rules_file # the DRIVERS key is needed to not match bridges and VLAN sub-interfaces if [ "$MATCHADDR" ]; then match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" fi if [ "$MATCHDRV" ]; then match="$match, DRIVERS==\"$MATCHDRV\"" fi if [ "$MATCHDEVID" ]; then match="$match, ATTR{dev_id}==\"$MATCHDEVID\"" fi if [ "$MATCHID" ]; then match="$match, KERNELS==\"$MATCHID\"" fi if [ "$MATCHIFTYPE" ]; then match="$match, ATTR{type}==\"$MATCHIFTYPE\"" fi if [ -z "$match" ]; then echo "missing valid match" >&2 unlock_rules_file exit 1 fi basename=${INTERFACE%%[0-9]*} match="$match, KERNEL==\"$basename*\"" if [ "$INTERFACE_NAME" ]; then # external tools may request a custom name COMMENT="$COMMENT (custom name provided by external tool)" if [ "$INTERFACE_NAME" != "$INTERFACE" ]; then INTERFACE=$INTERFACE_NAME; echo "INTERFACE_NEW=$INTERFACE" fi else # if a rule using the current name already exists, find a new name if interface_name_taken; then INTERFACE="$basename$(find_next_available "$basename[0-9]*")" echo "INTERFACE_NEW=$INTERFACE" fi fi write_rule "$match" "$INTERFACE" "$COMMENT" unlock_rules_file exit 0 0707010006C1920000A1FF000000000000000000000001495DB93000000014000000080000000100000000000000000000001700000000lib/libnss_compat.so.2libnss_compat-2.9.so0707010006C195000081ED000000000000000000000001495DB9300001D441000000080000000100000000000000000000001600000000lib/libpthread-2.9.soELF`H4 d4 ('$444   W W]mmH#^nnTTT\\Ptd  QtdRtd]mmGNUUS(a{xIt0X'%GNUSuSESuSE L@ ! "@H I4@ P`@@0D X  $B)mGV $H(B `Ac )(@LQ9C8@ ` A!-P$@T` @$ (*H  # .%@! B LMNORUVWXZ[\]_`acdefghijklmoprstvwxy|~    !$&'(*+,-./2456789<=>?ABCEž݅xbsŨU_8Z;8GX7,y[zV{V[pܲĥݲĥ)>9ryh?z7G)$s`lwכ|i=Eݪyz\4]4},Og84i5;&4=!oȻ<Ȼ<ҺҺČS9Ds"=l=l=lhڸC=l>osBC ;|sBk-aWO!Y9X7^'#w@/Y\ 9H97j ugVdZS;៩Č!w|:9!`[#Ua1/(Q)MvRO۝| qW# C;W}L\t+^z//]zAwwUnͰum Pa)o`&"OS^Z"3\u]u%d;uI/ot.w11n5#+s/GFՀalW>3rri&`AM|ZazRSAMQٱyڑ&6m׍G)#RjRj8090ͱJdUj8| C] >z02025,4uD-p_wWusBwsB9!q\sB2 sBsBYo  + 9^3<_3<{mN_M|geIogIoJe$ " |>#q,]޳*|./҈,np%깡~$_e &__)>MX=1߃GZe:12(iu]lKcƒ#ayO :nC- v w # SNdY2d# 1Zn   / B    eM  nO 1  $  " gSi@ r Ъ{iu0jf ' u"f S" " mCl,@sQPL п8L п8pn0  u"!"0!i $"I"0" 0|"`  Ьd P8 fD v0] p_-z `n0feMp"n`#PP2V  `o  @yqpo) 0|"o P . Ж~t);8*e"\"D#" ` a ``uo&~i`U"ip"" P i  p6pupU"m  #n P"p @ 0E"\ @VИ|"0" 0|"`e 0|"|"0h]Pnap"m( PdСd0z 0E"0n`m.2@0"n; p@" 0|"P>@u|" W02 P0+@" `o <@u iS }v[`oZ" Ц&mn8"~0&u#;;G"Sn p" |"X  `z5 P; "6"A@o+o,pU6 6 & :&'p Ъ{p gyS |" "MpWM9m0+"eA 0|"`" lr P P`"\hme 0"`2u |"F J Щm P C PtC  YЖ~8j$ |"H ЩsOp" N, 10P"T $C8pu P Pop4X 0@k p"Q } @d@/p"   1 ~@#*+ pxz) $x$u#Z Pm- 2 u" "R"i@s ,__cxa_finalize_Jv_RegisterClasses_rtld_global__libc_stack_end_dl_get_tls_static_infogetrlimit__sysconf__libc_dl_error_tsd__libc_pthread_initunamestrstr__pthread_initialize_minimalfreemempcpymemset_dl_make_stack_executablemprotect_dl_deallocate_tlsmunmapabort__clone__getpagesizemmap_dl_allocate_tls_dl_allocate_tls_init__assert_fail__resp_setjmp__libc_thread_freerespthread_createpthread_exitpthread_detachpthread_joinpthread_tryjoin_nppthread_timedjoin_nppthread_selfpthread_equalpthread_yieldsched_yieldpthread_getconcurrencypthread_setconcurrency__sched_getscheduler__sched_getparampthread_getschedparam__sched_setschedulerpthread_setschedparampthread_setschedpriosched_setparampthread_attr_initpthread_attr_destroypthread_attr_getdetachstatepthread_attr_setdetachstatepthread_attr_getguardsizepthread_attr_setguardsizepthread_attr_getschedparampthread_attr_setschedparampthread_attr_getschedpolicypthread_attr_setschedpolicypthread_attr_getinheritschedpthread_attr_setinheritschedpthread_attr_getscopepthread_attr_setscopepthread_attr_getstackaddrpthread_attr_setstackaddrpthread_attr_getstacksizepthread_attr_setstacksizepthread_attr_getstackpthread_attr_setstackpthread_getattr_npreallocfopenfclose__getdelimsscanf__pthread_mutex_init__pthread_mutex_destroy__pthread_mutex_lock__pthread_mutex_trylockpthread_mutex_timedlock__gettimeofday__pthread_mutex_unlock__pthread_mutexattr_init__pthread_mutexattr_destroypthread_mutexattr_getpsharedpthread_mutexattr_setpsharedpthread_mutexattr_gettypepthread_mutexattr_getkind_np__pthread_mutexattr_settypepthread_mutexattr_setkind_np__pthread_rwlock_init__pthread_rwlock_destroy__pthread_rwlock_rdlockpthread_rwlock_timedrdlock__pthread_rwlock_wrlockpthread_rwlock_timedwrlock__pthread_rwlock_tryrdlock__pthread_rwlock_trywrlock__pthread_rwlock_unlockpthread_rwlockattr_initpthread_rwlockattr_destroypthread_rwlockattr_getpsharedpthread_rwlockattr_setpsharedpthread_rwlockattr_getkind_nppthread_rwlockattr_setkind_nppthread_cond_initpthread_cond_destroypthread_cond_waitpthread_cond_timedwaitpthread_cond_signalpthread_cond_broadcastcallocpthread_condattr_initpthread_condattr_destroypthread_condattr_getpsharedpthread_condattr_setpsharedpthread_condattr_getclockpthread_condattr_setclockpthread_spin_destroypthread_spin_lockpthread_spin_trylockpthread_spin_unlockpthread_spin_initpthread_barrier_initpthread_barrier_destroypthread_barrier_waitpthread_barrierattr_initpthread_barrierattr_destroypthread_barrierattr_getpsharedpthread_barrierattr_setpshared__pthread_key_createpthread_key_delete__pthread_getspecific__pthread_setspecificpthread_sigmaskpthread_killpthread_cancelpthread_testcancelpthread_setcancelstatepthread_setcanceltype__pthread_once__sigsetjmp__register_atforkpthread_atforkpthread_getcpuclockid__pthread_clock_gettime__pthread_clock_settimesem_initsem_destroy__fxstat64memcpytfindmalloctsearchsem_openstrlenmktempstrcmp__statfs__setmntent__getmntent_r__endmntentsem_closetwalktdeletesem_unlinksem_getvaluesem_waitsem_trywaitsem_timedwaitsem_post__pthread_register_cancel__pthread_unregister_cancel__pthread_register_cancel_defer__pthread_unregister_cancel_restore_pthread_cleanup_push_pthread_cleanup_pop_pthread_cleanup_push_defer_pthread_cleanup_pop_restore__libc_longjmp__pthread_unwind__pthread_unwind_nextsiglongjmp__vfork__write__read__close__fcntlaccept__connectrecvrecvfromrecvmsg__sendsendmsgsendtofsync__lseeklseek64msync__nanosleep__open__open64pausepread__pread64pwrite__pwrite64tcdrain__waitwaitpidsigwaitraise__libc_system_IO_flockfile_IO_ftrylockfile_IO_funlockfile_rtld_global_ro__sigaction__h_errno_locationh_errno___tls_get_addr__res_state__libc_allocate_rtsig__libc_allocate_rtsig_private__libc_current_sigrtmax__libc_current_sigrtmax_private__libc_current_sigrtmin__libc_current_sigrtmin_privatepthread_kill_other_threads_nppthread_getaffinity_nppthread_setaffinity_nppthread_attr_getaffinity_nppthread_attr_setaffinity_nppthread_mutexattr_getrobust_nppthread_mutexattr_setrobust_nppthread_mutex_consistent_np__pthread_cleanup_routine__libc_dlopen_mode__libc_dlsym__libc_fatalpthread_mutexattr_getprotocolpthread_mutexattr_setprotocolpthread_mutexattr_getprioceilingpthread_mutexattr_setprioceilingsched_get_priority_maxsched_get_priority_minpthread_mutex_getprioceilingpthread_mutex_setprioceiling__fork__libc_fork__errno_locationlibc.so.6ld-linux.so.2libpthread.so.0GLIBC_2.0GLIBC_2.1GLIBC_2.1.1GLIBC_2.1.2GLIBC_2.2GLIBC_2.2.3GLIBC_2.2.6GLIBC_2.3.2GLIBC_2.3.3GLIBC_2.3.4GLIBC_2.4GLIBC_PRIVATEGLIBC_2.3GLIBC_2.1.3                                P,/ii ii $ qi $ ri $"ii $."si $8.vi $D8 ri $PD si $\P ti $h\ ii $th c ~t@ii ii  c ~si ii  ri Pii .c ~ii nnn nnnnn n$n(n,n0n4n8np?p@pApBpDpEpFqGqHqI qKU.] hhhhh h($h0(h8p,h@`0hHP4hP@8hX0<h` @hhDhpHhxLhPhThXh\h`hdhhhplh`phPth@xh0|h hhhhhhhh h(h0h8ph@`hHPhP@hX0h` hhhphxhhhhhhhhph`hPh@h0h hhh hhhh$ÐUVSÚ-Lu]t$`P)p9s APP9rƃL[^]USg-tt $҃[]ÐUeL} t]Í1)‹E ;P uxued‰у 9tuȉe d9uete de`赀t&UWVSe5L,NH˸eˉFHFLFleledheeVP VPFTӸ7e=v ǃ!E}߸e=Ew e eTl!V@F@p!l!FDTe X\T1󫍵Xt$ED$$ 蚜\t$XED$$!jT1ҁ\`߸eU썃!}wEu1$F!!Ɖ!ED$3u+Et#=?wE@& E $!M䍔9FэT!‰U䉓!V|DǂD|LT Xt@t&<$.u,X\ !<$u2D$$!Ĭ[^_]Í&D$$4u#ƅX˸eˉ딍D$|$$6ÍU $t$|$Î(eL}!t$t$|$]É1)‹E 9P uxuڋ!0xHP e!tEe=ededLJe ̀`!e ̀뙐U]Ít&'U]ÐU ]Á'}̎߸e$qU1WVuS{/'t!$$9t!B9pHu GvB9pHtX9ʍt&ul!l!9t B9pHu fB9pHt(9ʍt&u1t![^_]Í&t&U1҉WVS}&Et!k$$9u>9t2B9Et&uEtut!9[^_]Ít&l!l!9t"uB9uȍt&B9Et9t&u1뮍v'UWVS%eE$$U9u6;uV9U&tBHMALBLT!t~,@1ƂE&Mlt@1ƂE} u؋6;ux$,,9ʉUtt&uFLB 9u;}t#O(U,B$,MQ@ADBADu荓l!p!1l!($eu:EU@(MJ@JD$ǃ ǃt![^_]Éȃ@p!Q@QDl!U1WVS [$t!"$$e}܉E9UuvU}܋9UtqE@9EEtHt܋U$U uÍve 1}eEԃxt֋U}܋9Uu&l!l!U9ЉEut&U}؋9Utq}@9}}tWt܋E$E¸ ue 1}eEԃxt֋U}؋9Uu&t! [^_]Ív'U1WVS"t!Ee!@$$UE9Ɖutx&u@9utW;t"M$&Vdu:׉Ѓ@9ue=L!NH߸e=wuFEU9ЉEul!l!E9Ɖutru@9utW;t"M$&Vdu:׉Ѓ@9ue=L!NH߸e=wuFEU9ЉEuuVt(~fe 1eEPu݋UzJR e=wt!0[^_]Ëe4ЍvU1WVSä elEEe1EE t&E e lɉMtKU14  t5MTtD;uۋFtԃ$Ѓ uύt&UEE }!u1҉et!E}We=@lelt$@el!ue[^_]ÍU1WVS}\t!$E썃$9EEtpt&U싇@@J+<@D,0D$)Ƌ($D$t$D$$EEE9Eul!El!9EEtqU@@J+<@D,0D$)Ƌ($D$mt$D$$)EEE9Eut![^_] UWVSU  {ut!i$$9u dt&69tZNXD$T)ЉD$P${te tt!  [^_]Ë,,9uT69tHNXD$T)ЉD$P$te u69u1{t&'UWVS5E0,9yEua;}GtVǍqFHABAT1)!TD$P$$uE9!w[^_]WvU1҉u]}lj3t!G@WDPWDu`,W@PG@,GD!,T=!wt!z]u}]f1҉vɍUHuƌEE]v}U܉uEEQ5 ED$EVHT$T$t$ D$ED$E $ u: 9tCe DЋ]Ћu}]ÐEue 1fi볋E܋Pt&}܋FHOLJ߸e=E@tFH LJ߸e=EveL NHLJ߸eE0؁}G4t&1E막'UWVS5Lu EE EȉE@u؋V҉Udu؋Fƃ4`!#Ẻ}EE؉ҋx !!׍!9E}t! ,,9t`p1ҋNH~֋9t0pNH싎T9MwtҐt&t;Ts΋9uЅtE9Tt! E}Ef}D$D$DD$ "E|$$D$EEE䍴8PFlTlF e F eFeLFLi41t! $V@PF@$FD$t! `EXD$T)‰T$P$[e҉U|$U$O!}fV@FDBFD$V@PF@$FD$T)!t! PTUVFdF\dž,BD$$D$X9E‰+U+E9}艾\FPFPdžFTFX+!pEԉv6EU}eJhG` 1NhGEƉ  $$((  eFeFE t GU2}Ћ1e!e;F>E؋PedT$ UԉD$$=T$U}Eu&t E܃L[^_]Í&9utE܃L[^_]Ëe< |$U$XE 11@Ft&2CD$ D$D$$E[x!ƆD$ }ԉD$$=|$UwEdž$(!,!u!ET$D$EE$dU艖XD$ED$U$Y4}艾Xt!9}؋G#!p;E1)ֹFllE̋UBP}ƆF Te F eFeLFL'41t!l!V@PF@l!FDl!t!CD$ D$`D$>$CD$ D$D$$uRD$ D$D$$KRD$ D$%D$$!`/@GG Fhƒ u ӸeӃNh E؋H˸eˋU؉NjJ˸eˋ 99E^e1Ut!}V@FDBFDt!q1҉a|$u4$E܅E1}؋ 0@˸e˃Nh@U؋BeE < xCD$ D$D$$e< tIUDCD$ D$D$T$LCD$ D$ 뮍t&'UVS0u t1EEEU؋VEU܋Vu؉UEt$D$ ED$E$x0[^]ÐU]uQhdu`u]u]]u]dž`$fUWVSE<<1eeMed !xU PӸ7eӋUEEE$ou3Ee`EPPPe5ee}| ^U%ut!*dt!bAt! dNt!bt!ct!b*t!cvb"t!bt!cat!jb t!zc)t!jcZcJct!bt!*ct!ast! cabUEee de`^UUJHx1t9t1]ÐBdt1]ÐU1ɉVue^]Í&U4E]}uPHå U9uD$Ee E܁M$t$0\[`U9UEM9M1uVHuTE_uD$4$ \E@HE tUM E1p]u}]Ð1ɃH1e;uAd<iU#BdใREW_ED$$t[뒿ܐUM9tZe9tW9tOyHt ]vÍ&1uE t U 1]ø]Ð#]fÐUE]fU0}}]uèwH9e 991 ,D$ET$E܉$ZI^OHɉu@ ^UD$$(ZE t U 1]u}]ËUzɚ;v<]ED$$YELJE빍#묐GH_Ev]ED$$YUu_&vfeÐUE 9E]ÐUSw+[]ÐU]!Ë $ÐUUx!1]ÐUuu]}èFH~J1Fh1 ta@t=uU  U]u}]ÍFH$tBNh@맍t& D$FH$7tFhyfFh1 Fhg{;\DK]iUuu]}}ÕFH~Y1u{`uMD$E D$FH$tCE 1ɉNh` uC]ȋu}]Ë9~UEE뢋e Í][um\밐Uuu]}} õFH~N}1ue`u?ED$FH$t3}1ɃNh u8]ȋu}]Ë9}E붋e ˍZ뎍[뻐UE@@ @@1]Ít&U1 t$u |$$F 1$t$|$]ÐUSEÅ@u @$1[]ÐUEU @1]ÐUM Utɸub1]ÐJ1]ÐUEP E 1]ÐUEU P 1]UEE 1]ÐUU EH 1]ÐUEPE 1]ÐUM Uw J@1J]ÐUEU @1]ÐUU v]ÍuE`1]fÍ&EH1]ÐUEU @1]ÐUE uE1҃`]Ð_DЉ]ÐUEPE 1]ÐUEU HP1]ÐUEkiU @D!1]ÐUU ?vEP1]ÐUMU A+AEQ1]ÐUUM?vQE IЉA1]ÐU1WVSUĸu }e# ߸e="EąD$ D$D$$͸;UċuuCuN}GUԋEEP@&EEMe9E`M܉4$L$fE7u܋UuċEău2;EmMăMNfuu}uUO сe# eUEċM ;EUEЋM ‰9U;EtŋE xɚ;D$uȉ4$иU +EEiEBELʚ;Em;vUB %E#$M1҇Ӹ eӋU +EEB+EEExu䐉t$4$nKuEnt&EąvE@}CeXMvA:AErfAAePAue5PeXEĂ8EE-t&UBePBMe PeXuuRt&}ċU[@D$ D$ D$4$ǵvEuD$4$FdEnދ}G seXUBE >t}E؃D$ D$D$$vu~vMAePAȃePeX'ډUG/eXEă@tM!AAePAȃePeXEĂ8}1w EEuEʚ;EmE>t&}t&eXE#D$ D$hD$$襳eXE#rF1}߸eeXEă8U ;U ;U =8<^U ;U$]}ljuU@ ØECv]u}]ÍvȚt&eH9Gu=t7EGtoe/1eH9G두eH%?9ut?EOe Xe5P9G9u t&‹9u֋GGuEGto'IeX1&eH%?9WeH9)GGE17eH%?9EEWMUɉWtoxeH1t4G Dʉe# ӸeeX1 t&eH9GaGG8EE`OȃeXe5P99ut&‹9u֋GGfeH%?9WeH9ct&eH9GGGEGt ofΉȁ7uv*O сe# eD$4$.^eH9GlfvGG1WGEGxO&WjGGuEEDEE*GePGePn'UE]M7 7UE1]U1]ÐUEU 1]ÐUM Uu "1]Ðu 1]ÐUEU %1]ÐUU Mw % 1]ÐUSE 蔰HMA؛EAA AAA:AR1te A1AA[]ÐU1]ÐVS1\$ 1umCus{tM{tGCS+Ke3 e1uik1҃Ct5+u"[^ÉK4e;Hu#؉K5уk k 뵉K5mK4느VWSUl$|$ 1UE}}ʚ;'Eum1ɸNeD$W+ $)y ʚ; $T$Me3 ]eƺ1Um>n1҃EtBmu.Ѓ][_^ÉMr3e;H #ˉMn4Ńm 볃m 먉MK4 M3lPtVS1\$ 1ubCuh{t?CtyS +u{Ke3 e 1uak1eHC+u"[^ÉK~2e;Hu#؉K3уk Ki3uK92뒐VWSUl$|$ 1UE}ʚ;Eu m1ɸNeD$W+ $)y ʚ; $T$Me3 ] eƺ1Uu|mLn 1eHEmu.Ѓ][_^ÉM-1e;H!#ˉM)2Ńm 볉M2M0t\낐Uuu}FEE1uTVu/Ft~u"F1҃FuF t&FE.uuЋ}]ÍM80렍ML1ܐUEu}}@EE1uFWuGt+Eu@E.u,uЋ}]Í&eH1҉G͍M/뮍M0ȐSW|$ 1uhuouQG_ ut6_/uJOe3 e1_[Í/u1_[ÉO /닉O0O0멐UE@1]ÐU1]ÐUEPE 1]ÐUU t ҸuEP1]ÐUEE 1]ÐUU tt uE1]ÐUM UBtNBB BB$BBBB(؉B 1]Ðt&1B 1B$BB BBBBB(]ÐU1庀WVփM}y Euy EEЉUG ;GWr$vU*^_]Ð;WwvMq$AA vqy }voEU$Ee# U荶U*}1Meuuw}w$w1^_]Ðt&}O сe# e_-,M>-M/-_M,zWVS1\$1 { D$tC 1rqCS CC${SC(|$T$D$ {+*${ e# e$*1C(;D$ u(CK{S;T$u;|$t9u9tCSk$C#C u3C$u+${e# e$+udD$$V[^_Éڃ{ *؃{ +ڃ{ g*#؃{ k++uƉ؃{ J+iƺ1tڃ{ )C(;D$ u&C{ ;{rw;Cv CSCCSk$1C#C u8C$u0${e# e$+t؃{ *u({e# eD$$0U4$LUWVS\$l$}ʚ;1{ D$tC 1CS CC${SC(|$ T$D$ڋ[$L$ eӋMU+L$+T$y ʚ;ɾxaL$T${+'$t${ e# eƋ$a'1C(;D$uu1$t$|$]øUt$u$[w)eLlQt l;u4Ћ$t$]Áv1elt A1Uuu]e֖Ê}wGlt1M Dlte8U P1]u}]Í&wltEelte랋U 1tD$$ 苒¸ tEel뻐UM u}tE xA@u;U}M ߸e‰u1}G]f u x󥍅xE x|뗐U Euu }@HE~7Fv*e=LM߸e1=Gʋuȋ}]ÐUWVuFH~,;~dt&Vdу 9tȃໃ tu1҉^_]fNde=L NH߸e=vˉǐUedใt]ee de`NU }}uvu}]Ðt&edEMΉȃEE t U ȃ9t%e5dEE9ƒt滃 t u1}]e de`U }}uvu}]Ðt&edEMΉȃEE t U 9t%e5dEE9ƒt滃 t u1}]ee de`L$t1SV1芺© !ut1Щue e믃4ˍD$D$$uCD$T$DD$4\$ e e^[1Ë\$@e eD$ZUSÛD$ ED$E D$E$/[]ÐU$t$u薑JNH~6Ѝ!t)"U 1$t$]1ɇӸ e=vt*؋$t$]Ðt&E 1$t$]Íǃ!NH뀐U]Mu}ِÍ1ƅɉteH9ee)׋MU 4$|$L$ T$IME U4$|$D$T$ Jʚ;}|$ iʚ;u $T$t$I}G1]u}]Í& $萖t+de뵐UU]ߏÓu҉}t,eH9t"$*t8U M1E Uee1]u}]eِUE Ux4M 1tB1B]Í&e B1Be]ÐUE蛶x U1]e]ÐU1]ÐU]菎CEED$E}} uUD$$蔍tL1t ttӸ[eӉ]u}]f!UEUU&)čt$'T$UF$T$蝋EUVE썓!F\IED$UT$4$Zt*p@ 9…!@E$EUVEF ~FUF$T$UT$t,EU4$D$T$Ќt1k4$21QˆAUD$D$ D$T$D$$m7fUWVSu)DuID$!$a!u f!e1[^_]Íuڍ 6A΃)čT$ 9EUE뙐e[^_]ÍUWVS\éu!tl!;E r *f9E v <t&t[^_]Í&MAHM LJ߸e1=Gʃ[^_]ËUBH$t'US E A\D$D$E$$ []ÐUWVSE[ó} @EEp9s(E8tFAu59rt$ED$E$dXEP19w[^_]f[^_]Ív)׉|$D$ $W1[^_]É|$D$E$W1뫍'US E ![ՈD$D$E$ []ÐUWVS UZÓ}u tu#G$X1GG [^_]Ë!tv!9v&EȀ8tvBuu9w9wt t$G$V¸ tWwGt$U$T$X 1[^_]Ðe@H$wq [^_]Í& [^_]ÍvUS E YÕD$D$E$ []ÐUEU 1]ÐUM Uu "1]Ðu @1]ÐUUB t zt ]Ít&eHB1]ÐUUBuÍB$ɍ&ÐU]Xæu}!t ]u}]Í7D$$VED$4$qTEtjTD$4$XTEtQiD$4$?Tt9~D$4$'Tt#U쉻!!U!!P$W&'USXû!tE$![]t&⍶USW{ !t ED$E D$E$! []&ҍUSwW+!t5EUD$ET$ D$ED$E D$E$![]*fUSW˄!tE$![]t&␐UEU %01]ÐUU Mv u% 1]ÐUE$t${V/0 u8t8OE 01$t$]ܐU $"Vփt$u |$}8t=98=;<5%9u* % 17$t$|$]Ív#뼐vܐU]u}e5FhUF``1`Fh1 tZ@t.t J]u}]ÍFH$ITtbNh@u뼍& D$FH$QtFh@uv뮍 닋Fh1 @Fh_닍v[&'USTK$6Q<$DS8[]Ít&UWVS eLTEe`} t=U ;8|;<~*ҜD$ ̜D$D$?$P}tBE;8|;<~/ҜD$ ̜D$LD$B$Pt&} UYU +8DDE UE9&}t&8U)DDu U9UU19U1U)E1Bh @uBU싂 9EEEEUED$D$BH$RdU [^_]Ð8k< +8D$$Nt8e5`EEt&EU D$BH$Ntbe<UBhUBH$QU쉂EHh@t&9E&vU1Bh Bht&E 9ERM9l)Du`E)T vu9~M$e<t&e<*t&{Mv 0(UUB @t U 1]ÐUWVSEPC~@ @8U 98k;<_%9PMQ eH9AuM6uUu1uE9tguUEM E%9EuDu9ut*}1UO сe# eUEu2;EuU1EtE81t U%e M E uN сe# e1[^_]f#BtAEU 8T$<$c뺍t&[^_]ÍvClUSN{|M[]ÐUWVS@NV|EeHUĉE܋R ЃCUv @[^_]ËEċU;Pè1uFu1Mĉq@[^_]ËUċu;r uẼ9EM69EUT$M $kKuUuЋEЃu2;EtnMЃMt&UċEM ‰9UЉEu9t%}ĸ1U؋O сe# ̀UċEЋu2;EuEċPUBMċu;qè1uF'}GEăEeXUċ}܋ @tuĉ>9ȉ{@u?9M 1uW~N@s럋ŰM̃UMtEăeXuċ%?9E%U1MāK}иu uċF %}Ā1e# ߸e=„REi&v!1}t]GEL ddOȃEẼ9M1U:uߋMċŰuċA)…ҍJH‰V}ċG՝D$ D$s0t&};UЉ}t&MЋUąɋ@7uā~}GePGePeX4UċB eXMċAA1FFePF}e=PeXnp}GePGEePeXEЅ E@r@tꍃ՝D$ D$ D$*$uF}ċGG1uЅ՝D$ D$D$!$#F&F.eXz}kD$E$uSv#F՝D$ D$GD$h$EeX# ՝D$ D$‹M!AAePAȃePeXi՝D$ D$D$$E}uweX#iE1uċ@ %Eȉ1F‰Ƈ߸eeX}TeX}ċG ՝D$ D$WMMq,0oM@.ntU]eÐUWV EUM ƋEUM؅u89wLu 1҉Ƌ}1ҋMljȉ ^_]f;Ev+11ȉ ^_]Ít&ыU؉1ȉ ^_]u ;Er;uwù1&뷍 )M܉ M܉uu؋U؉EEM ЋUUu։EEe9r!tM1Nt&9Et&s獶M1,UWV EMu NjEMMu9v$ȉ1҃ ^_]Ív9v,ȉ ^_]Ðu 1lj1Eƍt&ЃUu9M)ƉME봍t&M¸ +EEMM ЉEM}}ME܋EuMM Љue9s/+EUM)։MM Љ&u9sfǍ;}쐍t&Gf6UVS&Dqt&Ћu[^]USCÛqC[]/proc/sys/kernel/versionSMP2.9Native POSIX Threads Library by Ulrich Drepper et al Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Forced unwind support included. allocatestack.cerrno == 12size != 0mem != ((void *)0)pd->header.tcb != ((void *)0)allocate_stackcreate_thread((((pagesize_m1 + 1) - 1) & (pagesize_m1 + 1)) == 0)size > adj + sizeof (struct pthread)../nptl/sysdeps/pthread/createthread.c({ __typeof (({ struct pthread *__self; asm ("movl %%gs:%c1,%0" : "=r" (__self) : "i" (__builtin_offsetof (struct pthread, header.self))); __self;})->header.sysinfo) __value; if (sizeof (__value) == 1) asm volatile ("movb %%gs:%P2,%b0" : "=q" (__value) : "0" (0), "i" (__builtin_offsetof (struct pthread, header.sysinfo))); else if (sizeof (__value) == 4) asm volatile ("movl %%gs:%P1,%0" : "=r" (__value) : "i" (__builtin_offsetof (struct pthread, header.sysinfo))); else { if (sizeof (__value) != 8) abort (); asm volatile ("movl %%gs:%P1,%%eax\n\t" "movl %%gs:%P2,%%edx" : "=A" (__value) : "i" (__builtin_offsetof (struct pthread, header.sysinfo)), "i" (__builtin_offsetof (struct pthread, header.sysinfo) + 4)); } __value; }) == ((pd)->header.sysinfo)p@@ H L  d   l@  ,       @    @ @@   (@pthread_getattr_np.crc/proc/self/maps%x-%xpthread_getattr_npabs (thread->pid) == thread->tidpthread_mutex_init.c__pthread_mutex_init((unsigned int) (ret) >= 0xfffff001u)mutex->__data.__owner == 0(-(e)) != 3 || !robust__pthread_mutex_lock(-(e)) != 35 || (kind != PTHREAD_MUTEX_ERRORCHECK_NP && kind != PTHREAD_MUTEX_RECURSIVE_NP)robust || (oldval & 0x40000000) == 0~||||||||||||++++||||||||||||||||||||||||||||||||||||pthread_mutex_trylock.c__pthread_mutex_trylock$$$Y Y Y Y Y Y Y Y Y Y Y Y TTTTY Y Y Y Y Y Y Y Y Y Y Y ,,,,Y Y Y Y Y Y Y Y Y Y Y Y ,,,,Y Y Y Y Y Y Y Y Y Y Y Y pthread_mutex_timedlock.cpthread_mutex_timedlockcTT))))))))))))))))))))))))))))))))))))))))))))))))yyyyyyyyyyyyyyyyyyyyyyyy|yyyyyyyyyyyyyyyyyyyyyyyyL,Lr/proc/mounts/etc/fstabtmpfs/dev/shm/dev/shm/sem.FATAL: exception not rethrown libgcc_s.so.1_Unwind_Resume__gcc_personality_v0_Unwind_ForcedUnwind_Unwind_GetCFAlibgcc_s.so.1 must be installed for pthread_cancel to work tpp.c__pthread_tpp_change_prioritynew_prio == -1 || (new_prio >= __sched_fifo_min_prio && new_prio <= __sched_fifo_max_prio)previous_prio == -1 || (previous_prio >= __sched_fifo_min_prio && previous_prio <= __sched_fifo_max_prio)../nptl/pthread_mutex_lock.c__pthread_mutex_cond_lock2Άσσσσσσσσσσσσvvvvσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσ/////lib/ld-linux.so.2; B44 4P H8p 89 H9 X9 9<X:`;<X>8@xAB$CDDdXEFQQQ T,T T, T\ U U #U 3U CUL SU| cU sU U U< Ul U U U U,U\VV#V3VCVLSV|cVsVV VHVdW(WXY(YZZ0ZLZhZ([\"\8\\$]T]]]],^HX^l^^^^_(_H_0h_L_h__`8`X`x``,`H`dad'd8df$8fDm@mtmmmnsds||} }T&}8}Dh؁Hh,H(dXȇFLRh<݈\ȉ؉8h0 RL`o~\ h Ȓ!#X#X $h<$xX$t$Ț$h$ț$H$8%ȝ<%8\%|%%%H%H &(&HH&Hh&أ&H&&@'d'H''& '(((XD(9'I'hd(((H((<)`)|)ز))X)ȳ) *8(*H*8h*****(*ȷ+8+XT++ȸ+x+,X@,p,,,h,$-hD-Ƚd--(--(.(.(P.x.(..(.x/((/T/(t////0 0D0d00h0001X01P1l1181h112(h2S82x22282X2343P3l3X33833(404HL4Hl4444484(5h85T5p5X5x555667-6=86Mh6]6x$7@7h`78|7 77-8>L8X8x88zR| ){AB 80*AB PX-AB Nx.AB .AB .CAG FNzR| ,Ix FxDx I .",HIx FxDx I .",xIx FxDx WI .",oIx FxDx #I .",OIx FxDx H 0",/Ix FxDx H 1",8Ix FxDx H 1",hHx FxDx SH 3",Hx FxDx H _4",Hx FxDx G 85",Hx FxDx G =5",(oHx FxDx G e5",XOHx FxDx OG x6",/Hx FxDx G 6",Hx FxDx F 8",Gx FxDx F 8",Gx FxDx F 8",HGx FxDx KF W9",xGx FxDx F ?9",oGx FxDx E 9",OGx FxDx E ;",/Gx FxDx {E l<",8Gx FxDx GE E=",hFx FxDx E -=",Fx FxDx D Q>",Fx FxDx D )>",Fx FxDx wD A",(oFx FxDx CD YA" $d)AD GD H)AD BKl*AB C,AD K-AD KL/:AD Fl0QAD K 1AB C,2AB C L,3AD FM p3AB FPND5 AB CD?oAB E?^AB I?AB IB AD 0HD AB LLDAAG hDAD A DeAB LHEyAB 4FAB  (F]AG FI dG `GAB 4 dGAB AP hGLB l lG$AG ,jHx FxDx FH G",JHx FxDx H zG" GAB FI,@ Hx FxDx H H",p H x FxDx lH H" l GAG FI, I x FxDx H sH", H x FxDx H iH" HAG FI H,AB  0 HCAD GOT H.AB Dp HAB  H(AB  IAB  IAB  IAB  IAB  IAB 4 IAG P IAB l I;AG  @IAB  DI,AB  XIAB  \IAB  `I&AB  tIAG 0 xIAB L |I)AG , Lx FxDx kL I", oLx FxDx 7L J" 0IAD K 0LAB FT M#AB 0\ wUx BxCxDx LU 'N"0 RUx BxCxDx U 2O"0 -Ux Bx ExDx T nO"0 Ux Bx ExDx T R"0,Tx BxCxDx lT R",LAB F0^Zx Bx ExDx 5Z X"xTAB F0(cx BxCxDx b Z"0cx BxCxDx b Z"0<bx BxCxDx b ["0pbx Bx ExDx Tb `"0bx BxCxDx b `"$Y AB F0fx BxCxDx f b"0,fx Bx ExDx cf c" ,aSAB IEP(fAG lLfAB @fAD 4fAB 8f,AB LfAB Pf"AG dfvAB A0fAD (LfAA ~AA Dxpg~AA AACAA AAA(hAA sAA DLieAA AACAA AAA0hj x BxCxDx j cj"0j x BxCxDx j cj" j~AG FF0k x BxCxDx j j"0$j x BxCxDx j ^j"$$juAB IH(DjAA fAA pkAB kAD kAB kAB kAB k"AB 0kAB 0hlx BxBxDx l k"0lx BxCxDx l k"0lx BxCxDx `l k"0lx BxCxDx 'l k"j:AD GzPLR|A H$4lAA AF A AAA\ Qi TpnSAA AAZ,YFA AAB\,Ti,8qAA vAkA JAA X$DrAA AAA AAAKA AAAs"AB s'AB D 0sAB FI sAB FI tzAB FI $dtzAB FIHtAB dtAD tAB t4AB tAB t&AB tAD  tAB (uzAB H0|u x CxCxDx u au"0u x CxBxDx cu ?u"uYAG FF4huA] DAA{Ai 0vAB $$vAD @vAB \v$AB  x0vAB BC v_AB IXv{AB GF HwAB FFWxAB O$xdAG IFDxyAG Bd4y2AB XyAG FFyAG FF0hzPA X@s fAG@4{;AB AX{AG J0{AB O P|AB IVtD}fAB }8AB }AD ,x FxDx  ~",,x FxDx  j~" (P}AB I[FLLAB C lAB FL8AB C,ix FxDx E {",Ix FxDx  "(AB , AD JLAB ClAB ,hAA C`A(ptAA CD\A<qWA ACA AAA $ĈA|AEH$'Aed4AB 8AE ,aAD J|nAB AЉ#AB 1AB  dAB P0 XAB LP ȊVAD Dl AE  =AG FO AB R $AB D $AB E!0AD  !QAB ("0,Ux BxCxDx  A"0-0x Bx ExDx ߳ v"04- x Bx ExDx  "0h-x BxCxDx o "h.vAB F.LB .5AB E.ԴEAB E 4k 4"ZW ZM *% x+UGbvB&-a1%U@,@?`q% -5^J!C";{*l7t#[cn/8W,xE'G _E 46 \36;$oD<A!CF:)'2)~K4Hw<8s> f97yDLQYu#=}k3B+ "hM.OA*e:I j?1T=& P5N / SRX]V.mrz|Zdi p$0(+ (>02Fg9`mlmmmnnn0nPnpnno@0 pСp0ie0j@ku@s@ui0P0ЩЪP@q@@O`Mc = PHo!t  o ;9(o7o o(o8oo4o;n= >>*>:>J>Z>j>z>>>>>>>>> ??*?:?J?Z?j?z????????? @@*@:@J@Z@j@z@@@@@@@@@ AA*A:AJAZAjAzAAAAAAAAA BB*Bqqq q qOspWgOspWGthe use of `pthread_attr_getstackaddr' is deprecated, use `pthread_attr_getstack'the use of `pthread_attr_setstackaddr' is deprecated, use `pthread_attr_setstack'the `llseek' function may be dangerous; use `lseek64' instead.libpthread-2.9.so.debug |s.symtab.strtab.shstrtab.note.gnu.build-id.note.ABI-tag.note.SuSE.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_d.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.interp.eh_frame_hdr.eh_frame.gcc_except_table.ctors.dtors.jcr.data.rel.ro.dynamic.got.got.plt.data.bss.comment.SUSE.OPTs.gnu.warning.pthread_attr_getstackaddr.gnu.warning.pthread_attr_setstackaddr.gnu.warning.llseek.gnu_debuglinkTT$.xx <Go Q t t pY!!ao44no77 }o88 99( ;;  ====P@B@BPPt  $$.HHKHHxm]m]m]n^ n^o_(o_!qa$'@q4a ,04a ?@aR faR b? ?b[b$j00& T9mmm*PB@@qODq]BimvHmC{HqPGn hc)q4cAcM d[xo q{d+d;dKd[dkd{ddSdd`Td% 2d?dNd[dj ey`e7lt+e;eKeF[e)ke8{eEeTfT h\kg*ktkl l l R R!s /s%X4B[|f|r||}҂P 2A.S`% uN Z   ZhwmpǠ ʠ%X9 F 0;I  V a0(hptAQB  =?" [ px4Du5YEf Ue$ 5F PH"mC:"KPH^eu#0zo,CE   + `VB [ ns 0E K С P S o&   U= 0J  d 5t H Z  u   ? v 4 A N U P[ l Pt{  `U :" 0 T  e  P8 , oH X  o w 0 o @O: `o | 5  0| P `M& < I 0e ' п8 l, 0 n  @dP;,q,@oHmf`I{0:| đfpo'$0<P q0j0 0n J `o" D YL u@ ` : @( :?ZPyu`1`q |Jܑ%z9:"IPQco@s$ @"m(@qM opWmpUpQЬd п8@k5Deur2o)n|0+0|V  =R m@HzБ  |u*,`HC8`^C4qOifz"vpnp@H" 0| 0|`q *|4p Q0qgP0`| X 32Rf`2Q i pJ-ȑ?0|NSz"f n;@#P2%( DЪ{cvH  0ؑЩ00|@d q|}|`/e` Pn=4qDV|](qy0q @u< `m.'p;c N]j `Uȋ<"p^3@BJ enn= t@V@S0|Txt !478 9 ; = = @BP$HHmmmnnooq@q !"#7 }Mc :Pnpuz0n " 0|" P4 K p"g     ` @s !n; ! }8!0"=!P8P!Ph!m(!Pt!п8!@#!p!i!p"!@ !0|"!0+" "С7"J"a"w"0|"|""@s""0z"p""-# #o)6#J#i##P#Щ##0#`#$`z*$#@$@d\$`f$z$$0+"$`$$m$% %3% ,P%$o%%pW%%%%%n&o0&I&0_&ou&|"z&`&&@u&&pu&e"'@'Ж~.''A'PN'0|"U'_'@x'"~''0E"'|"'' '("(`o((p"-(п8C("K(`(p(Ьd}(((Y((,(P) )P;9)pX)"])`2)Ъ{))u#)))*mC* 6* N*`*z****"** +P5+P"R+Ws+++@u+`m.+P ++Ж~+2%,7,H,`nl,0"s,@o,u",p4,",P,,,-.-P-$X-`es--0-"-`-u"-a-C-u#.u2.H.P Z...S"..".P2..i.2/" /0"&/O/i/0E"q/2/ /m/o&//00~/0pnK0c0`"p0@"0000`001|"%1".1 E10[1m1w1n111`U"12 -2P"32Q2n22|"2|"220|"2gy2j$2"20330|"%3i33@VD3[3Щp3V 3pU33v3e 3pU"3@y3$"3!484vL4"V4v4@k444 `o40j4p4Ъ{4 5p"")5?5T5i5P55p5p_5l,5"556p 6')6"46S@6p"H6X6j60h]6 l66)66|"67n777@7u"F7"b7Ц&|77eA7"77P77"8'8nB8PV8@z8f8*8p8i8899И39M91b9u9 p99o,9990fe__CTOR_LIST____DTOR_LIST____JCR_LIST____do_global_dtors_auxcompleted.5719dtor_idx.5721frame_dummy__CTOR_END____FRAME_END____JCR_END____do_global_ctors_auxsigcancel_handler__nptl_initial_report_eventssighandler_setxidpthread_functionsnptl_versionbannerstack_cache_lock_L_lock_22stack_used_L_unlock_98_L_lock_153_L_unlock_190stack_cache_actsizestack_cache_L_lock_464_L_unlock_638_L_lock_672_L_unlock_926_L_lock_1169_L_unlock_1290_L_lock_1327_L_unlock_1382free_stacks_L_lock_1589_L_unlock_1636do_clone_L_lock_1864default_attr_L_lock_1979_L_unlock_2058_L_lock_2139_L_unlock_2158_L_unlock_2261start_thread_L_unlock_2469__PRETTY_FUNCTION__.10039__nptl_threads_events__nptl_last_event_L_unlock_2683_L_lock_2826_L_unlock_2845__PRETTY_FUNCTION__.10505_L_lock_3022_L_unlock_3035_L_lock_3490_L_unlock_3493cleanup_L_lock_29_L_unlock_57_L_lock_32_L_unlock_66_L_lock_31_L_unlock_58__evoke_link_warning_pthread_attr_getstackaddr__evoke_link_warning_pthread_attr_setstackaddr_L_lock_28_L_unlock_115__PRETTY_FUNCTION__.8074tpi_supported__PRETTY_FUNCTION__.5445_L_lock_89_L_lock_286_L_robust_lock_349__PRETTY_FUNCTION__.6342_L_unlock_815_L_lock_865_L_unlock_569__PRETTY_FUNCTION__.5565_L_timedlock_134_L_timedlock_248_L_robust_timedlock_405__PRETTY_FUNCTION__.5616_L_unlock_1127_L_timedlock_1200_L_unlock_94_L_robust_unlock_208_L_lock_27_L_lock_34_L_unlock_62_L_lock_38_L_unlock_55_L_unlock_117_L_lock_144__condvar_w_cleanup2__condvar_w_cleanup__condvar_tw_cleanup2__condvar_tw_cleanupcheck_add_mapping_L_lock_79_L_unlock_128defaultmountdefaultdirwalkerthe_semrec_L_lock_50_L_unlock_77sem_wait_cleanupunwind_cleanupunwind_stop__evoke_link_warning_llseekdo_sigwait_L_lock_30_L_unlock_22__restore_rt__restorelibgcc_s_getcfalibgcc_s_forcedunwindlibgcc_s_resumelibgcc_s_personality_L_unlock_49__PRETTY_FUNCTION__.5456_L_lock_294_L_unlock_343_L_cond_lock_88_L_cond_lock_283_L_robust_cond_lock_350__PRETTY_FUNCTION__.6344_L_unlock_797_L_cond_lock_985__GI___nptl_death_event__pthread_attr_init_2_1__write_nocancel__nptl_death_eventmsgsnd__pthread_mutex_destroy_internal__pthread_cond_signal_2_0__pthread_attr_setscope__pthread_initialize_minimal_internal__namedsem_once__umoddi3_thread_db_pthread_key_data_data__old_sem_destroy__lll_robust_lock_wait__pthread_cond_broadcast__pthread_attr_getscope__libc_lseek__wait_lookup_done__pthread_cond_signal__pthread_setspecific_internal__deallocate_stack__pthread_attr_getstacksize_thread_db___nptl_initial_report_events__pthread_tpp_change_priority__libc_msync_thread_db___pthread_keys__lll_lock_wait__find_thread_by_id__gcc_personality_v0__pthread_cond_wait__pthread_getaffinity_np__fsync_nocancel__libc_msgsnd__libc_sigaction__pthread_mutex_cond_lock_thread_db_pthread_schedparam_sched_priority__sigsuspendllseek_fini__pause_nocancel__old_sem_wait__invoke_dynamic_linker____sigwait__msync_nocancel__pthread_cleanup_upto_thread_db_register32_thread_area__pthread_exit__old_sem_init_thread_db_sizeof_pthread_key_struct__pthread_attr_setstacksize__pthread_debug_thread_db_pthread_tid__pread__pthread_attr_getaffinity_new_GLOBAL_OFFSET_TABLE___nptl_deallocate_tsd__pthread_attr_setstackaddr__libc_accept__udivdi3__lseek64__recvfrom__sem_search__nptl_setxid__static_tls_align_m1__libc_pread__GI___pthread_cleanup_upto__pthread_cond_destroy_2_0__new_sem_trywait__pthread_attr_init_2_0__lll_unlock_wake__pthread_attr_getinheritsched__llseek__pthread_cleanup_push_defer__dyn_pthread_atfork__sched_fifo_min_prio__pthread_attr_getstackaddr__pthread_attr_getdetachstate__find_in_stack_list__xidcmd_Unwind_GetCFA_thread_db_list_t_next__attr_list__new_sem_init__libc_waitpid__pthread_attr_getstack__set_robust_list_avail__old_sem_post__where_is_shmfs__pthread_condattr_init__sem_mappings_lock_thread_db_pthread_start_routine__close_nocancel__pthread_getschedparam_thread_db_dtv_dtv__pthread_attr_setschedparam__reclaim_stacks__pthread_create_2_0__concurrency_level__pthread_cleanup_pop_restore_thread_db_pthread_cancelhandling__nanosleep_nocancel_thread_db_pthread_eventbuf_thread_db_pthread_specific__ftrylockfile_Unwind_Resume__pwrite_thread_db___nptl_last_event__pthread_setaffinity_new_thread_db_sizeof_pthread_key_data_level2__new_sem_post__pthread_cond_destroy__pthread_current_priority__pthread_attr_setaffinity_new__pthread_getaffinity_new__GI___stack_user__pthread_cleanup_pop__pthread_keys__libc_recvmsg__sigsuspend_nocancel__kernel_cpumask_size__pthread_kill_other_threads_np__lll_timedwait_tid__open_nocancel__pthread_init_static_tls__libc_wait__pthread_mutex_init_internal_thread_db_sizeof_td_thr_events_t__libc_pwrite64__libc_tcdrain_thread_db_link_map_l_tls_modidpthread_cancel_init__pthread_mutex_unlock_internal__pthread_attr_setdetachstate__dso_handle_thread_db_pthread_key_struct_seq__GI___pthread_register_cancelmsgrcv__pthread_cond_timedwait__DTOR_END____flockfile__waitpid__pthread_enable_asynccancel__pthread_kill__libc_pwrite__old_sem_trywait__pthread_setschedparam__libc_lseek64__GI___pthread_unregister_cancel__libc_fsync__pthread_setaffinity_old__pthread_attr_setstack__pthread_attr_getschedparam__sendmsg__funlockfile__connect_internal__pthread_create_2_1__determine_cpumask_size_thread_db_td_eventbuf_t_eventdata__lll_timedlock_wait__GI___pthread_unwind_next__GI___nptl_create_event__is_smp__pthread_cond_broadcast_2_0mountpoint_thread_db_list_t_prev_thread_db_td_thr_events_t_event_bits__libc_nanosleep__libc_close__lll_unlock_wake_private__nptl_main__free_tcb__bss_start__i686.get_pc_thunk.cx__read_nocancel__pthread_attr_setschedpolicy__libc_read__nptl_create_event__pthread_setcanceltype__pthread_cond_init_2_0_thread_db_pthread_list__libc_sendto__libc_send__GI___pthread_keys__recvmsg_thread_db_pthread_nextevent__sched_fifo_max_prio__pthread_once_internal__pthread_rwlock_wrlock_internal__libc_write__pthread_rwlock_unlock_internal__pthread_rwlock_rdlock_internal__stack_user__attr_list_lock_thread_db_pthread_eventbuf_eventmask__pthread_attr_getaffinity_old__default_stacksize__pthread_getaffinity_old_thread_db_sizeof_list_t__make_stacks_executable_thread_db_pthread_report_events__pthread_equal_thread_db_td_eventbuf_t_eventnum__old_sem_getvalue_Unwind_ForcedUnwind__fork_generation__libc_connect_end__waitpid_nocancel_thread_db_pthread_key_data_level2_data__libc_open64__pthread_setcancelstate__pthread_attr_setinheritsched__pthread_condattr_destroy__pthread_cleanup_push__pthread_attr_setaffinity_old_thread_db_pthread_schedpolicy__pthread_getspecific_internal__new_sem_getvalue_thread_db_pthread_dtvp_thread_db_sizeof_pthread_key_data_thread_db_pthread_pid__pthread_disable_asynccancel__pthread_cond_timedwait_2_0__sem_mappings__pthread_key_create_internal__libc_recvfrom_thread_db_pthread_eventbuf_eventmask_event_bits__libc_recv__libc_sendmsg__lll_lock_wait_private__libc_sigsuspend__libc_pause_thread_db_sizeof_pthread_thread_db_register64_thread_area_thread_db_sizeof_td_eventbuf_t__pthread_attr_getschedpolicy_edata__static_tls_size__recvDW.ref.__gcc_personality_v0__libc_msgrcv__libc_open__nptl_nthreads_thread_db_pthread_key_data_seq__pthread_mutex_lock_internal__new_sem_destroy_thread_db_dtv_t_pointer_val__pthread_attr_destroy__pthread_cond_init__free_stack_cache__libc_pread64__libc_fcntl_thread_db_pthread_key_struct_destr__libc_sigwait__pthread_cond_wait_2_0__pthread_self__libc_missing_posix_cpu_timers__init_sched_fifo_priosigsuspend__lll_robust_timedlock_wait__fcntl_nocancel__i686.get_pc_thunk.bx_thread_db___nptl_nthreads_DYNAMIC_init__GI___pthread_unwind__pthread_mutex_unlock_usercnt__new_sem_wait__sendtoabort@@GLIBC_2.0_dl_allocate_tls_init@@GLIBC_PRIVATE__libc_dlsym@@GLIBC_PRIVATEGLIBC_2.3.4__pthread_rwlock_unlockpthread_mutex_trylockpthread_setcanceltypepthread_cond_destroy@@GLIBC_2.3.2pthread_attr_getschedpolicypthread_rwlock_trywrlockmmap@@GLIBC_2.0pthread_mutexattr_setprioceilingpthread_attr_setschedparam__write__connectpthread_condattr_getpshared__endmntent@@GLIBC_2.2__pthread_mutexattr_settype__libc_thread_freeres@@GLIBC_PRIVATEmktemp@@GLIBC_2.0__libc_current_sigrtmax__libc_system@@GLIBC_PRIVATE__errno_location__pthread_mutex_initGLIBC_2.2pthread_attr_setinheritsched__pthread_mutex_trylockopensem_init@GLIBC_2.0__pthread_clock_gettimepthread_attr_setdetachstatesem_wait@GLIBC_2.0sem_trywait@@GLIBC_2.1systemsem_unlinkpthread_getconcurrency__read__res_stateconnect_IO_funlockfile_Jv_RegisterClassespthread_cond_signal@@GLIBC_2.3.2realloc@@GLIBC_2.0sched_yield@@GLIBC_2.0__getdelim@@GLIBC_2.0senderrno@@GLIBC_PRIVATEpthread_mutex_initpthread_getcpuclockidpthread_cond_signal@GLIBC_2.0pthread_mutexattr_settypepthread_mutex_consistent_npcalloc@@GLIBC_2.0pthread_attr_setstacksem_wait@@GLIBC_2.1__register_atfork@@GLIBC_2.3.2__libc_current_sigrtmax_private@@GLIBC_PRIVATE__pthread_oncepthread_key_create__pthread_unregister_cancelpthread_attr_getaffinity_np@@GLIBC_2.3.4__libc_allocate_rtsigpthread_barrier_init_pthread_cleanup_push_pthread_cleanup_push_defersem_closepthread_cond_broadcast@GLIBC_2.0memset@@GLIBC_2.0funlockfilepthread_mutexattr_getprotocol__clone@@GLIBC_2.0pthread_attr_getdetachstatesched_get_priority_max@@GLIBC_2.0GLIBC_2.1.2mempcpy@@GLIBC_2.1pthread_mutexattr_setpsharedpthread_barrierattr_setpsharedpthread_mutexattr_getrobust_nppthread_cond_timedwait@@GLIBC_2.3.2_exit@@GLIBC_2.0__sched_getparam@@GLIBC_2.0uname@@GLIBC_2.0GLIBC_2.2.3pthread_attr_setguardsizepthread_attr_setstacksize__assert_fail@@GLIBC_2.0pthread_rwlock_rdlockpthread_attr_getstackrecvpthread_barrierattr_initpthread_cond_timedwait@GLIBC_2.0pthread_mutex_lockpthread_mutex_getprioceiling__pthread_rwlock_trywrlockpausepthread_sigmaskpthread_rwlock_tryrdlocksem_post@GLIBC_2.0pthread_oncesendtoGLIBC_2.1pthread_condattr_destroyfcntl_dl_allocate_tls@@GLIBC_PRIVATElseeksendmsg_dl_deallocate_tls@@GLIBC_PRIVATE__pthread_unwind_next__libc_pthread_init@@GLIBC_PRIVATEpwritepthread_attr_setstackaddrreadsem_trywait@GLIBC_2.0lseek64__sysconf@@GLIBC_2.2free@@GLIBC_2.0pthread_kill__pthread_mutexattr_destroytdelete@@GLIBC_2.0pthread_barrier_destroy__libc_stack_end@@GLIBC_2.1pthread_mutexattr_setrobust_np__vfork__pthread_mutexattr_initpthread_atfork@GLIBC_2.0pthread_cond_init@@GLIBC_2.3.2waitpthread_getaffinity_np@GLIBC_2.3.3pthread_getspecificpthread_spin_lockpthread_mutex_destroy___tls_get_addr@@GLIBC_2.3getrlimit@@GLIBC_2.2mprotect@@GLIBC_2.0pthread_attr_init@@GLIBC_2.1__pthread_rwlock_destroypthread_mutex_timedlockfclose@@GLIBC_2.1pthread_condattr_getclockpthread_mutexattr_destroypthread_rwlock_wrlock_rtld_global_ro@@GLIBC_PRIVATEtcdrainpthread_kill_other_threads_np@GLIBC_2.0_setjmp@@GLIBC_2.0pthread_attr_setaffinity_np@@GLIBC_2.3.4pthread_mutexattr_getkind_nppthread_mutexattr_getprioceilingsem_timedwaittfind@@GLIBC_2.0__pthread_mutex_lockpthread_attr_destroypthread_spin_unlockmemcpy@@GLIBC_2.0__pthread_rwlock_tryrdlockpthread_attr_getaffinity_np@GLIBC_2.3.3strlen@@GLIBC_2.0fopen@@GLIBC_2.1__pthread_unregister_cancel_restore__openpthread_attr_getstackaddr__closepthread_condattr_setpsharedwrite__pthread_clock_settimeunlink@@GLIBC_2.0sem_destroy@@GLIBC_2.1__pthread_mutex_unlockpthread_barrierattr_getpshared__libc_dlopen_mode@@GLIBC_PRIVATElongjmppthread_rwlock_timedwrlockGLIBC_2.3.2__pthread_rwlock_rdlock__waitpthread_barrier_waitclose__pthread_register_cancel_defer__pthread_initialize_minimal__pthread_mutex_destroypthread_getaffinity_np@@GLIBC_2.3.4sem_destroy@GLIBC_2.0pthread_spin_init_dl_get_tls_static_info@@GLIBC_PRIVATEpthread_mutexattr_initsigactionGLIBC_2.2.6__fcntlpthread_attr_setaffinity_np@GLIBC_2.3.3GLIBC_2.0pthread_selfpthread_setaffinity_np@GLIBC_2.3.3pread64msync_dl_make_stack_executable@@GLIBC_PRIVATE__gettimeofday@@GLIBC_2.0__lseekpthread_testcancelpthread_rwlockattr_getkind_nppthread_attr_getguardsizepthread_attr_getstacksize__statfs@@GLIBC_2.2__getmntent_r@@GLIBC_2.2twalk@@GLIBC_2.0pthread_rwlock_timedrdlockpthread_attr_setschedpolicy__pthread_rwlock_wrlockftrylockfilepthread_rwlockattr_setkind_nph_errno@@GLIBC_PRIVATEstrstr@@GLIBC_2.0__getpagesize@@GLIBC_2.0_IO_ftrylockfilepthread_rwlockattr_setpshared__pthread_register_cancel__nanosleeppwrite64pthread_rwlock_destroypthread_condattr_initmalloc@@GLIBC_2.0GLIBC_2.4pthread_attr_getinheritsched__libc_current_sigrtmin_private@@GLIBC_PRIVATE__libc_allocate_rtsig_private@@GLIBC_PRIVATEsigwaitsched_get_priority_min@@GLIBC_2.0__h_errno_locationvfork__libc_longjmp@@GLIBC_PRIVATEpthread_mutexattr_getpsharedpthread_rwlockattr_initnanosleeprecvmsg_pthread_cleanup_pop_restore__sendpthread_tryjoin_nppthread_setconcurrencypreadpthread_spin_trylock__libc_fork@@GLIBC_PRIVATErecvfrompthread_equal__pthread_unwind__setmntent@@GLIBC_2.2__pthread_key_createpthread_create@@GLIBC_2.1_IO_flockfilepthread_cond_wait@@GLIBC_2.3.2__pthread_rwlock_initpthread_exitflockfilepthread_cancelsiglongjmp__libc_dl_error_tsd@@GLIBC_PRIVATEsem_getvalue@GLIBC_2.0pthread_rwlock_init__pread64__sched_getscheduler@@GLIBC_2.0pthread_setschedparamsem_post@@GLIBC_2.1GLIBC_2.3.3pthread_create@GLIBC_2.0pthread_getschedparamfork__pthread_getspecific__fxstat64@@GLIBC_2.2pthread_mutexattr_setkind_nppthread_rwlock_unlockpthread_spin_destroypthread_mutex_unlock__pthread_setspecificpthread_rwlockattr_getpsharedraisepthread_key_deletepthread_attr_init@GLIBC_2.0open64__libc_current_sigrtminsscanf@@GLIBC_2.0__forkpthread_cond_destroy@GLIBC_2.0__pwrite64__sigactionwaitpidlink@@GLIBC_2.0munmap@@GLIBC_2.0pthread_timedjoin_nppthread_setschedpriopthread_cond_wait@GLIBC_2.0__pthread_cleanup_routinesem_getvalue@@GLIBC_2.1accept__libc_fatal@@GLIBC_PRIVATEpthread_attr_getscope_rtld_global@@GLIBC_PRIVATEsem_openfsyncpthread_cond_init@GLIBC_2.0pthread_condattr_setclockpthread_cond_broadcast@@GLIBC_2.3.2pthread_detach__open64strcmp@@GLIBC_2.0pthread_mutexattr_gettype__sigsetjmp@@GLIBC_2.0__cxa_finalize@@GLIBC_2.1.3exit@@GLIBC_2.0pthread_attr_getschedparampthread_setspecificpthread_setaffinity_np@@GLIBC_2.3.4sem_init@@GLIBC_2.1pthread_mutexattr_setprotocolpthread_barrierattr_destroypthread_yieldpthread_mutex_setprioceilingGLIBC_PRIVATEpthread_setcancelstatepthread_rwlockattr_destroysched_setparam@@GLIBC_2.0_pthread_cleanup_poptsearch@@GLIBC_2.0pthread_getattr_np__resp@@GLIBC_PRIVATEpthread_attr_setscopeGLIBC_2.1.1__sched_setscheduler@@GLIBC_2.0pthread_join0707010006C1A1000081ED000000000000000000000001495DB9300001B800000000080000000100000000000000000000001400000000lib/libselinux.so.1ELFpE4P4 ( ܮܾܾ444$$LPtdDzDzDzQtdRtdTTGNU>=,$1M#p |x,)$&5-9'fTod0sIS(y _LZ# bh WVD?;E: \AcCN]%pqXk8Qxij#g+uJt|<@)(a{ rwl%.71$=mKR[ "^ ~G,*M>U`3P!} O"evz nBH2 '4 6Y F&!/i@ H"@ E@@&hH + !(`@AB  HJD *@Q:@F `t@@ (@@A@ D@@pHfb@@HI @ Ȇ"@ !ijlnopqrtuvyz{~   !"#&(Y.M"n)+$JPCv>)]e0NoW -Ow? vJv$ oH+idDXv' 4>QHGSmqL`S Uq8 2eXuTo@D-8Vc4qb^:LAn?y٠5ӝ[ԛp~/̚DG;*0=ǯrM5'.#T.J&Mi#M1WZ(bFP SdUTBC@z |!<4`q-y[ȑKK* 9?Zm%WrCE=lA f͸x_6,5(uD bpYZ)1j6w QZݤ9p Pke2uS.dz0$\fSn3!F}l W6!Ƽnw$̓0aiT~23ٺ*97rXGoMt[1R|ZIFp,?tQix 5 v h   "7>   @B $  X a T    Y@m  Z D`  4q X*-7 h } Le 1 e tIM Y_F  "&;H p. 0 $ LF p% @ /ZZ 0@ F @ T H= H " ` ^u  r 0 @"  L `  . )кU !W .% PR p` $ ( " u " Y `Q  2  H j p{ % 0A +Ћ s   @] 0 @ y` h% d F @J P @ " +M @# @ P " M> P-L `% " H0% @6 R 0 n g ? $>О c0 " { BZw V`[ @a9  ,T 04  3H @  " I ,  P{ o+ p  K- =(  " P# h> ~s  iИ Ive Pyh P" Q] = @" # A PHi  L pI r O gP%  Y W "   f u0FZ C P  # ] @ 0# p$ -xl b " L  - PZ P$ ` U $ XJ # U 0  t !   GH P" " Z o , 8 p" \# $ #   &E   zK '% " 2  p a?~  y9 b  w |j  0"   @ @ T !p#  4 0$  >#   } Cy 0*i $   0  "  "  @Sb {# `2 , P i { Pz s E e __gmon_start____cxa_finalize_Jv_RegisterClassesavc_av_statsavc_cleanupavc_resetavc_auditavc_has_perm_noauditavc_cache_stats__errno_locationsidgetavc_context_to_sid_rawavc_get_initial_sidavc_context_to_sidavc_compute_memberavc_compute_createavc_sid_statsavc_sid_to_context_raw__strdupavc_sid_to_contextsidput__snprintf_chkstrlensnprintfsecurity_av_perm_to_stringsecurity_class_to_stringavc_has_permavc_initstrncpymallocstrerroravc_openavc_destroyavc_add_callbackrecvfromsocketfcntlbindstrcmpsecurity_get_boolean_namessecurity_get_boolean_activesecurity_set_booleansecurity_commit_booleansselinux_mntwritereadstrtolsecurity_get_boolean_pendingalphasort64scandir64strcpy__assert_fail__ctype_b_loc__strtok_rstrncasecmpmkstemp64fopen64__fsetlocking__getdelimunlinkfclosefchmodrenamesecurity_set_boolean_listsecurity_load_booleansselinux_set_callbacksecurity_check_contextis_selinux_enabledstderr__vfprintf_chkselinux_get_callbacksecurity_canonicalize_context_rawsecurity_canonicalize_contextmemsetselinux_check_passwd_accessstring_to_security_classcheckPasswdAccesssecurity_check_context_rawsecurity_compute_av_rawsecurity_compute_avunmap_permunmap_classsscanfmap_decisionsecurity_compute_create_rawsecurity_compute_createsecurity_compute_member_rawsecurity_compute_membersecurity_compute_relabel_rawsecurity_compute_relabelsecurity_compute_user_rawsecurity_compute_usercontext_newcontext_freecontext_strcontext_type_getcontext_user_getcontext_range_getcontext_role_getcontext_type_setcontext_role_setcontext_user_setcontext_range_setstpcpysecurity_disableis_selinux_mls_enabledstrstrfgetfilecon_rawfgetxattrreallocfgetfileconfreeconfreeconaryfsetfilecon_rawfsetxattrfsetfileconget_default_context_with_roleget_ordered_context_list_with_levelget_ordered_context_listfgets_unlocked__fprintf_chkqsortget_default_contextget_default_context_with_levelget_default_context_with_rolelevelget_default_typestrncmpsecurity_get_initial_context_rawsecurity_get_initial_contextsecurity_getenforcegetpeercon_raw__memset_chkgetsockoptgetpeerconset_selinuxmntobj_class_compat__xstat64sysconfstatfs64strchris_context_customizablerewindcallocselabel_statsselabel_closeselinux_raw_to_trans_contextselabel_lookup_rawselabel_lookupselabel_openmyprintfmyprintf_compatmempcpyregcompregerrormemcpyfileno__fxstat64selinux_file_context_pathregexecregfreeselinux_media_context_pathselinux_x_context_pathlgetfilecon_rawlgetxattrlgetfileconsecurity_load_policyselinux_mkload_policydlopendlclosemmap64munmapunamestrverscmpdlerrordlsymselinux_init_load_policyfgetsumount2umountlsetfilecon_rawlsetxattrlsetfileconselinux_set_mappingstring_to_av_permmatchmediaconmatchpathcon_init_prefixset_matchpathcon_printfset_matchpathcon_invalidconset_matchpathcon_canonconmatchpathcon_filespec_eval__vsyslog_chkselinux_file_context_cmpmatchpathcon_checkmatches___tls_get_addrmatchpathcon_finiselinux_lsetfilecon_default__lxstat64selinux_file_context_verifymatchpathconmatchpathcon_indexmatchpathcon_initmatchpathcon_filespec_destroymatchpathcon_filespec_addset_matchpathcon_flagssecurity_policyversgetcon_rawgetcongetexeccon_rawgetfscreatecon_rawgetkeycreatecon_rawgetpidcon_rawgetprevcon_rawgetprevcongetsockcreatecon_rawsetcon_rawsetexeccon_rawsetexecconsetfscreatecon_rawsetkeycreatecon_rawsetsockcreatecon_raw__asprintf_chksyscallsetkeycreateconsetsockcreateconsetfscreateconsetcongetkeycreatecongetsockcreatecongetfscreatecongetexeccongetpidconstdin__printf_chkfflushmanual_user_enter_contextputsquery_user_contextrpm_execconexecveselinux_check_securetty_contextselinux_getenforcemodeselinux_getpolicytypeselinux_default_type_pathselinux_pathselinux_default_context_pathselinux_securetty_types_pathselinux_failsafe_context_pathselinux_removable_context_pathselinux_binary_policy_pathselinux_homedir_context_pathselinux_customizable_types_pathselinux_user_contexts_pathselinux_booleans_pathselinux_users_pathselinux_usersconf_pathselinux_translations_pathselinux_netfilter_context_pathselinux_file_context_homedir_pathselinux_file_context_local_pathselinux_policy_rootselinux_contexts_pathsecurity_setenforceselinux_trans_to_raw_contextreadvsendmsgconnectgetseuserbynamegetpwnam_rgetgrnam_rgetgrouplistprint_access_vectorsecurity_av_string__sprintf_chkflush_class_cacheopendirreaddir64closedirlibdl.so.2libc.so.6__stack_chk_failld-linux.so.2_edata__bss_start_endlibselinux.so.1GLIBC_2.3GLIBC_2.1GLIBC_2.0GLIBC_2.1.3GLIBC_2.4GLIBC_2.8GLIBC_2.2.4GLIBC_2.2GLIBC_2.3.4GLIBC_2.1.2          ii 0ii ii  si )ii 5ii ?ii ti Iii Uti _ii ri kii ľоԾؾ$#Ŀ#̿пԿؿ?ܿTfl v $(, 04 8!< @ D HLPTX\`dhlptx| !"#$%&'()*+,-./0123456789:;< =>@AB C$#(, 048D<E@FDHLGPHTIXJ\K`LdMhlNpOtPx|QRSUVWXY'Z[\]^_`abcdefghUS[àt> X[ hhhhh h($h0(h8p,h@`0hHP4hP@8hX0<h` @hhDhpHhxLhPhThXh\h`hdhhhplh`phPth@xh0|h hhhhhhhh h(h0h8ph@`hHPhP@hX0h` hhhphxhhhhhhhhph`hPh@h0h hhh hhhhh  h($h0(h8p,h@`0hHP4hP@8hX0<h` @hhDhpHhxLhPhThXh\h`hdhhhplh`phPth@xh0|h hhhhhhhh h(h0h8ph@`hHPhP@hX0h` hhhphxhhhhhhhhph`hPh@h0h hUVSzzLu]t$tP)p9s APP9rƃL[^]US.ytt $҃[]Ë$Ð!yUU  B B B B B B B]ÍUW1VSWy,E u ,[^_]ËpE䋃 tU$ЋpE䍻  tUu^ЋP$@f@@@ @@@ H$u;}tu;}u艃t ǃ tU$Ѝ 1 rl1Euc&vtUFt&tD$D$D$ D$D$$tuUNjvUuEU,[^_]Ív'U]Öw}}u pt $ЋpW11tBƉG t $Љ]u}]Í&UWVS\)w,pE싃 tU$ЋpE썓 11Ut&t1Ґt&@$u9~׃;Mu؋ tU$Ћ t7|$t$ D$ D$D$$҃,[^_]É|$t$D$ $D$ D$D$,[^_]fUWVSJvEE fE pUt$ЋpEUEu }E UЉEvut&9tft@$tvɋt}Pu9Ut uUf9PuЃ}fbf}=}-}uU P @$u;u\ tU$Ѓ1[^_]ËEU11%u ċ@$t;8&uUf;PuU;Pu܃}@ v}}}VU P t&Gv}@t&t6}&t} fU!Pt&U!PzU PoU!P dfU PWU PUU!P }@t"}t$} UU!PU PUU!Pt&'UWVSwsLE UEfEEtE΋UD$ET$UЉ$lDUEEEUȐt&~tF9EtktgEЅt`vu pt $ЋpE9 s t$ЋEUԉE܃L[^_]fF 9Et tEuEf9FuE#FwUȉD$EE<$T$UЉD$ ET$D$tlM܅;UԉE܋U+vE؋U#E$UЉD$EΉD$U؋EEEEE E U4$|$}}u UMEu-UE EMu4$|$]UE @EMuѐU4$|$}}u UMEu-UE EMu4$|$]aUE EMuѐU4$|$} uEMUEE Mu}4$|$]U4$|$E }uMUEEu}M E4$|$]'U4$|$} uEMUEE Mu}4$|$]\U]o}} u pt$ЋE|$D$ $!u@ pt$Љ]u}]Ðt&U(]EvCoD$Eu$GhxE D$E$ƋE$RV]u]ÍU(]EnD$Eu$uE D$E$ƋE$U]u]ÍvU8]Æn}}uu pt$ЋEPt U Bu8 pt$Љ]u}]Ít&ED$ ƉD$UED$$BuE|$D$ $ u@E$Tut&U8]Öm}}uu pt$ЋE@t U Ju8 pt$Љ]u}]Ít&ED$ ƉD$UED$$P>uE|$D$ $u@E$ Tut&U]ælu}}.pƋ t $Ћp9 s t$Љ]u}]Ðt&UWVSl9l, pMt$Ѝ M}E$! tEM}܉E&}t{1v;rtB$tbщ;2uB$A$B$}܃mBfBBB BBB z$U܉uEE9ElM}܋E艋 tt$$CB$}n pt$Ѓ,[^_]Í&'UWVSj\E}fE E pt$Ћu tE9 E uU 11% EutfE @tU B pt$Ѓ\[^_]Ef;BuE ;BPvR$tE;uԐt&EUEUU 9Q uf9q#A9 A vEt#A Q uBFBFB F BFQ t1Ѕ 1y t$u E؉D$U|$ D$$6M苃 9s} D$ D$ЊL$$+ {#BB 97u  U 빋tB$ tEu B JErufBB$E؉B E܉BEBEBExD$D$ЊL$ D$$Rt} 1uMt%r ucfz t&t;B R$u9Muƒu t&B$ MF$MB$ M&USf xt$Ћ pt$Ћ|D$D$ $ pt$Ћ t5|D$H$ҋ xt$Ѓ[]Ðt&|$D$HD$뽍'U])e}} uu pt$ЋFt6$ pt$Љ]u}]Ð+ɍU(]EceD$Eu$uE D$E$_ƋE$rL]u]ÍU}}]u1.dt8 pt $ЋpW11u'G t $Љ]u}]ÍB҉'UWVS<EMU|dfE!A E1 xt$ЉҍD$D$ЋD$|D$ D$D$$juMM|4$ߋT$)ƉT$4$VGE vMtp}tU|$$+E|4$RUMD$ D$T$L$)ƉT$4$!EMu|4$T$)¿T$4$|4$T$)ƉT$4$u|4$)  T$ UL$M T$ $Ћ|4$mfT$)ƉT$4$ pt$ЋMQ|4$MT$T$)D$ D$T$4$uM Aw|4$U T$T$)‰T$D$ D$4$# pt$ЋM $|4$c|$T$D$ D$)ƉT$4$|4$ DT$)Ɖ|$4$ |D$H$ҋ xt$Ѓ<[^_]ÍuωUa}uQtΉU11Iɋmt&|4$rUT$R|4$RM T$|4$*ً"&|$D$HD$fT$ EU L$D$$ U|4$M썓T$D$ D$L$)ƉT$4$v UXEEȉD$E]i_uuD$E}Et$D$ E EEED$EE$AENjt$E̋ED$EЉD$EȉD$ED$ E D$E$@ẺEЋ]u}]Ít&'UWVSEã^u }tD$D$$t F t G EtUǃ  B Et&} G G G Ћ p1t҉x 1 r񍃌 t&9uǃ ǃ ǃ $oEt. D$$ҋE[^_]Ë $1|u>zf$(Љ…ҍvtA1 ׃tB$ttC u$(…u TD$Dt$$ҋ ugWExE $ ExW t' 1t ,$҉ǃ Eǃ [^_]ǃp12 Ƌ$D$ D$D$$D$D$$E[^_]Ë t]D$$E($8D$Dt$ D$$D$D$$E t]D$l$Ƌ$D$$D$ D$D$XD$lD$$2&U1VShZ M U!:uBuቃ &D$D$ D$D$$ [^]UWVS Y pt$Ћ t t$ Et&u($Ѕt r$u$uv;}uȋtt&B$t $Ћtuڋ pt$Ћlt%Bl uމ$luۍ $6 pt$Ћ xt$Ћ |t$$ǃ [^_]É$ $׍&'UVS}JXu tO$Љ…Ҹt2EfrE BEBEB EBlB1l[^]f$묋 $ÐUSûW $[]Ív'UVSÈW0ED$ME L$D$ T$t$$@x4U t4 D$,$T$Ѹ0[^]ÐUuIF t&u 9t& D$Ȍ$Ҹ먋 t^D$`$T$Ѹ{vD$,T$ D$$I1AD$`T$ D$$D$ȌD$$ t*D$$yMD$D$$ȍ&'U(]uƉ}@zUfftXftB 1D$D$|$҉]u}]Í&v 1ې F|$D$P$ҋF$#y E_t$|$D$ $$Uj F|$D$$ҋ SFB$, Et$|$D$ $$Ut& څɉD$T$$t&1D$ D$|D$$cF|$$D$ D$vF|$$D$ PD$Uvt$ |$$D$$D$D$T$ D$$UWVSR,eE1KƐxbyލ $b ǃ te̍t$$ҋEe3,[^_]Ít&ty t;D$t$$y̍t$D$$덉D$ t$D$$2t&UWVSÙQ<eE1!Ǎvy< tMtكt΋ tOD$D$$ut&떍1Ue3u2<[^_]ÉD$ D$D$$USëP$D$D$$‰ x]D$D$$UtGED$ EEfEED$ $1҅x+$[]Ð D$D$$:t $U1҉Eu%t&@txt&u]t&Í&&u1]v U1ɉW1V1S,E]OEUt1Ґ@u9~׃uՋU|$$t$D$ BD$ D$D$D$D$ED$E $U,[^_]Ðt&UWVSùN $ ЉEUtpE $}$a11Et19wUEM MAEA1 U1B [^_]Í$ $Eb tU$иŋM $x볉'UWVSùM E} <$11Et &19wUUU4u.vt!|$$SuU12 [^_]É|$E$Yt [^_]Í'UVS-Lu t=$Ѕt 1fuFf1҃[^]$뾐t&UWVS MÃLEfUE0u84$Ѕt&~$3 u݉4$uېUEE}uE t$ЋU [^_]É$却&'UWVS E K8<$11ɉ1tv19wU t#;U uXf;U t&tыRҍ&u [^_]ÍBA t$ЋEh [^_]É$u FUUz.t]Ðt&1zt1fz.]Ít&U8]JeE1u}D$aD$D$ D$D$4$D$4$xVƅ1ƅD$D$<$<$$1~Ue3u,]u}]Ðt&ې'UH] Iu}8#} v S]u}]ÍvU$}<$st 4$EED$yD$D$ D$t$D$D$E$UD$$sx]} ED$1EED$<$6<$E$q1&U$E6vt&'UWVSiH,UE$bU@E$Ƌ$ t 4$.EUyD$T$D$ D$t$D$D$E$CUD$$x(UD$<$D$<$wt*Ut$Eu",[^_]Ðt&E$1䐋E$빍U(]EU3Guyu5E@ED$ D$$[E$X]u]Ít&U(]EUÐFu u1ED$ D$$E$]u]Ð&UWVS<EU PFeE1҉yD$T$D$D$ D$D$4$)4$D$ D$D$#$01/$D$92@$‹҉u~t"4&$ky$S~%1t&$,92⋅$Ue3u8<[^_]Ív1듍1D$ D$D$,$/&UWVS, U Ce5u1u Vt&=tҍHu(Ue35, [^_]Ít =qutD$D$4$E1ҋ8v DG .L$T$4$:4$@‰~<8DDG t ADG tu1D01:#D$D$$DB tDB uDBt]D$ D$4$^蟿N&9t&D$D$4$vuD$D$4$Ey_ UWVSl9Al`̟ПDžeE1åƋП$ԟԟПt1vԟ9Пw荃D$t$D$ D$D$$$0ܟ<$t$D$D$ D$D$0D$$؟#DžDžD$$nJܟ|$T$$<$2;6$Dž؟D$ T$ D$$I$XT$$ /<$П̟1&9П$T$u֋FD$ D$D$T$D$ D$ȟ$ȟ! t€.ҋԟȟ+ȟܟt$D$$B9;ПXD$ D$D$T$D$ <$D$! t€ܟ҃)t$|$$証9$ܟ$$$6ԟ$踽Ue3l`[^_]؟$П19Пԟu䋕̟DD$D$ D$D$ D$ğ$D$ğ! t€uҋğܟ+ğD$t$$W99П?ܟD$$ܟ$贾T$$Lpԟ$61|t&vUWV}E UEUte19vYUDD$$St߅~*1U$ D$U$%9ٸ^_]Ðt& uMftU^_]&'UWVSL@Eð:eU1Džܿo0ؿT$$BDžD$$ظDžԿ̿Կt$ D$ <$T$Ҹ~fT$̿$ t/uD$̿$돍&|t&4$0ܿ\D$4$D$D$ D$D$ νؿ4$D$ D$$謷Կпt&Կt$ D$ <$D$買~fT$п$ t/uпD$$돍&|t&4$x 1҅uЋUe3u=L@[^_]Ðt&ӵٜv˜vv U1]É'UE7t*tu E ]ÍE ]$Ðt&U ] Ðt&USE踽Å7$詻[]Ít&'US莽[7q1҅t(ED$ E D$D$$eƒ[]ÍvUE ]67uutVtAt-E{E]u]fEt&$EАt& EUH]E裼p6U u}eE1FD$܎4$D$D$ D$D$芺4$D$U $<$T$D$<$萷|$D$$״xRD$<$T$'|$D$$訵xd<$l<$ǵ$ Ue3uV]u}]Í蓲͍{8u<$T$D$q踾&UV$EUET$$迨t $^]ÍvED$E$ƋE$uҋE D$E$kƋE$~$^]ÐUSN44 u 1҃4[]ÍvE$-t!.t&uӍɍ$BftEUD$ET$D$ D$$u E#E;Et E$늋E$1ҍXt&'U]'U8]Ec03u}eU1ҋtjD$܎D$D$ D$D$4$VD$4$&y8Ue3u`]u}]f;Ӎ$j<$T$D$豱<$G1y돍&Kt&'UV$EUT$E$OuE$ƋE$C$^]ÐUWVS\E1U EUeE1fD$4$D$D$ D$D$ܵ4$D$觯q $@@UT$$ʴƋ$t$ D$ D$T$<$D$T$D$D$<$臲|$D$$ѯD$<$T$|$D$$螰xZ<$D$T$ D$D$D$ D$3tH<$v$踲Ue3u@\[^_]Í&C΋1D$$\}'UWV0UE} fUUE}T$$pt 0^_]ÍvED$<$QuMED$UT$ ED$ED$E$ƋE$(E$0^_]Ít&E$낐UWVSLEôÐ.U EUeE1fxD$4$D$D$ D$D$蜲4$D$g $$DZD$ D$<$T$D$D$D$D$<$h|$$D$責xTD$<$D$|$D$$胭x<$E<$蠭$Ue3uL[^_]Ðsɶ'UWV0UE} fUUE}T$$t 0^_]ÍvED$<$衠ueED$ ED$ED$E$ƋE$E$tuED$E$>ƋE$Q0^_]ËE$8gUWVSLE+U EUeE1fxD$(4$D$D$ D$D$ܯ4$D$觩 $@$D$ D$<$T$D$D$D$D$@<$訬|$$D$xTD$<$D$B|$D$$êx<$腯<$$"Ue3uL[^_]Ð賧 'UWV0UE} fUUE}T$$t 0^_]ÍvED$<$uuED$ ED$ED$E$ƋE$E$uED$E$~tUE$0^_]ËE$hWUWVSLE3)U EUeE1fxD$24$D$D$ D$D$ 4$D$צ $p$7D$ D$<$T$D$D$D$D$p<$ة|$$D$"xTD$<$D$r|$D$$x<$赬<$$RUe3uL[^_]Ð9'UWV0UE} fUUE}T$$0t 0^_]ÍvED$<$ueED$ ED$ED$E$ƋE$ E$ uED$E$讘ƋE$ 0^_]ËE$ gUWVSLEs@&U EeU1҉D$=4$D$D$ D$D$V4$D$! <$D$ D$D$ED$T$|$$ҩ$4$D$D$xxk|$D$$ȤGD$T$$Ix,D$D$$tS$I$苧Ue3uL[^_]fq$tt$,tR1|t&<$9v+|<$/u҉$] )1 UWV EUT$E$Ηt ^_]ÐEU D$ET$$NjE$ űE0tUUv$ EtU$T$ItՋU$ EkUE]@ ÍvUE]@ÍvUE]@ÍvUE]@ÍvUE]֨ã"u}tRE8t>t$ 1Dt$Du<$E$]u}]UWVSUT!"EEE$$DžEtQEtOB<v( Mt :ts tnt,B<v u<$HC[^_]ËU<$T$UDt$EUT1[^_]ft롉'UME E]&U1҉ME E]v'UME E]&UME E]&UWVS Eó Et$>M11UDt $n|u<$芣M‰t?Af$D$LULt:MPD$D$(uԋU [^_]Ít&'UWVS,,u$$EE8GG GGt~1Ƀ <1wLt&uٍAwKG>tQuEt&}uguE`v<$踟U$UEE,[^_]Ív~ۃSt&pv>u+UЉU$ۡUDtU$T$UT$ڝUDU>tFE~qE&<:,u+EE놐<:u쐐UH]V#eE1u}tlD$D$D$ D$D$4$PD$4$ y:Ue3]u}]3эuE1E! t€u҃)L$t$<$臜<$1ndUH])u}EtIE$cwu&E荻EЉEЉ$]u}]Í0D$&$EEt͋uD$4$uEE܍8u؉EԍEuD$ D$ E؉t$$tIuԉt$u4$t…xE$vt'u4$u4$t.1uuuEЉ$u븍&UWVS輡É<eE1D$B4$D$D$ D$D$貟4$D$肙xd}EEEEED$|$4$U1ɐ΋EȋD9r鍃|D$ D$|$4$請M1ҍ։9r4$U҉U9E0$迍E9}rEUuUi蒊8&Jf3pD$D$D$ hD$$+A8ED$D$D$ hD$$ߊTfUS$ED$E q> D$E$%$[]ÍE$;UE$sU1uōUWVSED$E D$E$~`UׅtH&$t'$tD$E $臐t+4$u‹U$[^_]É4$t؉$bUt1Uȍv'UWV} uEtwE$tE 4$D$t+4$Mt E$^_]Ív4$tɋUD$ET$$~fE$cxElvEUD$E$D$?돍t&'US$ED$ EQ D$E D$E$$[]Í&E$UE$KU1uč&'UWV }uEE$tU$T$+t/4$Mt E$ ^_]Í&4$ptŋUD$E T$ UD$$/멍vE$MbxE`vEU D$ ET$D$E$yUWVSù,U Ee M1ɉk0T$$L6$Ev.D$L$$ш$th7xDB u䋍|$L$$H4>:6$X+$ztQFD$<$赉8$ψ1Ue3u3,[^_]ÍƄ $蕈UH]E MeU1҉u}ېD$L$T$4$D$D$ D$D$4$D$謄 <$Kth|$D$$DžGD$T$$Hx$$Y$蛈Ue3u]u}]+聏UV$ED$E$wuE D$E$owƋE$$^]ÐUH]FeE1u}DžtrD$D$D$ D$D$4$6D$4$y@Ue3]u}]ÍˍU܉T$EEEEED$$耄<$nD$D$$<C=ۍU8]öu}$轆EtH}1@ID$ UE}T$D$<$xEt |.UE ]u}]Í&Ӏ_}<$轃͍v賀8"uED$ D$<$D$蟆ExUED$$蓁Et}D$$|$uEU}D$ ET$|$$EUU+U(}} E]蠈muD$E$~E|$$ftƋE$yxt $p]u}]ÐU8])u}E$tSED$ D$4$D$EE܉D$Et$ D$D$$(xE 0]u}]Í8"t4$эE4$D$EtԋED$D$E$؀ED$D$D$ED$ E$菅u`낐&UV$ED$E$uE D$E$rƋE$$^]ÐU]詆vu$m]u]Ð&US^+E$K[]Ðt&UVS-eE1tdD$D$D$ D$D$4$'D$t$$}~x%=@tEe3uĐ[^]ÐUt&U]f3u}$O}E tTn]u}]Í&}&|$4$|^|8vtލ0D$ $n~EtD$}$}E}E|&U}ED$ T$ |$$}EtnuD$ 4$L}tZED$ $2}xt:|ƹ uxE~U$ u4$f~E$[}|v$ v諀t/sel@inux@bUWVS范Y M $3Ett$4 ƅu:fVt.|$$ uU$3[^_]ÍM $1[^_]Ív[^_]Íva0T$$i|Etҋ 1$u4&t&tLU싃 <$T$D$ }u֋M ${u(U$}<$|4E$zFD$$,{EEu9뵍t&9u萍t&sF<$v}D<$UMtBEE<$D$ D$\|uU$-}<$%|M 1t1U${;urM ${& E$|vEE$h0USE(Ht E Pt 1[]f$$xU B[]ÍvUE$P U]蹀Æuu4$V 4${]u]Í&'U(uƋE ]q>}D$EU4$D$Vu]u}]Í#D$ D$|$4$z?u&EtȋwuGD$${tv1륍U1҉SEãD$E$E7t#$~U 1҅t[]Í[]ÍvUSEs@D$E$Et @$M~U 1҅t []f[]ÍvUWVS}${ljEtc1rEME Tt&tLփu1~UM G<$T$UL$uE[^_]Í&1ȉ<$xEt&uEt&뼐UWVS,E6~@P҉UƋ1UE0T$UD$ F D$4$H9}vNF- HԑUM$t$ T$L$4$&sE$sE$s{E$sEEE;UB8UȋEr 4$tMA@9t"$\(t$ D$LL$$DtT1,T40D$ D$ T$ $riHd9Pm\Lt$ T$,D$D $8tc&gH1DžpH|B9pp9p:|p x*9tavHxH;Ax|Qĉ$T$nuxP,t |AugxR|tp$t$KntJ$t$|t t$ Bľ|$D$$%t{|Fľ|$D$8$A|Ht$|tt$Bľ|$$D$ D$|Bĉ|$$D$ 8D$ll=v\HA$ kH‰F$D$D$|gFPd$fXtX $mfTtT4$UfDž\$gHG$[jlh@MHPHDž` 1҉HG9v=|@t⋵``<@<4󥋽H볅tS11HH9Wv;΋|@u勵``<@<4󥋵H붋04$1f@HcDžh1R&'U]E 6luu}}E$i1҅tHrF|UF FF]}u}]rf]u}]Í&'UWVS*u~t,E;}s1Ep ED$E 4$D$buɋE@[^_]f[1[^_]ÐU1ɉVSEcR@0tP11J9rt$L$ D$$[^]Ðt&UWVS E&c@E@EEt9u1 t&$c]F$X]F$J]E98wӋEt E$1]E@ [^_]ÐUWVSbd}$m_XX@UM EEB"B )B"BDDžhf8u phu苵h0D$h$z[lu[^_]D$$Zl$YUT$$D$y_xE%=MuT9PbFPDž`Dž\ LHD@XDždlTPD$ t$ D$$vYX\91Ud}Rp[0 DF u#t{LED$ED$ ED$L$<$t^~R`pE$ZE$ZE$ZZh dh$D$ T$D$E$-ZE$ZM苽H<< pJ@DpU@T UE$Yp:`t E$Y1l $ZEXtߍ@$[X‰AX$D$@D$QXl\$[WDž`V< DupJ@D<@u%pJ@D<WupJ@D< pupJ@DR<]upJ@D"<kupJ@DhM@U1ɸfEt't&‹UufMD$$> EfEfEE‰U U $?Ufft:t&VtS8tD$U$ @UDuы $>ǃ fǃ [^_]Ív}}EPOU1f Ѝv[^_];뮐UWVSCɽ,U Ee M1ɉ!0T$$\=ffID$D$$>!! t€u҃+AtƄmh>82HDG ut&"DG tT$ $AFVuFt6DG u싅$D$Z.1҅tЋUe3u ,[^_]EUUdٻt]Ðt&LEݐ&UcE]( Í&UEcyt , ]Ív|L, ]fUWVS|AI,0 EtrE111fUD 1҅tv@uE9~փׁuϋEt$D$|$D$ #D$$,[^_]Ðt&US@ëE D$ ED$$D$=[]ÍU(]@fuu ( t,D$ED$E$҃Ћ]u]Í, tUt$T$U$ʐEt$$yt,UD$ ET$D$H$녋U$D$ET$ D$HD$PUMuu ]?m„}uJue $D$:f8D$:4$T8„uu/L$<$$>ft1]u}]Ðt&fUS?۸J:$;[]fU]>æu:Ƌt$6dž]u]ÍUVS>Z, tc9ǀ0E dž(4E,D$T$$*;[^]Í|L, fUVS=ʷĀuEED$$t$T8uR9tpEt$D$ ED$8$p6t418ft쀉[^]ËE4$D$ƋE$l쀉[^]D$$t믐t&U8]E=}}uEED$<$*8E |$D$ ED$7$5uEED$E$;E$萝E$腝]u}]Í3838_D$$K먍'US;˵;7tv&78u4M L$ UT$ML$$3ƒ[]Í&U T$ ML$UT$$U4[]‰D$$iUWVSu6;t$E D$E$8 X66uEU썀tmNjEU썀 E荲M9|mD$$=3u׋Mǁ ǁ[^_]ÐEǀ$W7Utb5 E$39 4tB [^_]Ív[^_]Ðǂ ǂOfUED$$'Ðt&UVS u9tED$$|x$3E1҉ [^]Ív01҃8tE t5D$ E D$ED$p$ [^]fD$ED$ $ [^]Ít&UWVS8ù )4ǀ ǀ$%30 džtnEf0 Utu 't&~F $24$2u䋃0 MDMu$2ǃ0 [^_]ÍvUWVS8u} 0 0 %HEɉMtpI|11 ,9wSr;|wIUJUɉMt-ME xHx11 9EE$I4EtgUME2zJ$2$4UB t.M$L$U3UMBqAJĜ[^_]ËE$[1>Uԙt$$T$Ĝ[^_]Í&;x3vED$UB $D$0x3U3E MEAA $0U$1$#3MA :U$T$V2MqĜ[^_]$20 D$D$$a/1UrU MD$ $}4M>L$UB D$ M$t$L$UB $/M $ 1$.2UB QM$L$a1Ep&'U]4Ʈu }.0E1}E}GEGGeUG E8]u}]ÐUH]v4CeE1u}DžD$XD$D$ D$D$4$b2D$4$2,xlU܉T$EEEEED$$-<$r0y6Ue3uN]u}]*8u؋ՍD$D$$v1uɍ&7v*념U8]3҉uƉ}~@ET$ D$fD$ED$$-y4]u}]f$,+UT$D$ w벐ED$$*NjE$,xtd)E4$0.t$<$D$}+y$E8tًE0<$/U2^E0<$.U12E)ED$D$<$+yËU:t띍U(}׍UuET$$uUE$ƋE$躒}u]Í&'{SOUEU1]끐[S/UEU1]^&'+SUEU1].&'RϪUEU1]&'RUEU1]&'RoUEU1]^&'kR?UEU1].&';RUEU1]&' RߩUEU1]&'QUEU1]&'UH]/v҉uƉ}~@ET$ D$fD$ED$$@*y4]u}]$'UT$D$ w벐ED$$U'E؋E$)E؅x <$+EtxEԉ|$D$$q(}I&EU܋EԉT$U؉D$$(}&'kO?UEU1]&';OUEU1]&'USU -ئE M[]t&'NUEU1]~&'NUEU1]&'{NOUEU1]&'KNUEU1]~&'NUEU1]N&'MUEU1]&'USU+ÈE M[]t&'M_UEU1]UWVSZ+'EšE썃͚E荴&E$D$ED$#$%4$D$ED$G$tË$%4$&D8 t>t[^_]Ív>uE$D$ED$v#q'UWVS*YlEU eE1藈$ DžhE捓 $D$"D$ D$$0#0EU1ɉWVS1  Ђu R%tXf9u;s=11ut&t4 C,0 [^_]Í1ɍL0t5f9Lu9TuN ̫[^_]Í& 1[^_]Ít&'UWVS uE 4$D$4$Ƌua uUt&R tIf;rt&ut&t61ɍt& fttB [^_]Ðt& Ɖ[^_]_ UWVS} ERfEߋD$$GE vt;tt$E$~tbD$E$D$!DžuōD$$[^_]ÍvًD$$r[^_]f|$D$$N룍t&UWVS,M Eb/fEKЋu 1EU t&tDt#E D$E$$UDEuM $UU f{ Ջ1@u EMtTt#E D$E$D$ED$D$D$ U$EuM1f},[^_]Ít&1null@,[^_]f,[^_]E fUSû~E$‹u u1fBfDw7C̶l[]Í&@ tf;Pu[]Ív1[]Ðt&UWVS\)~EE$fE1t&%Mf;uC,UƿEf9}ED$U $uى|$U$B[^_]f t0Mf;Hu&Uf;P@ t&u1[^_]ÐL1M̫t&0Uf;Lu܋MDD$E $uP2vx1voM $L$t" uf1MD$E$#[^_]Ív1&'UWVSL| tIf1$t&G0$uG$tw <$itǃ [^_]Í&UWVSÙ{deE1$`pbD$$0l`B%d$M`dD$D$ D$D$D$D$T$ATD$$ x~E܉\EEEEED$D$<$<$Kx0`PT$D$\$|tw`$`B$`$DžpUe3pM[^_]Ðt&cDžpÐdT$D$ D$D$D$D$T$T$l'$̞LxXHl$D$hdD$TD$ D$D$L$D$D$/XT$D$T$@bTD$$\@@@ @D$D$<$~<$HPT$\D$$:u]hƋ`+p$+`P؋tl$`l1$V`B0$u%l$ `B 6UWVS< w}ue u 1v t)<$D$uF$[^_]Ív u܍vC1[^_]Ív1lMDPt 8fFts̶E<$D$auƉ$b[^_]D$ D$<$@Dl‰$)AUSu4UVSut&Ћu[^]US[ÐuY[%s: %d AV entries and %d/%d buckets used, longest chain length %d %s: seqno %d < latest_notif %d %s: unable to initialize SID table %s: unable to allocate audit buffer %s: warning: only got %d av entries %s: could not determine enforcing mode %s: can't open netlink socket: %d (%s) granteddenied%s: %s null { 0x%x } for scontext=%sssid=%p tcontext=%s tsid=%p tclass=%savc%s: warning: netlink address truncated, len %d? %s: warning: received spoofed netlink packet from: %d %s: warning: received EOF on netlink socket %s: warning: incomplete netlink message %s: received setenforce notice (enforcing=%d) %s: cache reset returned %d (errno %d) %s: received policyload notice (seqno=%d) %s: warning: unknown netlink message %d %s: netlink recvfrom: error %d %s: netlink thread: errors encountered, terminating %s: netlink error: %d %s: %d SID entries and %d/%d buckets used, longest chain length %d %s/commit_pending_bools/booleans/%s%s%sbooleans.clentruefalse%s.XXXXXX%s.local%s=%d security_get_boolean_names%s/contextpasswd%s/access%s %s %hu %x%x %x %x %x %u%s/create%s %s %hu%s/member%s/relabel%s/user%s %s %s/disablekernel/proc/filesystemsselinuxfs%s/mlssecurity.selinux%s:%suser_u%s: error in processing configuration file %s %s: out of memory, unable to order list get_ordered_context_list/initial_contexts/%s/enforce%s/class/selinux/proc/mountsselinuxfs file_contextsWarning! No matches for (%s, %s, %s) Warning! No matches for (%s, %s) %s: line %d is missing fields, skipping %s: line %d has invalid regex %s: %s %s: line %d has invalid file type %s %s: Multiple different specifications for %s (%s and %s). %s: Multiple same specifications for %s. .^$?*+|[({%as %as %asout of memory<>%s.homedirs]   ] ]]  ]                ]                           ] ]                            ]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ %u entries, %u matches made %as %as %as extensionclienteventpoly_propertypoly_selection%s: line %d has invalid object type %s %s/loadlibsepol.so.1sepol_policy_kern_vers_maxsepol_policy_kern_vers_minsepol_policy_file_createsepol_policy_file_freesepol_policy_file_set_memsepol_policydb_createsepol_policydb_freesepol_policydb_readsepol_policydb_set_verssepol_policydb_to_imagesepol_genbools_arraysepol_genuserssepol_genbools%s/local.users2.6.22%s.%dlibselinux: %s /procnone/proc/cmdlineenforcing=SELinux: Could not open policy file <= %s.%d: %s SELinux: Could not stat policy file %s: %s SELinux: Could not map policy file %s: %s SELinux: Could not downgrade policy file %s, searching for an older version. SELinux: Could not load policy file %s: %s Mount failed for selinuxfs on %s: %s mapping.ckperm == 0current_mapping_size == 0tperm == 0current_mapping[tclass].perms[i]map_permmap_classunmap_permunmap_class%s: hash table stats: %d elements, %d/%d buckets used, longest chain length %d %s: line %d has invalid context %s %s: line %u has invalid context %s %s: conflicting specifications for %s and %s, using %s. %s: insufficient memory for file label entry for %s %s: invalid context %s matchpathcon_filespec_evalmatchpathcon_filespec_add%s/policyvers/proc/%d/attr/%s/proc/self/task/%d/attr/%skeycreatesockcreatefscreateexeccurrentprev Enter %s You must enter a %s user:role:type:leveluser:role:typeroleNot a valid security context Your default context is %s. [%d] %s Enter number of choice: Would you like to enter a security context? [y]Do you want to choose a different one? [n]rpm_script_t/etc/selinux//etc/selinux/configSELINUXTYPE=SETLOCALDEFS=REQUIRESEUSERS=SELINUX=enforcingpermissivedisabled7Xs )1:He/policy/policy/contexts/contexts/files/file_contexts/contexts/files/homedir_template/contexts/default_contexts/contexts/users//contexts/failsafe_context/contexts/default_type/contexts/securetty_types/booleans/contexts/files/media/contexts/removable_context/contexts/customizable_types/users//seusers/setrans.conf/contexts/netfilter_contexts/contexts/files/file_contexts.homedirs/contexts/files/file_contexts.local/contexts/x_contexts/var/run/setrans/.setrans-unix__default__%s: error on line %lu, skipping... %s/class/%s/index%s/class/%s/perms%s/class/%s/perms/%s     @@@@@@@@@''''+@,@-@.@/@0@1@2@3@7@8@<@>0@?0@@0@A0@C0@  (-9CJQV]elt|$+3;CHNXbmtyioctlreadwritecreategetattrsetattrlockrelabelfromrelabeltoappendunlinklinkrenameexecuteswaponquotaonmountonioctlreadwritecreategetattrsetattrlockrelabelfromrelabeltoappendbindconnectlistenacceptgetoptsetoptshutdownrecvfromsendtorecv_msgsend_msgname_bindcreatedestroygetattrsetattrreadwriteassociateunix_readunix_writecreatedropgetattrsetattrrelabelfromrelabelto* 4@?IR[dpy    @@@#,5>I T@aku~ @@' /@6=FOZbj q@x~ @ $)4CR`l |@  @$+3CTbl t@} @  @#E+E8BINSZbiqv{!!!!       @        @   * 6 B Q \ f@ x  """"###### #@##$$$ $%%%+%0%7&?'D'K'S'['d'p '{@''''(((((( (@())****!***3 +<@+G,S@,^-j@-u/@/1@1112@244555 5 5 5 5# @5, 56 5> 6H 6O 6X 6c 9l 9q 9v 9 9 9 9 @: : : : : : : @; ; < @< = > @> > >) >3 ?= @?A ?H ?O ?V ?] @b @@j Au @Ay A A B B B B B B B @C @C C C D mountremountunmountgetattrrelabelfromrelabeltotransitionassociatequotamodquotagetadd_nameremove_namereparentsearchrmdirexecute_no_transentrypointexecmodexecute_no_transentrypointexecmoduseconnecttonewconnacceptfromnode_bindname_connectnode_bindnode_bindtcp_recvtcp_sendudp_recvudp_sendrawip_recvrawip_sendenforce_destdccp_recvdccp_sendrecvfromsendtotcp_recvtcp_sendudp_recvudp_sendrawip_recvrawip_senddccp_recvdccp_sendingressegressconnecttonewconnacceptfromforktransitionsigchldsigkillsigstopsignullsignalptracegetschedsetschedgetsessiongetpgidsetpgidgetcapsetcapsharegetattrsetexecsetfscreatenoatsecuresiginhsetrlimitrlimitinhdyntransitionsetcurrentexecmemexecstackexecheapsetkeycreatesetsockcreateenqueuesendreceivelockcompute_avcompute_createcompute_membercheck_contextload_policycompute_relabelcompute_usersetenforcesetboolsetsecparamsetcheckreqprotipc_infosyslog_readsyslog_modsyslog_consolechowndac_overridedac_read_searchfownerfsetidkillsetgidsetuidsetpcaplinux_immutablenet_bind_servicenet_broadcastnet_adminnet_rawipc_lockipc_ownersys_modulesys_rawiosys_chrootsys_ptracesys_pacctsys_adminsys_bootsys_nicesys_resourcesys_timesys_tty_configmknodleaseaudit_writeaudit_controlsetfcapmac_overridemac_adminpasswdchfnchshrootokcrontabcreatedestroydrawcopygetattrcreatefreegetattrsetattraddchildcreatedestroymapunmapchstackchproplistchproplistpropgetattrsetattrsetfocusmovechselectionchparentctrllifeenumeratetransparentmousemotionclientcomeventinputeventdraweventwindowchangeeventwindowchangerequestserverchangeeventextensioneventloadfreegetattrusecreatefreeinstalluninstalllistreadstoregetattrsetattrcreatefreereadwritecreatecreateglyphfreeassignsetattrkilllookupgetattrsetattrsetfocuswarppointeractivegrabpassivegrabungrabbellmousemotionrelabelinputscreensavergethostlistsethostlistgetfontpathsetfontpathgetattrgrabungrabqueryusepageexecemutrampmprotectrandmmaprandexecsegmexecnlmsg_readnlmsg_writenlmsg_readnlmsg_writenlmsg_readnlmsg_writenlmsg_readnlmsg_writenlmsg_readnlmsg_writenlmsg_relaynlmsg_readprivnlmsg_readnlmsg_writeacquire_svcsend_msggetpwdgetgrpgethostgetstatadminshmempwdshmemgrpshmemhostgetservshmemservsendtorecvfromsetcontextpolmatchsendrecvrelabeltoflow_inflow_outforward_inforward_outviewreadwritesearchlinksetattrcreatetranslatecontainsnode_bindname_connectmmap_zeroaccessinstall_moduleload_moduleget_paramset_paramuseselectupdateinsertdeletelockexecuteentrypointuseselectupdateinsertrelabelfromrelabeltouseselectupdateinsertdeletereadwriteimportexportrecv(38<?HQZdnu $-6=ELT_cx%*/;Yjqu}nullsecurityprocesssystemcapabilityfilesystemfiledirfdlnk_filechr_fileblk_filesock_filefifo_filesockettcp_socketudp_socketrawip_socketnodenetifnetlink_socketpacket_socketkey_socketunix_stream_socketunix_dgram_socketsemmsgmsgqshmipcpasswddrawablewindowgcfontcolormappropertycursorxclientxinputxserverxextensionpaxnetlink_route_socketnetlink_firewall_socketnetlink_tcpdiag_socketnetlink_nflog_socketnetlink_xfrm_socketnetlink_selinux_socketnetlink_audit_socketnetlink_ip6fw_socketnetlink_dnrt_socketdbusnscdassociationnetlink_kobject_uevent_socketappletalk_socketpacketkeycontextdccp_socketmemprotectdb_databasedb_tabledb_proceduredb_columndb_tupledb_blobpeercapability2;L8 \|, | ( <<@`@|A,CCD ,E(|EHEdlFLHJJK\K KD\L`L|MNLOPV _D<`h,bb\ccg Lh,hL AB AJ DPGAB FQFhGAB FIAB FLJ[AD EJAB F JAB AG NAB F,O[AD ELXOAB F lOAB BF4UAB F U@AB FNH V{AB FIN >.>>>N>^>n>~>>>>>>>>>??.?>?N?^?n?~?????????@@.@>@N@^@n@~@@@@@@@@@AA.A>ANA^AnA~AAAAAAAAABB.B>BNB^BnB~BBBBBBBBBCC.C>CNC^CnC~CCCCCCCCCDD.D>DND^DnD~DDDDDDDDDEE.E>ENE^Euavc`@OsPWGlibselinux.so.1.debug_!.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.tbss.ctors.dtors.jcr.data.rel.ro.dynamic.got.got.plt.data.bss.comment.SUSE.OPTs.gnu_debuglink 44$"XXo ( <<0""w8oD5D5REo77T 88] X9X9 fH=H=0ax=x=lpEpErXJXJxJJ/ DzDzHHlL̮̾оЮ ܾܮ84@,| 0,2N0707010006C1A2000081A4000000000000000000000001495DB93000004688000000080000000100000000000000000000001500000000lib/libattr.so.1.1.0ELF4A4 ( ; ;>NN?OO$$Ptdh6h6h6QtdRtd>NN  GNU}kZ$Iba%:20-8.$!31 /*%'76"# ),+(49  5 &* 8A"D @#  "&(*-/03469l42辨-^XB1XNqXP1g`rx|.cxU_J=G.cxCEx1cx2?ssU3S6|h%EHڏ[ 9N + QUY?NsF"]@ 5 I D  p 3@ z@' 9   iP39 P/4G 22  P$8 P4G -P  64@ P22 39 ^-2 &0g . 4G  3@ h29 22 __gmon_start___init_fini__cxa_finalize_Jv_RegisterClassesstrlenstrncmpstrcpystrncpyattr_listfflistxattr__rawmemchrfgetxattr__errno_locationattr_listlgetxattrllistxattrstrcatattr_removeffremovexattrattr_getfattr_getattr_removelremovexattrattr_setffsetxattrattr_multifattr_setlsetxattrattr_multiattr_copy_fdreallocfreeattr_copy_check_permissionsattr_copy_fileattr_copy_actionfnmatchfopen64freadferrorfeoffclosemallocstrcspn__strndupsyscalllibc.so.6__stack_chk_fail_edata__bss_start_endlibattr.so.1ATTR_1.0ATTR_1.1ATTR_1.2GLIBC_2.1.3GLIBC_2.2.3GLIBC_2.2GLIBC_2.4GLIBC_2.1GLIBC_2.0  *z p( $q( $-$r( 6-si ?si Kii Wii aii kii uNNNOPOOOO2PP&P PPPPP P*$P4(P,P90P 4P78P uu}}UE$H E)ʃ9sG]u}]ÍvEEAM$D$L$FMD1뵐t&UWVSLE UÝ=eE1} BBED$t$$9*E1Dž 4$D$ p;U$.uʋED$ D$t$$xq;rUD$ D$T$$U1:vUe3uVL[^_]Ð7= _t&qf v1붍!!UWVS\EU ý;EeU1҃} @@ULD$t$$L9EDž DžgD$ D$t$$Dž;4$D$p;E$uʋuD$ D$t$$wDžuH=t_f^frvD$t$$\Ue3\[^_]Í&UD$ D$T$$?1덐t&1t&k&'U]69uƉ}}U$=u;tV4$D$E4$D$1]u}]ÍU t1 4$D$t&4$D$먍t&4$D$됍t&닍UWVS,E P8eU1D$E$x'U|$$y=t$_tUe3uD,[^_]Ðt&ED$$mxU|$$d UWVS<E Ug7D$EeU1ҋE$x=U|$D$ $D$2y|=t$_tUe3uh<[^_]Ðt&ED$$exU|$D$ $D$x01vUW1VSLEU K6EUeE1EU|$$xQtuD$ T$D$$ƅyy=t%_ftUe3udL[^_]Ðt&tcvD$ T$D$$n뉍21g&UW1VS<EU ^4eE1EU|$$gx;t_D$$ƅy=t%_ftUe3u<<[^_]Ðt&tyvD$$ g&UWVSLE U[3eE1EuE ׃ED$$VxBU|$T$ D$ET$$yw=t$_tUe3ucL[^_]Ðt&UD$$xE|$D$ T$UD$$}(&UWVS,2,uE9EEtE,[^_]Ðt&E}E~ًu 1E!vu\|E9}~EU Vt͍FT$D$ F D$FD$E$tE볉T$FD$ F D$FD$E$fT$FD$E$UWVSLEU í1DžEeU1EuE ЃE1U|$$x[tUD$T$ D$T$$ƅy=t*_&tUe3uZL[^_]Ðt&tYvET$D$ T$D$$q|'UWVSI0,uPE9EEtE,[^_]Ðt&EEE~ًu 1E!vu\|E9}~EU Vt͍FT$D$ F D$FD$E$tE볉T$FD$ F D$FD$E$(fT$FD$E$NUWVSlEUM-/EEUeU1҅ɉMEE D$D$$1;@M )čt$#T$t$ $V9ƉE01bEEMEU%v}ȉ4$D$p9u)}Ȁ>tًM4$L$UtȋE D$ D$t$$UEMKUMBuԉMЅt.UMT$ $ЋUEЋBuԅtMt$ $ЉEԋUtMԋUЉL$ MT$UL$$ЋMAMԋUL$$ЋMAUЉ $T$Љ}EM<$L$U҉Et.EUȋM t$D$ T$ $NM7UMBM؅t,UMT$ $ЋUE؋BtMt$ $ЉNjUtM؋U|$L$ MT$ $ЋUBU|$$ЋMAU؉ $T$EuM}E܉ $D$D$EU̅=Mȉ $EċUe3e[^_]Í&D$ MȋED$t$L$$jYNj_VUMQE $D$҉E܋&#MUBtMt$ $ЉNjUtM܋U|$L$ MT$ $ЋMAtgU|$$ЋMAtQU܉ $T$E<$}Ut{M$L$Et&EOt&}E6v&t_u>EE^vMjE/Et&}vtHUuBtMUL$$ЉƋMtt$D$ $ҋMAEEUUVEMuAtUMT$ $Љ_EtMt$D$ $ҋUBE[Ut$$ECuLUuBtMUL$$ЉƋMtt$D$ $ҋUBUt$$EEv_EEfUWVSlEU MÝ(EEUeU1҅ɉMEED$D$$;@M)čt$#T$t$ $V9ƉE01bEEMEU%v}ȉ4$D$p9u)}Ȁ>tًM4$L$UtȋED$ D$t$$uEMKUMBuԉMЅt.UMT$ $ЋUEЋBuԅtMt$ $ЉEԋUtMЋUԉL$ MT$UL$$ЋMAMԋUL$$ЋMAUЉ $T$Љ}EM<$L$U҉Et.EUȋMt$D$ T$ $nM7UMBM؅t,UMT$ $ЋUE؋BtMt$ $ЉNjUtM؋U|$L$ MT$ $ЋUBU|$$ЋMAU؉ $T$EuM}E܉ $D$D$EU̅=Mȉ $>EċUe3e[^_]Í&D$ MȋED$t$L$$YMNj_VUMQE $D$҉E܋&#MUBtMt$ $ЉNjUtM܋U|$L$ MT$ $ЋMAtgU|$$ЋMAtQU܉ $T$E<$%}Ut{M$L$Et&EOt&}E6v'&t_u>EE^vMjE/Et&}vtHUuBtMUL$$ЉƋMtt$D$ $ҋMAEEUUVEMuAtUMT$ $Љ>_EtMt$D$ $ҋUBE[Ut$$ECuLUuBtMUL$$ЉƋMtt$D$ $ҋUBUt$$EEvg_EEfUSE x"D$E$[]ÐUWVSN>N>N>O?O?O?P@P@ 0@@@ 0707010006C189000081ED000000000000000000000001495DB9300015A954000000080000000100000000000000000000001000000000lib/libc-2.9.soELF`h4<4 (GF444@@CCQaa'T|m|}|}ttt\\Qaa@PtdllQtdRtdQaa00GNUkfa\5vGNUSuSESuSE  0D AEA@  0@"H6l0&B$ c R! (`PDBB0XPP@PD@!BˠB@ D.;(a` D d@m`A8Fd  "@"E-a)y@ 0 M@ @ DC6!A  Dp@@ (b0$H@p4:* @d"""@D"Bk ڤ$<TX"h eh!$ | @m (B 2t"!@ $`HC N(`\p $p  A Rd0  b$ h!H R4E@XH@FT0ATpE,#^) S"4!Q0 ` I(@)@>ڳHA@G03 `l * 4[ 9"@PPhH, D0HkI @$@4 3H ($P$ @@ ` P PPAH@(8!t(@ @@ AL\ '0@ (@" !&#  3dРS`(!H$iP Fh܀  `4JBA`9@!`– `0FwM@HPR$H B@G:EafEAQA@@@ P !@ JA"B  "`@tr!P Da@0Xi@ R@8@EC@ ,x @ ؒH4H @@\8 N#A^*  $H(` %@ "C BCA)f`h`> ’@A0A@0 DH 04ADJ!0 (EP @ A(JIp4!datJ`@`HЂVGIxB 2T:@.c 2" I O gad!Ѐ LBdyc@$ )<(A``0i5 2,0`@E0 @ $Dfeԃ jC0-#vP1 $@AG0@ M @L.$@@ @" (HA0JYEDS  $ D&@8g B@BFB "  r   ,da"d@6x $KS ah1@1%@0#0L@ ! @f*l d `PP!Dօ % B#@ A pip&_ab7"@D1% RBP@ ,AT p:H@ I@  -!"T8( =H !%')*,.0267:<?@CFHJNPSTWYZ\`cgijlnqswz}    "#$'*,.0258:=?EJKNPTWY[_bchjklmopuvy}   #'*,-/023457:<?@BGJMNPQRUVWZ[]_bejlmqruwz{|  #$',059=AEILMOQVZ[]_`cehknpstuwxz|  !'*01359=CEGLMOUW[\]_bcfgimopqstuxyz{   %)*./69<>?CEIJLNPQRVWXZ\_afikmosuvx{}~  !"%'+-2468<@CDFILNRUVYZ[adgilpvy}  !$&'()+/358>CJLOTUVX[]adehilmnptuvz{|   !"&'+013458:<>ABEHKLMOQUW[\_`dgjklnquvyz{|~ Qr7܊!Q r.CGC U^BKsDKţVlrEKق$Ukˑ+><h=hx)β5ՒPp"Jɭͱ+I H>qb1iCդÑsG|abʂ[Osr5?l͉*CU6[%xJc 9cp`qT"ZaqTx Rq \X\Е 1KCPvG1^SVm(c?LʼnٞN5Nr*#$,jqlcPx>m5͊vuMv`!cK:yxK+m0\د* VpAr>4Btu[m&&޲:J65n 07MMAWB* [z`O#6:Ԅڛ{kWsTym]KnG$:U.ɝii= U|wjH: 41\8x7&a^p#'u::!{| qWmP*]t~~|&y4r49S԰2  S 8 hΩSBƈFFݷ^LTAt4N!cWc5"9a1#9a}v40^m|#8@ >H j|fQE{|- o9}g~&ÝH\Ev|{|tu!Gӫ"?wHzrM6VN\toI>rr~.{𦿋$uuF=wB&\m|x|tJQm5OŸDHE(4ضձ"ڮw-^uk:Uk9@8m7V(aP%P7k~qC^[R.# D8'"Or$qH@y b*v|T0\-p_7vAٖ;眿TZ=i&XmlMW[e-/L־hfE&W3&W3iuP;+6yd #ˁ"|gUa։+߅v iae=UU&:yUpHj t T %3(ٽnp-|%4߆(( [8RÏ|JIQ1kmtbDӿhÎJL|ړ>z8oעÛ,,/] 5'S ~oz̗GFi3EpNچ"_9ϝ|JEKۻ, _-aw޶B ո+k )o)$E0 p9ܭq,y12929KѢ90 Y\J#,GU[ޓX]Zo P9"R]?TpNvr=ޓW% Hc5@+`!dr EKPTPHޓ:lj(ޓjҌW1ҌW1߬b$ cp|CE6:hw-:FwRaޓ}`,lslsUnEu* HV'I|]lnqbmJωcٴmh69oVDèDúՀzKL-wVLZ\q"t+Oz}L\tB1j k*jΪ8͓нz,#Ym\*&T 0Qg|E4]FZryn­ Eϣd qk&<<'bŦŦ̇,2&|#8m!TYU3|ZXv/|ZX'Ð%aTѾ 0~JWJn)uO@@AZwZwx#,>)]`IӅy`7L92ө/(<γڲJiP׋SLn=qI U $$T.:Ƴ/:]x<(4vҋ)q"mvI+`^ue5zYUZ;~1 C/2blx\w{LC *Ucg~aC+~añ3DJ) G뿨]Xқݯ&D+]r b:\ ۋ;b N۝|ʙZ)_VvްCٸCC,)(`Ub>dϴG@o8p̈́|DWH -l%,/1 oot4 _%xH/.`Ϊ@(c1O$s\|ArT|3_d|Wۓq.߽_4l|JbYws ~|1#BfK@֯♔|Gca3u((r89a<q@M|n#Kz!%u 5sR]uNQ_&`Z1+,~-3ཞe\Z[E  xB^G\  VGДZ4FI-8 _6P PG}A^/DmwK}221U DHny;wObVl\Z\ܥs zVؽ{Vyc%; ]o\\Tkב$ZJZ tzDcIսWG|ͫb a*) ?]gV=^|nE|ݣkqG :nfC =m:01ۅ[z3LFũ}>&v;]&v;]G\`B8l*aF,B|`|Qcq\zy`|/Km=/6k&~'FzQΗ;@gz?5{$O7o&~pzm" }0Վ رyq[ +L!XBlBl *M<fV'G䩿vq*nc;=l4hiX|m+=lT9/;U=l(Ms=lq=l=l9H0܁ 2=l݁ 2;vO/t6Oi=lz|eN#wz|e\Ӯ=lKu=l!DwbGP%Z𖜐K材K9NpO -۔M|nr 9j:ȱsf΃X/tSQٽ˜V~vjrr+ 17vZ,Ky g?Fxe e K(VyeVyɾ9!hn^-o˻( v,vu ;O RJZ;mt T_(ĩiybA!D=|߁i$$:R;ӯ"׎4SdQ|{"cl&"ێ:УSO"<8Xi;Fiֶ3'N(Nţ"KU|u<9 {/p[!$s`\Gy'.M$!_*E7 ( FG֔}Ŕ G: N$Ur;67Hj9K|[0[8Dk0.> o+tHrt,ap 84zEd3M0u= >݅x=-ȏT.2!ȏT.ȏT.ɏT.){`^ۀA7-ʚJ"}yhx|ψd~vzNlsŎls; ,P(\]'8i ?jc YIv88zВZ~JYqcz̰umusBp~rvsB߽܍mvsBq Od ~Jovopoo_e/J)j[R1tg͇1/bGҷS3e [Ź@}Bh t| tDux;Jޔ`fII"hGۍ7ۍ7,ORn;yE?nnh=K4<-jL4&)єtd>[Ka<-|G>'?Tn쯻r+RopTԁ#~}LA8΂|ς|RiV0g]-p,ґ-  .ڛ"x+[)D¯o Trksk~)]nd~]h^3aoT  -ؒ Ҏ-ju=8wbb`>b z'=j~]0]zM:} E,';cLJ*0k.%$ k dμ.zoDFyQ (|>Jac¾\/VfcAjn LR%/FKF| QLR:+&` .&yiȪ"~Ag`f׀E1]sB4ߣğ,wsByl^WssBsB)o)o'l&:sB1`D>|<W_y&j*WF%܀=vJG#;߆ߜiHhYb)џ,7ǗVB"ZQD%ō+ =vGh[v -C*@*'0202Z~Z4\pm:Ns2|,A`S',p+G\2f.9VN AK)LیDշ> | |P)LlD> Gj[Gal:Y&+̸%)~ ΂k7P [6m[6m[i169^  }&,c`%m&.̎[&u+]вj7vje]$AhyQZRke]GAs-a$V6d:&žIauR(!yOTry!9!],/$}S<=di9ei9RUEH`:iJj[b6BY |rfDc,crM*n\;4)FOb vhE=afv2mŎn\P>ގbFu]Rܤ+zd󓎄~]KJ3Yf]FX7\,>}K+_2RO3G,:m0X1sBCk4sBi % sBH0ވ^J\e$&)քZsyAWe g3vyR. Ko~ &)(fn<|bD~΅8A"$I@~x$s<|@nMk'kaBw)Zt<|^؄SOUz#' g"g>N"g>Ntt#g>N|C`vW*-$BZ;5M7as@6Fh'iuvכ|uJ.fɀX|7t |hb~0ʹuŨU_[sU x'6#%rM䉠ZhR eg  O]&៩4f3f3f3g3%"ho7ln3i(%z2=9Ro?7e(-.ֳ-.Y]>#?:,i\ rA:,ikwz%v>%:d81u!A< $ٔVh8#fY/L SC'WΒ8ho!2zVo(WPK-7wܲUr`gNd=Pn64q74qbAlAl+ÛO?s@@6EiǗf*"+"=8PK<柧;rŴk};>2]h~h~/("P"p.Z'Y L>]mjWJ2=چ@iH[> H!1~X4ɤXo1j  dqVӦ0+dqZim7_ɀ}X!"\mV:V:!e06go|Rr~V|W|5&q+:8" 쓵u #uڱMsUUemoYz8º}]&t:,i)fRR{ԁpzr氅vDn$o7簅v9Yձ*G*G,yN*/HTT"x1Zb[bTYMjsBÈ9c}ppt!94K2\Y|ɚM{n3rh p}g /ƍ-\lrC$"i$::_S͆X&|$cK"ǨGQ~izۮ ĮBo͕w94)$H5 n{J=GČ!6ÜU_wWUryMMI˵{]'|I2|} w4nV-ئVLWNv>{][9dǼ,*慨zq6zC"eTeTfdp2W2] ᩯ]lvyMcC\P)\`(zGm$v(*^zfٓXUJK UN goo@D԰Ȝ1_t;ZNϳt5ͻ#d٤6*\v6%{; -|/cД-|3n$c0|pźN G|r;f08ÝP 8)?~[ dpvv J VOk5%kiZO<.vَ_IvbI{B\ >5|_yl Vȇ=$uծ/N=L-ׄ"|ԏӅ"|="8uBY쵶w G%V1r1;L ) ~80j{\Hԡ90X?|sTsقc;H6 f2vըKἜ#hY1 ߽eJP)%~|8:VI$7QholEU'ාj*<"6K&o+r }.hv @Z+ `ybM^_8=jԿclM",y ,XL7ϼ5R@dUU'wkNºk~sM> Nm-hvV[V[QM1Xވn.a+$-| PTKF)lO6M }xŐڠ }W wh|i$aʊЪ"):8m1K*"k!s8$  4 B&c  PV')( d@`' Te4 T+ $  @P9 Q@1 =k ?"  ? ,f   E 0@ >P1 i 6 " oK " )C D U@ ? 8!#+pf +f !L 3\ N  < P< N Џ H 0" y(k RD ;J K  n6 " HО  LP BP9" iC* B" \  \" " E :PI ] o [ .P @?1 |J" T " B` H )P9" GP} j %0j C 60 #p &/" [5 " :` - X<% m " GP \ P$ C 8 7"    f6J" VB# f n  IО  Tk 7 ]" :2 FO >;q >; F H 2" $0" Um- ,Ш+ BP" >e `V ! - U1% `Pe PI 006 x " t;7b R0H I'0  B_" 1R &0v" % I"  ? : 0h Q" )= hP pJ  8D <p6 .  :2" tN C" =#pF0 1W" '?1 `b *  l7u  4<U" '` [" $W " `N  ? _9 p 9@ Q VX " 5- J  L0 Lf #p9' 3P4" L)pl  p* * JT  JT  RP? mT   p IR MT " J" 'н} &P @" -) 4 *O~1 $N! 0 E #/0 UQ  N# 2" <x  =" : U" O`" 1`Z " q pL "   "` " d&  *U  8a( Q@ / " :2 : 0 i a" Qe  3S=* 09  _  f  $ d= C" $ = - %]G" yVPw   : J "  Z @8@#8    D0 8 g>@d [ '`9 }@PY@ 4Q D )5Ѐ" P AP7 F س# @@" " + F0 Gp9=. V 9/ "E D n-@T b" *"k  ;qk .pg9" T3 @p @ p hSp^( Tw (N!" 9P |" p' ?" ? : hRm   @  Z 1P4 PR  ,` ?90h" 8FP@" >" h"l ,I=^ iPp3 +P J" JN K304" R E P In +    " ?7 O  A W .` ? Wp ." 1( 9pRp *N`#RP  4@: `" i1 g E5d Hp  v" ?" " (DP^  PD "F F0+ H0 Z c 0 2  IО " Q? 4  Bp E ( I i G |C rR " ? N `0 < $&" 9РP : O 1*@0" \!72 E S@ cQ" 1@l `" 9p3 %0j C" pF#"  r" 0b t pC " D0K T`  mЭ J ,R   4m  ?0 ?" Y;  " e 6@$ BU %" 0. " " z$ =9" 0w @D x. Vp  (@m  .L" " `  1`C @S L  7>  <px @@ <6 { K C P BP  = 9@8 ?" V( 2 D < 2p #g Y O& B 'R P01 " ?`c 8 f& " ?( |" o.P "  C" 'QX  1?" g6 #ܳ#'+ , 55 v y  0J " E" L C" @V Fp 1"  N %p qRp V h Z:@ L E f@Y  h / /p N u" yp @k p 4Or 1| B. @ S V  @@G C<"5 k 'Ep NL ^9  F%) R@ `" ^ PU" H = " 4 + B" :  PH 6RpM" QW) M< N - U@" @=: W  "  &" q%: ( ( 2"  >. >'0 Q o" EI $PX ]" A Q  g  ! Q " a<Я  0` 6 @" VC" p@ : < F "@!"}Q`" 0@ 0|  D ?Pk ? bE" sE" I  d  @4U" F' " 'l" iGC 4p K G  Dp> N!0c ##  V < = _,OQ 8!"&} UKl 3 J" @0" 3@ # R` C /FP% C P% < 6" CД ~ uN@ C"  {" ;6P .U@ " 8> " H?J " ," 1j k(P U *P~6 T> *p% |" >@p ? 3 $ kM  <! C" K W" 0P P7 }" bT # 02" y!> + 5 $" RT J# 9P |" iP" _O "  E > j3v  OP<P d% P~ %0`  0 Pu > C@P E 6FP@ Z " P0  Fp5 I304 7 Z= S z |P z4+$" A[  1" t#p +@K lA" " L l'p  :2 : Gж5 N-2 2" I^  @+ ^" R" o" .' g" D] @0 $Pc =0R SL " t _" Tk 7" XL" 0 #" QS `f" )y J y- 9 )Pf OP W0" %0` " jM`  MPq" ,M/ y $1`C" #.# l ^ " V C -_" /P ?" (") ) /*@0 K  `W G6лD G6@w D " fI "  9P`H 05 C" P"- 9 Qb  p C @ K ;`" e=@ C" >)= A;P ` 0y V GTWQ" H A   K m! z "(0 PH jO@  ?P- "%[ +J" ,"  C0l Nw ` S b f ` P7 f P= |L 5 `w< h 5 |B_ : | `W l >" >" u@c  m u 'Pl" 7=@ u * ER j &\  1? :) RЉ " PUk g, =9 L" T  @ ?`W [ n  n  OP  12 1l a `T<" , + Mo E)=" xK ,9 " I+AW4@No RA 8 pyA 3 " z `B $ O g *S w-` " V3" 7 ;" T`[% %p" [S! S<P  `G 9= :@" 5 <"po =! ?`W [" 9 c C>`  pM ID  MPk _ ] E ~" 3) C > 4 : U@ "F0+" O   O ` B" 5+ N8N ?" ]+#" 5н1 +6@" 4Gp"H x c _W x }M +L    " . Q" jFb W # 0 a ] ;*  4i$n[ B47 $9" ? M R" ?( |" ?" E" $PX ] [0 f Ьq" ff2 k 2 tAдR *DP^ " 9  (  U X  'l 6l= K(q U+  5 ~ :pRC p( p( *  0 u>p J" C0 M9^ J+  RQ" xM @ p&G 'l" 8 4@  !RK +H@Th"   P p RIPG 94 S 1 [ @" 8@D J@ 2 GP q W  ;P :  K  ]R/) j : ?" iM \M > % B @0 5  C@I Q %R  0' ?" Q " % Y  " ]U   .O GP8  X=` #" + [6`m E2@F"" * . ? @g EM &O~1 mVRB   C :t  i24d" O6 Q GP ( )RP  4@B} ;0W _" }  <=:  0` 6 10 P J V  <P>. ,& B" 2Q +` Mp" s@`m J jD=  Q MМ x/`" J4 =SМr  @-  I!#[Wpp 0& < FR"" 0& < r  JPh I ZL 'Q 8h" Ep ` 30?" J" P" o 9 LЏ 2 S  D*L" 3H w o<0> P 2 w 1 1 !pl T4 3  f% C(#1FP% C" *BB /% E D!#M  9  e" ^8" U!W e= )B , A`<" &`" 7A`x H0q Fpm" B& J /4@B 5D~  B& J 5D0 {2@Dk TI0 LV0 ? W* B" mJO( 06 p4 U" l3v " H/" 3NQ G@G @uG D  7@ Q" !FD ?p e EPB aK "@ JG( Va :+s C 1 +R GC~ :3S " SJB  rHX> Po + NV0 ?" H < $p C .=u D " 3Tp > Q1 Pf J `  A-qN  |>h s2p@2" 7 j= < @* ^"  < *В w10@ WQM) O0 G P W%0[" %:P5 !( WS $@"/Kp  Vpp_ CX##qX{XSsx $ X{*p " $ %@ "" /PE! 3>"Xp  ` *p_ ] XOr" X2. p # fL (  _ %yT; ;`c  C <PXA E   L 0' |" Pf- &` E 4 ? ' E @ ' p C" V2m CO> LSgP B(!"? + Pp  A[ " O "   >`K -G0 Q a.0j( 0w" Lp Q  ( 0L" #` ? B C BC HU E@S j gY> & ]" .?" :B " C7 7  /P4"  l  /Գ#O4 E" Q " DC" B => Fs KWe 6" KD"  R % )  =k ? ]G p P' Cpx" Kp   U4pA  " U 5 & O V "  C [* 2 0 Q ^)] Z 7@ E" ^)0+ 9(TO OP  S" Hв   y&ЂZ  K 4`E P06  5 H 2 ;B pL Chj BE J I` U m  8 7 p"    1/6 6v% $Mv% '0* B  %` 7 . T; Q" Cpm" JF #(J - SL" "(0P" B" ? )0c (D /J 3pK C2h" `. S  C3  " PUk" DP Qc " #` ? C /G / 6#> 49[ ;0N" S~; ^- H@ J  9" 30? D  S~ 4h j VGj E" 8pE9" Tp C" "# @ *% B" {&ЂZ" ? 6O T<2c `  `k #j" @cg24d @c@c6C@< @c!L#Qp" =" _ ]" `B UO " C PB " /1" 0py" %2@  ̀"hP J  P"hP J Nq" л_ "<P ) ) El; K 50 " ,p `" Th" MU FR" $G@0" - (p* B KL" 4 ~  C W_p#Wn4 U" S0*6 WF  U` " CVpF Z SS " P#Јg P#c )P   " ]  , gB L `#4S6" pQ 8+P7 5& y=D ?Wd"b + @ < `Cp C D#4YM { J P~ " { J >P %60 " _0]  p @ @A 6 R Z'2 Z' l  BP"  A " ( 1 'W#  : u7@ " 8R" @' |" rD@B /PJ  >G"    #60 -9 l#@^ B Q  $5  jD Q " V 9`mJ , " KC" , P;P U#@ LWL P3 %b' 5!@h +D"=2 { =`x :N0p5  s g" 4 E" +  .G ? 6`"/V o? &}" .h @ &FP9" !P 7  J ^B  )$ K rPR rf x )TP q2p@2 L n t " H0 \ I 2S A= C" d  * F* C  {eY E(` )"  K" p+ Qв   q" . W $"):  y M4 E" X> E6 '؀"U  @" K#.? 3?  YI  O, =7 E  m2% ?" `R 6`P"B F z,Э: H@= 7#sUPv# P0 "    J x e 05 " +k C" << <  GP W0 J" 8 " l J" > " aI? 6 E" " x ='0 ! P -4&  Q" @ e" (  P C @ < ,nm XI3   D0 ^" s.q X   " X+X> J > C ~Pi G 0( 7XC" L D+ ( 2@ 6@c <v# 0 ?"  *)" )AAE  ) }p  4`  9K`   F0g" WD# C E% }R | #7` E e-" " iI b# 6@1 C2h &0v j5@3  V7= =$$  `_ $ J $J +P J C6лD +f C6@w ",!"$F 7p=H" "Uz" E  4 @' 4S- q5p  QP%  _Q  !   *p_ ]" 90/ (u+ D4TW " 8pE9 /;` O> " !K ./0#& |" -#0  3P 3P  " K: (8 WV ;l"O@ K 0) |" 7p=H L) %L G0^ - YN m5 P' p sWc 00U8 J N " `Y1" w2 90t xC - @ 88@ ?4 i+  m( D,EB # 4S6 I  N@ N#  %, %P 9" Tp C v)С " C2@F" @ F vPt " 0 " > P C #60  qC J" <"XE 0/ A @-" 5  @* ^ @1 r  !   P rGY  0K A $' h" D T Mp" GQ . " vЂ& S@"Q* K k  R#LHxr "  P #  & ! KB vQ" q,v* c/h" IL O5 0" ? W G" 2 -"   V7   )C" )QX " U@s@ ?`" " Jd" p6@= G0C KТ" P9 S B EVpF" 0` N; e)P P W0P( {T K j ^  0w MX E E`{  ,$j U3O YXN}3 7 eXtW  > E` Q 3 w+ P 0 5&" `3 ^" Cpm bCp C" VЬ " ni C" &pW *0n h@Y "  K ;`" $]  0  f 8 R" q$ 5 : L IP^ N" uJ` %{  C VS Q; 5@C +M" }M# \  B  cN0 M&d j = ? A|" ?Pk ?" "# > 2 Q?  )! UL [p `e`e? ? `eL* J +T " _)^ & a1 " fI c* ),` u" h0`q}  AP9U" V<2c" .  Bp P` sB`SZ" TP C" i   {0` ", "  )" - MP@" V r+ ? K & `K E 0d U 50" n Fp J HU &]@" _E9 G ? Y/5 ]H  C`   C" u  " ,.fI Gl R ?"  "  C mN0g =0a z" 2` E d9B D$- M C @ @c@c@c@c2PP 84 (" x:  -3=  >PN " cW Y" g8 ]0 8`M " 0 ," l 5" {N#q& ~! O@& B J# C >` > a  L E ` " )#LA R@ ) |" 85лF & ?" a0] " *) *0i " 5 ~' 2 <;" f# W"  Z  @ ? u s  `J( &`< %V @ bK0 " < " ) @? hpZ  }N!#sO`v 0L 3" W5 ) G9" !#Z  $`TA Yq gf )1@ )1f D!"2p C O7" 0J " 5 C } } ;@ sK   wT)^  )0 } @6 <@0 r0+" 0 ? po 3'* o@ D 0w @D ?" 4 810  L$ |" TUF aJ U{ 5  3B H 0 4:   :(!#,  " fQ WPQ  n6  s ^" 5" - %;  A   E .P 7 " L<>  .0 , `" ~U2 7? 3?" Щ  e* v# 7К 9P " rC M" 3 3p GgD `I " R " sU 600fO |AA _# C _#P ? .!` / CAG? ) X V=` # YL`@ E" PAA q0u wS`E F 4"36| A`j sMk 6P E 2 0  I .  C"  V L (k 6@4 J`o D Va" q37| 32h uF " ! f !0 ," ! JHxr  d " } k }u /,nv R    z : C  % _ % TGj E oL RP9 :m  H0 Rb" 0@ 7" j$PP`" G * &\ " uN *` < 8g=" < K lp1 Jd" M O0a >UPX" "  Pp d P 2! " \O[; ?V " r` 7$ 7$p  Up9 '` [ 9 \ [FX( DID/ L0Z A: fU@; (0 Z /1 }#@VR 9`? f v J #@ C #C ]*  PY *  '-# 0`" q]" "G@0  Q <s FGd : ;90h Є ',` u" S  m(P U"  Q` wȀ")2 C" N# 2 Fh "$  K, >G ;?"Cp " " 1`Z  >S" fA0SI N % WN + H u< 0@" fd8 0 6" 6%Ѕ" -"4p  i" AP9U " C "Б J -Яq" 0v :P 1> A` K M ( --P:^ P01  D 8" Rp Q"    MP@ <" :Q "   #@VR" 5R` ?" ,RX =0V C C0g t#4E bB#JM  L pJ " 0( /01 PR P E }i $pgB :" } =. :T E )@= @ ;0a z N@" >c" rQ p ` 3 0 U` _1  10L l2" +7P C D  J  '  m@` " KJ@/ 1" N0c ,2@ " 0 , EpL" 7z d# W S'0^" 0b N 2 tGY " C)  p[ P -  v7 > l" @p"AE" 0 C" j ? " KP  "`K "'Q V N@1 0V! xJ bS0& C" J # =R~ #n=b* `0 !ij#3R" 3 7 _! ? ,l  "EO" " CH" ,TԀ""t" EN@> Q " K " @M @ ` 6 w y" vEl t Wf WR 0 : 4 MD 2 " j ?" .Q" AJ  KP#R  +pQ2 0 FBPo ~I1% Fpm x K &] " ?0( |" RP?" $E 2J " 05 ? e;P: @`h(  ? , f Sp^  " + |" K Z J0z \ " !pl w90  H 3 x  4 3? * > g0D" 1Ri" Up .v X $`TA"  < j W" R  + P( <" < ?0 X Z. " 1" AбE `8|" (p*" N. E =`  I~ :M~ SX S G 4e  G7SN &0 C $` " H=3 D H QW)" Ќ 8,Vh" 'Uf" cy 5 ]&% ? x " й[ 5Y a ]" 1= "H `" `N ;g" E` \  E D  " `e`e#.* `eQp" g<  Q$@i G 9   3` M" H> I " -C= pU; /3= " 2! " > p" q4~8" 1 2f K + " #y 5 #`) 6W :p 6" 5 K C$- @ 4 R  ` N@ l y y $C` y10@" 0P 9Vp?" /N` 1:pe; ` @ȳ#[Dp @P$ 4I0!"$ - u8O >q VH3 x }`O Spe `," OT`{  " hJ TM # b$;^ 6t; 8#L9? ; C 3pT- 1v ~?1 4 S Dp+" waitid_IO_vfscanf__sigdelset_IO_getstimerfd_settime__fortify_failgetpriority_IO_wdefault_xsputnalphasortherrorclockeventfdwordfreevswprintf__obstack_vprintf_chkstrtoimax__isspace_l_IO_seekwmark_setjmp__mbsnrtowcs_chk__strfmon_lxdr_callmsg__secure_getenvgetaliasenttdeletegetgrnam_r__sched_cpucount__woverflowxdr_u_longlong_targz_extract__strtod_internalmalloc_usable_sizegetspnamether_linemalloc_trimtcgetpgrppthread_setcanceltypeendspentgnu_dev_makedevvasprintfkey_encryptsessionmbsnrtowcsrewindfchdir__sigismemberether_ntoa_rbind_obstack_beginxdr_u_hyperregisterrpcclnt_perrnosgetspent_rwctombtimerfd_gettimegetaliasbyname_rposix_spawn_file_actions_destroypthread_cond_destroy_sys_errlistmremapstrcoll__towupper_l__strtoul_internalsvcfd_create__register_frame_infopthread_attr_getschedpolicyether_ntohostmodffiswalpha_IO_getc__wctomb_chkiconv_openrpc_createerr_IO_fclose__strtok_rinet6_opt_set_valhtonslocaleconv_dl_addr__getcwd_chkgethostbyname_obstack_allocated_pmrand48__isoc99_wscanfsched_setaffinitydifftimehsearch__freelocalewcsncpy_IO_str_underflow__getgroups_chkgethostent_rmbsrtowcs__fread_unlocked_chkstrtoq__strrchr_c__wcstol_lfchownatseed48_rswab__key_gendes_LOCALpthread_attr_setschedparamsprofil__write__connectstrftimemrand48_rtcsendbreakdirfdiconv__iswpunct_l__deregister_frame__ctype32_tolowerwcpncpy__strrchr_g__wcstombs_chk__strtoll_linet6_rth_segmentsrewinddir__strcspn_g__libc_dl_error_tsdprintf_size__strcpy_small__wcscoll_l__iswspace_lgetutent_rshmctl_nss_files_parse_pwent__libc_current_sigrtmaxcanonicalize_file_name__isprint_lposix_madvisessignalcreatinet_nsap_addr__register_frame_table__errno_locationdl_iterate_phdr__strcoll_lxprt_register_IO_str_pbackfail_IO_popenppollxdr_netnamestrvlimitinet_aton__strspn_c2__libc_init_firstgetservbyname_rreadaheadsymlinkat__gai_sigqueueloc1setttyentpthread_attr_setinheritschedwcstofinotify_init1__backtrace_symbols_obstack__wcstoull_internalwcsdup_IO_str_overflowrealpathscalbnlfgetxattrxdr_callhdr__register_frame_info_table_bases__strtouq_internalposix_spawnattr_setschedpolicy__isoc99_fscanf_IO_file_initisdigitpthread_attr_setdetachstatedelete_module__strerror_rendusershellepoll_create1daemonclnt_create__gets_chk__ctype_b_loc_IO_file_fopenxdr_pmaplistfgetpwent_r__nss_next2_sys_nerr__fgetws_chk__isblank_l__strcasecmpeuidaccesssvcerr_authexecleepoll_waitgetpt__rpc_thread_svc_max_pollfd__wcsncpy_chkpututline_IO_free_wbackup_areafts_read__libc_stack_endsgetspenttsearch__readsigwaitinfo__iswxdigit_l__strtoull_internalsigpendingulckpwdf__res_statenftwtelldir_mcountwcsftimedrand48_rtmpfileusleep__nss_group_lookup2__sbrkxdr_quad_t__confstr_chkmlockttynameargz_addumount2__isinflxdr_charmoncontrol_IO_freadgethostent_IO_funlockfilegethostbyname2_r__wcstoul_l__isalpha_lsigfillset__strpbrk_gvmspliceauthdes_pk_createunamexdr_floatgetipv4sourcefilter__internal_setnetgrentfopencookiexdr_opaqueclntudp_createxdr_authunix_parms_dl_mcount_wrapper_checkposix_fadvisegetnetent_r_IO_init_IO_seekmark_IO_wdefault_pbackfail__libc_pthread_initgetspnam_rgetpwuid_r__malloc_initialize_hookpmap_getmapssethostid_IO_do_writemalloc_statsglob__strncpy_gg__strcspn_cg__strsep_2cargp_program_versionwcsnlen__libc_enable_securesigandset__tznamegetnetentsetaliasentpthread_cond_signalgetprotobyname__signbitfa64lether_aton_r__vfprintf_chk__libc_msgsndregexecsyscallxdr_uint8_tswapcontext_rtld_global_ro__strpbrk_cg_IO_default_xsgetnbcopykey_encryptsession_pkiswspace__xstat64pthread_mutex_initgetservent_rtmpnam_r__tolower_liswblankgetlogin__argz_countrpmatch__iswprint_lopen_memstream_IO_fgetpos64nrand48getrpcbynumber_r_IO_putcuser2netname__after_morecore_hook__libc_freeressysinfoget_myaddressalphasort64glob_pattern_p__internal_getnetgrent_rgetutlinegetegid_Exitsrand48__sigsuspend__wcstold_internal__open_2gethostbyname_rfreopen64_IO_sungetwc__memcpy_by4argz_add_sep__readlinkat_chksigaltstackllabsputchar__prognametmpnamllseekobstack_exit_failure_IO_fgetposreadlinkcatclosesetutenttwalk_IO_proc_opengnu_get_libc_releasestrspnxdrrec_endofrecord__vsscanf_IO_switch_to_wbackup_areaclnttcp_createcatopentcgetsid__check_rhosts_filegetsockname__res_init__fsetlockinggroup_member__iswdigit_lclnt_broadcast__memset_chk__nss_lookup_functionxdr_long__wunderflowprogram_invocation_short_namestrcatgetprotoent__memset_cg_IO_fputs__isoc99_swscanfprctlclnt_sperrnogetloadavg__lxstatxprt_unregistergetprotobynumber__nss_next__gconv_get_cachewait4xdrmem_createsetreuidgetnetgrent_IO_iter_endvfwprintflchownrmdirsymlink_IO_wfile_jumps_obstack_newchunk_seterr_replyre_max_failuresopenlog__strncpy_bynwcsrtombs__deregister_frame_info_bases__iswalpha_l__libc_allocate_rtsigwcscmp_IO_init_wmarker_IO_sungetcgetrpcport__wcsftime_lscalblninet6_option_allocputenvverr__fpendingendrpcentgetcwd__cmsg_nxthdrfcloseallseekdir_IO_setvbufputmsg__wctrans_lgetnameinfo__strncpy_by4__wcstol_internal_IO_wfile_syncinet_nsap_ntoa_IO_switch_to_get_mode__strcat_chkpthread_cond_broadcastpmap_getportposix_spawn__cxa_finalize_IO_putsptsname_rmkostemp64__libc_mallocposix_spawn_file_actions_addclosemkdtempfreeaddrinfogetrpcent_rlcong48_rgttywcsspn_IO_fdopenxdr_des_blockstrtoulxdr_u_long__memmove_chkcapsetkey_get_convqfcvt_r_IO_stdout_initstate_rnetname2usergetcontextmkdir_IO_wdefault_finishfseeko64atoloptoptget_kernel_symswcsnrtombs__mbrlen__rpc_thread_svc_pollfd__default_morecoreposix_spawnattr_getpgroupxdrrec_eof__isascii_lklogctl__isoc99_vscanfstrptime_lxdr_boolwcsncmppthread_attr_getdetachstategetwcharsigorset__sigpausesetitimergetwdstrrchrfchmodat__wcscpy_chkpmap_unsetposix_spawnattr_init_IO_setbuffer_IO_wfile_underflow_IO_marker_deltagetgrgid_rstrncmpre_compile_fastmappcloseswaponinotify_add_watchfgetspent_r__memset_gcn_by2timerfd_createwcscat__vsprintf_chkpthread_cond_timedwaitversionsortinet_ptonfdopendir__isoc99_vsscanffopen64scandir__ctype_toupper_locobstack_printfxdr_u_intaddseveritysiginterruptverrx_IO_vfprintf_obstack_memory_used__strcspn_c1scalblnl__mempcpy_by4xdr_key_netstresxdr_rejected_replyfgets_unlocked__libc_allocate_rtsig_privateiswlower__lxstat64bind_textdomain_codesetreaddir64_rendutxent__strchrnul_c__mbrtowc__strcasestr_IO_stderr_setlinebuf__ffsfsetxattrargp_error__ctype_tolower_loc_IO_file_seekoffsys_sigabbrevwmemmoveioctlfts_openwcspbrk__swprintf_chkwcstoulfreeifaddrssched_setparamgethostbyaddr_rargp_state_help__key_encryptsession_pk_LOCAL_IO_file_underflow__obstack_printf_chknetname2hostxdr_unionwcschrnulendfsentrecvstrleniswgraphauthunix_create_defaultutimensatpthread_mutex_lockgetservbyport_r__wmempcpy_chksendfileacctjrand48strtodcopysignf_IO_2_1_stdout_quotactltr_break__strstr_genvz_remove_sys_siglist__ptsname_r_chkruserpass__cyg_profile_func_enterinet6_rth_getaddr__ctype_tolowergetrpcent__malloc_hookif_indextoname__cxa_atexitreadv__libc_reallocgetrusagesendtoptsnamestrtolsvcerr_systemerrpthread_condattr_destroy__strncmp_g_IO_fsetpos64posix_spawnattr_setsigdefault__strncpy_chkgetfsspecgetnetbyname_rcfgetospeed_IO_2_1_stderr_gmtimeisalnumposix_spawn_file_actions_adddup2__rpc_thread_svc_fdset__strncasecmp_lsendmsgttyname_r_rpc_dtablesize__dcgettextwcstok_IO_vsprintfre_compile_patterninet6_rth_addfgetwc_unlocked__libc_current_sigrtmax_privatebsd_signalsrandom_rsetfsuidget_current_dir_nameposix_fallocategetresuid_IO_file_overflowsettimeofday__libc_fatal_IO_stdin_usedfgetgrent_rhtonlwcsncasecmpgetutent__strtol_internalepoll_create__nss_passwd_lookup__strdup_dl_starting_upvtimesbdflushendgrentfileno_unlocked__progname_full_IO_ferror_IO_iter_begin_IO_str_init_readonlylseek64__getpgidffsladvancesetprotoentwcsrchr__strsep_3c__sched_getscheduler__towctrans_lislowerfchflagshdestroy__argz_stringify__strxfrm_lisgraph_IO_wfile_seekoffobstack_alloc_failed_handlergetsuboptargz_replacexdr_opaque_authfremovexattrexecvnfsservctlsetcontexth_nerr__finitef__memset_ccn_by2__fpu_controllocaltime_r_IO_file_read_IO_switch_to_wget_modegetdategetprotobyname_rinsquewcwidthxdr_authdes_cred__flbfrand_rin6addr_loopbackcfsetispeedwcscspninotify_initmallwatchloc2getifaddrsxdr_int16_t__xpg_strerror_rhcreateclnt_perror__wcstoll_internal__open64_2xdr_cryptkeyarg2__realloc_hookldexplstrncasecmpinitgroupsposix_spawnattr_setsigmask__setmntentargz_createfeof_unlockedpersonality__libc_memaligncfsetspeedgetrlimitargz_appendfmtmsglsearchprogram_invocation_nameisuppermbstowcs__strtoq_internal_IO_marker_differencecuseridsemctl__openat_2__fxstattimegm__printf_chkutimegetnetbyaddr_rvm86__vforkfts_setenvz_add__strcasecmp_l__assertputspentfrexpflockf64argp_program_version_hookftello64__curbrkpthread_cond_initposix_fadvise64endhostent__wcsrtombs_chk__towctransfutimesatgetnetnamegetrlimit64_obstack_freegetopt_long_onlyispunct__resp__isoc99_vfscanfcopysignstdout__underflowfreopen__stpcpy__signbitgetprotoent_rfread_unlockedsetsourcefiltersetrpcentsethostnameputpwent__wctype_largp_helpconfstrparse_printf_formatargz_create_sepwcstoumaxpthread_mutex_destroyenvz_strip__register_frame_info_table__sched_getparam_IO_file_jumpsstrtoullre_search__freadingregister_printf_functiondcngettext_IO_ungetc_IO_default_xsputn__isnangetrpcbynumbersigprocmaskpthread_attr_init__fxstat64getdirentries64__pipe__select_IO_fprintf__wcscasecmp_l__wcsncasecmp_l__memcpy_chkmktimeaddmntentcreate_moduledngettext__libc_systemfpathconfsetdomainname__iswgraph_lfgetc_unlocked_IO_default_uflowntp_gettimemmap_IO_sgetniruserok_afgethostidstrsepsched_getaffinityendpwentunlinkat_IO_least_wmarkermakecontextsigrelsemktempcfmakeraw__iswctype_lsetsockoptxdr_int32_t_IO_init_marker__nss_group_lookup__fgets_unlocked_chk__isoc99_sscanf__nss_configure_lookup__getwd_chkwait3__res_maybe_initinet6_rth_init__getmntent_rxdr_shortprintf_size_info__strspn_gbsearchxdr_longlong_t__nl_langinfo_ltcdrainhost2netnamestrncatcfsetospeed__stack_chk_failinet6_opt_findsigisemptysetsrand48_r__strspn_c1pivot_root__libc_callocclearerr_unlockednftw64getfsentmunlockgethostnamesetipv4sourcefilterepoll_pwaitisfdtypevsyslogreaddir64_IO_un_link_nl_domain_bindingsffsll__gettimeofday_IO_str_init_static__strtold_l_IO_printf__register_atfork__strtoul_lxdr_enumwcstouqsttylgetxattrtcsetpgrpgetutxlinexdr_keybufget_phys_pagespthread_attr_destroygetpeername__strlen_gtowlower__towlower_lcfgetispeedauthdes_getucredether_hosttonupdwtmpgetfsfilefdetachsched_rr_get_interval__sched_cpualloc__sigaddsetsstk_nl_default_dirnameargz_insertxdr_freeiopl__libc_current_sigrtmin_privategetsecretkeyfgetciswxdigitxdr_sizeofstderr_IO_wsetbwcswcsre_search_2getpwnam_rstrtok_IO_file_setbuf__libc_start_mainxdr_pmap__open__close__divdi3getutline_rfileno_IO_wdefault_xsgetnputpmsg__vfscanfupdwtmpxxdr_u_char__finiteendaliasentfstatfs64argp_parsegetsockoptgetgrouplist__getdomainname_chk__mbsrtowcs_chkteegetrpcbynamegetpwnam__isnanfxdr_unixcred__printf_fpatolliscntrlendprotoentinet_networkisattysetregid__libc_mallinfoclosedirasctime_rstrchrnul__ctype32_b_IO_wdefault_uflowsigsetmaskwcstoll__register_frame_info_bases__nss_hostname_digits_dotsclnt_pcreateerroron_exitinet6_opt_init__xpg_basename__wcsnrtombs_chkxdr_authdes_verfsetpriority__wait__dprintf_chkiswprintendnetentxdr_getcredres__strcspn_c2posix_spawnattr_getschedpolicy_IO_ftell__iscntrl_lwmemcmpsvcudp_create__wcstof_lwcscasecmp_IO_proc_closewmempcpykillpgdup3envz_merge_res_hconf_IO_2_1_stdin_malloc_get_statelocaltimegnu_get_libc_versionerand48_rfputcgetpwuidargp_program_bug_address__profile_frequencygetaliasent_r_IO_sputbackwcmprobeswapoffre_match_2__asprintf_IO_default_finishsetsid_IO_file_openxdr_keystatus__wcrtomb_chk_IO_unsave_markers__isoc99_vwscanfunlockptgetutxentstrerror_lmkfifotzset__realpath_chk__freadablefstatvfs64__endmntent__getpidfgetwsposix_fallocate64putgrentshmgetgai_strerror__ispunct_lobstack_vprintf_IO_feofgetrpcbyname_rposix_spawnattr_getflagsxdr_reference__waitpidgetdomainname__wcstoull_lwcstol__iswcntrl_lregfree__isoc99_fwscanf_IO_wfile_overflowmodflmbtowckey_decryptsession__isoc99_scanfxdr_replymsggetsourcefilterflistxattrsigignore__libc_pwrite__vasprintf_chk__dgettexttempnam_IO_peekc_locked__strndup__isctypeclnt_sperrorpsignalqecvt_rsignalfd__fcntlinet6_option_nextopenat64cfreesvctcp_create_IO_free_backup_area__overflow_dl_vsymposix_openptpthread_self_IO_file_close_it__monstartupiswupperumask__uselocalepasswd2desgetresgid__poll__assert_perror_failposix_spawnattr_setpgroup__libc_mallopt_IO_file_syncre_exec__isupper_l__vswprintf_chkgetpmsgstrfmon__isdigit_lmsyncwcstodstrncpyvwarnxh_errlistin6addr_anystrptimesigreturn__memcpy_g__lseek_IO_adjust_columnmmap64__vsnprintf__ctype_get_mb_cur_maxvwarn__xstatgetnetbyaddrgetmsgfgetgrent__vsnprintf_chk__bzerosocketpair__wcscat_chk__recv_chkstrxfrmshmattcsetattrwcstoldustatshmdtniceoptindscalbnf__strpbrk_c3__fgetws_unlocked_chksetstate_rreadlinkatptrace__fxstatat64atoffseeko__isinff__nss_database_lookup__memcpy_clremovexattrcbc_crypt__stpncpy_chkgetaliasbynamexdr_u_short__gconv_get_alias_dbsvcudp_enablecache__clonegsignalfputws_unlocked_IO_fsetposinit_module__moddi3__argz_next_IO_wmarker_delta__fgets_chkfgetwc_IO_file_seekiruserokxdr_cryptkeyarg_IO_stdin_getutmpx__fpurgegetchar_unlocked_IO_flush_allsetuidllistxattreventfd_read__strcmp_ggmincorepthread_attr_setschedpolicy__recvfrom_chk_IO_default_pbackfailsetgrentsetresuid__wcsncat_chktmpfile64re_syntax_optionssvc_runpmap_setsigstack__backtrace_symbols_fdmprotectre_comp__nss_disable_nscdtcgetattr__toascii_lwcscoll__vfwprintf_chk__res_ninitqsort_r__rcmd_errstrsvcerr_progversunsetenv__wprintf_chkputwchar_unlocked__daylightargp_usage__wcstof_internalttyslot__wcstold_ljrand48_rmunlockalliswcntrl__memcpy_by2utmpname__wcstod_internalfputwc_unlockedinet_netofunsharegetppidftello_IO_ftrylockfile__cyg_profile_func_exitclnt_spcreateerrorsetpwentunlinksemtimedopfwide__nanosleepexecl_IO_seekoffqecvt__wuflowcloselog_dl_sym__read_chkerror_print_progname_IO_sputbackc__res_iclose__gmtime_rregerror__sigsetjmp__ttyname_r_chkrresvport_IO_file_close_IO_adjust_wcolumnsetserventrresvport_af__sysconfgetttynampthread_condattr_initwmemsetiswpunctfputwscapgetgetutid_rputchar_unlockedstrtoumax_IO_fopenlockfecb_cryptinet_ntoa__assert_failhstrerrorif_nametoindex_IO_file_attachrtimeremap_file_pagesxdr_wrapstring_IO_wdo_write_IO_str_seekoffinitstateversionsort64xdrrec_skiprecord_IO_file_doallocate__signbitlmodfsrandompthread_attr_getinheritsched_IO_file_statqsortutmpxnameget_avphys_pagessigwait_IO_file_finishtoascii__strverscmp__bsd_getpgrprexec_IO_getline_infoauthunix_create__wcstoul_internal__h_errno_location__ctype32_toupper__sysctlmemfrobrindexflockwcrtombldexp__ctype_bstime__register_frame_IO_list_resetlock_IO_setbfdatasyncmunmapgetservbyport__getpagesizeftruncate__fbufsizemcheck_check_allinet6_rth_spaceposix_spawn_file_actions_addopenxdr_string__sched_get_priority_minxencryptkey_setnetmbsinitmsgctliswdigitinnetgrgetnetbynameinet6_option_space__ctype_toupper__memset_ggscalblnf__snprintf_chkgetdirentrieswritevwcswidthgetuid__stpcpy_smalltcflushvdprintfscandir64envz_entry_authenticatentohs__strtoll_internalsigtimedwaitsetrlimit__strncpy_by2mkstempisastreamdrand48__strspn_cgmkdirat_IO_list_alliswalnumposix_spawnattr_getschedparam__libc_pvalloc__nss_hosts_lookup2mlockalltfindrecvmsg__iswctypeether_ntoa__ivaliduser__sched_get_priority_maxntp_adjtime__sendqgcvtfputwcinet_addrinet6_opt_next__morecore_mcleanup__sched_cpufreestrtofstrcspnsvc_getreq_commonputwcharpreadsetgroups__wcpcpy_chkabort__asprintf_chk__stpcpy_chkglob64mblensiggetmasklocsfchownrecvfrompthread_equalkey_setsecret_libc_intl_domainnameisprinterand48__vsyslog_chk__strncat_chkxdr_pointerclntraw_create_IO_unsave_wmarkers__pread64_chksigemptysettimelocal_itoa_lower_digitsxdr_byteslsetxattr__vdprintf_chkfflush_unlocked__backtracelutimesbindtextdomain__iswlower_lsvc_getreq_pollsockatmark__xpg_sigpauseclearerr__nss_hosts_lookupfwrite_unlockedgetdate_err_nl_msg_cat_cntrendutent_IO_flockfile___tls_get_addrpthread_cond_waitcatgets__strtok_r_1cgetutxiduselibreaddir_rioperm_IO_fflushpthread_exit__getlogin_r_chkfmemopenopenatstrnleninet6_option_find__memset_gcn_by4__frame_state_forrevoke__statfssocketfutimesposix_spawnattr_getsigmaskstdingetdate_r__libc_siglongjmp_IO_sscanffseek_IO_file_writexdr_key_netstarg_dl_open_hook__duplocale__internal_endnetgrentsetfsgidcallrpc__iswupper_l_IO_file_xsputn__strcspn_c3_IO_padnfputs_unlockedregcomp__mempcpy_by2getdtablesizeh_errnoif_freenameindexfexecvewcpcpy__pread64__isoc99_vswscanf__strncat_gxdr_vectorsvcraw_create__environ__xmknod_IO_list_locksetnetentbcmp_IO_flush_all_linebufferedpthread_setschedparamsigset__rpc_thread_createerrfts_children__umoddi3_IO_wfile_xsputnglobfreegetlogin_rsvcerr_noprocsetstate__libc_vallocwcstoq_nss_files_parse_grent__strtof_internalsetfsentif_nameindex__isoc99_vfwscanf__dup2__wcstoll_lisalphasvcauthdes_stats__wmemmove_chk__fwritingget_nprocs__mempcpypthread_getschedparam_obstack_begin_1xdr_cryptkeyres__nss_services_lookup2__newlocalel64acreat64__libc_longjmprenameglobfree64ferror_unlocked__strtol_lualarminet6_opt_get_valxdrrec_create__sched_setschedulersvc_exit__iswblank_l__libc_thread_freeresxdr_double__syslog_chk_IO_getlinesighold__strstr_cg__strsep_gposix_spawnattr_getsigdefaultwcsxfrmvhangupopen_wmemstreampthread_mutex_unlockgetutid_IO_wdoallocbufsigvec__wcsxfrm_lsemgetkey_secretkey_is_set__wmemcpy_chkgetmntentraisewctob__res_nclosesched_getcpuisascii__strtoull_lgetwchar_unlocked__fread_chksvc_unregistersemop__libc_fork__gconv_get_modules_dbre_set_registersisblank__memalign_hook__sprintf_chkstrstrseteuidrcmdeaccesssync_file_rangestrcmp__libc_current_sigrtmin__mempcpy_bynxdr_uint32_t__forksethostentfts_closeget_nprocs_conf___brk_addrhdestroy_rgetgrgidsvc_sendreply__fxstatat__chk_failgetpass__pwrite64lfindfaccessatctermidsvcerr_noprog__libc_freefattach__open_catalog__sysv_signal__sigactionendserventwordexpsetegidinet6_opt_finishgetoptfnmatchlrand48__fprintf_chk__memset_ccn_by4svcudp_bufcreateposix_spawnattr_setschedparamgetttyent__mempcpy_small__free_hookxdr_uint16_ttdestroylcong48setusershellinotify_rm_watchsvcerr_decodegetitimerposix_spawnattr_destroywmemcpyqfcvtcopysignlerror_message_counterror_at_linemalloc_set_statexdr_int64_tgetprotobynumber_rposix_spawn_file_actions_init__finitelgetpw__strcpy_chksetlogingetpublickeyexeclpfstatfssetrlimit64svc_getreqsetstrtoldwcstoimaxtcflowquery_module__libc_clntudp_bufcreate__strpbrk_c2accept_IO_fgetsxdr_uint64_t__toupper_lsigblockgetutmp__libc_sa_len_IO_default_doallocatexdr_netobj_IO_iter_filefstatvfsxdr_arrayatoiinet6_option_appendpthread_attr_getscopercmd_afxdr_int8_tstrpbrkvwprintf_Unwind_Find_FDEreaddir__uflow__getdelimlchmodulimit__strftime_l_dl_mcount_wrapper_resgetserventinet_lnaofsvc_getreqre_match__udivdi3xdr_hyperstrchrfchmod__timezone__xmknodatstrfryfrexplmkostempstrtoll__isxdigit_lfsync__libc_dlsymether_atonmcheck_pedantic__strchrnul_g__vwprintf_chkdes_setparitymkfifoatwcscpy_IO_sprintfinet6_opt_append_IO_remove_markergetgid__wcpncpy_chkxdr_voidxdr_rmtcall_argsimaxabsisspacesendfile64__strcat_clistenftokfutimenssvcunix_createfrexpsrandposix_spawnattr_setflagsrexec_afxdr_u_quad_t_dl_argv_nss_files_parse_spentwcsncat__isinfdysize__wcstod_l__key_decryptsession_pk_LOCAL__nss_passwd_lookup2getopt_longsetutxent_IO_link_in__strcat_g__libc_msgrcvgnu_dev_minorgetgrnamlldivgetservbynamemsggetseed48__mempcpy_chkinet6_rth_reversemkstemp64__strcpy_g__iswalnum_l__strtold_internaleventfd_writesetlocaleremque_IO_seekpos_IO_fwriteimaxdiv__strspn_c3__open64__stpcpy_g__strsep_1cputwntohl__strtod_lfgetspentstepsetresgidfgetws_unlockedsetgid_flushlbfargp_failureerror_one_per_linegetcharasctime__rawmemchrmemmemftruncate64posix_spawnp__strtof_lsetspent__memset_ccexecvp__islower_l__readlink_chk__res_randomidfgetpwentgetwpthread_attr_getschedparamgetusershellumountinet_ntop__stpncpyreboot_IO_iter_nextgethostbyaddrldexpfrenameatstrsignal_IO_doallocbuf__mbstowcs_chkwcschrpipe2__fwprintf_chk_IO_list_unlock__libc_dlcloseisxdigit__libc_dlopen_modexdr_intnl_langinfohcreate_rendttyentstrtouq__strchr_ctowupper_IO_wdefault_doallocate__gethostname_chk__isalnum_lopterrmcheck__modify_ldtmemccpyxdr_accepted_reply_null_authgnu_dev_majorepoll_ctlpthread_setcancelstate__setpgid__strchr_gposix_memalign__openat64_2pmap_rmtcall__vprintf_chkwcsstr__sched_yield__wmemset_chkgetaddrinfooptargwcstoullwcslenclntunix_createnrand48_rargz_deletewcstombsmuntracebindresvportpututxlineauthnone_creategethostbyname2iconv_closeinet6_option_initauthdes_createhasmntoptsvc_registerfputc_unlockedmemrchrchrootstrcpyxdecryptkillsvcunixfd_createkey_gendesmtrace__isgraph_l__isnanl__adjtimexkey_decryptsession_pk__pread_chkxdr_rmtcallreslrand48_r_rtld_globalpthread_attr_setscopegeteuidre_set_syntaxpselectinet_makeaddr_IO_switch_to_main_wget_areahsearch_rrexecoptionsenvz_getclearenv__deregister_frame_infoargp_err_exit_statusscalbngrantptsvcerr_weakauth__fwritablexdrstdio_createshutdownsetlogmaskgetgroupsld-linux.so.2libc.so.6GLIBC_2.0GLIBC_2.1GLIBC_2.1.1GLIBC_2.1.2GLIBC_2.1.3GLIBC_2.2GLIBC_2.2.1GLIBC_2.2.2GLIBC_2.2.3GLIBC_2.2.4GLIBC_2.2.6GLIBC_2.3GLIBC_2.3.2GLIBC_2.3.3GLIBC_2.3.4GLIBC_2.4GLIBC_2.5GLIBC_2.6GLIBC_2.7GLIBC_2.8GLIBC_2.9GLIBC_PRIVATEGCC_3.0                                                                                                        eWii Wii $WWqi $WWri $WWsi $WWii $WWqi $XW ri $XX si $XX ti $+XX vi $7X+X ii $CX7Xri $MXCXsi $YXMXti $eXYXii $qXeXii ${XqXii $X{Xii $XXii $XXii $XXc $XXP&y XWc Xii CXii Waaaaaaabbb bbbbb b$b(b,b0b4b8b~d}? :1 -,048S<@DLxPHTX\A`dhpt;x+|!;.O(YBGtM$i<i2@2\D\   hhhhh h($h0(h8pUVSU tЋu[^]ÐUVS%tЋu[^]Ë$ÐU]Ít&'U[t&U]vuu}} uf ǃ,E8&vt)<$D$ӭt6}v&uݍUEMIɉMUE끐uZvMtM<$L$zU9UnM9PUEMIɉMtMI UEMȋUlz:uu u}E}EUȋMPU@ IUMT$<$SUut& vty<$D$賬uE;F |@&t/U9UE:E9E(E;EUU;V}ɋMNEFUV MN믐t&,t$><$ıFMN EFUVMNEFumE9E&uvv<$D$׫uU;V |vgM;Nt&WEFUV}vGt'WpH BtRpH Buw OuˋEuvUEvUEFNP Q@V A F9Uu;E|ːt&뾃,t$><$蒰FUV MNEFUFVM1UuEuUM9JEZE@EtUMԋB 9A | EEԋEUMԅEU11UЋAt&@uk<$ME|~E8Wk<}VUǍO Mot&MԋAGЋE90t}M̋GGGUԋB@8/trtEԋt@mU$|$"tSF҉EFHEEU2uɋUE[^_]ËUBV$T$ܢt$FEvtʋ>|$U$躢uËUF9Bv|$tEtU$둋B ;F }UFBFBFBE4$[^_]Ð&UWVSùEM$D$L$a/P|$$߾x/t/UM+щD;`2F`2`2EUǀ:u:tDŽu/UMԍ@U؋M䉓d2 $uvҐt :HuȅtVE D$/usr@/lib@/gcof@ nv@EEEElEfffD$ D$D$$ߟ UeWVS^xEEEUdj+d24d2҉UJ@&EM}}@E )ċEt$D$U4$T$Tgcon@v-mo@dulef@ sM4$L$;4EEENj̀ED$ D$ ED$E$@xXuD$#4$D@DA t@DG u9u*UȋtE$Z}ȉ<$'Ed2E҉UX2E܍ MEU v ;ut0E܉|$ML$E$[ u1҉H ;uuЍU}D$M $ED$$xƋE}ԉ<$D$UċE<~uMU e[^_]Í&D>8 vt7@DA t%&@DB uE}uM)MtY/k\ B\ ED$ET$$MUE' Mȋ)EU؋@EDQ tE}؋@DQ uMЋ@DB u+H׍t&ʃoDG tAQ}Dw t}Dw uk}DG tXf}DG uHu9)M̍F$L$E;}ȋ}Ee[^_]` B ` B UWV1SgEUt&D$E$ŕt9 uٍD$ wD$` D$H$诚&U싄;BB;B BB;B4B$;B(;B,;B0[^_]ÐUU ]ʄIÍv'UWVStEU M M} <$EUqEu EU@EREԅtujEt&%v})‰)9Mw밋UMM̋}؋%})E؃ M QEԃ΍D$ D$ D$$0M}?}~}} G@EGVEĉ$U$t$T$MD$D$ D$L$}|$E$UĉE D$ D$/D$$uD$ D$D$$KD$ D$몍&UWVSEM 踹mu PTE9EEM9MUB%t&%u 9Uw;M}EvEME)M q t@vFt/$IEĉD$UT$ MD$ED$F $VvuËU B BTE9E8U ME $E$D$D$UD$T$MĉL$ hD$UT$M $UEE9EAEk U M EUIx9EEMUEMME׉UĉEU:EĬ[^_]ÐE0%? 9wڃLMlMuE9EEU}ĉU-t&%=%=%=1%=VE9E]U2%HvՋMC}E9 vvvv}=E$}&sU MRUM)ȋM>ֿE|‹E9Uv-2? ƋE9UwU)||LU I :rEEĬ[^_]Ð;Mt&Vv}EKEUEEĉljU1UMU MȋzqMtшE9v ?ȀwEE)9EMU MtU+tuE>ʿM9Mv? 9MwM }9E vPE:MEUE9UUWt9MMvMȃvtuu>nt9UЉU7M9MЉv/E%uM%u 9Mw;uuE9E'MЋU+tM؋)ȋMME؉>ʿM9Mv? 9MwM }؉9E vPt&%= %=%=ʿ? 9vt8%t9btLM t&EEԋU2Et9MUE)ȋM9)ЋUME̋U ERxMU EM EEQM9MEEEME9EMp2EU2MUME9EE9EE0vÍ>E9EEM9MeUB%Pt&%u 9Uw;M.EpM}E/? 9vE8%t9wLt%=%=%=1%=E9E7U:%"vEEMU9U}M9ME h h[N%=ֿd%=%=%=tv1%=tYt9Evt:%EtDxt;Mt}ԃEEEE%=u"ֿg<_%=t&uuֿ3 D$ D$ D$$K~ D$ D$1D$$!~ֿEEUUt&ʿ%=%=t`%=t>ʿD$ D$D$$[}ʿʿʿʿ3ʿ D$ D$/D$$|EU B@EBM $E$t$D$UD$D$ D$T$ML$E$UE:M MD$ D$ D$$|uU RxEEM D$ D$UWVSEU M U } <$EUqEu EU@ER D$ D$/D$$`M M'EU B@EBMԉ $gE$t$D$UD$D$ D$T$MЉL$Ẻ$UԉEE D$ D$D$$_ D$ D$UWVStEU M 8} <$EUqEu EU@ERM MQEU B@EB Mԉ $豒E$t$D$UD$D$ D$T$MЉL$Ẻ$UԉEL D$ D$/D$$%LL D$ D$ԐUWVSDEM zPu EP)9O…PEH1ɉEt"uȉ9w4EEE0;uEtE9E҃UEE p t>t&Ft,$UT$ML$ U|$D$F $VvuƋM A ASE9EU M܋E $螐u$D$t$ED$D$UT$ MЉL$u؉t$Eԉ$U܃t-U;UJ&yu 6ut&}tE$u ED[^_]Ã}uE8E) 119}v"E PD2U 9MwU)M A A EED[^_]ËUoƋE9UvjvIUGGBGBGBU'u16uM1ED[^_]ÍL7E9Uw w EED[^_]ÃvqM+U&l D$ D$D$$HEUU}U B@EBbM܉ $zE$t$D$UD$D$ D$T$M؉L$uԉ4$U܉El D$ D$/D$$Gl D$ D$ԍv'UWVSDEM [vu EPM u$}(UȍUEUEE9E&uuȋ}EuЋ, 08D$ D$D$$u D$$ < D$<$|$  |Dž DžD$D$t9 4Uft>u ];Q sD$$t$]Í]$t$]Í&U D@吐豁TeU]@XÐUWVS9óT}@E@}  9E8u}UDu$$}EE$茤t 81u D‰t ~D$;4$4$ P)čD$T$t$$1+Dž@<"t&D$=<$r,+<Dž E9  ~  @,DD$;$tG<(EMU :Cz8e[^_]@U@c311 &EaD; t $ | ~ȍGt $l6(8 U(1tE1EztVD(D; [(|@<$D$%x ~u4$53 88B$A4B0A8B(A<8e[^_]Í& <<9&ULE $DD; $|ytMD(FD; tQ(<<$T$$xt&c L@E^ eDž88e[^_]Ë$|#vEtzt[u܋3aDž88e[^_]Í 4$ e3D$׉ 4$ e3U}|$ 4T$D$:$T`;D$ :D$|$4 $"X/t&(1}tEt$; t$T@$D$"P uɋ($ $t28,$ 4$ e3Dž8UWVS$3M} 91EE萃DD@;Et$MDE ~ҋEt$2E3E1tEMDBwBFU9tSMU  $D$s!E ~UG4B4G8B8G4t[]Ë@( Ue S#Ô>0t[]Ë@0␐UWVS(#D>U78.3@0u"7&*6F D$<$ku֋MEt6U:KFED$<$9IEEUUtUU҉U~t|$E$t&U$tF$ "~EE8M3t 4$ e3Ѓ([^_]ÍEt E}tۋU([^_]ËEU<$p $6!EE t$|$$EUM2‰E؅t.MU؉T$4$U؅t4$‹EE܉PE!Ut$`UU܉B@҉UQЃ D$<$iy7F D$<$Q~ uE0uU܉2E&gf 4$ e3XFE&MU؉T$<$U؉Uu"F;Et$EFE}<$_EubvE@vEvt EEt UMuE{FUcUE܉@E܍MU؉PDU܋B;Et$!E܉$}tUU1҉E $EE Ðt&UEU $E ÐUSE@9D$D$ D$E D$D$E$M[]ÐU E D$D$E$ÐU ED$$D$_ÐUuƉ]}:9ttV1]u}]Ðt&FEFtcEtŋF 볍&FfЋtyFFuUtc&LFt&>&,~&vF F h_9M9M9M9M9M9M})E<E1E1q}fv'U}} ]uuZ7GWtfNFtlT$$t]u}]Í&D$$u؋GD$F$u‹F+G뺍NFWuvF돍t&'UWVSĀEUMHê6HE@EP1U֋P0M $EE$GUR,ƉU1u׋U1EMU@4)щMEfE؅MA0p9uEH JEP;Er3EɋE<DED$U$F;}E+ENjE؅xUB0ȅvfEEe[^_]t&}9v؋EUE܋R U0t&MUADE܉D$M $}u9vE >MtƋUBDŋM+EUA$;.@D$M $UuE9E)EM+EA(PUEEEMAE37MQ<R׍4q8v uȋUăT$$uڋ3Mȅ]Uȃzt-B UHMEE UEe[^_]}PvDt&UB u.EUBHMEt&EBPȍUEU4 e3@$U4 e3@$  ҉U\e@\E@E3MI<ɉMUMR8IωUԍt uȋUăT$$uڋ33U4 e3@$e= t = 1MEEMEbvi D$ $2 B  B E싳 vUȋMMBUT$VUT$U$Uk,  E)ЃEȋMP U싃 ) ‰ e= t +UȋB&ǃ $6tG t&OMM  $ǃ ǃ e= t  E#$菀t 8ǃ U4 e3@$CE@8EԋMDID$Eԉ$#OUB8Mĉ $E3UMREȉ]@ED$$UE2D$$Pp ~ u &e1 t&t vt vt TuڍA)čD$Et$1L$$Uv MȋA1ɸD$MI ME$UȅBpB랋3`U4 e3@$Et<3tU4 e3@$ЋE$EoUB-UWV MpF`j;FdǸCEut&tD$$y-9rE ^_]UWVS|M c+E"} }v3EM UuDMuԉUUE4$$P)čD$T$t$$\EE؋3\E D$EЉUT$$S Eċ3EątMċ1V ;ze5uE@EuvM̋ ɉMẼ D$U$uЋűvu>/i4$ xt&U<"t D>U)čD$Et$M $S tM̋qD$E$f+f/t$$b3UMu Uut }EuuEe[^_]Ë3t@ 4$ e3Ћ3t 4$ e3ЋuM4t&UE ҉Et}EEEEe[^_]EMUUE;$x,8#M $ UȉE:>u~1UȋE$6UE$(MD)ċEt$u4$D$Sf/UT$M$L$.mou4$MUM)čD$Evu<:U;CE@UM:u zu}Ẻ$MUEEtU$T$M ULE&}EYEąMċB upUPEBEuE3f 4$ e3Ћ3= 4$ e3t&<:tEMu鋳L>D$/E$#u<:kt&EO&MA:1UDu$t$M UEtˋE|}~ 4$ e3 4$ e3 4$ e3Ћ3 4$ e3}Evu3 4$ e3Ћ3u 4$ e3U 4$ e3Ћ3 4$ e3M $EE$MUE7E`VNF$UE M $pE$UD$GEt$M $L$rut$NjE<$47D$U4$T$eM9EqAA UQuqEA3uaED$UT$M $臝 Ƌ3ut E9FU$6 4$ e3č 4$ e3낍   Y 跀 ׀ USEE"D$ D$ED$ED$E D$E$[]ÐUSE@!D$D$ ED$E D$E$v[]USEõ!D$$D$ E D$ED$5[]ÐUWVSg!TEԉMЋ3Eԉ$[UD$(D$ D$T$$, D$D$ED$t$D$ D$Ủ$A Nj3uMwOtSe[^_]& 4$ e3B 4$ e3떍vGt&F@uFtPUt&֍UI4$E؍t/$P)ĉT$U؍D$;$T$YƍED$ED$ED$ ED$ED$4$#E܃3t 4$ e3ЋEԉ$UD$(T$$UD$EԉT$ UD$T$UT$UT$UT$U܉T$ Ủ$nNj3t 4$ e3Ѕtw~VOtEE$Gt߉fF@uϋFtŋPUv؋U t&뚐UWVSi e$;8 t%1e= t0 8 4 B4 $Ht5҉4 u"ǃ8 e= t0 e[^_]Ð$BB$$+$_9D$<$/usrF/shaFre/lF ocalFe-laFngpaFck/D$F$)D$4$3 n4$ED$|$$ vUE҉b/YD$|$D$ D$D$${ ,˸eDž0,==0K4$|$,| t&$F4 4 3ǃ8 e= t0 e[^_]Ë4$`,tQ4t&~;)4t$4<$D$肶 ue<tӃ@˸e)$h$B,1҉0px9…҉P @p,OvMB$0,<$t$f$BhH,FGG ,F ,GG ,F,GG ,F1҃G,v"@ ,F,‹fɋG W0G4,A0o,$88,,v;<$tȍ<F봐t&$$$+_D$$$/usrF/shaFre/lF ocalFe-buFndlefF/D$F$D$4$ 4$t&vD$$$ª B B$B(1A8@A< rED$]$ $vd`&&L$,4$u C,$,D‹zRzIzDP t,LuЋX@$뻍v#LL`Qu9%t&ҋDP ``uċX@$>멐 G L 9H rDP t=``uЋX@$>뵐t&``Hu.t&ыDP u΋X@$볍v``ACȉTD$ $,[ 9ucH ,T D D$ D$H D$ $VHe[^_]ËH t, Dž0)Ή\808\D9щ0rDU1WVSuw,e= t< H uud&  &:uv :ttЃ uU9sщ )tH utD$ |$D$ D$E$>HvH:t&u뙉 1e= t< u;[^_]Ð&UE E EE]g< Lb < lb 븐Uuu]}3DE>uYEƋ9t ;}t<$83t 4$ e3Љ]u}]ÉD$4$Ĵt|$4$贴u8uf뢍 4$ e3C뙉4$0b=UWVS(E îEe 1EEEIf9UE2UUBt#E89UDDEE9u v9uU@$9렋U܋E܋}EЉ$EuEM Ee u50101UUEu9u vA9tMUE4Ћ9DPuBЃ w̋UEu9u UwEE؃([^_]f@$9뛋UU@$92E&Uԋ@01Eu0'UisoUt&UWVSÙ`E$衷UUЉEEUUaEUU31UU 1U,$EUȍDEEE$E ED$U 4$T$rD$:E4$D$UD/U$T$UЅ<}؅M܅U/U,$1T$lEEQt&Utt$$Ӱ}E@ EűE0UT$E $UM⪪UUʉс33щʁ$MEEkU2ED$U $SEąP@QG UĉB W ED$U $CUEEEUЅ҉UEx4U UU t&mxE1Uč|EEmyUEDE`[^_]Ív;usD$4$9Evƅt4$մD$(U,T$$U(T$ U$T$U T$UT$UT$UD$t$T$ E$EuE*u 널t&4$E`[^_]Ðt&E($=pt&E$$%xt&E $ EfE$Ebf@U($T$#+.U$$T$.U $T$_U$T$E0E#t&E1҃UUĉB EUWVS EM;UEUE ui $D$Et&@EtE:EEEEtE:EEEE [^_]f<_t<@t<.tȍt&uN9k@EtV_Etr.iU2MJf_t@t.vu똍UFE~DEE&E0u(t&.Ejvt<.t<@uEv@OuNM9)4$D$RƋE0t1Ut$$膫t/MLt&@uvE&f4$wU ]Öut t,tt&t&4$v']u]ÐFF FЍ&'UWVSul!EUx&Lumt&t_t&y$nEt>UUPxRUƍL1ҋ;UuE[^_]Åx4t&yEE[^_]Í&UWVSY8ljXDžDž DžddddDž  f ,DJ9Ɖ0 ' )Dž '~='G  D)čD$,?T$,D$$,D$0L$4$,),)Ƌ A90)Nj CatVzDžʃ5wSLc; CLdQ)Ѓ $ $)‹$zJ)JPЃ5 H 0,Scau,&v;,CatۍA5wfCLcuCc|+t DžA=t؉Dž}fe[^_]Ívf;CLcCc &_&,bGWEE$MfU~f< td< t`Љ<|4DžE41DžDž2t&uEDžDžDž(f>ɋD m_11$EE$1$AOWEEU$OXWEEU$(1GWEEU$MRUBډ494DžDž4:=4Dž DžDž44Dž Dž:=i4Dž Q48=84Dž Dž 4DžDž8=4Dž 0(f(҃4TBЉ(4B< vӋ(DžDžDžqDžDžXDžDž?DžDž&1J@UWVS0?UMD$4$*4$E؍D$U؅x p eEԋUԋE t&E8DP t->teEԋ8uۋUUԋ@$:ƍA< w9ED$ D$4$^;utU܉E؃EE$tUE0[^_]ËEUU1Vu$t&t11Ѓu^]ÐUWVSv}E EEUzUU11<4RUR }}U}Lt&}UM;Gs'u}9:u}99uދU}BD&e*E[^_]fUuu]àtIt+u>F$?4$7]1u]Í&FD$F$NM эt&e ]u]ÍU$]E^}1uD$/$EtV$nt D$ E|$D$E$%u]Ћu}]É4$\␃} t&t~ $<EMtVE8tNLu*$<t8uYPED$/$=tE볐t&D$$uEwt&$)čD$t$E$*f:x}UWVSÉED$/u $胛UD$$b |2|ED$$L$-q E%=uE w8e|˸eˍe[^_]ËUB|D$D$ D$L$D$$I UBxE@t=)tUABAMAtA <@q xA1Ƀvt&9Bȃ9wUDy 9v;x΀>t#Dz1u"t&9t|t&u1t&MuAD$t$I t$L buEEt&EE,}UG9EEwځEEM)čT$'U|$L$$멐E$蕝M9ʉUEUt$T$$ڽt&M $UUƍ9ЉEEMt$L$$蚽nt&EOM9E8%Lvp(vM9*<."}MO9MMwЁEEU)čD$'E|$T$$ 럍&M $腜;EMEt$L$$ԼFu=EEU)čD$'E|$T$$蚼M^EEM)čT$'U|$L$$`EM0E)čT$'U|$L$$)2MU1ȃ)čD$'ME|$T$$9E0E)čT$'U=itMBȉAB!E$MAtE"t&uRe<8uFt&t/EU)|t$B $D$~ @w)ȋMUB$:UE]MEɉʁ ‰ !ÐUE]EMɉځ ¸ )ÐD$)1ÐT$D$% ЉD$D$ÐUWV0EUu}%?! EuEE0^_]Ðt&3~3E؁uEE؃0^_]Ítg!EȋEuE0^_]Ít&ЋM!EEE0^_]Í&M1Q0^_]Í&MuEEЃ0^_]Ð% L2D$ D$ÐL$D$% tT1=sK=s*D$ 8܊d\$D$%-?T$D$ D$ÐUS&$EU$tEzu E$[]fE$D$!U$tEuzȋeE"$[]ÐUE]E%ÐUM]ʁ !ÐUU])ÐD$)1ÐT$D$% ЉD$D$ÐUU%H%xqu6E EUEËE Et3UEÐt&!ЉEE Em]EÍt̍E ED$D$ÐD$1ɉ%tP=sI=s*D$ ؊d\$D$%~?T$D$D$ÐUS{E$tEzuE[]Ðt&E $D$1U$FtEuzŋeE"[]ÐUE]%ÐUU MEUUMMEȁ U% ‰ к)!ÐUEU MEUEMM% EɁɉ ¸ )ÐD$ @ÐT$D$ % ЉD$ l$ÐUWVĀm}Eu}E%IE! Ef8fuEEmȃ^_]Í&?~;E@8ffuEEm^_]Ðt&fuu!EEum8^_]Í&ЋU#EfuEEm:^_]ffuuEMEU܋E؉NV^_]ÍUf:fuEEm^_]fe }D$l$ÐL$D$ L$% tO1=tFu*l$&܊ e|$D$ %-??T$ D$l$ÐUSm<$tmzum[]Ðt&E<$D$ !}<$DtmuzËem"[]ÐUEMU EMEU%ÐUSM}UHf%?f fEm<@Ct*% =] ‹E% ‰UU[]ÐD$pxL$e3  H $e3  Hh UE ]螾Suuu1҉V1]u]ÍFD$D$$ uŐD$pxL$e3  H $e3  Hh jt$eYZÐ1T$rzL$e3  J $e3  Jj BÐU]vuu }}t$<$GuDt$<$'&GD$D$$ƐD$PH e3 e3 pxh D$␐US3tU4l$ e3$Ѓ[]ÐU0]μÃ} u}t E~}@~(e]Ћu}]ÐE l ׾h1Uу拌l#2 %E썅D$hlD$E$TIiU$|$âeLeHu?eeHNjU߸ew($|$]Ð҉׉ljtÉ׉eً USEPxU ؉$T$[]èXẁU1ɉ(U ]Þu҉}tAt rhl<󥋸hu1ҋ}EЇ߸e=‹EtӸeӉw[]eً 吐UUSãӸeӉveً []ÍU $t$|$虷Ne uJUӸe=vپe $t$|$]0 ULJӸe=vپe 0 릐UWVtt xSGuM1ɾʇ߸e=wtĄ1^_]Ðt=v߁Ą^_]ËxGxx||뉍U uu }}e uu}]2/ E!ƋE/ }u]ÐUSÛ E|E&U9uD$|D$$H¸I []ÐUSf E|E&U9uD$|D$$¸I []ÐUWVSܴÑu!T  T  T  ?UWVEEEE9Er AEu9v6uuE} NjE|$$U|tEu9Erː1^_]ÐUWV`E UMEEuىDžDž1+uML$t$E$UUT$L$4$U}vU<$T$L$Uy ?Et$D$$Ux91ɐt&9Mu99DωE9c^`^_]ÃEEME9FE9ƉUlj}M4$L$D$UH}u+E9sŋM9t*1ɋuE9Mu؋U1MuڍL u9Љ &Et$D$$Uxu99ȉ|>t&9v)v4+9v܉9z&9+9rg)9r$6@9']}v)9s@9~"q띋AxM1ɐt&9MuҋU4$T$L$U1ɋ9Mu~1ɍt&9Mu UWVSLQ}EЉU(EUM)‰U܋UЉΉE؉MԋMỦ $ƋEE܉$EUЋ zMBMЉER UAskE܅tDUMԉt$T$ $UmM؃t[U܅uȋE؅tMt&EEUԉ<$D$T$讌,t&t&BfM؅ɍvfM)MEEUЉEMBL$D$Ẻ$TL[^_]Ít&E܅uMEԉt$L$$U~uVWmE؃tE܅u*U܅ҍvEUԉt$D$$U~BMt$<$L$um!MԋQWMԃm냍&MEԉ<$L$D$ʆUUԃmUԋUԃmmfE܅}MUԉL$D$$U~)mE؃E܅u0t&MԋMԃmϐt&EEmu;}rQUU}E؅6E܅EUMԉt$ET$ $UEMԃmE;}sUE+UEDEȋUEȃU9xUWVS\UE à ‰EwU U}_d E1` ;d je5U>E$ȖM >E>MMEUME EUMM UEʉEĉ9‰UȉEsUEȍU9EwUʋM EEE $E hEEЋUȋ<;}tML$EĉD$Ủ$EċMЉE1+uuUȉƋEU}|$$T$ÈEȋMM:;}uEUT$M̉$L$蓈EE9E UUXUT$ML$ ED$U T$M $e[^_]Ð$U,EЅҍBHd $` Eu2Eu&}ftp}fu_EfuWE&M E $UE$e[^_]Ít&EE)čD$#EEE륋ED$UT$ ML$E D$U$'UED$D$ ED$E D$E$U$]vuu}4${f‹8u1]u}]Í>t~uEtҀ=f;ut&f;t&vu捶롍UufE7u<뀋EUD$FT$$guE|=t7FUf;u뻍Dt&0vt& UVS襓ZuD$=4$Z^tV)4$D$eP)ԍT$t$$D$蕅t$D$ D$$e[^]f4$e1[^]ÐU1 ]uìe= th ;p t*e= th x1]u]Åt҉$ǃp 뾐&U }}]k ut?u*e]u}]Ðt&D$=<$\u<$cEe= th EE0t-E|$4$D$eu E<=t,EE0ue= th 1NUt&Bu땍v'UWVSdu%e]u]ÍvD$=4$8XuNjED$4$D$ E D$뿍h 9 Zh Y xh  $h 9 mh  h  h  h  h  ! _UULt 1]Í&U]UWVSd utyBtHBPtvuыP @ e34$D$ҋBut$Sulh9ljEs f;}r4$vvP t$@ e3$Bf@ e3А+U$at$u@te35 pU P1Ћ$t$]ÐU1WVSïe= t 1EtSfOt3qTTfqutuG}t벋ED$$bEtxUUE@t& tzTAG,303e= t [^_]ËEu1ӍD$ D$D$Z$[E1%&U$聉6t$u`t!e35 pU PUP 1Ћ$t$]Í . L N 9UWVSùuEUMU+A)9vt&9w t9}쐍t&w~t&uG1ɋWEe= tuȋ,3 e3E苋03MD$E$ҋ031U䋋,31ME E@9}vU҉U8tu[^_] [^_]ÐUE]1)ÐUE]1)ÐU}} uuUEUU1u1}+EU]ÐU|$} 4$u}xxN4$|$]t&+MߐU|$} 4$u}xxN4$|$]t&+MߐU$]EΆÃUuu }}D$T$ 4$|$vM4$|$L$ UUET$覎xx.MAQ EMUȉQ]u}]EU+EUUM].utZ1Ҁ9tAǃǃD$ E L$$D$…HЋ]Ћu]Íe0Vt'ǃǃ]uP4]f9ƍtɉAV뽐USED$ EIEED$E D$E$[]ÐUU ]MðutW:u1҅t1ҋ]Ћu]ÍD$ ET$ $D$]u¸HЉ]Íve0Vt'ǃǃ]uP4]f9ƍtɉV뽐USED$ EΞEED$E D$E$[]ÐUU]΃Ãut*43D$E $D$]u]Í&e0Vt'ǃ43ǃ83B]u@4]Ív9ƍtɉV뽐U1S ѝe= tED$$:e= tE []É'U}1]u袂We= teD$E$Ie= t:]u}]Ít&'U1]u̜e= tpD$ ED$E D$E$e= t]u]Ív'U1S茁Ae= tD$E$ze= tuv[]Í5 1U N 5   * a zUE]讀cuu }N VF)ȉBE8gfff)ʍ)Ѓwi},e@eNUVF t6EEgfffm}E)UFUUF1~fe]u}]ÍvBBt&UM]Suɉ}u Q ytVquAEu 9Uv#E9EFljA1]u}]ÍvEߍimNA90%U 1Őt&e릍U$}} ]~Àuu]u}]Ðt&G wuWEMU GE~OU 9u~:_ N)ii)iAyŁ뽐t&UGWUtx EE䍶U<$T$Ay1+t&UWVSE}Ã}EPtH BvuM@e,eq AQ} AyL$E$zU 1tMA)u 1[^_]ÍvwS1we[^_]Ít&uF)ȃBv6v@1e묐US|[l[]ÐUVuimNA90imNA%90imNA1Ё90 1^]ÐUS&|ۖED$<3D$$%E[]ÐUS{ÛED$<3D$E$E[]ÐUS{[ED$<3D$$E[]ÐUSf{ED$<3D$E$RE[]ÐUS&{ەED$<3D$$E[]ÐUSzÛED$<3D$E$rE[]ÐUSz[<3D$E$[]ÐU]Enz#u$<3t$F]u]ÐUS6z<3D$E$[]ÐUSzû EU D$T$$ []ÐU]E yÃ}}uD$<$x_EUE?UwGf  ʉU1 ƋEuEأD]Ћu}]ÐUS UyГtE T$$D$ []ÐU]E xÓuuD$4$xFVf ЋU1ҋ]Ћu]ÐUS U{x0tE T$$D$ []ÐU]E >xuuD$4$'xFV ЋU1ҋ]Ћu]ÐUEU fB1fJf3BmBfB fB]ÐUE MPPfP QfPQfP@m@f@ ff@1]ÐUM4$u |$AfFAQy  ‰V~A fFfF 14$|$]ÐUWV u f~t]E1H@ ‰UNFfʉEUN Uu}f2MfA1fy ^_]FmFfF fF뇐UeS`vD$ D$ED$E D$E$:[]Ít&UeSvŐD$ED$ ED$E D$E$[]ÐUeSuuD$ D$ED$E D$E$[]Ít&UeSpu%D$ED$ ED$E D$E$k[]ÐUeS uՏD$ D$ED$E D$E$ []Ít&UeStÅD$ED$ ED$E D$E$ []ÐUeSt5D$ D$ED$E D$E$z[]Ít&UeS0tD$ED$ ED$E D$E$+[]ÐUWVSPEsÓPE|EEE}}$E}Uw4DF tt& DF uɉUZ-+EU:0MzEr} hEEEU닌le f҉MЈEu9u}EE}vJЀ v`E]M1:t$&}:u9Mw;MKMҋA4DP?A<Hɍ9E$E9EU9UUUЉE9uN} tM 1u؅e}"-&e1P[^_]ËEEEE UE3&:M3&E/t&}ʋG4DHtG<Hfu9uMU 1T+E~uQF<8H8tዅ18tHrL$@D$ t$DD$D $PwD@@Dd9@*|$D$T$ L$t$<$U:t~Jt$ T$L$ $qt$ E|$<$D$Zt ETăEu |XTE\D$)D$<$q~EDE}9MT~ B9uDGtDž`;XteDXNj\։v1;\+\);wu;LvXsƉ|$ L$t$$;DtT$ t$L$ $Otąt~MB9u m }tą ։ <vƃ m E u DQu BЃ vuF8p띍 D$ D$D$<$5Gt(" كD} tu >||HDžE E ye0t& ؍|'UDž<0YEDž4EM1u&tM9M9 ȃD$ 4t$DĉD$<$pMA8W;xB< v‹a<|u}}PEE9ljE +Tt$D$ D$T$$ڒMĉM  MEMPމt&9}uEƋP払9wJt@1)UEuPm u~7vtt&+Ps떍u胅 ,t&}L}胅 `EEFP)Љ1ЃEM1+`*D$ D$t$4$> +` E+Tt0D$ D$L$ $ +T E苕0}苵94D0EE艅D$T$ $F.VUUU+)ʍB1}me"كD)dd4/EDž`~,tdM9udx19d}苽DtčG14t&‰uJ,<}r(>UƋJ8&B< v‹a<v_t)MED$ D$D$L$t$19u كDt_ e"t0< vE م؋M 1م0Džh )h u艵pphP0 ‰p9ʉ+.B|$UD$ D$)$`}ډD؅1ɋ9L$D$4$*+`D$ D$|$<$p}|DžDž ;61/x <0tUtAx:(1t&x:uxxx0듋t6|:1|:uP|Dž`)Ex}DEuEu15DžT E1M)D$$|$(+u1ҹȃ+E9e"e"Tڃ 0ڃ F@E مڃ &UED$D$ E D$E$ÐUW1V1S(EE Ud5PUUEA< vUt U: MMEm|PЋEE~) uM Ef181땐t&M~  M E8E([^_]Í&REt6M:QtF&M:3MEuEEU fD$ ʚ;D$UT$$M EE1M}9‰vAt1U11M 1}1x<EM T$ D$UT$$~M EE1}9‰vtAAt1UM }E([^_]ø<ɍvU$]3Mu։}}rE)U}5ME  E}5}MD$|$E EM<$D$ JfE Mu#~dMutكD]u}]ÐE}BO9‰MG1҃GuEEt$<$D$lfكD늋e!pzME 3^GGEE  Ѓ EE :D$ D$|$<$M fEƒ EM u 1? EMD$<$E  EED$ GD$艂G5'UWVSlE0PKPEDž(Dž,R$$$3}EEP4f7DB u-<+Dž$Dž҈t01:t 5t&:u+$u䋕6E+J_t&0 uH90EEtuF4P 됍t&l[^_]ÍvMI8GDž p m p5EE Hl U PPL$ +tD$pt$<$DODž0,XT TX(}uD$HT$$L$ t$|$$K}^wi483DE@9H@DDž| )|4}@|PD ‰9ʉ@+@xHD@EZUD$$L$E7VUUU+)ʍB?e"كD1_ ɍ4wׅƒu_ +x/x45EDžtEE䉵~5xȍT4D9uxx 19x}苍 DŽAH5DžpQUED$ D$L$4$fJ,,<}?r((>A(UƋJ8B< v‹a<v_t)MED$ D$D$L$$聯9u7كD Ue"04uكD0< vE ]؋M 1TBD$ MD$T$+$Rc+U҉D1ҹ+E9 L$D$4$zZDžt5)tttMtD$L$ D$$@bUD DžDž Y(0tVtB:A1:((u0둋(t6:91:%(uPDžt)EDE&M+D$$D$+u1ҹ+E9'Dž15+hD$ D$T$$'`HuDžh Eae"+كDe"tD$D$ D$E$_UEjڃ 1ɉ ¿tكDݝ% ݅ڃ 0ڃ fUED$D$ E D$E$ÐUW1V1S(EE UT (UUEA< vUt U: MMEm|PЋEE~) uM Ef181땐t&M~  M E8E([^_]Í&REt6M:QtF&M:3MEuEEU fD$ ʚ;D$UT$$bM EE1M}9‰vAt1U11M 1}1x<EM T$ D$UT$$naM EE1}9‰vtAAt1UM }E([^_]ø<ɍvU$] ö%u։}}rE)U}@&ME  E}@J}MD$|$E EM<$D$ :\fE Mu+@MكD]u}]ÐEGEBM9‰GGD$ D$|$<$[M @yEt$<$D$orكDgt&e!HRME 6GGEE  Ѓ EH;vEƒ EM u 1? EMD$<$E  EED$ GD$iZG%'UWVStE{0#PEDžDžR$$}EEP4f7DB u-<+DžDž҈st0s1:t 5t&:u+u䋕6E+J _t&0 uH90 EEtuF4P 됍t&t[^_]ÍvMI8GDž #4u09804Džl )l0MΉlP4 ‰9ʉ0+0l40ENUD$$L$EBVUUU+)ʍB1e"كD1Y4vׅƒuk)ȅ҉hh4@EDždEE䉵~/hȍT 9uhx 19h}苍ADŽ@Dž`aUED$ D$L$4$`J,<}9r(>;"UƋJ8fB< v‹a<v_t)MED$ D$D$L$t$Y9u艅 كDtEe" $]كD0< vE O؋M 1FBD$ UL$D$)ȉ$.;+U҉D 1ҹ+E9L$D$4$VVDžd@)dddUdD$L$ D$$:M)|Dž DžhDx0tPt$HD$|$$u e<0t;$Ht DŽ$L1e= t D$D$$)D$$ƍlD$) DŽ$Le= t!$LP[^_]Ðt&e= tP[^_]Ð1e= tue-D=D$$D$lD$(WvT$D$$T$( DŽ$Lt&e-D=D$D$t$$4(T$T=&<4$HT$$8 e3t$$df$84D$ e3$eDŽ$H |$$($,DŽ$4$0D$D$$P'lD$D$$2'D$D$$D$'ǃǃD$$(D$$$i |$|$$|1t$te u9$t$|$ $t$|$ Y ƉljY ֍vW VS D$ð0Ӹ%eӋt&D$D$4$`u e<8t1e= tu+U1Ut&Et$D$U$ju M<tCE 4u΋MU E8t EMU [^_]ÍEM9MEЋE9t MMU [^_]ÐUVSuÔt>u[^]Ít&D$/4$耘‰t݀zBu9z/Bt>8/fu.9Ɖfr BuЃ[^]Ít&9rx/Put&`vz/Btɉ9fr1뵐UWVSå0t(19u092tЋRҍ&uu=vt&t z1[^_]ÅtEBA$1[^_]$ t00zB10벍vB0붍'Ut$u$~C1e= tXU e= tXȋ$t$]Ít&'UWVSY0$+ƍ$+Et>ǃ\Etw1e= tX`u>tPEEfD$:4$9ƉEs>,~t9}v<,u;}rM19:ƀ>u0[^_]ËUD$<$T$QIU9t9UvU<,u~E$)ЉD$t‰t<$t&wv iuE܍t&EEԋM܋u i|U9҉uO}}:tu=MԸ \:t&}뛃t&捶E}uct&'UWVS贾ix3VTt4E t@E D$:$JXx[^_]ÐE Tu0tӋU9tt&vtM9u3Et E4D$ e3$E`\1}M}U!1}Ћ}}!1}!1}!‰UEɉUE>UEU썓]UUtE]UEE EЍ]Ut Eԍ]E‰EVEE ~ }Ѝ] }ԍDȋE }D$D$DT$|$,}L$ |$(}|$$}|$ }|$}|$}|$$@x1E1}E1}1҃}E1}E҉E EċE܅[]MMȋE؍]M̅tE܍ E]EE̋Nu g]E ‹ET$ U L$$D$,ET$D$(ED$$EĉD$ EȉD$ED$ẺD$D$2 3E4D$ e3$v$4T$T e3$+E B$ьvɍ]EEEEZvM(Eȍ] EEȉE]MĉMMM[]vE E U܋E܍ E]Dt&(E]EEE]MĉMM]EE]UUxX2 X 3 X2 UED$ D$E D$E$DÐUED$ D$E D$E$)EÐUED$ D$E D$E$6ÐUED$ D$E D$E$)7ÐD$@@HD$%<$聜X|>XM֋<AF)t$|$ $P9+|9X|9}vlM̋@XEE)ċ|$#@Ѕ6D$@dL$D$<$(>@$)҉huF~BD$D$ U$|JC+|9w>||AM<AFt$|$ $P9=>+|9(>$|tKh~AhD$ L$u4$|B+|9=|lt& $V||b;M4<AF VFT$)ЉD$E$Q‹F+F9+|9|d؍v9xRQ WXƉYZЃ[\$q ]^A@D_q`AOA t @AA@At@I‰D@9D0MDDž=~1p #F)čD$#40DžO t&+|9|MA;A=%uF||}Z)EQt؃ډljDž N< ƅ 1ƅ t& )9tt*+DžH@)ƅ"t FD  $$W')t /1>~BD$D$0E$|9+|9||9U<+BFt$$|$P9l+|9Y|}hh)!}ԋh$E҉uE61Dž)čT$#h$}L$ |$t$h$d)P0'uRPtHPD$ D$U$|+|9||8M<AFt$h $T$P9+|9|tKPtAPD$ L$u4$C|+|9m|h<$s ~BD$D$0E$|+|9||-U<+\BFt$$|$P9+|9|R-!B$@EET$D$}<$a‹d7|/D$ D$S~D$$U;UB<t'Ѕ&0D$@ |QdD$D$4$9Dž<dll8<D}l,EuE&)D&DDžP)čT$#l,EL$ DD$t$l<$y@)t$uRttHtD$ D$U$ |-+|9,||,M<AFt$l $T$P9+|9$|tKttAtD$ L$u4$X|-+|9|Pvl<$fcvIЅQ$D$@duDžDžDžDž,ƅOxD ƅN  ƅN \uF<t"E| QD$D$4$6Dž}hUB;B+%MA||d0ЅQ'D$@Tdt؃ډljDž ?t$#E<$d| 8#MDž DžDžDž`t&``|$ t$D$$v>C `9~0wѥ`R0)čt$#9W|$4$L$)V>9( .|va=t=t=t&u) >/DlODDOS>DxXDFDlp)ĸ|$#΃DTUMBEĉ(EEEs9w)ƋE+l)DžPpt&(L$T)L$T$ <$D$upbOhSq xXFhL)ĸ|$#΃UMBE܉ EE t&E9w)ƋE+h)DžLt& L$)L$T$ <$D$zuL"DžD#vQVkS;UB;B*-MA||~Bt$D$ u4$!|+|9D|1UB;B-MA| |xU9DžDžDžsUB;Bg-MA||@?UB;BN-MA|R|~Bt$D$ u4$|+|9|1zDž|94D$@4$蟯 u4$C?!,UD$D$ T$$膰}-lxMG)čD$#lDžP,|$T$ L$l<$l+H $MD$T$ L$$ͯEԅh}~KG)čD$#hDž$|$T$ L$h<$Z8d|RdQ8{dMdA;A6}G||w4$<Ļ ^d8DžDž Dž(fD$ D$,Gh6Gh/D$ D$SD$ D$,AhAh+4|d8骿4uQd<$ <$;hVDždDD$ D$-ƅ lD$ D$Tƅ V<$d T<$;lDžPN|df鑾D$-$!kv$=l$ D$-$݊'&D$-$踊fD$% $蘊(fD$%$x¸fh$z 2D$ D$wD$-$,_vD$ D$TJD$+4$AD$ $ى#D$ D$-~D$$Q D$+$葉۷D$ $s齷T$ $YJ飷T$ $?鉷D$ $!kD$ D$TCD$+$6D$ $ΈvD$+4$谈XT$<$薈'<$D$u>鿶D$0$W顶O $D$6逶D$0<$bO<$D$(AD$0$ه# $D$踇D$0<$蚇UWVS 7oR0xF8t E䋓4D$ e3$ҋ4 [^_]ÍvWHBBuGH@OHe= t)돐t&4|$ e3T$U$t&u(D$$f Dž4W@huGh脮 铰訮 l 萮 TUS E @5OD$ED$,$@ []ÐUWVE 1}B<}v'&x)τt9vE 0u^_]fG1Ɖ^_]É'UWVS Q4QOt yf1GO 9~OGEEL$D$ ED$$?t W G G E [^_0]ÍD$L$ D$GD$D$G$W O+WGEW҉W t9wщuDd t&uu{҉W uG E [^_0]Ít&G Wt>D$ D$T$$Y G0[^_]Ít&QB҉A0 [^_]fUWVS$3MTEUK$% $.ED$& $,ƋED$% NjEu+uF)čT$UEEUt$D$$% EȋEEt&mU9Uw{EB< ʍAЃ eA%t$4$)EtE1΍<t&DD umU9Uv}u E$d1Ee[^_]Ðt&MuamEC4$S 4$0EE벍D$ WD$mD$$$.t?,uủ4$3)EE1΍<DD uučUE܉UEET$t$$(t7E@D$Ẻ|$$fE,fE.뻍&'UWVSdU EE0BKB у$qe5@H$@0E p @@,<}V$&:@@4Dž EvUݕ$fE<E PlCDPv}U BuPt Epc$MuD$ L$4$;}2e[^_]ÐDž DžDž}(۽<$k<E PlCDPEfe5Jq,>u B@$ɉsB@0bf@@4v1Ms M A @  $1 0EPXB;B+Bk uĀXM A K$uED$ t$$;E1MA;AaUButt&\CE~+vE uԍPH9؋MЍi\xDž0Dž4 Dž8]t&wD$EčT$$;u-UЉ44uԃ0GD9|ԋtGD$DD$ D$ED$Eĉ$pWUЍrDfD$EĉuЉD$E$uЋE4D 8T08u}}%Uȋ2Dž< u <<}<tًD$+4$YUuu] ð$w.T3t>T3U  U1]u]eD$$…҉ tT3돐UWV1Sb $LEE} D$%$&8U1MUMUMt$$T$ L$TƋEt9s UE܃t9v MU9v1Et*tEMD$)Ћ D$E$EE؀8tE9CƃL[^_]Ít&EMՐUWVSE U M U #RA uge5x>@H$@0E>ujD$ ,D$؀D$$,t&e5x>@H,E>tMt} ҉w  Uݕ$>\< } WlCDPu\CDžPt > uD$ L$4$Q;}Ĭ[^_]ÐU(۽<$yC xƋ@$E p t&1( M A @Q y 1 0EPXB;B(B uĀ M A % ED$ t$$;t&1MA;AUBuot&݅$"<DžDžtI E PCDP݅U܋ݝU ɋBj]t&ۭ<$@DžDžtI E PCDPۭ}}ЋEIuU u܉ E1zAD$ 4$D$L$D$rM U|1yAT$D$ D$4$T$nh9vA&900w틵ЉEfff1%=~-Dž|ɉy0uʍvB0t+9}'<88Ct&UD$ D$ T$4$klMЉ̉&ჭ)ƅҋzu֋} w ++Љ ) M y05 }D$ t$<$s9"t&M A @ M}WXB;B 0B} GH' EPXB;BBM A u y0 ~ uVXB;B B4ɉ p uMVXB;B B~y+;O 1t21MA;AUB9u΋+7 U BH= uVXB;B B҃-uNXA;AeA+ e 1tFtMA;A7 }Gt9 uɋE @ a@0UG? uD$L$4$^;It&u1u܉ ЋU E||1zA4$L$D$D$ D$hM U1yA4$D$ D$T$t$kM9ωv0900w)<}E%Dž@Dž1{Dž`xƋ} @$E p |C v|C2vBDžDžX=@u-@DžvED$ |$$ut&1E p 1P)fUB;Bi0MA&$t&MQXB;B-Bt&uVXB;B+BfuVXB;B Bf+KvDž@Dž)DžDž)xuF;F -UBUB;B+MA9;:Dƒ0 8&Ή<9_]0t8lat&l_<8@0|whEPXB;BBt1$p$UBp9s1MA;Ar‰D$ $ICu&} G f}G;GUBDžƅ1zD$ 4$*&D$- $D$ $BD$+$BD$+4$踟D$-4$PBqD$<$6BD$<$BD$+<$QD$-<$AD$- $ËUL$$D$ $A둉L$4$ОD$ <$赞_D$<$KAtAMt$D$0 $?9L$4$P}t$D$0<$j뽋UL$$ D$+$@L$4$P‰D$ $@P v EPXB;Bs@BuMD$T$ $jUL$$;뷋UD$0D$$i4‰D$ $? T$4$b}G;GsUBi‰D$<$[?UE tUB U<0]Ðt&Ue WVS] P41u FDB4DM U 0%EEI MER U'M(}<$}+m &؋U 9BMB1\CMUEPtxEE :EM A @E1tSEċ 0EPXB;BBE uƀ}EȃP[^_]Ít&M1MA;A%UBEuӀ}tUU$] %E$$EeV$Ƀ#Gu"f@tsv]}t&U̅W|$D$ E$E9}EEȃP[^_]fM A E̅|$D$ u4$q9uEt&<$t&S)mV$Ƀr8Gu4t&@tsv} ؍&M A΋EԋI ҉M܋FEfEI€eUEЉf Ѓ Et } u FEԍED$EЉD$E$EuuVXB;BBEzu @$F4 @$&M A9M|CUMg|CUMJf|$D$ U$YdEE̅MMQXB;B,-B&E#&E̅-uVXB;B+BŐt&E̅uVXB;B+ B땐t&EED$EЉD$U$ EENuVXB;B.BM EA9E}̅+ED$ D$u4$$‹M A+E9]URuF;F!-UBUB;BI+MAUB;B MAx|$D$ E$buF;FUB3‰D$ $>8L$U$qauF;FUBD$- $7Et&D$+4$D$-4$7D$ $7D$ 4$ȔD$+$`7tL$4$虔D$4$/7L$4$h+ED$ D$E$aD$4$6U ED$E D$E$!aÐUSÛ E D$ED$,$` []ÐUSED$ END$E D$E$^[]ÐUS ED$E YD$E$er []ÐUS ED$E D$E$ []ÐUS ED$E ÎD$E$ []ÐUWVS@ESPXB;B%BU B E@= XE x0vwE @ ]U EEBE 8uEPXB;B.B}t~E E}f̃)ҋzщ7u9}w(v}t6E9}t&7EPXB;Bf0BuEE@[^_]Í}ṽ)ҋzщ7u9}w(v}tE9}t&7EPXB;B0Bult&EPXB;BsIB}=U EEEBt8EPXB;B#BU EB EPXB;Bs'BU EB @EPXB;B+BU EB EPXB;Bt-BE Ex0EPXB;B0BEbt&E P)EHXA;AA}EEPXB;B B(Ut$$Ut$$PvUD$%$ՎNgUD$'$贎}FUD$#$蓎(%D$+U$rlUD$-$Q|UD$I$0}D$ f뙋UD$.$UD$0$*(GЋ Dž>WЃ w!t&B:WЃ v㉅9&&?4m&F)čD$#9GZ?,&BZwTDž<DžD BZwTDž<BZw,TDž@|@,uF~Bt$D$ U$ hY5+9M$A3EPXB;B7B{k,t$MA<&t-8"}Qu8$@TS}%<$T$h{%F)č|$#DžXEEuED$ t$<$L$ :-),uRtHD$ L$E$ fY3+91UBFt$|$$P9+Dž9l,tWtMD$ t$E$Ve2); ‰X<$vBZwTDž8Dž@BZwTDž8Dž@BZw뢃BZ9 EPXB;B2%BMH8uWɉt؃ډDž /DžP rI(DžP + 9"t$t^,DžHHH҉H)Ƌ"$t FD(  0P =0(t N'H~BD$D$0M $a +9@-}GFt$ <$L$P9`+9MDž 8U wDžDž(Dž0DžDž딋Rd B$l@EET$D$}<$k‹tD$ D$SdIЅw(dlD$@)(DžpDžtDžxDžDžxr_ƅ Wt|$Džƅ DžډHɉd ֋x)Ƌ… ˆt tFD| p  pY|t t!~BD$D$0M $^+9T)UBFt$|$$P9+9\E@<t%dvЅn&dlD$@ QD$D$ 4$LDž@NjEeDžt DdIЅydllD$@4tDžpDž|Dž=;ƅ -t ƅ )Љ;xt0)DžtMQXB;B<,%BdЅ&dlD$@Tpt؃ډDžt vT%t$#dE<$½r$}Dž` Dž\DžhDžfddT$ t$hL$<$hv\3 \9`dx0wѥ``dv0)čt$#90|$d4$D$h>9d'``TE@8EEU<M 8҉} $ ( , 0 4? ȋP ЅEM uWOEЉUԉM؍EЍMEL$t$}<$褳+D$ D$,3vdIЅ[!dlD$@< S }<$T$ݍfF)č|$#DžEEED$ ED$<$L$~+)uRtHD$ D$U$~W+98z#MAFt$|$ $P9+Dž9tWtMD$ L$u4$V));‰<$)T3dAEA,y,)čt$#t1ҐЋlA$@9Q,wt$L$E$$+9D$D$ 4$\DžNjEDžDžDž$Dž4DžTxDžP 11DžP Džt]dv"B$l@EET$D$}<$‹u4 e3T$Ut$$Ћ>Dž2 8t&؃ AQ Džp |txt ttHD$0D$U$S+9>MAFt$|$ $P9+9+/D$D$ M $R;+90 (t$t HtHHD$0D$U$5RY+9MAFt$ $T$P9+9+HD$D$ M $Q+9@DžTXL{zE    v1ɉu艵 4t3t)$  Lt  a+ nƅ XL{zEt L t t\ 1tɉut+t!$NNjt t )ȉ34$b" 4$ƉD$4$ODžE8DU DžDž(Dž0dIЅ<dD$l@DžpDž|Džƅ 1XD$t|$ D$t$$c Njt+t! $Njrt e$‰oLDž1TXD$D$ T$t$ $4ɉ t-t#<$ L0 #$‹ \dE9hCh}B)čL$#GFV$L$4$T$ 0;sGF t Ft N,tuV$F(뫋Džit&&&tf 9rt~=<fNv&&u>.fk=t=t=t&u) >9``  <$D$(DžXM> <$t$(DžDžQVcuVXB;B:-BuVXB;B-Bx MQXB;B-B7'EPXB;B9-B>~Bt$D$ U$H+91v<Tu?DžDž(Dž0_~Bt$D$ M $_H+91/ $ )lj 4$m)ƉljbUBFt$|$$P9sdlD$@DžpDž|Dž]MAFt$|$ $P9t&tt&:f؋uF<fD$ ~D$D$$@{Dž1DžDžP *fȃɉu쉕 gvȃɉu֋t&̃)ҋщũ)ҋщuȃɉu&ȃɉuoEPXB;B+BEPXB;B+BME]}]dЅ5dlD$@׉؅EЋpDžt MQXB;Bs+B8DMUEPXB;B+BD)uDž EЉdlD$@  0)EDžDž(Dž0 4$ 4$聥8pEPXB;B BMQXB;BW BMQXB;B BMQXB;B Bt . CDžat CDžXdlD$@DžpDž|DžFpЃ w:BPЃ w4BPЃ vt $ ɉVDž?4$ u4$~DžXjىDž,DžP ?<$u EEMҀM  xu | ω}  ? ȈEE VNEĉUȉM̍EĉEED$T$M $s4$d f4$gDž}EEEU}  x | σ  ?  ȈEE ЈEE VNEĉUȉM̍EĉEED$T$M $p<$Džt<$/s<$DžX<M8\<E?pDžpDž|DžMqXF;F F?DžpDž|DžMQXB;B 0BxEPXB;B^ BO?dlD$@m$: G0DžP dlD$@xA0ƅ @x4@,t<7Dž(xv@0Džƅ $ G0DžP EPXB;B0BrMQXB;BmTBI9?uVXB;B0BEPXB;B;T0BxuVXB;B 0BEPXB;B. 0B\Lu 4$4$D$ $ОD1DžX4$ i8@$ :mIdmOC]]sU $D$M $׃ t&D1Dž6OCy7@P4@,t <tDžeQ8EfzuD$ D$K~D$$Fk $L1D$ D$DžDžhDž\IdlD$@DžpDž|DždlD$@f$18O4$9$}WXB;BB/>Q-D$ D$SD$ D$,6DžpDž|Dž0D$ D$-5T$U$$DŽDžP D$ D$TuD8u<fkT$M $DCD$0 $&CDǼD$- $Cg驼$lD$-4$B}D$ D$-L$4$BGLD$+U$Bg+D$ $lB L$<$RBT $D$2BӻD$0U$B5鲻TT$M $A鏻D$04$AgqL$U$ATD$%U$Al3D$ $tAQD$ D$wD$-4$?A]D$-U$A鿺D$+U$@鞺D$ U$@u}D$ $@_T$ $@9ET$M $@"D$04$c@tD$+U$B@D$+ $$@ŹL$U$@2騹D$% $?銹t&'U적]辒suΉ}ljt~D$$IjDžx~tx~]u}]Í&~($G<,$}ԉt~DžDžƅDžt$D$蓴3҉|~x~}Ef?xYGHe5p~;pt:Džl~1p~e= t GHpGHp~p~BP p)~-GFt$T$<$P9Dx~x~f?xWHBBtf|~~E䋓4D$ e3$Yv4|$ e3T$U$t&GH@OHe= t)u)x > Ƿ o  ΐUeWVSN uh}  ~F/4MуN4AFp$@(8Eȋ3.uEufUMlEEHDžDžPDžDžDžDžDžDžDžDžDž`Dž |H%VҋA4DP oPDžl\l\PHjH<$$`l<$T$D$|Yh4gDžt&Uf:x6ыRHBBu$AH@}OHe= t)eMtU 2!Dže[^_]Ít&}G;G ;MlAPMt&lG4DP .lt-}G;G)MlA볍vh vHDžƒ0 HHJу0 wBу0 v$DžDžEA~<.dH&;l6\DžNHVHDžf'tIu^*quހ*t1Itހ'u⋅ DÍ&볍&PЃ Dž&BPЃ vf7Ee5@H;pt=Dž1e= t bMAHpqH@dք"ddHu4[cCnhh02t&|MA;AG8UBPB4DH uh7tUPD$$%-@4$%D$ D$ED$x;u`Dž\@Dž hIDx!|3N$'2 2DBuF;F|U8UlBP`Dž!DžDxlUu*Dt 29 /\l}&x`D$|$DT$ $Vh<1h2TH!Hv2$ &. .BtDž\d0!.36$dB<%3 3BtDžd(h<qO}G;GLMlAPl%l}D$<$讼)@DžDƒ}G;GFKMlAP)pV!t 9,\l)l1UB;Bc)UlB\VyW"!,2R$~"!, ,LBDž\d!h 21)-+ƅA8n#it 0G(`ƅeDžhƅ ƅSLHh9dgdPl-)ll)UB;Bq2ulFP1ld)h0 $h8DOQ҉85&h8>9uā8C8h)čD$҉h<$T$L$!nhVDžS-P@Džl\D2 \dƅ:^udƅHIw|$`Dž`1@󫋕H<]K<-Cf`H<]<-`HǍ&0 w/; s?fO9 pL<p` p>uUB;BK}GL<;KLL9pT<C<)ċ`|$tp`<$D$T$j`B4DHϋ9p` p 1)h4<p`k$;hL/LNLpfUB;B}GL6vp`CƉ)čt$p`4$D$T$3illjL9_ N9s9D$E$9r㋅V)p )<lH ]R8f`ƒH8w1`)9pp70UB;BFulFtlA8M0AEle!l*UB;BuulF\ 4$%D$ ET$D$x 4$%D$ D$ED$.T(h0G4D tϋMA;A)8UB뼋`<+<-l(Ux8B;B5ulFl<nlz8#h1<i_lz8h1<l%luh 1uF;F58UlBl)`0?\MA;A50}lGPUM\EE@lG4DP gllE&\@D$DT$ L$$uMuh7KfUB;BM8AEtlUu2!t&\ 9x\X~ >UB;BulFX\<$lF1?C‰)ċ`t$+`|$4$L$o`T$`DžDž`d$l%h47x!t6);\tD$$tltDžDžI#Pf8PDžl\UB;B`>ulFl1UB;B=ulFl $腸h 1h<7DždG΁AP1tt&D$&kD97wȋQ|1D$E$貦-LU$D$舦>!7"N $i p _B|l`HH-uF;Fe48UB1P)%`}G;G-UBыF89}lGlA8PPtaPUPB;BO}G9ω4>u5S&Pl>9+t&h>tz9úC׉Ѓ)ċhL$|h|D$T$ $)V|h`hdhd+e:ֺ899l9>//PtNUB;BA.}lG;l>ulhҁC‰)ċhL$dZh $t$|$^T9h`|$Džp`<$T$L$ TDžuF;F18UlBPM1XEED D`l8 0 \\lh0*9P!E);\,D$$_MA;A+*0UlBDlMXD$ET$ L$4$!t \:9$\1#MA;A"$0}lGPKt&lUB;BulF`Wl8 0ul!c\ 9J΃;)t$$]t֋\\-t +D$LD$ $p*UB;B ulFPp\%!VlA4Dx  u?lt\ 9 \~ t`l MA;As MlA\C $Aluߋh40\"!g);\KD$$V7*p~l MA;A 8UlB믋 $%D$ED$`9uS t8[Cf$Ӣlh41#)9\D$$cU}DDNj.c `0}G;G&MAP1)tA8Ɛt&MD$ $}9r㋅W)6lD$<$t^` 9ljDž`Oщ 9l x?tUMA;AMlA;ltl9 lsztuD$4$|G9 s<ƍvUD$${9 r㋅ W) l D$4$\` o9L ,0ll9pA`1p)lh0p` $葋lih,QN $l0h"ɋO9lpt@&lp`ttp8qxUB;B`ulFt@ƒ;l9pD@C@`ȃ)č|$҉tp`<$t$D$i/`N  )MA;A!0}lGFlNppҁC‰)ċ`|$tp`<$L$D$X.`c4$El$)lh40<$<\$D$:\1U $蟇l> $胇l"PFhOFh7\D$$910UM`\p$`D@<$L$c-pFD$\t$$J1҅~1D$$V;$u+D )ċt$T$D$4$B'\T$L$$&':`t9pTltlMTD$ $tt9s=}D$<$t9r㋕t)TpT +t<lE $lh(t`D\XD$$L7tZ q\DDžک 0)\\Dž锩$較lh0<8tDž UB;BsQuFP`D$hhDžV$uh47oP@\|$$5\ $蘂l*h41hT" $Jlh  UDD‹ )\D0Dž镧4$轁^<$衁l@鰴<$腁l$PܳPUB;BscMAH?9׉lu(H\¾D$E$1p鬦$Ԁ&pf닉$v賀lh\D$$E3鹳PFt 3$3&Slh0o$.T$w&M؉tEEL$<$ED$]Ƅo4$1;u|$<$B1҅ ЉƉ1(}4  $,D$%E tB4T$ $D$~_MƄ4 th8D(Dž 00ɋ0O9l00xUv8UlB;lut:tjMA;Ar $Z}luh N 9w h0-lUB;BulF1)$9<$΋ ։D$L$/"4$"|lF$|l\D$$.黫${lL<${f2f<$s{Jh477$B{lOh40<4${lz<$zlhDžp47醧$zlh40鿼$zlh40ü4$Nzh41 $zlh41UMA;As0}lG $yluዳh4009v{ltl}D$<$h90s;D$E$h;0w㋕0)?l 0 l[lUD$$ h9$xlt&"h<1h47Clj)ċht$th4$D$T$'h-  9tL,9h,?uƅl-t l+)9lhg 4$(D$t$ª$xF0$L$=C)ċht$th4$T$L$lh lF8: 9h 7ƅƅ",C,Ѓ)ċht$th4$L$D$hCNjh)čt$th4$D$T$@h3?tT$9t>$h2$9uƅCωȃ)ċht$th4$D$T$whlUSE(BD$ D$E D$E$荗[]Í* ԠbUWVS'cBD$E$Ft e[^_]fM6E Fe5x>3@H0@4E؋EEfpM uDžDžxDžDžDžDž$Dž(DžDžDžDž,DžHD@Bt&4$,Dž,7R%uDžlpЃ tBPЃ w4BPЃ v$l$lDžDžlƋEA|F.v !t&$|хLƉ||u/[cCt&n&xx21 $t_t6EPX;B]-ux0x<2Dž듍t&x0tL$u4$GۃS؍t&؍t&؍t&Ef8r^}tU 2e[^_]fOGDž &'tIu^*Ju߃*t2It߃'fu⋅ DÍ&볍&0 ^Dž‹B1VЃ v2t&}WX;B9tO&<$t6EPX;BI)t_뾍94,Dž&t&x vDžUe5zH;wt)1ҹe= tRUBHpzHGLPHBBzUBH@JHe= t)yRQO@e[^_]Ë| уl||F|lp|o|Y|hK|6|stSt[a7}G<|C@Dž  MQX;B ?0 - ,+Dž\`v t 0 9 Dž  L1t&\0t0 0  0`90  @ %D$ ED$<$L$ ;}Dž%@  lxxP Džx8L!l.xx6x$() . .BtDžd x<!Dƒ ! lh.xxxN$((- -DB< !i,l2xxx$d$(35 "5LBDžd|Dž8^#IM]u#f]u䋅uVX;B^B8TM9X4f2-=9X9X:8Tu?(>!(t"t 9655MQX;B?8%MQX;BI0'1)9-+ƅx4$" n#,F&"x4zMQX;BH0|%)+Dž,Dž!l6+xx@,Dže@Dž~lp3xx,Džf0 w;|, 909`01 )EPX;B_`(4$q2t&Dž=B)ċ`t$=0L$`4$D$z|t&xP1`)9\\0EPX;BI0fE\` ,``1M)QX;B00Dž\t&@%D$ ED$<$T$諐ZgT$M $载M|$E$蜽0`%D$ <$D$ED$<%D$ ED$<$L$u lV xxf.tˋlL xxHDž`+-(vuVX;B%98 $nMx4$i<x$l x Ef8/lF#xxx((x4}4 e3T$U؉$|$ЋIE؋4D$ e3$}ѥC)č|$)0t$<$D$mw,L$`DžD$,t$`<$wDž1Dž $x7Dž1))x t&EPX;B56!dt&$2Lu=(>d(t:9~  1MQX;B9"8 MQX;B+"0 }WX;B!q ,iet 0} Džpe1P < hƅƅkh0 49, >EPX;B  )1,) h 64t4${;p # t0D$U$] 414t494, 7mH<$%D$ED$}u79}lxxt ؐt&9} Džk DžIx,h4, p9-t +49, >ƅ9tLk949, >ƅ49, >ƅt-lEPX;B%A1)#uVX;Bq8 U苍lEEPu9T2- 97T9TP1҅uK!t3x$PX19$$l$|$L$j`#x;PX/#$~MQX;B'0;Tv9/lMD$T$p $h !$19S|$pD$$$$&JB9;TB9&99t&}9t5t+|$E$ts9o`t$Dž\T$`4$L$_Dž97U$}xDž\xU$)C,)čt$҉4D$,4$T$_4$*49,r>S`t$DžD$`4$D$^Dž<$%D$ED$w9}lxxt9MD$$4(|DžHU$Ut$}1<$v<$%D$ED$#v9}lxxt8(!(t(ȋ)9tD$$]t,DžDžPl xxf,DžtEPX;BX888$a1)8~VEPX;B!  + $Mn, ,JDž45x<8t49, p>ƅƅmxD xx,C 0EPX;B 1)P ,Džpeѥ$ $D$) 0J c,$.}x  C)ċ,t$44L$,4$D$Yt$U$ N,|$DžD$,<$D$XDžlxC)ċ,t$#4L$,4$D$1XѥC,)č|$ 4T$,<$L$Wvt$}<$š&xT$M $\e l xx,Džl xxx$$:flxxx((f$D$(Alxxx$$lSxxx$$BfD$P1҉h, 4MllDD&lEt)llU(MllDD(D$P1҉lEt)llUullDDƋUllDD‹x,hDž 4t$D$|$4$SDž$!$Fx=D$U$脖 $'|$,D$t$<$5SDžUllDD‹uVX;B*<<}< $nf1) <~.EPX;B    <$%f1,)  , JDž4uVX;B8   $i L$u4$ 蠔Dž4,|$DžD$,<$t$AQDžx4_1ҍD$prx j$x,,qJxDžppSDžpp8,t$DžD$,4$|$ODžo}llDDNj(SullDDƋ}llDDNjZullDDƋ$a<$ 4C)ċ,t$ 4L$,4$D$NUllDD‹mlEt)llulMllDDY}llDDNj$t$E$UD$pL$$4$4$ $˙Yѥ$ $D$):0J1ҍD$p}WX;B lD$pT$$ $\$U$D$P1҉UllDD‹?lEt)llu$1ҍD$xMllDDXMllDDU$ xPXD$$ 0x pXLU$zD$$1^(|4$.C)ċ,t$T4L$,4$D$ K3x)MllDD |$u4$軍 $XE}llDDNjx@Dž8U$f$D$;t(C)ċ,t$.4D$,4$T$I 4$Ix']D$ D$>D$$xT¾|$,D$t$<$HDžt$D$|$4$HDžxPXD$$0]x$ pXT$M $4^$)΍D>D$ $ $$)΍D>D$ $W $fxHDž8 $ $&鐿e44$謒 $蝒D$$Rt(MU$B <$/ $4t "3$ x |$$.kɉEu49d0|$$0"UtE:|$$,444‰E1d<!Љ444|8,p9<1t& t 9 u |9'G0,7G EPX;B  (1)4EPX;B  tY<$苏?| 4v T$M $蛆UxU$! n -t +h|9t4 , xC)ċ,t$t|L$,4$|$B,oU$V >x<@C)ċ,t$t|T$,4$L$B,|  B4'|9,<5| 4$o;p|9tFp,7ƅƅ|$4$t@C)ċ,t$t|T$,4$L$@,]fC,)čt$t|D$,4$T$@,|9tp, ƅU$4$ $ً $ƋC)ċ,t$t|L$,4$|$?,3xPXD$$t*0x pX 0Dž鳴]D$ D$ xT $蒊U$|84$i隽U$WU$AD$$(XMQX;Bsr0tBT$,D$t$$=Dž%xL $n1,)u1D$,|$<$L$^=Dž w ݲEPX;B@@@$n1)u+t$D$|$4$<Dž@~D$ |$4$`l4$|$D$>D$ &D$>D$ $Ɖ׉T$`x4$|$D$>D$ D$>D$ $Ɖ׉T$x`|4$|$D$>D$ D$>D$ $Ɖ׉T$*`M4$|$D$>D$ ?D$>D$ $Ɖ׉T$`M4$D$>D$ |$D$>D$ $T$`U}}ETuD$L$4$ms\<app\fED$$q농vD$ D$DD$G$fXM$T$L$dL\<0tiWt\=ED$$EM11t01UWVSĀE>ut E8fUE}}4$Ȕv,|/u%&BxLeEVHU;Bt1E1e= t FHUPFHEUBH<E D$ED$ D$$f)fx2VHBBu"FH@vHe= t.uat&]ȋu}]Ãfx-VHBBuFH@vHe= t.u $訾 12*U2떍L2ڐU(]ö}u7f>xLeEVHU;Bt1E1e= t FHUPFHEUBH<E D$ D$ED$$(fx2VHBBu"FH@vHe= t.uat&]ȋu}]Ãfx-VHBBuFH@vHe= t.u $X 0*1떍0ڐU$uu]}訷]f>xJFHe=E;xt1E1Ue= t FHxFHEUBN<ED$E D$ 4$D$&fx-VHBBuFH@vHe= t.u\]ȋu}]Ãfx-VHBBuFH@vHe= t.u $ /6/뛍/ڐU$uu]}hf>xJFHe=E;xt1E1Ue= t FHxFHEUBN<ED$ 4$D$E D$%fx-VHBBuFH@vHe= t.u\]ȋu}]Ãfx-VHBBuFH@vHe= t.u $غ a.6.뛍|.ڐU ED$E D$E$ÐUVSúX4$ED$D$ D$D$ EE4$D$ D$D$ E4$MD$E D$ D$$Ĵ[^]ÐUWVS UM[BEA A$EA A A A J0 Mw9rz7 BPЃ v&E <)AE t MA E@ @U<*b0 EMAE8.EP UH P MH E0ǃF<.E}}썴&EщPT3 MAA,A7E@,t&Uz$UBzzE [^_]Ít&BEM0 vUBE 0fEH EU҈UE@0ԍt&M MEH M@EUB 밀MUMQ 렀MUMQ 됀MUMQ ؊ft&<$WUUAB$U9COEM@ Et&E<*E0 vMt&BEM0 vUU0 wGƋMEx94BPЃ vt$zE@ UE?vEUP 7luMEUB 7OMcvMGUQ 7EFEUP W7U&뾍v?ht&멋UB(Uz$<&J,*M B,J$UEBvEMAD$%$GUBE [^_]ËMA(E@(EE@(MA(E@(UB(re}M0A(VU׃0 wU}Ept&7 BPЃ vt#<$uUABU9Ct&MA}RfM UJ M EEuEtwMA(&UB(MFA M9CƃoUMJ O7M U EPU E1UEB( ED$(D$M $ҋUB,UWVSUM軭pBEA A$EA A A A zOЃ w5BrPЃ w& BPЃ vt&G)4E t UB MA AU* HЃ EUBM9.MQ UQ EH MH E0ǃF.0}}fUrT3MAA,A7 E@,Uz$UBzzE[^_]Ít& BEUPЃ vEHE&tt&MI EE8fMA0܍t&M UMQ ȀM@MEH 븀MEUB 먀MEUB 똀MEUB 눋t&؍t&$VUUAB$U9CM~I MfMGUQ 7Eg&UpЃ vpE@ RUEvM*HЃ vU BEUPЃ vE&UMBPЃ wt&4BPЃ v[$RMFA M9Cƃ5t&EUP 7luMMEH 7WUO&?h&t&vMA(Uz$NJ,BM B,J$UEB6vEMAD$%$%UBE[^_]Íe}M0A(t&UB(MA(E@(EE@(&E@(iUB(YMuHЃ vbMAu&M UJ M E{t&Eu{EMA(UuBPЃ w& BPЃ vh$_UABU9CBUB(xUMJ O7M$U EPU E1UEB(0 ED$(D$M $ҋUB,UWVSM>} EEtvE@h~le<$xp)čL$t'1҄yo&x`9wEL$D$E$Uee[^_]fE|$D$E$ e[^_]fDEJHD$ #D$.D$-$wU}}]u%G8xIGFED$<$RHx-E%= Eȅ~ƍ%t& D$D$D$ "D$D$$V¸t 2D$D$ T$<$]u}]Ðt&UE% wEȅ@NG8$}rvfʐU }}]uؤÍF &fxLGHe5E;pt1E1Ue= t GHpGHEUB Ѓ ЉEfxWHBBGFD$<$PWhwT1e= tT29F$螾FP薾e= tT2!;Ht;Lt;Pt<$E]u}]É<$ft&v<$t&{EvG$t<$ uv<$h Et&농GH@OHe= t)unf?x-WHBBuGH@wHe= t.u= $9 ;T2T2뉍뺐UWVSM n#xJFHe=E;xt1E1Ue= t FHxFHEUBFF4$P0f>x-VHBBuFH@vHe= t.uc]ȋu}]Ðf>x-VHBBuFH@vHe= t.u $I ?딍ڐUWVSE螞Sf8x]u}]fU(U ]u}ÚxGVHe=U;zt.E1e= t FHxVHUE@FFtxU4$T$UT$P;Etf>x5VHBBu%FH@vHe= t.t&]ȋu}]ÐuD$4$luFF`FhvuFh&f>x-VHBBuFH@vHe= t.u $  U אU$uu}} ]U Ef8xVeU@HE;Pt:E1Ue= t UBHUPE@HEUBEU|$D$$0Ef8x5PHBBu%UBH@BHEe= t*us9t 1u Ɖ]u}]Ít&1Ef8x0PHBBu UBH@rHe= t.u $虘 " F 넍= ڐU$uu]}Ýf>xJFHe=E;xt1E1Ue= t FHx~H}E@U D$ 4$D$|$q!ЃtzFh~ FT$PxN1f>x6VHBBu&FH@vHe= t.t&]ȋu}]Ð} NXGWA,Q01fe<urf>x-VHBBuFH@vHe= t.u $  T אUWVS0ENf8xxPeUFHE;Pt4E1Ue= t .FHUPFHEUBFFumuND$4$e1ɃEtDf>xVHBBtv;Mt }tSv]u}]ËFhuFhvFFU4$T$UT$PE돍v1u 륐t&1뜍t&FH@vHe= t.uNhf>x-VHBBuFH@vHe= t.u $a 멍ڐUWVSE辌s1} &UfxAzHe5;wt)1ҹe= tMUBHpzHGM +E0t U u"M x$xkUZUBr)ƅ7E&t&$UMzrM)Mt$<$L$sEtƃ)EEM U9v29‰CU|$$蟊UM 9ExUUMt$|$ $}EpU?UMUMfx>EPHBBu+UBH@rHe= t.&[^_]Í$hu1vM둋eKUoUBr){fe놉Ef8x0PHBBu UBH@rHe= t.u $蓏@$4אUSEåD$D$ED$ ED$E D$E$[]É'UWVSE螉St EUBh3uE EuPt&;uCut$E<$D$~qEuot$|$U$t{Ep)uEut9Exp)$Jtt;EftUmEUuNjE+E [^_]fU)x }Et$|$U$zEUPE )EE[^_]ËMtU뗃}~UEUzED$U$cuD$U$_BhU(]öu}Hf>xPFHe=E;xt1E1Ue= t LFHxFHEUBHB;BB1 uTUf>x5VHBBu%FH@vHe= t.t&]ȋu}]ÐHǃ߉E ED$D$ D$D$H$H t 1Zt& ׃9@$&1/f>x-VHBBuFH@vHe= t.u $Ջ ^vאUWVS4$E u Ut'Ȏ0UtMEf9uEEU1”U~8UBFU܋D$UT$U$Pǃt̉$[^_]f~UBFt$UT$U$P$[^_]11 U勁u"ǁe= tZ]Ít&'UWVSù$u3E_EEe;t%1e= tt-9ƍuw&9ƍtfuu"ǃe= tE܅uUur$[^_]Ív1룍t&_4T$U e3D$$E4D$ e3$뉋F8$8z}e<_D$|$$tˋE=&U1ɉW1VSHUEu0tCxMVHe=U;zt.E1e= t _FHxVHUMALzFBFML$M$L$P;EtMf>x2VHBBu"FH@vHe= t.]ȋu}]ÐLB;Bs@ BO뜍t&uFD$$TpL?D$ $L뮍&Bhvu BhLBhf>x-VHBBuFH@vHe= t.u $ אU }}]k| uuEtFtvFhxo~1FX@ t'ttFh&4$*(FFUMT$U |$ L$4$T$P$]u}]ÍvF$utFhf|vvt~FfuVh~&vF+F)E UNf4$0avefU E]u}({ݕf8xx-VHBBuFH@vHe= t.u $iz $ אU]tq}uu }f>xFFHe=E;xt-E1Ue= t ujFHxFHEUBE4$D$دf>x0VHBBu FH@vHe= t.uv]ȋu}]Í 덍!ܐU]sÃuu}TED$D$ D$D$<$ۭ Et$ t$D$<$E<$D$E D$tƋh;ls]u}]D$<$UVSsʍX4$ED$D$ D$D$% EE4$D$ D$D$E4$D$ D$E D$/Ĵ[^]ÐUWVSEnr#f8xMQHBBu+AH@EHHe= t)&[^_]ÍЉEU aEPh\‹@,+B$)׉ЉE2vUM BXP0@,Q ADe<(U Uf:x0RHBBu UBH@rHe= t.u $ux<אUS E @pD$D$E$ []ÐU$uu]}oíf>xJFHe=E;xt1E1Ue= t FHxNHM}GM D$ Q4$D$T$!Ѓt|Fh~ FT$PxP1f>x8VHBBu(FH@vHe= t.&]ȋu}]Ð} NXGW A,Q01fe<upf>x-VHBBuFH@vHe= t.u $ t RאUuu ]}Xn f>xJFHe=E;xt1E1Ue= t FHxNHME@D$4$Ex_VXB;Bs[MMBf>x0VHBBu FH@vHe= t.uvv]ȋu}]Ð볋U4$T$zf>x-VHBBuFH@vHe= t.u $r 2V끍MڐU]möuu }}D$4$DxVXB;Bs8B]ȋu}]Ë]} }uu]Uuu]}xl-f>xJFHe=E;xt1E1Ue= t FHxFHEUBVX;BsPf>x4VHBBu$FH@vHe= t.uk&]ȋu}]É4$f>x-VHBBuFH@vHe= t.u $p y>댍ڐUEHX;Qs ]]U]1ku}Hf>xPFHe=E;xt1E1Ue= t FHxFHEUBHQX;BsMf>x1VHBBu!FH@vHe= t.uht&]ȋu}]É $f>x-VHBBuFH@vHe= t.u $o !;E돍<ڐUSiëHQX;Bs[]É $쐐U0E ]icuu}}} #fxNeEWHU;Bt1E1e= t -GHUPGHEUBƒ߃ UE D$D$ t$D$<$u51ɋE fxWHBBt7Ή]u}]Í uC1эGH@wHe= t.uv몍&e< mf?fx-WHBBuGH@wHe= t.u $m >끍5ڐU(U ]gãuu҉}EME߉BD$D$ D$t$ $Eu%E1e E M]u}]ÐE uMEōv1̍t&1e< u몐U$]EgÁuu }$hEf>xGVHe=U;zt.E1e= t FHxVHUE@D$4$H>tSf>x8VHBBu(FH@vHe= t.&]ȋu}]ÐFFUT$U4$T$P9Euf>&x-VHBBuFH@vHe= t.u $Ak  bU]eV}}uu <$D$4$E%=t]Ћu}]FFUT$|$4$P;EuɐUWVSEet EUBhbE EUu;EBt$E<$D$Et$|$U$6UBXU)u}tJUBX8@)$;EfUm}Uut&E+E [^_]Í&M)xUEFEt$|$U$UBXUE )E}E[^_]ËutE낃}~UEUicUT$E$1LD$$<;t&vUSEpc%~D$D$ED$ ED$E D$E$[]ÐUWVS$c}TM u Et',0UtEUt&9uEEU1”U~8UBFUD$UT$U$Pǃt̉T[^_]f~UBFt$UT$U$PT[^_]11Uuu ]}8b|f>xJFHe=E;xt1E1Ue= t FHxFHEUBD$4$9}tE4$D$I f>x1VHBBu!FH@vHe= t.ut&]ȋu}]Í joؐUuu ]}8a{f>xJFHe=E;xt1E1Ue= t FHxNHME@VXB;BsWMMBf>x4VHBBu$FH@vHe= t.ur&]ȋu}]ËU4$T$r f>x-VHBBuFH@vHe= t.u $e */N녍EڐUVu MVXB;Bs B^]ÉM u^] U]_Æzu}Lf>xPFHe=E;xt1E1Ue= t FHxNHME@LQXB;BsTMMBf>x1VHBBu!FH@vHe= t.uot&]ȋu}]ËU $T$ f>x-VHBBuFH@vHe= t.u $)d ,눍ڐU]M~^3yuLVXB;BsB]ȋu]ÉL$4$E U]1^xu}Lf>xPFHe=E;xt1E1Ue= t FHxNHME@LB;BsWMMBf>x2VHBBu"FH@vHe= t.uqt&]ȋu}]E$D$ f>x-VHBBuFH@vHe= t.u $b +5농,ڐUS\ÛwMLB;BsɉB[]D$$[吐US ED$E \>wD$E$ []ÐUSED$ EI\vD$E D$E$[]ÐUS E \vD$ED$,$~ []ÐUS[Ëv E D$ED$,$P~ []ÐUS[KvE D$ED$ D$$3[]ÐUS ED$E I[uD$E$E []ÐUSE [uD$ D$ED$H$*3[]ÐU uu]}Z}uFX9xt>ED$D$ |$4$FXx FXxFX8FXUPFXxFXxE ]u}]Í&'U|}} ]8Ztuu]Ћu}]ÍlD$8D$ DžD$D$4$,D$4$|1ED$ GD$E4$D$IE4$D$ED$3|89APAGUVSUY tpX4$ED$D$D$D$ a4$D$0E4$D$ D$D$E4$D$ D$E D$1p[^]ÐU ED$E D$E$1ÐUUM BXR0+Ht&B9Oȅu]Í&'UMVAX!P(pPAXp(AXP pPAXp QXB^]Ít&UMVAX P(pPAXp(AXP pPAXp QXB^]Ít&UVuFF4$Pt VX^]Í&Uuu]kW rVXBt ]u]fu4$P4uދVXD$4$D$ D$3 ]u]É'UVuVXB;B wSuu)VX+BGF0~0]u}]ÍVX+BGՉ4$붍UMQtuBX+PA)]Ðt&BX+PvU}} ]uTXow;ut]u}]ÐOx)t 4$2OVXB1ƍt&tVXB1먍4$0Oڍt&'USETnH0t@0P$t$[]Ð&U uu]SÀnt4$wFX@ $SFX@ FX@(FX@$]u]ÐUSvS+nD$D$D$ "D$D$ $¸t&D$ED$ T$$-[]fUuu]RàmFhuD$4$*FFE 4$D$R ]u]Í'UWVSEUR@m} E1URXUJB)~=U9ECЃZ1~&t&9uUǍRXB)uEtDD$E$t.m념t&։T$|$< $UB뵍vE+E[^_]fUWVSQil(T$U؉E܉$u؉EE܋PXJMB()+uEJ )9NjE)xwuC}u1B$U܋M܋BXU+PA0t v)Pu1([^_]Ðt&Ut$u}D$9$vM܋QXJ 떍vUEEu؉D$UD$$zu܋E+}NXQ)D$T$A $ VXJ ,U$OǸ;Ex]t$u܋UFXP$T$贶U܋BX@ $OM܋AXx uQX7B(QXJ EM܋EQX؋rD$EB(D$$߷U؉t$)T$$Ƿ끐t&Uuu]OPj~h|mtVuwVX;BF0Ru2FF4$P]u]fD$4$&t;]u]Ít&4$tVX;B|]u]ÐFhOD$4$}&;밉4$t&sVX;B7뮍vF$@4$fv.vUWVStN)iE} EvUBX@)~7M9ECȃV1t 9uMNjAX)uEtE$SuU)UE[^_]Ðt&ΉL$T$<$MQXǍ뫍vUuu]M`h~h|ut^uNX;AF0Qu:FF4$P]u]‰ÍD$4$$tC]uЉ]f4$tNX;At]u]fFh?D$4$}$+먉4$t&sNX;A'릍vQ 04$fvvU E]u}HXeLgq9v'ƋtNBM Jȋ]u}]Ít&}u^A Q}<$ OX븍Fp@;E A EEHX뭋y)E$JEtoU4|$BX@4$D$ MAX@$J}UGXPGX0WXEEBWXB$OXv}wt&$`JtދMAXP QXB B(QXB(B$uNX'Uuu]JÀeVXJtF<t6E BEVXBEuN<]u]ff<]u]fB $)%D$VX륍t&'UVSu?JdFXPtF<tBF0tv@uF$tFX@ $rIF$4$O|[^]Ë@$)%D$xFX@@닐UMQXB;BvBQX% = t ;Js]Ív!BQXBBQX UE]PXB9BCB+BÐt&Uuu]IcFXPtF<u $FX@4$D$]u]É'USUHucuE $D$'[]Ð} t߃[] U8uƋEU ]fHcE܋F U1+F;E܉}}~XF<GEW Ut]Ћu}]fU܋GEU$EtNjEt5VXB+BUD$E$D$TE$GEUED$ 4$D$T$MG +EEG G+EEGG+EEG+EEEGGGE+E9M4|9Es-nD$ SD$]D$$kvUuy)E܋UD$T$G $豭1fG+EEG+EEG+EEGG+EEGGUGW >t&)E܋UD$T$G$810U$}}]KFauuWUt%;EPXB+B ]u}]Í&U$Euwtƃ}}t&uEE UEE 9EEPXE B BE Upt&EPX+BT}}uEE UExWE 9E|.EPXE BEPXEBBE U.E UD$$ET$XtUBXP+P E UUBX+PE UVE UD$$ET$덐U1,]OD_} u}EEt(EE uE E ]u}]Ív% =vUJXUAyEq)Ɖ+A 9UB<uF2<9wE$E{Et2UEt$$D$EU$UBX@U)|$D$$EEUD$ D$E$D$DEPXB+EEBEPX+EEEPXB+EEBEPXB+EEBUBXUP EPXBBUJXyEuE GAUJXy;yryjt&EPXBEPXBjU E]NB]uu }}9EvkED$ t$<$D$0GXp GXpGX0Ut`GXUPGXUPGXUPLJ]u}]ÍЃE놐4$Ert&GXpGXpGXUP뤐U ]qA&\uu4$NStFX4$P‹]Ћu]Í&U0uu]}A[VX;BF;F~TEBхA,Q0A4Q8FXPPVXBD$BD$,D$ED$FD$ FT$<$D$W EFFX;PrTeT ]Ћu}]f4$8Vt݋FVXGvˍt&뽍B vt$z?&4$xNX e m&'U1(M]?aZ}} ɉuE}@XEHPMM% = +EEuu^EUt$D$$)ƋUt%MAXP@ 9t)T$D$ $E)]u}]Eu;EFt1M1Ґt&9uME}IXMUEPM)]@UB+EE9EU 9fy Qtt&9P: u)BEt&M|$t&FV4$D$)‰T$xNyt&VF4$T$)ЉD$PNFFFBBVX3t&4$ VXBBVXBVXBBFuȉ4$jFVXF FFUWVS@UN2M|MqX;F.EU@TEB;BVUBBBB MAAAAXH=UtzLf>xPNHe=M;yt1E1Ue= t FHxNHM؋E؃@L%=*f>HU$ehMAXPPQXBBQXBBBB uEQ NƔuEEvEPMqLyP!tuFLVPUBXP,H0P4H8uVXNBN D$BD$B,D$E܉D$FL$T$D$ U$R MQXƋEAB;BukEHP 9.Eu)FFuT$L$U$P8 Uu-M @[^_]f@[^_]Íu UteTƍt&EV,N0V4N8MAXPPQXBD$BD$,D$ED$AD$ AT$D$u4$V UƋBB BXMJ;PGeMT t&VHBBFH@NHe= t)~eTU @[^_]f@ t$ .u&E$MA$t$-u&E$eUBBBB GBFD$$P D$ ~D$D$$XuFL$)ȉD$F$F+FFFFFF e f>x1VHBBu!FH@vHe= t. $2UWVS4uN-H} FTEEF;Fu V9VEUEt&ϋUT$F UD$F|$D$ED$D$ FX,D$E$PEVF4$T$)ЉD$6HM))EEt}uBv }nVXBBVXBVXBBFXPPP u FXPP}҃4[^_]Ðt&FXP޺)ЉT$D$4$G뿍 ]rUE@$H4uP$;P(EЉ]É'U1]É'UE]@$@(fUWV(EUx$EEEB(E B,E B<wt e354$B ED$D$D$D$ED$ ED$E<$(D$֋UEEP(E$t"~t't&t(^_]fu(1^_]Ív(^_]ÍUWV$EUxPEBTEBXE Bhwt e354$A ED$D$D$D$D$ D$E<$TD$։EPTEt~t#t$^_]fu$1^_]Ív$^_]ÍUWV(EUxPEEEBTE BXE Bhwt e354$ A ED$D$D$D$ED$ ED$E<$TD$֋UEEPTE$t"~t't&t(^_]fu(1^_]Ív(^_]ÍUWV(UEMEB)ċy$D$/A(ЉA,E A<wt e354$!@ ED$E<$D$D$D$ ED$ED$(D$֋E+Ee^_]Ð&U8]A(B} u}|u3E;Hu]u}]Ít&;Lt;Pt؋URh҉Uuuuft&uM}IXM܃xEeUVHM;Jt,Ee= t FH}xVHB}tYE4$D$f>x:VHBBu*FH@vHe= t.u>E8tFhuFhNh뛍 ĝh빐U ]$V?u}$p#u1]u}]ÍvFHD$ $g#tɍlD$D$ D$D$4$q^D$4$|$ D$|$4$f<EE DUuu]#`>FXP;Pt;FX@ VXB+B 1]u]Í&D$4$FXh벍&U}}]u(#=GXP @$)D$ "t%WXB+B GX@<$D$]u}]ÐUuu}fxHFHe=E;xt-E1Ue= t uVFHxFHEUBfx-VHBBuFH@NHe= t)uu}]Í 롍!䐐Uuu}fFHe=E;xt-E1Ue= t uoFHxFHEUBfx-VHBBuFH@vHe= t.u)uȋ}]Éu}]Í 눍DΐUuu}fFHe=E;xt-E1Ue= t uoFHxFHEUBfx-VHBBuFH@vHe= t.u)uȋ}]Éu}]Í M눍tΐUUg : tB8x ]Í&e ]ÐU uu ]}}Ê:f>xLeEVHU;Bt1E1e= t FHUPFHEUBF;FsUʉFf>x3VHBBu#FH@vHe= t.us]ȋu}]ɉD$4$nf>x-VHBBuFH@vHe= t.u $?$ ȗ/넍ڐU}}]u1H9 fxJGHe5E;pt1E1Ue= t &GHpGHEUBUE3<$ lU E<$T$D$芃 t@h}tU$E$5f?x3WHBBu#GH@OHe= t)uf]u}]ÐG8D$5E7$t^/pro@c/se@lf/ff@ d/@@D$ED$ D$ $ED$t$$xvu<$LFuWXt ,U ED$ <$T$D$ G$4$vAf?t&x-WHBBuGH@wHe= t.u $! >2U(uu]}Ý6f>xJFHe=E;xt1E1Ue= t FHxFHEUBED$4$D$ E D$T$!Ѓf>x-VHBBuFH@vHe= t.uX]ȋu}]f>x-VHBBuFH@vHe= t.u $T ݓ2럍ڐUuu]}]5f>xJFHe=E;xt1E1Ue= t FHxFHEUBF;FsRFf>x4VHBBu$FH@vHe= t.uk&]ȋu}]É4$1ff>x-VHBBuFH@vHe= t.u $  詒>͒댍ĒڐU]64u}Hf>xPFHe=E;xt1E1Ue= t FHxFHEUBHB;BsOBf>x1VHBBu!FH@vHe= t.uht&]ȋu}]É$df>x-VHBBuFH@vHe= t.u $ q;蕑돍茑ڐU]A2u}$pnu1]u}]ÍvFHD$ $tD$4$R|$ D$ |$4$)o&EE e&Uuu]k 2F;Ft.FF+F1]u]ÍD$4$mn뿍v'U}}]uí1GW)Љ$D$tG+GG+GG<$D$Ih]u}]ÐUSv+1E$sq[]ÐU uu ]}}50f>xLeEVHU;Bt1E1e= t FHUPFHEUBF;FsUʉFf>x3VHBBu#FH@vHe= t.us]ȋu}]ɉD$4$ ef>x-VHBBuFH@vHe= t.u $ (/L넍CڐU(uu]}í/f>xJFHe=E;xt1E1Ue= t FHxFHEUBD$D$ D$D$4$fx/VHBBuFH@NHe= t)uXf]u}]f>x-VHBBuFH@vHe= t.u $f 4럍 ڐUS E u.D$ D$E$t []ÐUS;.ED$ D$D$$蛜[]ÐUWVSD-$dqDžPTED$D$ D$D$4$4M E|$ D$d|$4$3jU TE싃T$4$EED$贌Phdpl))9r7pt$$yUttD0Pĸ[^_]Í4$l‹E҉tFD$p$D$Dp$jU럍&p$N둋pU|Ut]c,}\uED$D$,D$D$ <$KE<$y@E<$D$tQ\<$%D\ED$E D$xJFHe=E;xt1E1Ue= t FHxFHEUBED$4$D$ E D$T$l!Ѓf>x-VHBBuFH@vHe= t.uX]ȋu}]f>x-VHBBuFH@vHe= t.u $ ]2聃럍xڐUxJFHe=E;xt1E1Ue= t FHxFHEUBEUD$4$D$ E T$D$讈!Ѓf>x/VHBBuFH@vHe= t.uZf]ȋu}]f>x-VHBBuFH@vHe= t.u $ }2}띍}ڐU0E]u}hf8xxJFHe=E;xt1E1Ue= t FHxFHEUBF;FsJf>x2VHBBu"FH@vHe= t.utt&]ȋu}]É4$iDtFf>x-VHBBuFH@vHe= t.u $ vo;o냍oڐUuu }}]5u1]u}]ËEt$D$E$b.9t1u ΐUuu}} ]ÊtAu;UD$$\1t31u Ɖ]u}]Ðt&1EPhu@hvUBFU|$T$U$P9tut&뢐U(U ]uu҉}EME߉BD$D$ D$t$ $jEu%E1e E M]u}]ÐE uMEȍ1̍t&1e< u뭐U]A}}uu <$Eu)D$4$t"]Ћu}]ËFhuFhFFUT$|$4$P;Eu뻐U(uu]}M~8t1]u}]Ít&E eFLF8FP@U:EFFD$D$ D$D$4$P$!ЃtUE8sU<:d U(E]à uu }}tY}}uMA +AׅySe]u}]Ðt&UMB+BqLyP)͍vUBFD$ t$|$$P@҉EUxzEP H)ȉU9}IEH UBBBEMALU!QPXUB+B 9vEH UPP봐'UVuFFED$ E U4$D$T$Q@x FLVP^]Ã^]UU]u}B ;BtkD$ +BT$UD$B8$襟׋UƉB+B11 u9EpLxPUB BB1]u}]Ðt&U+BljȐE эvUSEUm" D$ E T$D$E@8$ []Ðt&U]uƉ}@F" ED$4$RHuE%=tFVh~',FX]u}]Ðt&,эt&UċM t|&wFL~PE!t9|;Mt&tF8D$D$D$ D$D$L$$ci2EUD$ D$F8T$$ǝM3UĉE1 tL$<$iFLFPUD$ |$4$D$[3FL#FPt5UFLNh~ FFEąɉVLFP~!FLFP뻍Lqt&UV uFFE4$D$E D$R ^]Ív'UVuFF4$P^]Ð&U]uƉ}@FwED$4$RHuE%=tnVF $)ЉD$2h~hF FF FF,FX]u}]Ðt&EUĉEU t}x|}t&df)lj‹EډUF#UxF +xL8#M9M4UD$ L$x#E<$D$FExF F+F)FLVPVLxtV F Љ+xE}E9FP| }9ts xtV+xN9VP}iD$F8D$ T$$覚NjF +F||11  1}&,Q9FLr1&IxEF fU#E)xL$$f~ExF |~LFP1&UEU ]u}xUpñ);uru>E+E ]u}]Ðu~Eu?Exp);usŃt‹U;uGu|$$t$47!EEp뚋UBFUT$U T$U$P U )UEmE t$|$$U)u$E Exp)9u+EUVuF;Fs^]Ðt& uF;Fr߃FF4$PUWVSEcPEUE uM”EUMFv);u&UMQtA )9EE҉P PPPPPMtx )׃v1)ыUuBFL$UT$M $P8E)EEpLxP!tMALQPEt3uFv);u3MD$L$u4$EUPE[^_]Ð$밍t$D$M $)uEEpt& $5qu)u룍&uuE)EE[^_]ËU M)ME[^_]Ë@$t$EM!u4$M&U ]uƉ}UItjFLFPFFUMT$L$4$P<FDfuzNhFɉF FFFFF F]u}]ËNV9tFF)1L$D$ T$4$P@!ЃtNLVP\tU|$$T$"fFD]&jt&^vU1,}}]y.uE UE% = UBJ9woUBFD$$P :E1ҋH +Hv1)ЉE'?&)]u}]Í&)E҉MtH9G׃Uut"1fu ;UuuMuMUEP+uEt'JMR E)9wu 9u ~ Ftv9E 8 u+E EPHt&u T$ $t$UBuukt&)Et&$UE)9EfEUEt$D$$*)Et&UVuu 1҃^]ËU E4$9t U1ɉWV u}  8f)ƅ~ZNjE@<uVUt$|$B8$!yՋE M)UzPrLxȉuFLVP ^_]ËM)ωt$|$@8$ؙ뫍UE@8E]鸘&'Uuu]k VF $)ЉD$^F8F F]uE]ZU E D$E@8$D$̓Ít&'UEM U@<uUM @8E]|@8E]zU E]u}kMA;A<u~sLf>xPFHe=E;xt1E1Ue= t FHxNHME@L%=f>x1VHBBu!FH@NHe= t)U$MQAFQQ QQQQuF T$4$)ЉD$Q8~EEPMqLyP!tMALQPuF]u}]Ðt&u^t&BFD$$P fF$t$w&E$M]E 끍v e \f>x1VHBBu!FH@vHe= t.= $t&UWVS}[uG ;GGWEMuE E9XMGZEt&2WLOPhhl!ȃOG D;GdG+d\h`l+\`9U\` 9E l9Ut&f|h9E dOLW E +\WWWWPG'҉GEGFL$D$ T$<$P@U Mt&<$İ[^_]Í&GFED$<$RH<$H!GFt$ MU <$L$T$P@щ!ȃtG'WLG GGGGGЉʉOPİ[^_]Ðt&G+G)E UWLOP!ȃ U M1Ee &U Mİ[^_]ÍvE%= EE UU1fwO )ȉTE XU#T#XxE |U+x|)pt9t|09pv&U MDžpDžtx|GFD$ x|<$T$L$P@҉EUt pGFH8EWG )ЉT$D$<$щUM9tEU9pptU Mpt+EUE Uo&E]GFD$ D$D$<$P@щ!ȃWLOPfGE;G/4G t$'<$GGGGG GG)WW pщOWWЉGWUUMMUE'WPGLU M>1EE멋pWkt&Uuu]`VF9F+VuFL1FP]u]Ít&FFD$ T$L$4$P@!Ѓt FF뭍ve<t]u]Í&Nh~1FXP @4$T$)D$苬F붍t&)‰T$D$4$F U}}]uu J-tPGfW;W (Wu~t tt‹]u}]fO!O;O G OOGGGG ЋWhtiOaG<$)‰T$D$;niWG<$T$)ЉD$LvGGGh<$GG GG8t& e Gh~eGXP @<$T$)D$豪QWWG<$)ЉEW +G;EGE)‰W WG<$)‰T$D$5뢍'UE]CuuD$E 4$D$t$FFFFF FF]u]Ív1]u]Ív'U]uuVX,ED$E 4$D$Et]ȋu]ÍvVXLȋ]u]É'U$uu]}}:F<}U% ET$D$E $EEUV8 % t4$ ]u}]ÍFFD$D$ D$D$4$P$!Ѓue<tE$Պv1돃}U% ET$D$E $JE)&UWVSDE^Ex8t E؍e[^_]ÐUD$E܃$肶EƃeD$,4$)P)ԍ|$'}ȉD$t$<$E8<_tC<-t?<.t5<,t&t-<:t&t%_3EEEe;t%1e= tcf>xGVHe=U;zt.E1e= t &FHxVHU܋E܃@tA9GB4t29ƍu v9ƍP4@4fu$fxVHBBǃu"ǃe= tvEu ([^_]ÐE䋓4D$$ e3҃([^_]Í4T$U e3D$$bFH@NHe= t)34&F4&F4vU4uu]}H) 3ELEEe;t%1e= tPf>xGVHe=U;zt.E1e= t FHxVHU܋E܃@F4f>xVHBBǃu"ǃe= tUu]u}]ÍvE䋓4D$ e3$΍4T$U e3D$$FH@NHe= t),fUEM P0+H tt&B9Oȅu]ÍUEHP, H,H PP$H$P P]Í&UEVPp,H P,P$pH$pP ^]Ðt&UVuV;Vw>u/F;VF vV&VVVV1҃^]Ðt&F(F FFD$4$P tȋV뚐&Uuu][Ft]u]Ðt&tNh~FF4$P4uύFHD$FGD$ D$4$ 믍&'U]ÍUVuFF4$Pt FF^]Í&U UBFE$D$E D$Q ÍUuu]}} U FF4$P0t Et&u^FHD$FGD$ D$4$ FFFFFF ]u}]Ít&&UD$ |$4$D$G 렐t&1UVMUAFED$ T$ $D$E D$V$^]fUE U BHB<BB B BBBBBB4B$B(B,B0fBDBFt@@]Í&U]E Suu}}D$<$1whx|EGX@GX@GX@GXGX@GX@ GX@GX@GX@ GX@$GX@(GXUG\]u}]Ív'USE ÅD$D$ D$ED$$[]Í&'U1]É'U]ÐUVuM F;F v P@8t(FFL$4$Pt&^]Ðt&VUVuV;V vBFB&^]ÍvFFD$4$Puփ^]Ít&UVM E9s'z rtt&9s8 u)Ɖ^]Ðt&EE^] UWVSt)03E#EEUt;e;t%1e= tE)eUf NjEtOf>xIFHU؉E;Pt4E1Ue= t <FHU؉PFHEԋUԃBVh~Fu8~4VXB;B v)1D$4$P EE܉E܋Etx6VHBBu&FH@NHe= t)t&ǃ9v4EttKEt E䋓4D$ e3$ҋE܃0[^_]ÐF;FFFvǃe= t둍t&4T$U e3D$$'USë$b[]ÍUWVSy,3EEEe;t%1e= tGeUljf>xIFHU܉E;Pt4E1Ue= t FHU܉PFHE؋U؃B%=f>x1VHBBu!FH@NHe= t)ǃ9:v4=u"ǃe= t<Mt E䋓4D$ e3$҃,[^_]ÍvFFD$4$P !f4T$U e3D$$'Uuu }}]蕾Jwu6u!F+F GF0~0]u}]ÍvF+FGݐt&4$X뾍t&UEHQ0t9uf9Ѝtыu]t&Ã0t&]fUEU ]@+B UVuVtuJ+J F)^]ËJ+JU}} ]u蓽Hw;ut]u}]ÐWx!t 4$WV 1Vϐt&tV1V빍&4$Wt&'USEH0t@0P$t$[]Ð&U]ÐU]ÍU]ÍU1]É'U]ÍU]Ít&' /U]Ív'U1]É'UE]@4Ðt&UE]Ð&US&e;t%1e= t []ÍvQ U勁u"ǁe= t ]Ít&' ?Uǁǁǁ]fUuu]KVtt2E FEF Eu]u]f&]u]ÍvF $)%D$5뱍t&'UVSuϺÄVttFF0t&@uF$t$F$4$[^]ÍF $)%D$ 5F F돍'U uu]+t4$F$$耹F$F,F(]u]Í'U1WVSU̹ÁEU} EUvEH@9s7u)9EGwkt 1Ґt&9uU1B)uEt-MAFMD$E$R t mfE+E[^_]f|$ $t$螦MA럍UWVSç$T$U$[uW,O$UEG ))+u9)}UxWu3UUG(G0+W tt&)Pu1$[^_]Ðt&MEt$ $D$袪O$벐t&E؉D$EED$$O EU+UW$)ȉL$D$$YO$fFdE$GE܋UܸkExEW EUUt$d$T$ G$$3E܋MEdG$EG,EW,Uw ؉D$ED$E܃d$ Ut$)T$$訩뜍U(}}]uu EWO 9v&t?BGB‹]u}]fuaG$t(W <$WfBJ9t5O$$G$耉G,G(fW뱍vO뇍vG)ȉEE$׵Et[EUEG T$D$E$譨G $ֵUW EGEGUW(U9yt&vUWVS$E!eE荶ǃ%FhVHME;JKe= t Et8OVHE;Be= t EFHUPFH@u(u"F\VF V`)ЉFdFFD$D$4$P,}u!Fhv4E[^_]ÍvVHBBuЋFH@NHe= t)Fhv4뭍vCEt&*vEBt&t&'US6D$D$D$ "D$D$ $-¸t& D$ED$ T$$m[]fUVSu诳d~FFhtyF;FrNu7F0uxF$t4$)FF4$P[^]‰Ðt&4$F;FsF[^]ÍuxD$4$越hVt&t븍&uKD$4$vut&4$t&fFh&FhuFh&t&'UVSuO~FFhtiF;FrFu/F0uhN$t4$FF4$P[^]Ð4$F;Fs[^]ÍuxD$4$fxVt&t뺍&uKD$4$&u,t&4$t&k$fFh&FhuFh&t&'UWVSùE UEU}OG9s=u)9EGw[t&1Ґt&}9uU1}B)uEt}<$4uE)EE[^_]ÍEt$L$$Ew봍'Uuu];Vhuu2D$4$ŇFFE 4$D$R ]u]FhՍ))'( ((z(( ((S(S(8 G(k(I[(( (3(l#('(1'3UUJ;JvJ% = tJ;Js]Í&B"JB֍&UU]B9BCB+B Ít&'Uuu];Ftu $F4$D$*]u]USUåuE $D$w[]Ð} t߃[] U1҉4uƋE}~]葭FEE E܋F );E}FEFEt]Ћu}]Ít&EdE$Etυt)F +F|$D$E$Z<$FEED$ 4$D$ED$UE)FE)FE)FE)FEF F FM+M9U2|9Ms+nD$ TD$]D$$}Eua)MNED$ $D$|1t&E)F E)FE)FE)FEFF F]&)MN U$}}]àuuOUt%3UB+B]u}]Ðt&E$Euotȃ}}t&uEE UME 9EUE BBE UxfUB+B ct&}}uEE UuxIE 9E| UE B BEB BE UDE UD$$ET$tUB+BE U"UB+B E UoE UD$$ET$똍v'U1,]}} þ} uEt(E uE E ]u}]Í% =t:GOEw +W)ƋE9s6Eu E O;OvO룐GGGG볐t&zD6d9ƉEk$EWEt)Et$D$E$_E$GEUD$)$D$EED$ <$D$ED$mE+EG E+EGE+EGU+UWWEщGG GvUE]~3}}utdu Ƹ;u FU D$ t$<$T$E GG GEt>UwWWLJ]u}]ÍvE D$$땐E wGGfUU]ɧ~uuI‰D$E 4$D$ D$]u]ÐUSUE}2҉D$ I‰D$E D$E$[]ÐU$1t$uNlDH0,LAFFFP@F$t$]ÐUWVS账i 1ҹe= texEU썻L}1ҹue= t*U@9EuӋL]MU [^_]fe5xuE<t։e= tT?&UVS蕥Juuxe L֍e= t."T@9ue= t T[^]ÍUSÛ~cxe LЍ@9uǃǃ[]ÐU1]É' U勁 uHuǁ_| y]Ít&ǁ ]Ít&UWVփEtgǃWЃ )9v6)vJEv-v-9rU 12E^_]Í(ȋMҍv'U]Au}UR0z1҃t9)Ɖƃ~$UEB09Et1]u}]Íމ4$tЋ$t&tM)tu)ȃV0)DBfUEt&PBuDt]Ðt&]1]t&Í&U$]1}ljuUu5pFEu`PMEu'n1]u}]Í&9w9rύ&H!ȃtWtStN vtF@vt>=t6=t.=t&=t=t=t=bfFQW})Ѓ Ѕ7U}:ȉ 19tTA9Es-&vɍA;Et&)MEE89uˋE׉U܅U܉t&EDEtaMU:ȉ 19u0뜍&A;ED)MEE89nu & Et&uڋD9eڍ9vv'U0uƃ]號N}Uu]u}]Í&ED$E}ED$ D$$ 9v90wM닃P2L$E‹UD$D$4$T$ s&T$D$4$ǝN'UWVS褞Y(EԋH0UԍEEԉuЃ,EU܍E܋0gvE9x0UDgEPpr }vFFEFEVF Uu|VUFƒ<UWUwE)ƋVF J 94;p+~B Pw?Eԉ9x0EEEFEԉp0uuU9UEvFEtJFU؉BFP&UWG 9z ;xB POBGAGHvMԋuԃ0ȍ(&@ @9uL9EtEԃHUԃJJ0([^_]ǃH⋃UЉ4$UЉ<$9t;E؉BFBFPFP9t%GJBGPGPRRRRfU $Ö|$ljt$֋B1e= tLJLGv0e= tLJȋ$t$|$]flt&1ɃPwtF ƒGʉ땉눉뀍vǃc1Ɂw ǃ9t&ǃǃ UWVSdHx e[^_]fǃLǃǃǃǃ+42ǃLɉ@xeǃǃ 4>?\@T$LE؋E EẺUȉuĉ}Uu&E}8MuxAuxLuހxLfuրxOfu΀xCfuƀx_fuƃutLPt;1ɀ=ut&-=t&tTҍt&uE܀<=ESEt)Utи0ottǃe[^_]ÍMU$JH 4EP&&fw>vQu܍NjU8EUU%  E؅uܹ}u|D$ D$E܃$ ¸aE؅uܹ}D$ D$E܃ $ ¸vu܍^D$ D$E܃$Y ¸/E؅$uܹ }D$ D$E܃ $ ¸uܹ}D$ D$E܃ $¸>'U]ưu}ǃ U:AELDt]u}]fMA1e= tLD|PTǃHU;EuMǃ|ǃǃǃAǃ|}&MA&J8v= J[v0 Jnv#Jwv~P|Bʐt&9 MUDP TMABQMDB DUBEDEtIUz~??MOUDG y G x |뛍t& 돋UD@&J8v9 J[v, JnvJwv~P|Bʐ9dMy,MQ9t"B=vBBR9uދU $(,48<@B~Dt3u tee= tLB1t׋ǃfUEU ]qUWVS EU܋B0H@1EEEE܋TtfEBERu u׋EU܋uM܃(ƃ0UfQ 9tBR 9u;MuދM܋DEԋEM苋HeMH$MHMHMԉ)Pp H xUPE [^_]ÉU܋B0vU0]1uuxT1e= tL_@Le= tLJ@]u]fS륐UWVS贐i ||9Auƒ, $$EEumpMtUH!)։4$t+7E+uE|p1 [^_]f+EE농vMPu9- 1[^_]e 뚍U]q&uƉ}Nj@)׃  ʃu&)L$<$ ]u}]ËV$Wڐt&U$]æuƉ}MLЍ<!NjFE9Eu]u}]Ít&+uD$ |$4$1D$HtˋU4)ЃF+E;v뚐t&UWVSXU E;փEUNσ9 al;pWE@09E@E>U@3ŰBUE;D\ME9A0UD?M̃aE0PF VvFFpr F<>UBYL9EMI0EMԋUMB0EEԃ9EU썃ET MԉU,&EMA0MU܉PEԃ9EMԋUԋRUԋzt:+6VЃEuE܋E);EfUA)DA)9/D$ $uFZ+6uVF ;r  ;pB PEx'HrUBABHt&X[^_]fD>U;DbED`9FEUtX[^_]Ðt&P@ 9J ;HB PḾy}ǃMԋM1ҋE+EIDuM؍pu;u|Eԋx)pLD$D$D$ 2D$t$E$&Uԉz MԉyE)DE؋U))Bt&UB)NjVF J 9;p~B Pwmj|@;UX[^_][v<MMX[^_]FEtJFUȉBFP&}ЉFEp0fȋI;z2ŰBABHt&Iet&D$t$E$M $U!GD$T$M $uN UċB9E̍vGT$D$E$|uUMD 4$yŰ$] 9t_JMABAPAPO9tIJM̋ABAPAP9t3MȋFJBFPFP1RRRRRRt&U}}]k utcGPu|Luaxe<tw1e= t6|$4$e= t.6]u}]Í&%0떍&]u}]G&]} }uu]Y'U]E莆Cu}EtED$M $ҋ]u}]Ë}tUBu\Lt21ҿЉe= t5E4$D$e= t.5뉍u&;v=w]Ћu}]%t&Uuu]苅@t^1e= tL51҉td@u6Lt$$e= tL4]u]fe= tL4]ȋu]pe= tL4I]uu] t&'UWVS褄Y0LEE؉E1Ue= t O4E}QUEE0MЍt&}tE9E|bw 9t[U҉Uv 9tIV;UvEЍ #M)9Es#ED$ $D$Ev 9ut&E}uU19Uti EE E܋Ue= t*l3@U؉E9E܃0[^_]É&w 8E w[EUE늉 w nEw wEE~P|CUU[8UWVS4讂cD$D$D$ "@D$D$$ǃtyub]D$<$!Ɖt$ ww [^_]Ád=t&KvD$$D$D$D$ "@D$D$ $\tu)‰Uu*+E$D$t&T$$΍t&D$<$11D$D$D$ "@D$D$$tD$$|1t&UWVS 诀dU@EEt&1ҋMe= t9tWE苀@9Eu׀}e= ttpЉe= t#0E듍v}te= t 0}苓xe<E [^_]ÍLM7E싓d;~}F@>8&@ @9uL9EEHUЃJ0B0FHDFEUTLt)RM苃xQ0v)փre 1Љ}e= t /@e= t.E [^_]ùe= tL.LUE [^_]ǃHdEw&UWVSĀ1~} [E E ƒFU;UwNxEtt;F9, VUFuD- E[^_]Ð}wouE8LuEQ 9uB L2A HL9EtJruE[^_]Í&E&!E  [EMu8MFuKEUM0E؉UMEW&NjEtVUM 0E܉p UPB FE}'0M؋I 9M؉ME܋p @M;D}}w 9u M؉q N9E=K&z8UJ9щMr ;Fs2ME܉HAM܉AHEHUt&URUыQ9ru9Љu U܋MЉJuFBVBPEЋp E& w.z[UJ9щMYU܉RRu|f znvUJ4;M;EU܉ƋEU+uPP EP4E؉BB vBBL9EM EE42ABquOt&FEt&zwPv}MEtEU0f9wuMUM4vE}8tEu؃)ƅut&҅tF 9EЋM!NjE0|t&~uy|fMEI0Mԋq9ƉuuF2EELE܋uL0L9EtU܃Ju܋uL9ENf8EUrыRA +}9J ;H B PMyu؋UUFr BP V}wEP4vBBLu9EM EM<:NBuuyU %D$4$T$KduWvE v3EwEMLL19EtI놃nEeE ȋIzOUBABHt&EpEE~P|CUU8ULM9‰J0E‹u ЉFE)EMUQuU;E;EMt!9UR0UԋJEML9UU}ԋu+uOM蟱!‹E4W 9wU+uDG+EMԉ+}ԃyUD;HvHMy0w9u5EU J0E9‹E ЉG+EwAtuE uQx0@DAV0ABEUMԃуAuԉЃF EyMM؋AJ BP Q}vBBL9EM EEFEBM U$NM $U %D$T$M $`)ЉD$D$$Rw 9JMABAPAP^UuDP+MDM<0!υM}<$tEuEE҉t92}EP}t9:)‰ȉ1ut )Ѝ MċM:)E#E44$Et}tЉEċMĉ|E+EăA}EuԃƒVD D D$E$Jm$EȋEȅt&R11o҉utዃ$uĉEʋuUԍ7BPuEEU!ЉE}G}9}D$D$D$ "D$|$$PMNtBt*FAFH\4$C9t,FJBFPFP%VPRRUD BЃD$4$}#fD$D$D$ "D$t$$tIB;~;vruv0uԋFEERRt&Uuu];otq1e= tLhM1ɅxFD$L$e= tL>]ȋu]e 1]u]ÐU$uu E]Un:}Ew,vGe 1]u}]ÍFt҃t͸&9w߉wB EFUD2UD$U$1tA1҉EڍD1!Ѓ+}Ew +}EUBƒ)L9EMЃALEP ЋU BЃD$M $EEUBuSE9vDU荃L9E+M JMA EEAT$U$E]U u}]t&yMȉ9QcMЃALEP1#Uuu]{l0FuE D$4$D$]u]ÍUuu]+l}} FG߉E1e= tLK1ɅxEt$D$L$e= tL]ȋu}]f]}uE }]t&e 1]u}]Í&'U ]!kօu}HUE!‹Ut$ET$D$E$щƉ]u}]Ëxe<Ⱥe= tGM<$D$T!ʉT$e= t/rL9e= tLEM$D$L$^e= tL&EMTH4KvvvvEMDTAEU<$D$T$e= t/rU ]1iu}x<t2E<$D$ED$щƉ]u}]Ík뽐xe҉UtȺMe= ttE1TEEtUMT$ $Ue= t*1fL9UtQe= tL M|$$L$~e= tL UEDƉE&EU|$$T$(Me= t)v'UWVS(EgCh ƒE EFUUEH[Eσ}싐D9u苃M>T8Ѝ4 U!Ɖ)9ЉEt]D$ t$D$)}M $d M8}z+E;vU E ([^_]Í}}G}9rU9UUwPU+ULM9E u AuL1MM E ([^_]Ðt&u9~0LDuE9EEnED$M $gp9FyE } GBGBv5G B GBv$G BGBuGBG B &E D$U$u vMM䍃L9EM uE}GЃ AALD$U$t&E9E@ED$E$RED$U 4$T$VM L$}<$?u &WG 9z Q;xHΉB Pwu܋E܉΅B4G΋U܉BGP&eE  `vM $/E :vD$E $D$UXE9L}9 M OEF0+UP} t&E t&]t&}EEwt&E up1 <$\Ep;}tE܉ΉBGBGPGP}RΉRpUWVS bv}} UE 1e= tLEU0Ee= tLkE:UE R߉EUWE  ƒGe= tL UBua,UT$ED$L$(Dže= tLU 謽 [^_]Ít&ExuE}E9vxCU䍃L$T$t(ED$E<$D$oSEdf1EVt&U$ID$E $ [^_]Íe 1"D$U$1&'U(]`6{uu}E ƉEE =t>ED$E$хtUD$$T$RMlj]u}]Ðxe4Ⱥe= tF0EPLE9ƉUtE%@ +E9C‰EU4$T$[e= t.MWBu ;U GG G G GGGG fU1t&UD$<$T$K~D$D$<$K_&;EGEE &E1u 91e ;utXe= tL^EUD$$e= tLB[e= tL&UDe= tL]E4$D$.e= t.svU]A]w}}utE<$D$щƉ]u}]fxe҉UtȺMe= ttE1 EtE|$$ttUe= t*5yL9UtaMe= t)e= tL|$$e= tL EDƉENEe= tL EU|$$Me= t) t&'U$[Vvt$uu$t$]"fU$]E^[v}} uE苃t)E|$D$U$щƉ]u}]Ðt&}w]}u}]}GE苓xEe҉UtȺMe= ttE1T8EEn|$UT$M $tUe= t*Y 6L9UthMe= t)> e= tL+ |$E$D$ne= tL MDe= tL E|$U$T$Me= t) Xt&U $qY&tt$|$}u ݾu }$t$|$]t&U]M Ysu0u Bt]u]Ítt0ED$E $D$։…Ҹ tʋE1]u]ÐE $D$1ҍ'U,]X6suu}} t$E4$|$D$҉Ɖ]u}]ÍvFEHʃ9EUEG ƒEFUULEteUU1Ue= t  eMx |$t$ $UEe= t* Euvt44$1fvE0t&pvv]}u}]t&E9E<$Et$<$D$IE?hf<$`Ǎt&Et$<$D$HEUe= t t$$Me= t)v1e 4$1`1t&U $Uæpt$|$}u Qu }$t$|$]&UVSUJp$H11e1e= tLL蛶|AELDFFF |FFvDA D t'A9uD Duf $(dž0,48<@De= tL[^]É'Ue]Sànuux<tL1e= tKe= tC]uu]F8F 58V FtB r5B5vFD>9}rQF[^_]ÍE1EfED$U$>1[^_]Ít&U+}D$D|$$4돋EUD$)D$$3t&G4$D$Ef8Zt&UWVSF9au@,؉EF!E҉}M 4$|$}DD$҉Nj1tlME TB8B 58J BtA Q5AzzM rD ׉L$D$4$2[^_]f;+MU 4$DD$DGvUS E`E`t7t&tVD$D$$%$G4D$D$$%Ѝ`D$D$$x%먍kD$D$$P%뀍R D$D$$ %MU]Ít&'USFD^HtrD$ ~D$D$$肵H$TǃHX\`[]ÍU]CV^u}Ht]u}]Í&$躶x$Bt…1E֍D$$ѩHS$"D$D$$x%H$"t$D$$HLD$ D$|$$HD$D$D$ $TX\`DT1ǃDtD$\D$$`_vxGv<$낍'U1]}}uA?Ye= tPDXtrU <$T$ЉƋE .D$H|$ t$$We= tP]u}]Í&<$=됍t&U}}]{>0Yu1e= tPE D$H|$$We= tP^e= tPOTt=U <$T$Ѝe= tP!]u}]Ít&<$ =ōU1WVS}w=,Xe= tPTX\U<$T$U T$ЉƋE!D$H|$$UEE t$D$ D$H$jUe= tP[^_]ËE <$D$};?fU D$Ht$T$ $ U롍vE |$D$ D$H$TvPPQPմP P赴fPմP蕴P赴PuP蕴UE]U K;Vuu}}uvEEҸDЉwEg(G O$օƉGtIUD#EGG GFg(]u}]ÍvH؉ME됍v뭍UE]U :@Uuu}}u~EEҸDЋEGEO(w$G O4$T$UƉGtFUD#EGG GFg(]u}]ÍH؉ME눍v밍&'UWVS}9sTGEwW )UGDdE Ћ9ЉMG(t$G$$WEEE1ɉGUPEGuWDE!E~;UփUx%EJTt&GyM9M~u1t&G9MO(uGuT!9Wt.EGEEO(G [^_]Ív4$WEFUBG(u u4$W O(봋t&t$G$$W O(f뎍&'UEU @t9v;v@vu1]vÍ&]fÍ&U1ɉEPt)ЋR u]Í&'US7{R D$D$$N$D$D$4$t&UWVuVu@t&T$F$$V N(t%9U vE ;v-F(zuԉ$V N(uۋU u%^_]ÍE F FVF^_]WT$L$ t9Bt'BtB sY1ǁGuNBs?1ǁGu4Bs%1ǁGuB s 1ǁGttBt BtB)tD At. At AD sd1ǁGuYAsG1ǁGu1ρGu3H 1ѿs)1ρGu1ѿs1ρG&1_Ãt8t@t8t@t8t@_ÐL$T$:u ABu1øBÐUeS35N D$E D$E$_ []ÐU1҉W}Vu ODu^_]ÐT$D$1QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQjjjjjjt' Ht Ht H uӍB8 tH8 tH8 t H8 u@@@)ÐU1ɉWVSE \2M9EUE 2UU EȃAЉU1҃ <0EE)unth1tUEU|0F‰UU E T2EȍAЈU1҃ <0‹E EU)t01҃ 1}0‹E ‹tt[^_]Í&EUU0 wU0 vڹ[^_]ËU0 F뤐U]0æK}}u<$p4$01tt$|$$"]u}]ÐU]E 0CK}}uD$<$ƍ@$/1҅t0t$|$$"‹]Ћu}]ÐU ]!0Juu}D$D$4$t ]u}]eE8 UtUM9D$D$4$N$.UM9 uˍD$D$$qU:D&V8uWu狅=v+D΋UWVSXEÓ8U tJU} &t)8 !ƃu1?tX[^_]ÍtEX[^_]Í&u D$E$ E)EȃEE+}E+U;EBU}}܉UvMȉL$u܉4$UEEbE$UȉU}܋u܉U׉E91EUċM}+}؃ƒEE}EUMfuuȉ+EuD$D$EE$u9uCu9uvFM܋Uċ}::UЉϋMčDW89uwM9MMu܋U}::EUf}܍q8Du;MwẼ9E؋UEЉŰMME+E};EBE}EEԉE}t&UUȉ+EUD$D$EE$puuċM u9uȉMvJ}}U}}M:9uU}MċuD:vV8uW9}wMt:Uu܋}D:DuauDUf}8uCuEfE+EDEEEE+EEDE}}1EĐt&} vMdEE$ÍSî4@1׋$DЅ$ t' Ht Ht H uӍB tH tH t H u@@@P 8 tJ8 tJ8 t J8 uBBB9tJEщ[1@1׋$$ DЅ$t' Ht Ht H uӍB tH tH t H u@@@P 8 tJ8 tJ8 t J8 uBBB9tJEы$ 1$ 쐐UeS2D$ ED$E D$E$bV[]ÐVWD$ T$t$H։fʨ8g@N?8O@N'87@N&11ρGH11ρGH11ρGH 11ρGqr[1st1ρGuir;1sT1ρGuIr1s41ρGu)t8t0@Nt 8t(@Nt8t 1t@t @t@_^ÐSD$T$ L$u: u1[[|Vƃ y v'FJ9YFJ9KFJ9=FJ9/FJ9!FJ9FJ9^1[ËFJ9FJ9FJ9FJ9FJ9FJ9FJ9F:B^1[ËFJ9~FJ9pFJ9bFJ9TFJ9FFJ98FJ9*FJ8.9&^1[ËFJ9FJ9FJ9FJ9FJ9FJ9FJ9FJ89F:B^1[Ív' ;ulF;BuaF;BuVF ;B uKF;Bu@F;Bu5F;Bu*F;Bu }  8u8u 8u9^[ÐD$ 9D$fWL$|$t$ )9sssf֋D$_|tssf֋D$_ÐD$ 9D$2fWT$L$D$ ,׃tzItItuIiD$_ÐD$ 9D$fL$ |$t$ssf󥗉ÐUWV} UM)Љ9r5vڃ)Љ^_]Í&E 4v6ЃEzȋM+EƒWz^_]ÐWT$L$ 1&׃tzItItuI_ÐUED]ÐU4$u|$} ؉څtǺDP!Ћ4$|$]ÍvָDЃD$L$)t$TPtTPt TPu@@@ÐVD$t$ L$)< 0tZT0PtMT0Pt@T0Pt3s΃t80t,@It+0t@It0t@I@I@I@tIu^ÐUeWVSÓ*M 19Mt6r81ɍE} ЉUE}+u }uՃ[^_]ÐUeWVSn#*U 9UtEUt>p81ɐE} ЉUE}+u}t9MuЃ[^_]Ã1[^_]ÐU1WVU 9Ut9}1ɋw8E} ЉUE}+u }uՃ^_]ÐUWVE 9EtHEtAU1ɋr8E} ЉUE}+u}t9MuЃ^_]Ð1^_]ÐU1҉WVM}&t,E uEu:Euڃ^_]Ð1^_]ÐD$ 9D$"f|$t$1L$ u<v7tIt ItIPXlj֋D$ssf萐U]M> 'U }}uȃLt&2Gz}p}r x z}p}rxz}p}rxx  E7}rxz}p맍vt~Ef2tičt&EG똋2G낍vEGct&2 GEEG)t&7]u}]É'UWV U }Ѓ)ƉE t&EEMm܋M E܉UBMEEMMmM EAERMU܋Um EBME܋UI MMm EB UtAUltFEJmMft&E܋JMupUeMm܋E EM ^_]Í& UMMBEM0EEJU M܉E*U(]En #%U }}ul&BpƒEuqu؋upquu؉pq u؋up quu؉pƉMIM܋MHE܉U~mU rщu؋uwquu؉pqu؋upfEB‹@щE؉ŐB܃ P mU뚍B‹@EUE[t&BH‰EUM+B p ‰Eut&B‹@уEEt&BHƒEM؉t&UW]u}]Ðt&UWV U ME }ЃE)EЃP/t&UJ E}MMM Ɖw EM@eM܉E؋E EMEHMEMMpeEM EMEHMeM܉U E؋E؉}mtJU`fUtI H‰M@ U}EXfpPmUucMMm uw ^_]Ð H ‰M@EUE؉Љ}},‹@E؋rEU}+U}}]E uê!7t"txuE8t2uf]u}]ЉD$F$vtЉD$4$䐐UWVSt)!PEeUEEE0EEMUfU+UEUԋUŰMЋuM9M.}7u}}7DJt$E000}74EEE}EыDPtMM}9 8+t)}̋EEE}E&M9MũEut&U؋}@$MfU؋@$7vEԋ}MEEE0EU܉MfU+UEUUUMM9MM(}7u}}7DJt$E00'0}74EEE}EыDPtMM}9 8-t#}EEE}EM9MuEut&U܋}@$SfU܋@$7vUȋEă9}ЋUP[^_]f}܋U@0 M&fM܋M@01t&}؋U@0 MPfM؋M@01t&Ett&Et&u}6uUP[^_]UWVST Eu|U 4$U 9u1e5E x TE8DPt0y0 9} v<u@$넋e5xUEЉD$EL$$*x0DžDžpl9ft9vE +Dž|E D$+|D$|$*<|DPt0 0 U 9C9{0tEf DQt#00DPttt 9:;D@$,t&@$Tft@0W0@09:E PDQt#p'pDPtl l 9uk9s[E@$-t&@$U9U )‰*&+DžDvp@0Pl@0@$1İ[^_]Ë0@0E8b0@0xE +0;BDžEd`fU D$+|D$|$|DPt00 QE 90}hv DQt#00DPthh 99D@$,t&@$Nf|h@090@0&}fW DQt#ddDPt` ` 9"H@$0@$Wf+DM&d@0W`@0 @$00@04UWVSE 8VU :e5׋MEME0\EMDJt 00 Mt{DHt\ty\9UEM E9?_M@$JfU@$jt&U\@0ifM0@0E} E1?u6}u:E+} }}Ev2ED$U $EЉĸ[^_]ËEĸ[^_]fE$UE UUEԉD$E ЉD$M $e5EEpE0tt&MM)M܉D$D$E$E܅M9MC}9}RUM DEMȉEċ0xt&p EUDQt 00Ut{EċpDPtx tvx 9MEE9}pdM@$O&Up@$jt&Ux@0Ei&U0@0E &}ԋE9}ԋEU MEԃEUԉMEUt& EPUDQt 00UtzEDPttt 9Mu`mm9}sV}dU@$IU@$kt&}E9EUE)‰U})9}E+EEDEؐUt@0E&&U0@0EPĸ1[^_]ËE+E;EBEe5EEE`E0dvMM)MD$D$E$:zEoE9ECUMԋ} }ԍDEM؉Et& UDQt 00Ut~E̋DPtd tyd 9MEM؃E9MdU@$IU@$gt&Ud@0Ef&U0@0 fUԃUE 1MԋUԍ |MEl0hf` |T8UDQt 00Ut~l`8DPthh 9MU`YU@$Dt&U`@$gt&E9EEU+EԍDE},t&Uh@0l8BvU0@0|T8fMM뜋EEEEUEWV~(Mu )fQAVF9u^_]ÐUWVSI$H~M $CEt\EtT,1E}EvUMT$ $mUE)1EU 07 ;urE$[^_]Ðt&ǃ4$J)4,T$ D$ T$1$nǃH0UM Et1Ґ4*9u]ÐUWV1U 2;MEEEs4t&E}8}8Ⱥ+EΉE 2;MrыM1U  29MEEv/t&E}8}8v|Ⱥ+E܉ΉE 29MwՋU܋E9rЋUU}M9^_]ÍtNuE\t&;UtKF&tNu܉Ext&;Ut#b&t&?t&UWVHu4$U Eht&U 9uJ҉t%1ɐt&u)ȃ9M wE}u9u +E +DžDž@t9vDž9Yu9C;sVM:2ϋD2vW8;r9MD1:D΋D'&GV8u;w؋949H1^_]Ð+DžDcE +;BE+E Džt&9skM:2΋DfV8;rtVu>: D t&V8u_u狅H^_]Ð9>t&+DƋ븋9H^_]Ðt&UXMuE}u u}]ËE 9EwI}~UD$M $D$UE})Euu 9uuv1롍EU$Ej}u}}}E9Gu}ЋEUM+U+MEUEMȉuĉ}Ef}9}C}9}vFMUЋu:2U؉΋MЍDV89}wM9MMċuU}::EUf}q8Du;MwEԃ9vEUE؉UԋM9M91hfu}U Et$<$IE+EEDE븋E+E+Eu;E}BE+u}E܉EuE}MЋUM9MUvM}uuu}:>MUuDMЉvV8uW9}wMt:Uu}D:DuPuDUf}8u2uEHfE+EDEE9E71&EEM萍t&|EEWD$T$ ։fʨt)8@t8@t8@1sd1ρGuYH1sH1ρGu=H1s,1ρGu!H 1s1ρGu똃t@t @t@_ÐWD$T$ ։fʨtL8<4@t58%@t8@ 1ѿ1ρG1ѿ1ρGH1ѿ1ρGu~1ѿss1ρGuhH1ѿsW1ρGuL1ѿsA1ρGu6H 1ѿs%1ρGu1ѿs1ρG*t8t@t8t @t8t@_ÐU}} EU]u ED$$Ƹ t&UT$U$T$E0U1]u}]ÍU]V uu4$^t$D$ E D$E$A]u]ÐUWVu }Et&<$E|uE^_]UWVSU tk1&$|FutF<$U  tBMt2ΐt&T$$uM 1E1҉8[^_]ÐUWVSd u4$!x<$Eɉ uU  t";EuE;vyuuދU :1҃[^_]Ð뽐U EE ]u}U ED$$t7E UD$T$$eE0U]u}]ÍvU$EUWVSHEC tE8u 1H[^_]ËUE UԋUEE$EE̋E$ UUEEUEȋ}ЅE9Ew-E܅uE1$mEUEU it&D$$p9EvEЋMЅtEUЉD$$輻LU+EЉUED$EЉ$UUEM‰֍t&EUuwUUċU܍}tU9UE6D$Eĉ|$$yƋE$EtUUE$eqt&U}Eȉ$UD$ESEUD$$t#+EUD$E$dủu U$MUD$E$9Et&E܅-EЍU}|$$D$u؅UԉUR& ЋU+Eԉ|$D$ Eԉ$D$EEEUWVE Mtx}t&7U:Uu}tu}=tuuU}tU}=tOt-}&u&9ftvu1^_]Ðt&tMp7uE^_]Ðt&=uv獶U ED$E D$E$uÍv=t&tҍu1ft UWVSU E{0 81҉Ut3<$0D$=<$p)utEuՋU+U [^_]ÐE<$D$7D$U1WVSuñ tGvEU D$UD$$NjE$薧ptwM1u))uu [^_]Ít&ҍtuv랍E U|$D$$2EU t$ D$ET$$%띍UE t$ T$UD$$pUuEu }}D$D$$7tEu}]fu}]ÍU(E]U p }D$EuT$$}}U$WEE$IU EU׋U}DED$$uƸ tNUU$T$UT$jD>>=U$T$UT$LEDU2U 1]u}]ÍvEU D$ET$$ՐUVuD$/4$v…ҍ@Dƃ^]ÐUWVS,E{0 @ P$҉ x(P,H0p4 @8 5 }<$NjE $פ9 1 4a )čBL$)čGt$)ċ|$,)čD$048DžxU1M $(6Dž<Dž@DžDlDžHDžLDžPDžTDžXDž\Dž`DžtpDžd/t@Džhɉ}thfX9`A`@`MPP0h &E@Xu0@8@ @UMu\(E}EeUMME}HHE(E(U҉Em +ufN҉U~M M1M:t (D:Du9w9uGt)똋T9\\\F||~EhFUM1:t'&$D:Du9w9uGt)눅:UE18UUt$t&(LT8шu!9wU U:M1E 9EڍD>MM8Mt(I&(0LMډ:M9wEM8EUE8Eju?ƃ)&1M܈U 8ʈMt%$LT8шu!9wU U:M1 9MEL>8Et!Tv$ED8Eu 9wEM8E:Eu?ƃt&u?ƃt)fu?ƃEڈM8EUUE18Eu(UD0E82tM1ҋ(EEDEUEE)ЍE9r\}䉽(R}܉$EMLUMItplt.h9dt d)΋x9e[^_]ËLP,0<4t~Np 8PptY;tM+tH1ҋ+|}܉$|1ҋ+U}䉽(UE18Eu$UD0E82tM1ҋ$EEDEUEE)ЍE9r.EH9@@PDžXUD9<D<DžTLu@MD9M@@pEu;t>PfH@`PXz<}D}HK)M uL$4$ӓ,$4$7&4$,,l,Džx׉048<DžpD$ D$D$k$ 1)>D$ D$D$h$ۗ\DžpTt1U!p'eDž {4 EEEEԋpEEEEpHE1}duXM9MmUȋ}P0P Ћɉ}}u}9}8UMu/t&@t y;}r9}PMPME0E9Em}ĉL,L ɉpE}u<9M4Uuu!Bt ΍N;Fhh~E܅xTrU܋M1:t#vPD:Du9w9>u܍Gt)됅 1MU 8ʈMt%PLT8шu!9w U U:M1E 9ED>MM8Mt$E&P0LM:Mun9wE܋M8EUE8EXu܍?ƃ)vu܍?ƃtM}&EMM\XXEED \HMDL,`MUMEEL}z}u9u}Љ}}&E9Em8 ɉ|tϋxL@|9Evext,MLx9uu1@8ʃ9|w⋅L|x|L7E9E EM8A<AuOE\}Ћ,9DME9uЃ}Euu봋ELE9EvVEȅt(MLuȐt&9uu1u̐UB8ʃ9w⋅LMEȉLyUvUDž`Džl}Lll9``}p}荴&U胭p8}P4L9MMNtO81ҋMLǃD}Ѓ9։u܋ELlm9peDžl}8G4PWL9MMtS81ҋMLǃ v D}Ѓ9։GuۋEL``\,u:DE9sVd`lEll릍UMLfUBMLwl}9l tEUt8}P4L9MMtO81ҋMLǃ$$D}Ѓ9։u܋ELlm9teM9LsDEL9u8LEM9D UE;vUML늃}tu9uvEu틍XE|t&E9Eam8 ɉMtҋELEE9EvNuԅt#MLu9uu1uؐ8ʃ9Mw勅LEEԋuL7GvE9uu9ur }D7UdUTTe[^_]ËUL]9EFED$M L$u4$Te[^_]É<$$&w$µXXXDžd\X$讵CULjUE18EuPUD0E82tM1ҋPE(EDE(UEE)ЍE9r<+h}h)1ߍJD$ D$D$$踆JD$ D$D$$莆UEU4$u |$>v9IJu4$|$]Í'UU4$M|$u t vIJuffE4$|$]ÍvU EU uM}EljssfEu}]É'U4$Mu|$E |$4$]Ðt&U4$MU u|$ЉfE4$|$]U4$Uu M|$ψfPfXJuE4$|$]Ít&U4$Uu M|$ψfPfXJufE4$|$]ÐUUЊ@u]É'U M Uu}Ή׊vuEu}] UUVM E1I0@Ju^]UUM uE}UΉt v@Ouffu}]Í&'UE 4$M|$}ssf4$|$]Í'UU VE֊v@u^]UUuE }utu@GJt uGJu}u]ÍvUEU u}HMΉF>uGFuu}]Ív'U1҉4$u |$Ћ}MOIxuOE4$|$]fUMU 4$|$Ή׊v8u u1 r؋4$|$]ÐU uMu }}ʉOx B8u Fu1 r؉Eu}]Í&'UU MЊ8t Iu1ɉ]fUU MЈĊ8t Iu1ɉ]UU MЊ8tIuI]ÍvUU MЈĊ8tIuI]ÐUMVE 8DքuB^]Í&'UMVE Έ8DքuB^]ÍU uU }ut ׋MuF}+Eu] U1U uu}ESэYt׉u[F}+Eu]Í&UuU }ut ׋MtF}+Eu] U1|$} 4$uSэYt׉t[F|$+E4$]ÍU4$U |$ut ׋MuN1|$4$]ÍU14$u|$U SэYt ׉uN1[|$4$]Ít&'U4$U |$u׉Mt ~pu14$|$]Ít&'U1|$} 4$uSIˉ׉t ~pu1[4$|$]Ív'UU E,M]UUu uu}} UUUUUwfEQ&]Ћu}]ÐE$U(QQf1Qf1UQQɐE$Q뾍U$EQA맍&U$fyQfE$fyUQQxUE$U۬Ð M t$uwft&Ћ$t$]ÍvEEBvf ۍvf Bύ&EEB뵐t&Efr륐t&EfrB두U EM$+ t$u |$}wԑt&t&Ћ$t$|$]Í&EQEAf1Qf1QAčt&EQ붍EQAfEQfyfEQfyA{vUVuM t&9t1 t&9t u^]1t&UW}VMu t<9t59t119vt9ʍt&t u^_]1t&'UUW} VutO9tH9tD;Et&t:1t& 9vt9t&t;UvtMu^_]1&U1҉Vu;M u&9t^]Ð&U1WM V}u 9t9t^_]Ðt&U1WM V}u 9t9t;Ut^_] UVEu Mu"f9tҍt&t9u^]Ít&1^]t& UWVE} uMu&9t9ftt 9u^_]Ð1^_]Ív'UWVU} t] 8ut&8t1ɉt)B &ɈMt,:Mpu֋U^_]Ðt&E뜐֋U^_]Ð&UWVEUu E:t?t18t;8‰u28t&t&:UvtuM1҉^_]ÉfQM^_]Ít&UWVEU} uE҉UtMt?8tJ8tD:UMu!f88t&t.8ft&:Ut!uߋM1҉E^_]ËMvQME^_]Ít&'US E` D$E D$E$ [] Uuu1]U } E<$T$D$O]u}]UE E ]UE E ]U M UuE]Mu}ы}U蔦I ssf+E<$D$D$蘓E]u}]Ð&U M}} ]Eu0 Mt @IuffU)UMD$$L$E]u}] U M}} ]Eu该d M70@IuU)UMD$$L$諒E]u}]Ít&'U}}]E uD 7tD$4$Jt]u}]ÐUWVuE} uv8tt&t~uЉ Љ ƒUvCt&E3~1t8At<8Qt?8AtB8tFw‰ȅtA8u^_]Ð1A^_]ÃA^_]ÃA^_]Ã^_]1ǐUE]ó uxb;D}ZLtOD$D$$u$u;EwKt$D$E $]1u]Ít&e]u]Íe"֐U]1 $uƉ} rt$D$Ǎ$调<$q]u}]Í&U$}}]ˢÀ uu x,;D}$Lt]}u]V١EUE싂$ܡ |$ D$VD$M $t!股u]}]ÍvEǀАUW}Vu vu1Ґt&Du^_]ÐUEM t&9tu1]ÐU1҉WV}u v t9t)^_]Ð^_]U1҉W}Vu )LDu^_]ÐUWV1U} uUtD$<$?t^_]ÐU]Ö }}u<$;44$1tt$|$$]u}]ÐU1҉MtTAtHAt]D$ D$D$$]UWVS褋Y hUMҍtD1uh[^_]Ðt&E UEEEE0AD$4$]et0VHzt e3=EZUM<$UȍESEU D$D$T$D$ Eȉ $D$D$D$׋U+Uօtptk„t&&Tt&cE|uE܋uE rd&ofv8D$ D$$D$$ZM U1MỦE썅E쉅t&<$UǠD$L$D$ T$D$L$D$$׋Uȉ+ƃtt ]zPv9ƍ}VD$ D$D$x$YD$ D$D${$YUWVSD hUMҍ|D1uh[^_]Ðt&E UEEEE0AD$4$et0V0R zt e3=UAEEEẺ<$ED$D$D$D$T$ E D$EȉD$$׉‹Eȉ+utet`uyTh[^_]Ðt&xu9ETE܋qE svty&PD$ D$$D$$WU 1UȉU̍UEE쉅t&Eȉ<$D$D$D$T$D$ T$D$$׋Mȉ‰+ƃtt syt&cv9ƍ5VD$ D$D$$VD$ D$D$$iVUVU u}}FtvuBfEHftF|t>Ht6|t/Ht'| t t u^]&Í&^]t&1t&ݸՐUEM u&t 9ʐt&u]t&ÐUeSõ D$ D$ED$E D$E$[]Ít&UeS调e D$ED$ ED$E D$E$[]ÐUeS` D$ D$ED$E D$E$[]Ít&UeSŝ D$ED$ ED$E D$E$[]ÐUeSu D$ D$ED$E D$E$ []Ít&UeSp% D$ED$ ED$E D$E${ []ÐUeS ՜ D$ D$ED$E D$E$:[]Ít&UeSЁÅ D$ED$ ED$E D$E$[]ÐUeS老5 D$D$ E D$E$[]Ít&'UeS0 D$ ED$E D$E$[]ÐUeSÕ D$D$ E D$E$@[]Ít&'UeS萀E D$ ED$E D$E$?[]ÐUeS@ D$D$ E D$E$1d[]Ít&'UeSå D$ ED$E D$E$c[]ÐUWVS4ES PEEE}x}t E}$E~(e14[^_]Í&EUT$M$wuUm-+E0vM_UEE le fMԉUE9EEE1t&M9EE‰U܃79}VЃ v1Et;ut֋U4$T$8rt\M4$L$xP9U~EE9EsE뛍t&UEt&;UjEjv9}t&E t&tE 8utRe}"-@Uf} UEEt&}-;ErE܋M؅DE܃4[^_]fu‰t}uML$UB$wXoMEpEMEuU 1t+EE U1[UT$F$(wXuڃ~0uԋM F1/J,M<}R4EUEEME9EƋ}t@FЃ v/;ut*E4$D$pt U4$T$v7  7uML$ E|$D$U$SMEE uMEE M&USEp{% D$ D$ED$E D$E$[]UWVS4E.{ PEEE}x}t E}$E~0eEE܃4[^_]Í&EUT$M$0suU-+E0vM_UEE le fMԉUE9EEE1t&M9EE‰U܃79}VЃ v1Et;ut֋U4$T$mt\M4$L$=tP;U}EE9EsE뛍t&UEt&;UjEjv9}t&u t&tE 8ME܋U؅DE܉E܋E܃4[^_]ËUt&} UEEt&u‰t}uƋML$UB$QsXtME럍&EMEuE E+EUE EvUT$F$rXuՃ~0uϋM FEE&J,M<}R4EUEEMEuJ9EƋ}t@FЃ v/;ut*E4$D$kt U4$T$r7  7uML$ E|$D$U$MEE eE"IMEE M'USEvå D$ D$ED$E D$E$[]UWVS\Evc PEEEEx}t E}$E~(e11҃\[^_]Ðt&EUT$M$nuU-|+E|0uwUԅKEE LfɉΉEPfElgleEUU9UEUut&M9M~Ѓ v1Eԅt;utGU4$T$SitAE4$D$ox9}M9MEEE؃EUċ2uMEMEu;u} tMċU u̅|e}"1RCUE~Ut&} pUEEvM1u ;Uwa;EfVut&t ]U]EU\[^_]Í}‰t }jML$UB$enX8ME0E҉E&tML$$S돍t&0Džf |$4$SinM ɍ&HMU \[^_]Ðt&\[^_]Ã9QBЃ E$D$VSa9V$pI JDž(t&)苍, DOы,kMDž,M$L$RP 1pDžX&E4$D$yRaj0tEtGF vtE4$D$QƅED$B$Qx1DžDž HƃDž(AЃ ,TPPTEUHD$T$ $Eowi048tt$8T$DD$ 0D$4$‰E҉E4004E8Ut勵81FUUp9iT$0t$L$ 8DD$4$L‰E҉Ei0E440^90u"ED$0D$$GMʉH)5n96 )ƒ1s )ЉD$ MD$T$+$ +u~ 1ҹ+E9D$ D$D$$$eU ҍu t&؍5<2(+<9L25<@‰u+t!t45EDžpEE䉵~5tȍT4D9utx 19t}苍DŽAH5Džl/UED$ D$L$4$CSe"(2كD0 vE l؋M 1fe"=كD:BD$ MD$T$+$+U҉D1ҹ+E9J, <}r4E L$D$4$:IDE DžDž#Džp5)pp pCpD$L$ D$$fUDžp)E&BЃ vE$D$Aav܋_tՃ)UED$GD$ D$T$$9uكD~D5+dD$ D$T$$yHUDžd EADž1كD+ED$$L$8+u1ҹ+E9e"e"pD$D$ D$E$cUEڃ 1ɉ ¿tكDݝ% ݅#ڃ ~ڃ y USEPE` D$D$ E D$E$[]ÐU1ɉWV1S,E UEú_ UUؐBЃ vmtBЋE܅~! uԋM u[E011fE~ EM E0,[^_]Ðt&D$ ʚ;D$UT$$5M EE MM؍u9‰vmAt1U11M u11&M4EM 8T$ D$UT$$苙M EE Mu9‰vfmtDAt1UM u,[^_]Ít&)ƍ&U$]C] u։}}rE)U}@&ME  E}@J}MD$|$E EM<$D$ JfE Mu+@UكD]u}]ÐEGEBM9‰GGD$ D$|$<$轓M @yEt$<$D$赧rكDgt&e!HRME 6GGEE  Ѓ E H;vEƒ EM u 1? EMD$<$E  EED$ GD$yG%'UWVSdE@@[ PE5Dž DžER0EtttM2L$4$8uރ-- +Džr ; FЃ " 00Dž txv0s YM~Љ4$L$9 xDžf W* \t 9t;| U4$T$49u p te&w 9| z0Bt  t&Ѓ|x0Pt|9 } t E |xtOx92tf9u󋅀E)|)ETU|+9O‹)‰Uƍ2=Ef MuMDž|+Dž<9ȉh}hDž<h+u싕wDž8i@DHYvHHB‹T$DD$@$.8H8tዅ18tHrL$@D$ t$DD$D $蘎 D@@8Di9@D$T$ $h~Gt$ D$T$$Ȍt$ ED$L$ $諌uEXD$)ƍD$ $ˆ~EDŽEM;CɍT~ B9uADŽDž`t&9Dž\tq\X\։1;X+X);wu;v\sŋ\T$ L$t$$A;t!T$ t$L$ $舄\~#t&B9un \ m \@EMU <<L$ +`D$\t$$Hv9 xx2pE4$D$a2at&2~f; fu`v f6;Q; L$ t$xD$t$ U t9tM fٍt&d[^_]Ðt&D$ L$T$t$袟99tL;xxDž|0 |9wꋅ|Dž!tt2;DžutA/c9fUvut$$/tދ0u0tBЃ  LDž)׍OEEDЉE쐍t&||DED$$:/VDBЃ ƒO TƅH-+Dž/AЃ OǃfETA9UAЃ vދtډU싕9|Ћ|9 Mpb&0 uI>0||E҉E&tML$$-돍t&tt0Džf |$4$-inM ɍ&HMU d[^_]Ðt&d[^_]Ãx9ttQBЃ E$D$^-ax9tVpIfJDžt&)苍 DOыAMDžM$L$,P1pDžpX&E4$D$,a20tpEtpGF |vtU4$T$+ƅED$tB$+xtt1DžDžHƃDžAЃ ,D@@DEUD$T$ $Eowi $(tt$(T$DD$ D$$$‰E҉E$ $E(Ut勵(1FUUp9iT$ t$L$ (DD$$$T‰E҉Ei E$$ ^9 u"ED$ D$$!MQ)Ɓ@@d9|$ )ƒ O )ЉD$ UL$D$)ȉ$%+u~ 1ҹ+E9D$ D$D$$P#eU ҍu t&؍E!<=@+<@9L @,0EΉU@Dž4E䋍1ut|99 ȃD$ 4D$D$ $\C|$ D$D$t $J vƃ mE uk UT$$ WDBЃ vM$L$E pEEuH-A+DžAЃ }R-=&ETA9UCAЃ vދtډU싅t9UuZЋt9wMlpXt&0 uA>0Pt}tEE"f}tML$$f 뚍&2DžPf |$4$ i nu &HEM h[^_]Ðt&h[^_]ÃTp9BPBЃ -M$L$& ap9VpIuUJDžU1rDžlR&U4$T$a0tlxExxEtl}WMUtFЍ MvtE4$D$8EUT$A$x0DžDžHƃDžAЃ vD@@DEUMĉD$T$ $UEfUw$ i(nt$T$DD$ D$$$@_‰E҉E$ $E(Ut勍(1AUUp9oT$ t$L$ (DD$$$^‰E҉Ei E$$ ^9 u"ED$ T$ $MAʉDă)‰€A VE9t)ƒ  )ЉD$ UL$D$)ȉ$}\+U~19|D$ D$D$$@ePU ҍzE t&kx؍|'<x+<9L,0EΉDž4EM1u&tt9M9 ȃD$ 4D$DĉD$ $j\C|$ D$D$$N' z ( كDE U : ETăEf}}胅 @+`OD$ D$L$ $#Z +` E׹ ȃ))U `)ыEt|C|$ D$D$ $<&E t>C|$ D$D$ $&M D 8كDUED$ D$D$ $*U+ EED$ D$t$ $SE}}PUE9׉Uw+Tt!D$ D$T$$aXUă 1UETPډ9}uMƋP払v9wJt@1)UEuP.m u~vtt&+Ps떍}Ju胅 8MMP)1PEMS+Tt0D$ D$L$ $V +T E苅UM 4udpd}EfE@$EsE,)t&1yuEq}U싽@1;t t&}D;Du9w9U 뤋p9xVxxXhuċhH( ɉM}ĉXEpuHXPXX}EU]fUăM 4u`r`}ċ<e<$}NEsE,)t&QEqU^U}1;t!fU}؋1;t}D;Du9w9tU 밉Pt+81ҋE;8tR}D;Du?;Pr}M؃ 9YM;Dw DE 9E؍E}ȋE8UMEELXTfuU}||:hMȅgXUEEuDžL\}}9}u}t&mp ɉP.|9}}v1LE L1ҋpЃ9PwPUDžLE9EwEMpA4AL9MPv9}LL1ҍt&}ЃGp9wUBMAPDžLEM}h9|ME9u}Euu뷍t&Lt&L뚋UȅXUEEMef}u9u}u}Emp}0 FPщ9MM*PtEE~\ 1ҍ&pD\}Ѓ9Pu֋ŰMm9MsE}pwPFGP9MMPtA}F` 1fpD`}ЃG9PuՋUЃE}uh7|}E9s>M}EMM뻐t&UPUPB땃}E9ETEM}mp7PFP9MMPtB}Fd 1ҍt&pDd}Ѓ9Pu֋UԋMm9Ms;UsM1u9|E}9|UĉEg&UP띃}tu9uv}E}tmp ɉPtj|9}}v5LE L1ҍt&pЃ9PwPUDžLE9Ewt&Lt&vEă9uE9ErUDUċMuB}če[^_]ËUG9EFED$M L$u4$Ke[^_]ËM $뱉<$St&fw$pEUMEEEc})Ћx+E<}؋ER,D$ D$D$$,D$ D$D$$,D$ D$DD$$ȴ,D$ D$ D$$螴U1W1VU 9Ut1t&U:$ZU Ƌ:$Jt9t)Ɖ^_]ÐUWVE 9EtME1tD&U:$U Ƌ:$u)ƃ^_]Ív9umuÃ1^_]ÐU1W1VU 9Ut?t&EUD$:$sU ƋED$:$\t9t)Ɖ^_]ÐUWVE 9Et]E1tT&UT$U:$ ƋED$U :$u)ƃ^_]Ðt&9umu1^_]ÐU ]up{0 t+@@V FV4$]u]Í'US& U E$EMD$1҃uUvEyEUЋ]ËEU]v uƍ@D$}׉T$E$ft@F D$E<$D$JFt+t1~]u}]Í&吋VÍUWVS$ $E䋃3CEx$5EdUMR\UI1ЃMEvxLeEVHU;Bt1E1e= t FHUPFHEUBH<E D$ED$ D$$fx2VHBBu"FH@vHe= t.uat&]ȋu}]Ãfx-VHBBuFH@vHe= t.u $ Q*5Q떍,QڐU(]Ö }u7f>xLeEVHU;Bt1E1e= t FHUPFHEUBH<E D$ D$ED$$薯fx2VHBBu"FH@vHe= t.uat&]ȋu}]Ãfx-VHBBuFH@vHe= t.u $8 O*O떍OڐU$uu]}= f>xJFHe=E;xt1E1Ue= t FHxFHEUBN<ED$E D$ 4$D$Qfx-VHBBuFH@vHe= t.u\]ȋu}]Ãfx-VHBBuFH@vHe= t.u $ N6N뛍NڐU$uu]}H f>xJFHe=E;xt1E1Ue= t FHxFHEUBN<ED$ 4$D$E D$fx-VHBBuFH@vHe= t.u\]ȋu}]Ãfx-VHBBuFH@vHe= t.u $ AM6eM뛍\MڐU ED$E D$E$ÐUVSÚ pX4$ED$D$D$D$ 4$D$AE4$D$ D$D$E4$MD$E D$ D$萫p[^]ÐUWE.VSE) 4 )iրQ)M yʃ҉)iҀQQQu~!QE.‰t2iҀuщȺų )‹EPi)Ѻ)‹EPk<)Ѻ$IN))ЉʋM)…҉Q;Es&QMm)kd9Eu)iҐ9URn;ERMmEU})im))¸QUUUUI׉UȉU֋U))kd‹EU)‰E܉)E؍)ȋM)EiEܐ)ǸQm)}؉։׋U)‹E)}IE)i)‹E)EiEm‹E)‹Eȃ)EkdM)EmU)UMEu}m;EEU-lBMJu7QMm)kd9Et v)iҐ9Ut1 J;M~  B;MUBE)ȉB [^_]ÍBAU@U]Ó u҉}B=Jm:MJMJ MJ w(RmwlD$$Et$|$ L$ D$ED$r4$D$ED$ D$1x"qwt&eK1]u}]e1܍&UDU]à uu ҉}B= mMJMJMJ MJ w(RmwlD$$E|$L$ D$D$ E4$D$ED$ED$ D$rx.v1eK]u}]Ðt&1苓1eѐU ]v u}$)ƍE$@B~5CMM׉1)]ȋu}]Ðt&@BEEӐUE$E6US 4EЉD$E$U T$$ 4[]ÐUEE ]ÐUS{ D$l3D$E$a []Ít&'US E 5 D$D$E$$ []ÐUSF D$l3D$E$ []Ít&'US E õ D$D$E$ []ÐUWVEEU$D$Ut^_]ÍE0Eu7ߍU+E<E8U$T$U‹EDEljEE9tyE)<0fuEzEUUET$$U[v'UWVSEUM}Õ EREPIT XPH\@ 1҅ ‰ȉ`*)R)\)ht16?}XȋMC Dl DžLpx}<;L}LhQlE1t)EEMѽ\X E))ȋX)‹hU|Fim#\EЋT+E@k<Pk<pL@DЋP @)ȉ1)Ѓ@UMDžHDždEED,00$,E 8a81q)¸Q$ꋅ$$ыT))lj)8xP+P+H4h@)im+$Ћ4lxxE+x|+E@k<k<+}L4998ux}GO9]9Du#;}tE܅xy`|`…1ШubHEu}쉅D1}d|f}yGL끍9dEp@)ppMU9U[EMEAEĉAEȉA ẺAEЉAEԉAE؉AE܉A EA$EA([^_]Ív[^_]øQhh)kd9hfE;`!` Mp, (v79ljE~Mp, )9ljE~ٍE$(E `9}}79ljEE$(E `9}}닋L1u1<UƋ0E+LUuT,LU܉`1:ƃuʍt&@;EUf;BKEԉ$Uԉ4$DED$ED$UuUUlU<,Jƒ0 FED$ <$D$CfF E9fm~t;tL,ǃPǃ0fǃ8fǃ6fǃ4fǃXfǃVfǃTǃ\ǃ<ǃ`ǃ@ǃdǃDǃhǃH]u}]t&b]u}]ÍvEfETpUvE$똍u_fUWVSE. u61e= tl391} !к_3}t$D$<$z1EEt=M uF F(F$t$F$+ED$E$'u[1e= tY[^_]Í&EUD$ ED$E t$D$$rkt&E렐}M ($|$D$$ xE8 _W&E$衖 u(<$0t>vt;nv<$t&Nvv>u4$(ED$4$U z+R1Ƀ wu ~ u ~E x@U :&u ~w ~} E x}  w WO (tct&~[l_Q)kd9u)iҐ929E $1҃} YW1~} GE̋U B@EЉGFn&xFt&Qf`vlE @,,t\}1 Uu E$,$I+M)))AU B ~ ~E̹FF+EEȉF E 1ɋP]U 1Ɂz `u $IEЉF} űOw+Mԉ))Љ)MȉO >?UEĉVU=F#֋W+uuЉw~&U]E> u$t$T‰u ]u]f1萐UeSå MU $D$E]ÐU1҉WVS EHp薒K l)ׅWI׉UUimK p Q}XQu))$Im+U)Umu)ʍ ))΃ 2)э))֋Ur [^_]Í&'UWVS }EE TP虑N @\U} 1ҋw  ֋P f1 MMuEBEBEċB EȋBE̋BEЋBEԋBE؋B E܋B$EB(lE䋓fTtOv} w4DF UDF t&UDF uTTuE-EU}WEPEBEĉBEȉB ẺBEЉBEԉBE؉BE܉B EB$EB(Ee[^_]&%t+EE8_&e1[^_]t&TEu v-t_ft0t^tހ#vt֍B< wB< v}BۃS} UE$|$lvE8#vu<MU>U ET$U$lEM\E}1\}s@)lH0F+B&) BƉNjB)׉ʉȉ9(| 9 (EEE9E UEЃ<UU uM tB< pЍAEcwAM UE$L$lfEEE9Wv\4$,DNjE |$D$ E4$D$c\}$T$W>3EE!t&}<vjlQlIl΃u@Džp)kd)iҐ+)э XpE1҅uXu1҅ЍpF;~uplG}uy1lu2Q)kd9u)iҐ96plDF)‰W }Eu lz wl}U\T$$g<L\D$Tu<MU>U ET$U$lEydt&t&kd&$MdDžhlv ufE<t8\EVuzUЃ<}U鉽 uu tB< HЍFEcwFt&DžLL4[^_]Ðt&D EDDYUtËtu뱍&T$D$0Pu1Džltp} @DlEΉpl1 .D$a0h)IƉ+L,9M~)T0nu|$D$ 4$_Kul } 1@u .ɋD<t=1Љt&TuF8Du؉},LR@dEU }dD$1T$|$ $>h|1+|I+L|u9M1t^u~)T0U|$D$ $0JudE M}$UD$L$ |$|pLt$;uvM&}W<9wu9CdDžlXEu $IhMh\Nv)))ЍL4 )΍XOC؍Uɉ`׉UEȾ̉ȃ)ҍA0шu䋵`t-T-UUM\M)ȍ48~}T_+L9\`tEt U-ULEtMt$D$0 $BHuLDžhu1)uh+uIE(+L9(XE|~'T0Ut$D$ $GupMEɍ4t3U1׉fT}G<DEȅu܉u(LXOXE@dgXEXOMh} OhXO\Glf@CE$X+h1)I$+L9$E~'T0zUt$D$ $NFupu1ɋEt&TuF<D 9u؋}$L\ttHDppt H9u9u N x!E8M A HHdH$)E‹h1)IЉ0+L90Et{~'T0Et$D$ $Du`UMҍ<t8H1։vuTF8DUuۉ}0LXtM @DppqƋD$$(XNjh)IЉx+L 9Ex~;T0xD$ L$u4$CxU ƉurpKƋu@D$t51ɉvuTF<D 9u؋} LtDppXfM @y%D$$'h)ƋXI+L90E~/T0}t$D$ <$BE }xp@%}ɋD$4t?1Љ&T}G<Du؉uLXEBM hMhu \A$IH+N4 )XOXE@dXEE hMh\p ,XEM hMh\q T0T-_DTTXE;U hMh\BpXEM hMh\qpXEhMh\D?XEU hMh\Bp h1Iƍx+L9vEt7~'T0QEt$D$ $?uU ULKPP:X{hXI+LX9Et%~0T0: Mt$D$ $G?uPUUSX`tU @Dppr%D$$#h)NjXI+L9E~/T0@ u|$D$ 4$p>} uwp@%}ɋD$4t<1Љt&T}G<Du؉uLbu }EFEFEċF EȋFE̋FEЋFEԋFE؋F E܋F$EF(gfffEE$}}`&))ȉщڃ`Eƒ0ɈuDž\Rh1Iƍx+L9qE.~'T0) Ut$D$ $<uM MXOXE M QAlhOh\)kd))CX:dXdek@?Eljd=X:tM @Dppy%D$$Z h)ƋXI+L9E~/T0}t$D$ <$J;E }xp @%}ɋD$4t>1ЉT}G<Du؉uL:XE} hMh\w[XEhMhD\*XOXE@daXEE hMh\xQ)kd)׍Od։)kd)u F 6v$h1Iǃ8+L98Et7~'T0U|$D$ $O9}M+M8L𿉈)ȃhMh\)kdk<)э4XEU rlMBERڍ~ȉU$I))ЋU)ʍT҉U21EMUm) ~$I)))ЍDxEEGgvE$IhMhU}+U\rXE} hMh\wh$I} Oh\O)))q;XEhM Oh\q XEoM hMh\1EU|$D$$<}M4pt&Et$D$0$6u+L9 MtEt$D$ $6uhL)9hO‰h5E|$D$0$M6uptfM 1@y M.ҋD<$1ɉfTuF<DuM 1@y .D|$D$E$:M<pMuɍ<H1ɋEt&TuF<DUuuM|$<>L$4$%:M|$D$0 $4}Et$D$0$4uQMm)kd9E/)iҐ9UE|$D$0$v4}"Ut$D$0$W4M uyU|$D$0$24M }qEt$D$0$ 4PuxD$0L$@%}D$t$<$D$84hEMh\QE)kd)U}d)kd)#huOh\@d:N@d9.Mh1Iǃ4+L94"Et7~'T0U|$D$ $2}M-M4L=@d: k1ɉuu5Qum)kd9Eu1)iҐ9UUE m$I0~)))ЍDEEt$D$0$1uMt$D$0 $1uMt$D$0 $w1uw@E q*=hM ҺOh\q+pp0p@E ,*@$d>1EHUO}MH<$L$t$5UE<@%}D$t$<$D$54@ƋuD$|$<>4$D$c5@%}D$t$<$D$*54@E )EC@ E$h1)I +L9 Et~~0T0E|$D$ $/U}R UpM<1t/E1TE@<T1uމ} LUt$D$0$ /M uyiE|$D$0$.}LUMt$T$ $3E<0늋U|$D$0$.M}I MUEU ED$ ED$ED$E$EÐUWV EEt5Mu<ƍt&E D$$t;muE ^_] UWV MEt5Mu<ƍt&E D$$:muE ^_] UWVSLEU @@Z u@E R@( a xDž$^xD(]BDž$Pf+$xtxx$((%uDž,1DžH((0#-vBЃ Dž@XDž@EODž0z%(t&׃%u@1)I+$9lxtz~B,0lD$ D$x$xlxH(U4$T$xxx$`@TBЉ@((BЃ @ ~Dž@͍t&,DžH,&t&^tۃ_H,t&v,,f7UDž@Y(t&((>0t$|$x $Rt&Dž$$e[^_]Ë Extȋtx$e[^_]fL$D$0x$xl x({DžDɸU DDDHEƉH1z bD$9@)IƉ+$9x~6,0|$D$ x $9xxD)U 1z bTED$ $xXx x$D,0 t$D$ x$[x(xxx0ɸDHHE p;%D$$艍@0)I+$9x~<,0K |$D$ x$}xE xpHe ;%T$D$D$x4$ٓxx$u EFEFEċF EȋFE̋FEЋFEԋFE؋F E܋F$EF(uE4$iugfff8))ȉщڃ8Eƒ0ɉuDž4@1Iƍx+$9x~6,0 t$D$ x $xxx x00O00E M QAl@O@4)kd))0B<<0zEƉ* }E䋓1Ue= tOOMuVЉUGFGu+G;G rۋOU~aG 1G뻍vM T$t$ $5Ue= touqt 1[^_]ÐEtU䋋 vuEM1벋U䋃E<u݋UE䋋ōOsG薇념U1V ue= tNuFD$D$$FFF e= tnu ^]ÍN밍F搐U1uu}} e= tNuBD$|$$@F F~e= tnuu}]ÍNl봍F蒆UE]@ÐUWVSD ' uU <+[<-SU rtf<:t u!U <+<-ED$ D$<$QsU BE9:ƋU9BUUEt&E+E9EB>We=E vDP  u֋U@$뾍<:f?v1$[^_]E @@U9E9 D$4$Pvɉt6,&t*uN9sUEƒEUE+E9EU"$[^_]Ð,u뫋EUEU B $[^_]ÍED$ D$<$SqU B9}tE:EBۍvUWVS(EÓ f8x"uqD$ $Eԉ 4$D$GPtǃ yvE& tU܋E؋4e= tM܋U؋E48[^_]ÐE܋M؋  M$2MU܋E؉ Qǃ$U؉ eEo[~[mUVSDu ? tN$FZ>P)ԍL$3D$ UE؉T$L$D$E$Z t6e[^]Ëee[^]Í&UtËBD$ BD$BD$B D$BD$BD$ 4$D$D$1҅yvUWVS(}N E E<+tr<-tnG]DƉD$ G OWD$GD΅D։D$GL$T$Et$ UD$T$E $x`1([^_]ËG]DƉD$OWGD΅DօEL$T$t$ ED$D$U $Fy([^_]Ðt&esU1(]u} e= tuve5D$ D$D$D$D$ $舝 Ee= tu# E]u}]ÍzXzXАU1WVSJ e= t }ut& |$T$t$D$ E$"u|D$ $u $$eǃ  Ee= tuSE[^_]Ðt& uǃ$‰ t+*WJW렐U1WVSï e= t  }ut& |$T$t$D$ E$"u|D$ $u $eǃ  Ee= t uSE[^_]Ðt& uǃ$:‰ t+ U U렐U1D]u}Y e= t2ED$0e5D$D$D$,ED$(E D$$ED$ D$D$D$ |D$2D$;$輝 Ee= t E]u}]Ðt&U$]v u}1e= tTD$D$ D$|D$FD$$軚e 9e= t9]u}]ÍvU1,]u}é e= tD$D$ D$|D$2D$D$D$$e 9e= tu`9]u}]ÍJSjSM*SJS S.*S듐UWVSÙ (06~d0606 (m1ҋ  e3E싃$ e3E…eOEU荶E$ED$UT$ ED$U T$E$Uu U<:"ED$t$D$ D$ED$E$譑ttlUvvfU:"uDt?Tfǃ06ED$UT$ ED$U T$E$菕e[^_]Í&U E1U:e[^_]ËEU:e[^_]ÐU1ɉ$EORu9Ee3 Ee3 $ƃ(p&e3 $֋EeUUWVSI (06~d0606 4m1ҋ, e3E싃0 e3E…eZEU荶E$uED$UT$ ED$U T$E$Uu U<:"ED$t$D$ D$ED$E$]ttlUvvfU:"uDt?Tfǃ06ED$UT$ ED$U T$E$ϒe[^_]Í&U E1U:e[^_]ËEU:e[^_]ÐU1ɉ$EZu9Ee3 ,Ee3 0ƃ4p&e3 0֋EeUUWVSD uD$ 4$tE 0:ft:uM <+g<-_M Qtf<:t u(U <+<-MD$ ML$4$^U B}9<:D$ M<$L$^U B E9:dM A}t&tU B=t&҉tE H[^_]Ð<:f捶>t&uf1[^_]t&Í&t&E @@@ @@@[^_]ÍMD$ ML$4$^]U B9uE8:epuxUD$ M4$L$]U B ;ut~E:E&:捶:t&zfjfލGEBfDB v&UWVS(E> f8x