1؎м||18/tuuqހur 6uƀ8rtL|t-QSUAr Uut[fjftSjjB[YrUu 㾹 uInvalid partition tableError loading operating systemMissing operating system==C=$%=( Uvu4,294,967,296 oCg (4.0G)v) ́Aۂɂg̃n[h fBXN̏񂪕\܂B +---------------- n[hfBXNc[wwipe-outx ----------------+ | Cj[ | | ݑI𒆂̃fBXN /dev/ad0 łB | | fBXN̗eʂ 4,294,967,296 oCg (4.0G) łB | | ȉ̃j[珈IĂB | | | | +------------------------------------------------------------------+ | | | z 0㏑āÃfBXÑf[^ | | | | h @̊Tv\ | | | | n ㏑āÃfBXÑf[^Oɏ | | | | m Ȍ㏑@I | | | | v f[^ꂽmF (^ꕔ`FbN) | | | | V f[^ꂽmF (ʏ^S`FbN) | | | | w OfBXNɏ | | | | L L^tbs[ɏo | | | +-----v(+)---------------------------------------------------------+ | | | +----------------------------------------------------------------------+ | [ OK ] Cancel | +----------------------------------------------------------------------+ ŁAn[hfBXN̖OeʂAf[^n[h fBXN̂̂ł邩ǂmFĂB̃n[hfBX Ñf[^ꍇ́Au0㏑āÃfBXÑf[ ^vnCCgĂԂŃG^[L[Ă (ȉȂuIvƏ̂܂)B ̃j[Łu0㏑āÃfBXÑf[^v IƁÂ悤ɊmFbZ[W\܂B fBXN ad0 Sf[^ 4,294,967,296 oCgA 0ŏ㏑ď܂B 낵ł? [ Yes ] No f[^ꍇ́AŁuYesvIĂBuYesv IƁAɂ‚Aȉ̊mFbZ[W\܂B {ad0 (4.0G) ̃f[^Ăł? [ Yes ] No f[^ꍇ́AēxuYesvIĂBuNov Iƍŏ̃j[ɖ߂܂BuYesvIƃf[^ ̏n܂܂B f[^̏́Â悤ɐi󋵂\܂B fBXN ad1 ̃f[^Ă܂B 25% (1024/4096) I ^ 21b o c 悻128b 0%|############______________________________________|100% ʂ̍ʼnsɂ́Â悤ɏݑx\܂B 33554432 bytes transferred in 1.307584 secs (25661396 bytes/sec) f[^̏ɗv鎞Ԃ́Ag̃n[hfBXN̗eʂp\ RɂĈقȂ܂Bn[hfBXN̗eʂAp\R x΁Aɗv鎞Ԃ͒ZȂ܂B f[^̏IƁA fBXÑf[^I܂ (230b) [OK] ƂbZ[W\܂BŁAG^[L[ƁA ̃j[ɖ߂܂B @ɂ‚ Cj[u@̊Tv\vIƁA Pȑ@̐\܂B ȊȎɂ‚ Cj[ŏ㉺J[\L[ƁAʂ̍ڂnCCg 邱Ƃł܂BCj[ɂ8‚̑I\ ܂񂪁A㉺J[\L[ƃXN[ɂAe푀상 j[\܂Bun[hfBXNc[wwipe-outxv ́Af[^ȊOɂAĂ邩ǂ̊mFAL^ ݁An[hfBXÑRs[AVF̋NAċNAVbg _EȂǂ̑상j[pӂĂ܂BȉɃCj[ Ił鑀̈ꗗ܂B E0㏑āÃfBXÑf[^ E@̊Tv\ E㏑āÃfBXÑf[^Oɏ EȌ㏑@I Ef[^ꂽmFi^ꕔ`FbNj Ef[^ꂽmFiʏ^S`FbNj EOfBXNɏ EL^tbs[ɏo Eʂ̃fBXNI EfBXÑf[^\ Ef[^\ZN^̎w Euwwipe-outxɂ‚āv EÑVXebZ[WmF EfBXNRs[i^obNAbvj EfBXNRs[iᑬ^f[^Tx[Wj E1㏑āÃfBXÑf[^ E_p^[㏑āÃfBXÑf[^ Ep^[̕␔㏑āÃfBXÑf[^ E_f[^㏑āÃfBXÑf[^ EL^\ EfBXN̎Ȑff (SMART) \ EVFishjN EVFicshjN ECD-ROMmount ECD-ROMumount EMBR *̂* EVbg_E EċN Ή@ɂ‚ E{c[́AFreeBSD/i386삷Rs[^ŗpł܂B E{c[Ńf[^łXg[WfoCX͎̂ƂłB EFreeBSD̃J[l (CXg[pCD̃J[l) ň ̂̂Aȉ̏𖞂 EATAfBXNRg[hCo (ada(4)) ň EʓIS-ATA/P-ATAC^[tFCX̃n[hfBXN EASSDhCu ESCSI_CNgANZXfoCXhCo (da(4)) ň EʓISCSIC^[tFCX̃n[hfBXN EFreeBSDňRAIDRg[ (asr(4)) Ȃǂɐڑ ꂽn[hfBXN EUSBJ[hA_v^ɐڑe탁J[hA USBtbVȂǂUSBeʃXg[W ada(4), da(4), asr(4) Ȃǂ̏ڍׂɂ‚ẮAFreeBSD̃}jA y[WȂǂB ̋L^̕ۑɂ‚ un[hfBXNc[wwipe-outxvł́A̋L^ۑ 邱Ƃł܂Bۑ”\ȃfBA̓tbs[fBXNUSB ȂǂłB̋L^ۑ郁fBA (tbs[USB ) ́A炩FATtH[}bgsAuWIPE-OUTvƂ ÕtH_[gfBNgɍ쐬ĂĂB Ƃ E{c[́AOSƂFreeBSD𗘗pĂ܂B E{c[̓t[EFAłB쌠́A҂ł ܁ ۗLĂ܂B E{c[𗘗pA邢͗pȂƂɂĐ Ȃ錋ʂɂ‚ĂA҂͐ӔCؕ܂B Ql EВc@l dqZpYƋ (http://www.jeita.or.jp/japanese/index.htm) up\R̔pEnɂn[hfBXÑf[^ Ɋւ闯ӎv(http://it.jeita.or.jp/perinfo/committee/ pc/JEITA_HDDdata100219F.pdf) {c[̓@ {c[юoíA҂̃EFuTCgŌJĂ܂BA hX http://hp.vector.co.jp/authors/VA004814/ łBKvɉ ă_E[hĂB n[hfBXNc[uwipe-outvv1.5 Copyright (C) 2015 by Dai ISHIJIMA WIPE-OUT-16T_993 (2016-11-23) . q: wIwI: wI .. q: wIwI: wIArcNRC x: wIwI9 wI Astartup.shSTARTUP SH x: wIwI9 wI Amainmenu.shMAINMENUSH x: wIwI9 wI $Aseldisk.shSELDISK SH x: wIwI9 wIAeraseU.shERASE SH x: wIwI9 wIvAfine-erase.shFINE-E~1SH x: wIwI9 wIh#Asel-fine.shSEL-FINESH x: wIwI9 wImAverify.shVERIFY SH x: wIwI9 wIAdump.shDUMP SH x: wIwI9 wIAwritelog.shWRITELOGSH x: wIwI9 wI Acopy.shCOPY SH x: wIwI9 wIAembr.nshEMBR SH y: wIwI9 wI# Acrlf.rshCRLF SH y: wIwI9 wIAfloppAylog.shFLOPPY~1SH y: wIwI9 wI/Adummyread.shDUMMYR~1SH y: wIwI9 wI Akon2start.shKON2ST~1SH y: wIwI: wI! Akon2alt.shKON2ALT SH y: wIwI: wI"Avtsta,rt.shVTSTART SH y: wIwI: wI#. Asanitize.shSANITIZESH y: wIwI: wI$ Aalt-menu.shALT-MENUSH y: wIwI: wI& Ascsaver.shSCSAVER SH y: wIwI: wI'<Ainfo.txtINFO TXT y: wIwI: wI(]Areadmse.txtREADME TXT y: wIwI: wI)# Ahelp.txtHELP TXT y: wIwI: wI,@ AtermcapTERMCAP y: wIwI: wI-Adiskseize.cDISKSIZEC y: wIwI: wI/+Astuff.cSTUFF C z: wIwI: wI1 Atinyd#ate.cTINYDATEC z: wIwI: wI2!AtinydUump.cTINYDUMPC z: wIwI: wI3Acheck.cCHECK C z: wIwI: wI44 Amakembr.cMAKEMBR C z: wIwI: wI5[Awpoutp-mbr.sWPOUT-~1S {: wIwI: wI6A Ashell-on.cSHELL-ONC {: wIwI: wI7V#! /bin/sh # # rc -- X^[gAbvXNvg # # 0.0: Jun. 15, 2004 by Dai ISHIJIMA # 0.1: Aug. 1, 2006 (CDĂkonœ{ꉻ for wpout07) # 0.2: Feb. 10, 2007 (OL^ for wpout08) # 0.3: Feb. 17, 2007 (VAR\[Ή) # 0.4: Sep. 12, 2007 (for wpout09J) # 0.5: Sep. 17, 2007 (shutdown̉ʕA) # 0.6: Oct. 2, 2007 (expr(1)POSIXΉ) # 0.7: Jan. 3, 2008 (N菇C) # 0.8: Feb. 10, 2008 (NɃbZ[W) # 0.9: Feb. 11, 2008 (CD̊mF@C) # 1.0: Jul. 24, 2009 (VAR\[Ή, wpout10) # 1.1: May 5, 2013 (wpout13, 8.3R, "mount -rw /dev/md0a /") # 1.2: May 3, 2014 (wpout14, 8.3R, sio->uart) # 1.3: Jul. 26, 2016 (wpout16, 10.3R, vt -> sc) # # t@CVXe݉”\ /sbin/mount -rw /dev/md0a / # VFA[hCũpXݒ /sbin/ldconfig -elf /lib /usr.lib PATH=/usr.bin:/usr/bin:/bin:/usr.sbin:/usr/sbin:/sbin:/usr/local/bin:/wipeout:. export PATH #export DEBUG=y cd /tmp # # ŏ̃O # LOGFIL=/tmp/wpoutlog.txt export LOGFIL echo -n 'booting wipe-out, at epoch ' > $LOGFIL tinydate >> $LOGFIL echo -n 'version: ' >> $LOGFIL cat /version.txt >> $LOGFIL # NƂbZ[W\ cat $LOGFIL # # expr(1) POSIXΉɂ錅ӂΏ (4.x݊[h) # export EXPR_COMPAT= # # CD-ROMȂǂ̏ # echo -n 'checking boot device..' # CD-ROM݂邩? (PXEu[gA[JCDu[g?) CDROM=NONE echo 'checking CD-ROM device' >> $LOGFIL # ܂AATAPI CD-ROM}EgĂ݂ echo -n 'mounting CD-ROM (acd0) ..' mount_cd9660 /dev/acd0 /cdrom 1>/dev/null 2>&1 echo '.' CDROM=/dev/acd0 if [ ! -f /cdrom/version.txt ]; then # SCSI CD-ROM}EgĂ݂ echo -n 'mounting CD-ROM (cd0) ..' mount_cd9660 /dev/cd0 /cdrom 1>/dev/null 2>&1 echo '.' CDROM=/dev/cd0 if [ ! -f /cdrom/version.txt ]; then # CD-ROM}EgłȂ CDROM=NONE fi fi case x"$CDROM" in x/dev/*) echo "CD-ROM device: $CDROM" >> $LOGFIL echo "re-initializing shared library path" >> $LOGFIL echo -n "re-initializing shared library path.." if [ -r /cdrom/lib/libc.so ]; then ldconfig -elf /lib /usr.lib /usr/lib fi echo '.' ;; *) echo "no CD-ROM device, may be PXE boot mode" >> $LOGFIL echo "no CD-ROM device, may be PXE boot mode" ;; esac if [ -x /bin/hostname ]; then hostname wipeout fi if [ -x /usr.sbin/powerd ]; then echo -n 'Starting powerd... ' powerd > $LOGFIL 2>&1 case x"$?" in x0) echo done. ;; *) echo failed. ;; esac fi # xCD-ROMA}Eg case x"$CDROM" in x/dev/*) echo "unmounting CD-ROM ($CDROM)" >> $LOGFIL echo -n "umounting CD-ROM ($CDROM).." umount /cdrom echo '.' ;; esac export CDROM # debugging case x"$DEBUG" in x[Yy]*) for i in 1 2 3 ; do echo -n '.' sleep 1 done echo '' ;; esac cd /wipeout echo -n "wipe-out initialized successfully on " >> $LOGFIL date >> $LOGFIL # rm -f /var/run/nologin # need terminal settings? (9.3R) export TERM=vt100 # VAR\[̃`FbN #comconsole=`dmesg | /usr.bin/sed -n '/^sio0:.*, console/p'` comconsole=`dmesg | /usr.bin/sed -n '/^uart.*console/p'` case x"$comconsole" in xuart*console*) export TTY=comconsole export CONSOLE=comconsole sh /wipeout/startup.sh ;; *) export TTY=ttyv0 export CONSOLE=vidconsole # R\[{ꉻāAX^[gAbvXNvgN #sh /wipeout/vtstart.sh sh /wipeout/kon2start.sh ;; esac # Vbg_E邩? if [ -f /var/run/nologin ]; then nologin=`sed -n 1p /var/run/nologin` case x"$nologin" in xh*) shutdown -p now ;; xr*) shutdown -r now ;; esac fi # ΘbVFN /bin/sh -i if [ -x /sbin/shutdown ]; then /sbin/shutdown -h now fi exit 0 # EOF #! /bin/sh # # startup.sh -- X^[gAbvXNvg ({ꉻR\[p) # # 0.0: Jun. 15, 2004 by Dai ISHIJIMA # 0.1: Jun. 19, 2005 (for PXEBOOT) # 0.2: Aug. 1, 2006 (v07ACDrcցA_p^[Ƃ̕␔) # 0.3: Aug. 6, 2006 (L[{[h`FbN) # 0.4: Sep. 18, 2006 (/var mkdir Ȃ) # 0.5: Feb. 10, 2007 (OL^ for wpout08) # 0.6: Sep. 12, 2007 (for wpout09J) # 0.7: Sep. 17, 2007 (shutdown̉ʕA) # 0.8: Jan. 3, 2008 (NWbN̉) # 0.8: Jul. 24, 2009 (dmesg.boot̏d`FbN, wpout10) # 0.9: Dec. 7, 2013 (fBXÑfoCX) # 1.0: Aug. 4, 2015 (ad -> ada, FreeBSD 9.3R) # 1.1: Jul. 26, 2016 (10.3R, vt -> sc/kon2) # PATH=/usr.bin:/usr/bin:/bin:/usr.sbin:/usr/sbin: PATH="${PATH}"':'"/sbin:/usr/local/bin:/wipeout:." export PATH ##PATH=/usr/bin:/bin:/usr/sbin:/sbin:/:. ##export PATH LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" export DMESG echo -n 'ÑVXebZ[WۑĂ܂...' dmesg > $DMESG echo '' # umd0vsɌsԍ𒲂ׂBΏd lin1=`sed -n '/^md0/=' $DMESG | sed -n '1p'` lin2=`sed -n '/^md0/=' $DMESG | sed -n '$p'` if [ $lin1 -ne $lin2 ]; then echo 'VXebZ[WdĂ܂B' echo 'xd؂ĂċN邱Ƃ𐄏܂B' echo '𑱍sꍇ́uexitv͂ĂB' /bin/sh -i fi echo '# ---------------------------- #' >> $LOGFIL echo -n "script startup.sh started on " >> $LOGFIL date >> $LOGFIL ####export TERMCAP=/etc/termcap export TERM=kons25jx export PATTERNFIL=/tmp/pattern.dat # 2013-12-07 names of disk device node # !ata(4) -> ad (P-ATA: ad0, S-ATA: ad4, etc.) # ada(4) -> ada (SATA/PATA, FreeBSD 9.3R) # SCSI (da(4)) -> da (SCSI, CAM) # ataraid(4) -> ar # aac(4) -> aacd # amr(4) -> amrd(?) or da(?) (SCSI CAM) # arcmsr(4) -> da (SCSI CAM) # asr(4) -> da(?) (SCSI CAM) # graid3(4) -> da (SCSI CAM) # hptiop(4) -> da(?) # hptmv(4) -> da(?) # hptrr(4) -> da(?) # ida(4) -> idad(?), da(?) # iir(4) -> da(?) # ips(4) -> ipsd(?), da(?) # mfi(4) -> mfid # mlx(4) -> mlxd(?), da(?) # mly(4) -> da(?) # twa(4) -> da(?) # twe(4) -> da(?) export DEVICES='da|ada|ar|aacd|amrd|idad|ipsd|mfid|mlxd|twed' # x32MoCg BLKLEN=$(( 32 * 1024 * 1024 )) export BLKLEN # o̓ubN1MoCg OBS=$(( 1024 * 1024 )) export OBS # ̓ubN (stuff̏o͒) 1koCg IBS=1024 export IBS # mF10MoCg VBLKLEN=$(( 10 * 1024 * 1024 )) export VBLKLEN # mF̓̓ubN1MoCg VBS=$(( 1024 * 1024 )) export VBS # Rs[512oCg CBS=512 export CBS echo '' # debugging case x"$DEBUG" in x[Yy]*) for i in 1 2 3 ; do echo -n '.' sleep 1 done echo '' ;; esac cd /wipeout stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL if ! /bin/sh mainmenu.sh ; then exit 1 fi # Ƃ肠ΘbVF𓮂Ă :-) /bin/sh -i exit 0 # EOF #! /bin/sh # # mainmenu.sh -- CD-ROMŃCj[ # # 0.0: Jun. 20, 2004 by Dai ISHIJIMA (for wpout03) # 0.1: Jul. 11 2004 (for wpout04) # 0.2: Jun. 23 2005 (for wpout05) # 0.3: Jul. 8 2005 (for wpout06) # 0.4: Aug. 5, 2006 (for wpout07) # 0.5: Dec. 21, 2006 (erase MBR) # 0.6: Feb. 10, 2007 (OL^ for wpout08) # 0.7: Feb. 15, 2007 (G^[L[΍) # 0.8: Feb. 18, 2007 (j[̏ԂύX) # 0.9: Sep. 12, 2007 (wpout09, FreeBSD 6.2R) # 1.0: Sep. 17, 2007 (shutdown̉ʕA) # 1.1: Oct. 6, 2007 (expr(1) POSIXΉ) # 1.2: Feb. 10, 2008 (wvbZ[W̕\A샍O̕\) # 1.3: Apr. 19, 2009 (fBXNRs[, wpout10) # 1.4: Sep. 30, 2009 (IBM ServeRAID, ips(4), /dev/ipsd%d) # 1.5: Dec. 22, 2012 (smartctl) # 1.6: Feb. 1, 2014 (擪ɖ߂) # 1.7: Aug. 4, 2015 (FreeBSD 9.3R, camcontrol sanitize) # 1.8: Nov. 8, 2015 (XN[Z[o[) # # dmesg="${DMESG:-/var/run/dmesg.boot}" devices="${DEVICES:-da|ada|ar|aacd|amrd|idad|ipsd|mfid|mlxd|twed}" # export LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" export ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" export DISPUPD="${DISPUPD:-2}" export STATEFIL="${STATEFIL:-/tmp/status.txt}" # export DIALOG="--ascii-lines --no-collapse" cbs="${CBS:-512}" obs="${OBS:-1048576}" resultfil=/tmp/result nsec=/tmp/sector stuffs='10' ##sed -n -E "/^(${devices})[0-9][0-9]*:.* $resultfil sed -n -E "/^(${devices})[0-9][0-9]*:.*B [<(]/p" $dmesg | sed 's/^\([a-z][a-z]*[0-9][0-9]*\).*/\1/' > $resultfil disk=`sed -n '1p' $resultfil` export TITLE='n[hfBXNc[wwipe-outx v1.6' dumpskip=0 echo '# ---------------------------- #' >> $LOGFIL echo -n "script mainmenu.sh started on " >> $LOGFIL date >> $LOGFIL echo '# ---------------------------- #' >> $ERRORLOG echo -n "script mainmenu.sh started on " >> $ERRORLOG date >> $ERRORLOG while true ; do dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg=" Cj[\n" msg="${msg}ݑI𒆂̃fBXN /dev/${disk} ${dname} łB\n" msg="${msg}fBXN̗eʂ $bytes oCg ($cap) łB\n" msg="${msg}ȉ̃j[珈IĂB\n" echo -n 'displaying main menu' > $STATEFIL sh dummyread.sh dialog 2>$resultfil \ --title "$TITLE" \ --menu "$msg" \ 20 74 8 \ z '0㏑āÃfBXÑf[^' \ h '@̊Tv\' \ n '㏑āÃfBXÑf[^Oɏ' \ m 'Ȍ㏑@I' \ v 'f[^ꂽmF (^ꕔ`FbN)' \ V 'f[^ꂽmF (ʏ^S`FbN)' \ w 'OfBXNɏ' \ L 'L^tbs[ɏo' \ s 'ʂ̃fBXNI' \ d 'fBXÑf[^\' \ S 'f[^\ZN^̎w' \ a 'uwwipe-outxɂ‚āv' \ C '\XN[Z[o[ɐ؂ւ' \ D 'ÑVXebZ[WmF' \ Y 'fBXNRs[i^obNAbvj' \ y 'fBXNRs[iᑬ^f[^Tx[Wj' \ f '1㏑āÃfBXÑf[^' \ p '_p^[㏑āÃfBXÑf[^' \ q 'p^[̕␔㏑āÃfBXÑf[^' \ r '_f[^㏑āÃfBXÑf[^' \ P 'L^\' \ T 'fBXN̎Ȑff (SMART) \' \ Z 'Tj^CY@\ (SCSI Sanitize command) Ńf[^' \ K 'fBXN蓮Őݒ肷' \ b 'VF (sh) N' \ t 'VF (csh) N' \ M 'CD-ROMmount' \ U 'CD-ROMumount' \ B 'MBR *̂* ' \ x 'Vbg_E' \ R 'ċN' \ N 'j[̐擪ɖ߂' \ # end of menu case x"$?" in x1) break ;; esac result=`cat $resultfil` case x"${result}" in x[zfrpq]) echo -n 'starting erase' > $STATEFIL sh erase.sh -$result $disk ;; xh) echo -n 'displaying instruction' > $STATEFIL dialog --title '@̊Tv' \ --textbox help.txt 22 76 ;; xs) echo -n 'selecting disk' > $STATEFIL . seldisk.sh ;; xn) echo -n 'starting erase' > $STATEFIL sh fine-erase.sh $stuffs $disk ;; xm) echo -n 'selecting erase method' > $STATEFIL . sel-fine.sh ;; xv) echo -n 'starting verify' > $STATEFIL sh verify.sh 90 $disk ;; xV) echo -n 'starting verify' > $STATEFIL sh verify.sh 0 $disk ;; xw) echo -n 'writing log' > $STATEFIL sh writelog.sh $disk ;; xL) echo -n 'saving log' > $STATEFIL sh floppylog.sh ;; xd) echo -n 'dump sector' > $STATEFIL sh dump.sh $dumpskip $disk dumpskip=`expr $dumpskip + 1` ;; xS) echo -n 'selecting sector' > $STATEFIL msg="ZN^w肵Ă ($dumpskip)" dialog 2>$nsec \ --title "$TITLE" \ --inputbox "$msg" 8 64 case x"$?" in x0) echo '' >> $nsec echo "$dumpskip" >> $nsec dumpskip=`sed -n '/^[0-9]/p' $nsec | sed -n 1p` ;; esac ;; xa) echo -n 'displaying about' > $STATEFIL dialog --title 'wwipe-outxɂ‚' \ --textbox info.txt 22 76 ;; xC) echo -n 'displaying saver' > $STATEFIL msg='Alt+F8ƃXN[Z[o[ɐ؂ւ܂' dialog --title "$TITLE" \ --msgbox "$msg" 5 64 ;; xD) echo -n 'displaying system message' > $STATEFIL dialog --title 'ÑVXebZ[W' \ --textbox /var/run/dmesg.boot 22 76 ;; xy) echo -n 'starting copy' > $STATEFIL srcdisk=$disk . seldisk.sh dstdisk=$disk sh copy.sh $srcdisk $dstdisk $cbs disk=$srcdisk ;; xY) echo -n 'starting copy' > $STATEFIL srcdisk=$disk . seldisk.sh dstdisk=$disk sh copy.sh $srcdisk $dstdisk $obs disk=$srcdisk ;; xP) echo -n 'displaying history' > $STATEFIL echo "::: $LOGFIL :::" > /tmp/loglog.txt cat $LOGFIL >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt for f in /tmp/erase-log.* ; do if [ -f "$f" ]; then echo "::: $f :::" >> /tmp/loglog.txt cat $f >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt fi done for f in /tmp/verify-log.* ; do if [ -f "$f" ]; then echo "::: $f :::" >> /tmp/loglog.txt cat $f >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt fi done echo '::: shell variables :::' >> /tmp/loglog.txt set >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt dialog --title '샍O' \ --textbox /tmp/loglog.txt 22 76 ;; xT) echo -n 'displaying smart infomation' > $STATEFIL /usr/local/sbin/smartctl -s on /dev/$disk \ > /tmp/smart.txt 2>&1 /usr/local/sbin/smartctl -a /dev/$disk \ >> /tmp/smart.txt 2>&1 case x"$?" in x0) echo "SMART͐I܂" \ > /tmp/smartmsg.txt ;; *) echo "SMART͓삵܂ł" \ > /tmp/smartmsg.txt ;; esac echo '' >> $LOGFIL echo '::: SMART (smartctl output) :::' >> $LOGFIL cat /tmp/smart.txt >> $LOGFIL cat /tmp/smart.txt >> /tmp/smartmsg.txt dialog --title 'SMARTO' \ --textbox /tmp/smartmsg.txt 22 76 ;; xZ) echo -n 'starting sanitize' > $STATEFIL sh sanitize.sh $disk ;; xK) echo -n 'selecting disk (manual)' > $STATEFIL msg="fBXNw肵Ă ($disk)" dialog 2>/tmp/diskname \ --title "$TITLE" \ --inputbox "$msg" 8 64 case x"$?" in x0) echo '' >> /tmp/diskname echo "$disk" >> /tmp/diskname cat /tmp/diskname | sed -n '/^[a-z][a-z]*[0-9][0-9]*/p' | sed -n 1p > /tmp/diskname.new disk=`cat /tmp/diskname.new` ;; esac ;; xb) echo -n 'starting shell' > $STATEFIL /bin/sh -i ;; xt) echo -n 'starting shell' > $STATEFIL if [ -x /bin/csh ]; then /bin/csh -i else msg='csh̓CD-ROM}EgĂ' dialog --title "$TITLE" \ --msgbox "$msg" 5 64 fi ;; xM) echo -n 'mounting CD-ROM' > $STATEFIL if [ -x /cdrom/usr.bin/dialog ]; then msg='CD-ROM͂łɃ}EgĂ܂' elif mount_cd9660 $CDROM /cdrom > /dev/null 2>&1; then msg='CD-ROM}Eg܂' else msg='CD-ROM}Egł܂ł' fi dialog --title "$TITLE" \ --msgbox "$msg" 5 64 ;; xU) echo -n 'unmounting CD-ROM' > $STATEFIL msg='' if [ ! -x /cdrom/usr.bin/dialog ]; then msg='CD-ROM͂łɃA}EgĂ܂' fi if umount /cdrom > /dev/null 2>&1; then msg='CD-ROMA}Eg܂' elif [ -z "$msg" ]; then msg='CD-ROMA}Egł܂ł' fi dialog --title "$TITLE" \ --msgbox "$msg" 5 64 ;; xB) echo -n 'erasing MBR' > $STATEFIL sh embr.sh $disk ;; xx) echo -n 'starting shutdown' > $STATEFIL echo "halt" > /var/run/nologin exit 1 ;; xR) echo -n 'starting reboot' > $STATEFIL echo "reboot" > /var/run/nologin exit 1 ;; #xN) # NOP # ;; esac done dialog --title "$TITLE" \ --infobox 'I܂' 3 48 echo 'u/bin/sh /wipeout/mainmenu.shvŃj[ʂĂяo܂B' echo '' exit 0 # EOF #! /bin/sh # # seldisk.sh - fBXN̑I # # _CAO{bNX\ăfBXNIA邢͓͂B # foCXt@CԂB # # 0.0: May 30, 2004 by Dai ISHIJIMA # 0.1: Jun. 29, 2006 (support some more disk types) # 0.2: Sep. 12, 2007 (wpout09) # dmesg="${DMESG:-/var/run/dmesg.boot}" devices="${DEVICES:-da|ad|ar|aacd|amrd|ipsd}" resultfil=/tmp/result title="${TITLE:-n[hfBXNc[wwipe-outx}" #sed -n -E "/^(${devices})[0-9]:.* $resultfil sed -n -E "/^(${devices})[0-9]:.*B [(<]/p" $dmesg | sed 's/^\([a-z][a-z]*[0-9]\).*/\1/' > $resultfil disks=`cat $resultfil` n=0 taglist='' for d in $disks ; do dname=`sed -n -E "/^${d}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$d` cap=`disksize -p /dev/$d` taglist="$taglist $d '$dname (${bytes}oCg, $cap)'" done #######taglist="$taglist XX 'LȊO͂'" eval dialog \ --title "'$title'" \ --menu "'fBXNIĂ'" \ 12 72 5 \ $taglist \ 2>$resultfil case "$?" in 0) newdisk=`cat $resultfil` if [ x"$disk" != x"$newdisk" ]; then msg="fBXN ${disk} " msg="${msg} ${newdisk} ɕύX܂B" dialog --title "$title" \ --infobox "$msg" 5 72 sleep 2 fi disk="$newdisk" ;; 1) dialog --title "$title" \ --infobox 'fBXN̑ILZ܂' 3 64 sleep 2 ;; esac # EOF #! /bin/sh # # erase.sh -- f[^㏑ăfBXÑf[^ # # g: /bin/sh erase.sh - fBXN # : [zfr] # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh erase.sh -z ad0 # # 0.0: Jun. 20, 2004 by Dai ISHIJIMA (for wpout03) # 0.1: Jul. 11, 2004 # 0.2: Jun. 28, 2006 (_p^[ƕ␔ for wpout07) # 0.3: Aug. 1, 2006 (^CX^v) # 0.4: Aug. 12, 2006 (^CX^vɗe) # 0.5: Feb. 10, 2007 (OL^ for wpout08) # 0.6: Feb. 15, 2007 (G^[L[΍AG[Ɠ]x̃O) # 0.7: Sep. 12, 2007 (wpout09) # 0.8: Oct. 6, 2007 (vZ32rbgt͈̔͂ōs) # 0.9: Dec. 23, 2007 (o[Ot\̌vZC) # 1.0: Jan. 2, 2008 (OC) # 1.1: Mar. 22, 2014 (ʂ̂‚炷 (XV炷)) # ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" exec 2>> $ERRORLOG echo "# start $0, $@" 1>&2 echo '# ---------------------------- #' 1>&2 # PƂł悤 LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" STATEFIL="${STATEFIL:-/tmp/status.txt}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" dispupd="${DISPUPD:-2}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL echo -n 'starting erase' > $STATEFIL if [ ! -s $PATTERNFIL ]; then stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL fi # stuff="${1:--z}" disk="${2:-ad0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # x32MoCg blklen="${BLKLEN:-33554432}" # o̓ubNTCY1MoCg obs="${OBS:-1048576}" ocnt=$(( $blklen / $obs )) ounit=$(( $obs / 1048576 )) # ̓ubNTCY1koCg ibs="${IBS:-1024}" icnt=$(( $blklen / $ibs )) # resultfil=/tmp/result # title="${TITLE:-n[hfBXNc[wwipe-outx}" # if [ ! -w /dev/$disk ]; then dialog --title "$title" \ --msgbox "fBXN $disk ݂ȂA݂ł܂" \ 5 64 exit 1 fi # mount -p | sed -n -E "/^.dev.$disk/p" > $resultfil if [ -s $resultfil ]; then dialog --title "$title" \ --msgbox "}Eg̃fBXN $disk 邱Ƃ͂ł܂" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg="fBXN ${disk} ${dname} \n" msg="${msg}Sf[^ ${bytes}oCgA\n" case x"$stuff" in x-[0z]) msg="${msg}0ŏ㏑ď܂B\n" method='write 0' ;; x-[1f]) msg="${msg}1ŏ㏑ď܂B\n" method='write 1' ;; x-[Rr]) msg="${msg}_f[^ŏ㏑ď܂B\n" method='write random' ;; x-[Pp]) stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL msg="${msg}_p^[ŏ㏑ď܂B\n" method='write pattern' ;; x-[Qq]) msg="${msg}Op^[̕␔ŏ㏑ď܂B\n" method='write inverted pattern' ;; *) msg="${msg}܂B\n" method='overwrite' ;; esac msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="{${disk} ($cap) ̃f[^Ăł?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac # ̃p[^ (MoCgPʂŐ) mbytes=`disksize -m /dev/$disk` max=$(( $mbytes / $ounit )) startsec=`tinydate '+%s'` rems='' # Jn startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "erase started on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname) $bytes bytes with $method" >> $LOGFIL nerrs=0 skip=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi lastdisp=0 dispintv=0 while [ $skip -le $max ]; do # v cursec=`tinydate '+%s'` # o[Ot p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # c莞 elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 10 ]; then if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="c 悻${rems}" else rems="c 悻${remain}b" fi fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}" else elas="${elapsed}b" fi # echo -n "erasing $disk, $p % done" > $STATEFIL text="fBXN ${disk} ̃f[^Ă܂B\n" text="${text} ${p}% ($skip/$max) I ^ " text="${text}${elas} o ${rems} \n\n" text="${text} 0%|${bar}|100%" text="${text}\n${errormsg}" dispintv=$(( $cursec - $lastdisp )) if [ $dispintv -ge $dispupd ]; then dialog --title "$title" --infobox "$text" 7 72 lastdisp=$cursec else echo -e '\r\c' fi case "x$progchar" in xO) progchar='.' ;; xo) progchar='O' ;; *) progchar='o' ;; esac echo -n "$progchar $status2 " case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`stuff $stuff < $PATTERNFIL | dd ibs=$ibs obs=$obs seek=$skip count=$icnt of=/dev/$disk 2>&1` status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # L^ case x"$skip" in x0) echo "skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # [v skip=$(( $skip + $ocnt )) done sleep 2 # echo "skip: $skip, $status2" >> $LOGFIL echo "number of error messages: $nerrs" >> $LOGFIL echo -n "erase finished on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname, $cap) with $method" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}${sec}b" else elas="${elapsed}b" fi # I endstamp=`date '+%H:%M'` # Oۑ echo 'The contents of this storage device' > /tmp/erase-log.$disk echo "$disk ($cap) '$dname'" >> /tmp/erase-log.$disk echo -n 'were erased with ' >> /tmp/erase-log.$disk echo 'hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk echo "Erased with '$method'" >> /tmp/erase-log.$disk echo " $startstamp -> $endstamp" >> /tmp/erase-log.$disk echo "but NOT verified" > /tmp/verify-log.$disk echo -n "$disk erased ($elapsed [s])" > $STATEFIL sh dummyread.sh dialog --title "$title" \ --msgbox "fBXÑf[^I܂ (${elas})" 5 72 # echo '# ---------------------------- #' 1>&2 exit 0 # EOF #! /bin/sh # # fine-erase.sh -- 񏑂݂ŔOɃfBXÑf[^ # # g: /bin/sh fine-erase.sh fBXN # : [0z1fRr]+ # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh fine-erase.sh 0101010 ad0 # # 0.0: Jun. 27, 2004 by Dai ISHIJIMA # 0.1: Jul. 11, 2004 # 0.2: Jun. 28, 2006 # 0.3: Aug. 1, 2006 (^CX^v for wpout07) # 0.4: Feb. 10, 2007 (OL^ for wpout08) # 0.5: Feb. 15, 2007 (G^[L[΍) # 0.6: Sep. 12, 2007 (wpout09) # 0.7: Oct. 6, 2007 (vZ32rbgt͈̔͂ōs) # 0.8: Dec. 23, 2007 (o[Ot\̌vZC) # 0.9: Jan. 2, 2008 (OC) # 1.0: Mar. 22, 2014 (ʂ̂‚炷 (XV炷)) # 1.1: Aug. 4, 2015 (expr *, FreeBSd 9.3R) # ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" exec 2>> $ERRORLOG echo "# start $0, $@" 1>&2 echo '# ---------------------------- #' 1>&2 # PƂł悤 LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" STATEFIL="${STATEFIL:-/tmp/status.txt}" dispupd="${DISPUPD:-2}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL echo -n 'starting erase' > $STATEFIL if [ ! -s $PATTERNFIL ]; then stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL fi stuffs="${1:-fz}" disk="${2:-ad0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # x32MoCg blklen="${BLKLEN:-33554432}" # o̓ubNTCY1MoCg obs="${OBS:-1048576}" ocnt=$(( $blklen / $obs )) ounit=$(( $obs / 1048576 )) # ̓ubNTCY1koCg ibs="${IBS:-1024}" icnt=$(( $blklen / $ibs )) # resultfil=/tmp/result # title="${TITLE:-n[hfBXNc[wwipe-outx}" # if [ ! -w /dev/$disk ]; then dialog --title "$title" \ --msgbox "fBXN $disk ݂ȂA݂ł܂" \ 5 64 exit 1 fi # mount -p | sed -n -E "/^.dev.$disk/p" > $resultfil if [ -s $resultfil ]; then dialog --title "$title" \ --msgbox "}Eg̃fBXN $disk 邱Ƃ͂ł܂" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg="fBXN ${disk} ${dname} \n" msg="${msg}Sf[^ ${bytes}oCgA\n" nstuff=0 for stuff in `echo $stuffs | sed 's/\(.\)/\1 /g'` ; do case x"$stuff" in x[0z]) msg="${msg}0A" ;; x[1f]) msg="${msg}1A" ;; x[Rr]) msg="${msg}RA" ;; x[Pp]) msg="${msg}PA" ;; x[Qq]) msg="${msg}QA" ;; esac nstuff=$(( $nstuff + 1 )) done msg="${msg}̏\n${nstuff}㏑ď܂\n" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 10 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="{${disk} ($cap) ̃f[^Ăł?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac # ̃p[^ (MoCgPʂŐ) mbytes=`disksize -m /dev/$disk` max=$(( $mbytes / $ounit )) stage=0 xstage=1 startsec=`tinydate '+%s'` totalrems='' # Jn startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "erase ($nstuff times) started on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname) $bytes bytes with $stuffs" >> $LOGFIL nerrs=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi for stuff in `echo $stuffs | sed 's/\(.\)/\1 /g'` ; do skip=0 stagestart=`tinydate '+%s'` case "$stuff" in [0z]) method="'0'㏑" ;; [1f]) method="'1'㏑" ;; [Rr]) method="_f[^㏑" ;; [Pp]) stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" \ >> $LOGFIL method="_p^[㏑" ;; [Qq]) method="Op^[̕␔㏑" ;; esac rems='' status='' status2='' errormsg='' # echo -n "stage: $stage, with writing $stuff " >> $LOGFIL echo -n "started on " >> $LOGFIL date >> $LOGFIL # lastdisp=0 dispintv=0 while [ $skip -le $max ]; do # v cursec=`tinydate '+%s'` # o[Ot p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # c莞 elapsed=$(( $cursec - $stagestart )) if [ $elapsed -gt 10 ]; then if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="c 悻${rems}" else rems="c 悻${remain}b" fi fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}" else elas="${elapsed}b" fi # S̃o[Ot pp=$(( ( $p + 100 * $stage ) / $nstuff )) mm=$(( ( $m + 1000 * $stage ) / $nstuff )) q=$(( $pp / 2 )) i=0 totalbar='' while [ $i -lt $q ]; do totalbar="$totalbar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do totalbar="$totalbar"'_' i=$(( $i + 1 )) done ee=$(( $cursec - $startsec )) if [ $mm -gt 0 ]; then rr=$(( ( 1000 - $mm ) * $ee / $mm + 1 )) if [ $rr -gt 120 ]; then totalrems=$(( ( $rr + 59 ) / 60 )) totalrems="c 悻${totalrems}" else totalrems="c 悻${rr}b" fi fi if [ $ee -gt 120 ]; then totalelas=$(( ( $ee + 30 ) / 60 )) totalelas="${totalelas}" else totalelas="${ee}b" fi # echo -n "erasing $disk, $pp % done" > $STATEFIL text="fBXN ${disk} ̃f[^Ă܂B\n\n" text="${text}S ${nstuff} H ${xstage} Ԃ " text="${text} Ŝ ${pp}% I\n" text="${text}${totalelas} o ${totalrems} \n\n" text="${text} 0%|${totalbar}|100%\n\n" text="${text}̍Hł${method}Af[^Ă܂B\n" text="${text}${p}% ($skip/$max) I ^ " text="${text}${elas} o ${rems} \n\n" text="${text} 0%|${bar}|100%\n\n" text="${text}\n${errormsg}" dispintv=$(( $cursec - $lastdisp )) if [ $dispintv -ge $dispupd ]; then dialog --title "$title" --infobox "$text" 15 72 lastdisp=$cursec else echo -e '\r\c' fi case "x$progchar" in xO) progchar='.' ;; xo) progchar='O' ;; *) progchar='o' ;; esac echo -n "$progchar $status2 " case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`stuff -$stuff < $PATTERNFIL | dd ibs=$ibs obs=$obs seek=$skip count=$icnt of=/dev/$disk 2>&1` status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # L^ case x"$skip" in x0) echo "stage: $stage, skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # [v skip=$(( $skip + $ocnt )) done stage=$(( $stage + 1 )) xstage=$(( $xstage + 1 )) echo "stage: $stage, skip: $skip, $status2" >> $LOGFIL done sleep 2 # echo "number of errmessages: $nerrs" >> $LOGFIL echo -n "erase finished on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname, $cap) with overwriting $nstuff times" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}${sec}b" else elas="${elapsed}b" fi # I endstamp=`date '+%H:%M'` # Oۑ echo 'The contents of this storage device' > /tmp/erase-log.$disk echo "$disk ($cap) '$dname'" >> /tmp/erase-log.$disk echo -n 'were erased with ' >> /tmp/erase-log.$disk echo 'hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk echo "Erase $nstuff times ($stuffs)" >> /tmp/erase-log.$disk echo " $startstamp -> $endstamp" >> /tmp/erase-log.$disk echo "but NOT verified" > /tmp/verify-log.$disk echo -n "$disk erased ($elapsed [s])" > $STATEFIL sh dummyread.sh dialog --title "$title" \ --msgbox "fBXÑf[^I܂ (${elas})" 5 72 # echo '# ---------------------------- #' 1>&2 exit 0 # EOF #! /bin/sh # # sel-fine.sh - O@̑I # # 0.0: Jun. 26, 2004 by Dai ISHIJIMA # 0.1: Jul. 9, 2005 # 0.2: Jun. 28, 2006 (_p^[ƕ␔ for wpout07) # 0.3: Feb. 18, 2007 (15lj for wpout08) # resultfil=/tmp/result stuffs="${stuffs:-10}" title="${TITLE:-n[hfBXNc[wwipe-outx}" dialog 2>$resultfil \ --title "$title" \ --menu '@IĂ' \ 12 74 5 \ 10 '10̏2㏑' \ 01 '01̏2㏑' \ R0 '_0̏2㏑' \ RR0 '__0̏3㏑' \ R10 '_10̏3㏑' \ PQ0 '_p^[␔0̏3㏑' \ RR10 '_~210̏4㏑' \ 1010 '1010̏4㏑' \ PQ10 'p^[␔10̏4㏑' \ PQR0 'p^[␔_10̏4㏑' \ 01010 '(01)~20̏5㏑' \ RRR10 '_~310̏5㏑' \ PQPQ0 '(p^[␔)~20̏5㏑' \ 101010 '101010̏6㏑' \ RRRR10 '_~410̏6㏑' \ PQPQ10 '(p^[␔)~210̏6㏑' \ 0101010 '(01)~30̏7㏑' \ R101010 '_101010̏7㏑' \ R10R10R10 '(_10)~3̏9㏑' \ PQRPQRPQR0 '(p^[␔_)~30̏10' \ PQRPQRPQR10 '(p[^␔_)~310̏11' \ R10R10R10R10 '(_10)~4̏12㏑' \ PQRPQRPQRPQR0 '(p^[␔_)~40̏13' \ PQRPQRPQRPQR10 '(p^[␔_)~410̏14' \ PQR10PQR10PQR10 '(p^[␔_10)~3̏15' \ case x"$?" in x0) newstuff=`cat $resultfil` if [ x"$stuffs" != x"$newstuff" ]; then msg="@ ${stuffs} " msg="${msg} ${newstuff} ɕύX܂B" dialog --title "$title" \ --infobox "$msg" 3 72 sleep 2 fi stuffs="$newstuff" ;; x1) dialog --title "$title" \ --infobox '@̑ILZ܂' 3 64 sleep 2 ;; esac # EOF #! /bin/sh # # verify.sh -- f[^Ă邩mF # # g: /bin/sh verify.sh step fBXN # step: XLbv钷 # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh verify.sh 0 ad0 (fBXNS) # /bin/sh verify.sh 90 ad0 (Ŝ1/10) # /bin/sh verify.sh 990 ad0 (Ŝ1/100) # # 0.0: Jul. 8, 2005 by Dai ISHIJIMA (for wpout06) # 0.2: Aug. 1, 2006 (^CX^v for wpout07) # 0.3: Feb. 10, 2007 (OL^ for wpout08) # 0.4: Feb. 15, 2007 (G^[L[΍) # 0.5: Sep. 12, 2007 (wpout09) # 0.6: Oct. 6, 2007 (vZ32rbgt͈̔͂ōs) # 0.7: Dec. 23, 2007 (o[Ot\̌vZC) # 0.8: Jan. 2, 2008 (OC) # 0.9: Apr. 19, 2009 (mFbZ[W, wpout10) # 1.0: Mar. 21, 2014 (c莞ԌvZC) # 1.1: Mar. 22, 2014 (ʂ̂‚炷 (XV炷)) # ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" exec 2>> $ERRORLOG echo "# start $0, $@" 1>&2 echo '# ---------------------------- #' 1>&2 # PƂł悤 LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" STATEFIL="${STATEFIL:-/tmp/status.txt}" dispupd="${DISPUPD:-2}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL echo -n 'starting verify' > $STATEFIL step="${1:-1}" disk="${2:-ad0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # 10MoCgPʂŊmF vblklen="${VBLKLEN:-10485760}" # x1MoCg vbs="${VBS:-1048576}" vunit=$(( $vbs / 1048576 )) # x10ubN vcnt=$(( $vblklen / $vbs )) # resultfil=/tmp/result # title="${TITLE:-n[hfBXNc[wwipe-outx}" if [ ! -r /dev/$disk ]; then dialog --title "$title" \ --msgbox "fBXN $disk ݂ȂAǂ߂܂" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` dbytes=`disksize -p /dev/$disk` bytes=`disksize -B /dev/$disk` # mF̃p[^ mbytes=`disksize -m /dev/$disk` # ubNTCYPʂł̃fBXNTCY max=$(( $mbytes / $vunit )) msg="fBXN ${disk} ${dname} \n" msg="${msg}f[^ ${bytes}oCg\n" msg="${msg}Ă邱ƂmF܂B\n" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'mFLZ܂' 3 64 sleep 2 exit 1 ;; esac # zero=0 one=0 maybe=0 unerased=0 checked=0 startsec=`tinydate '+%s'` rems='' # Jn startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "verify started on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname) $bytes bytes" >> $LOGFIL nerrs=0 skip=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi lastdisp=0 dispintv=0 while [ $skip -lt $max ]; do # v cursec=`tinydate '+%s'` # o[Ot p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # c莞 elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 10 ]; then if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="c 悻${rems}" else rems="c 悻${remain}b" fi fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}" else elas="${elapsed}b" fi # echo -n "verify $disk, $p % done" > $STATEFIL text="fBXN ${disk} ̃f[^`FbNĂ܂B\n" text="${text}${max}ubN̂${skip}ubN^${p}% I\n" text="${text}${elas} o ${rems} \n\n" text="${text} 0%|${bar}|100%" text="${text}\n${errormsg}" dispintv=$(( $cursec - $lastdisp )) if [ $dispintv -ge $dispupd ]; then dialog --title "$title" --infobox "$text" 8 72 lastdisp=$cursec else echo -e '\r\c' fi case "x$progchar" in xO) progchar='.' ;; xo) progchar='O' ;; *) progchar='o' ;; esac echo -n "$progchar $status2 " case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`(dd if=/dev/$disk ibs=$vbs skip=$skip count=$vcnt | check -s) 2>&1` case $? in 0) zero=$(( $zero + $vcnt )) ;; 1) one=$(( $one + $vcnt )) ;; 2) maybe=$(( $maybe + $vcnt )) ;; *) unerased=$(( $unerased + $vcnt )) ;; esac status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # ʼnsɏoXe[^X̂Ƃ case x"$status2" in x) status2="skipping unerased block $unerased at $skip" ;; esac # L^ case x"$skip" in x0) echo "skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # [v checked=$(( $checked + $vcnt )) skip=$(( $skip + $vcnt + $step )) done sleep 2 # echo "skip: $skip, $status2" >> $LOGFIL echo "number of error messages: $nerrs" >> $LOGFIL echo -n "verify finished on" >> $LOGFIL date >> $LOGFIL echo " $disk ($dname, $dbytes), max = $max, checked = $checked" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}${sec}b" else elas="${elapsed}b" fi # I endstamp=`date '+%H:%M'` unerased=$(( $unerased + $maybe )) zp=$(( $zero * 100 / $checked )) op=$(( $one * 100 / $checked )) np=$(( $unerased * 100 / $checked )) msg="fBXN ($disk, $dbytes oCg) ̃`FbNI܂ (${elas})\n" msg="${msg}S $max ubN $checked ubN܂\n" msg="${msg} '0' ŏĂubN: $zero ($zp %)\n" msg="${msg} '1' ŏĂubN: $one ($op %)\n" msg="${msg} ȊO () ̃ubN: $unerased ($np %)\n" # Oۑ echo "Verified $checked blocks" > /tmp/verify-log.$disk echo -n " erased with 0:${zp}%, 1:${op}%, " >> /tmp/verify-log.$disk echo "unerased:${np}%" >> /tmp/verify-log.$disk echo " $startstamp -> $endstamp" >> /tmp/verify-log.$disk echo -n "$disk verified ($elapsed [s])" > $STATEFIL sh dummyread.sh # Ȃ~܂? #echo -n "final confirmation message displayed on " >> $LOGFIL #date >> $LOGFIL dialog --title "$title" \ --msgbox "$msg" 10 72 # echo '# ---------------------------- #' 1>&2 exit 0 # EOF #! /bin/sh # # dump.sh -- fBXÑf[^\ # # 0.0: Jul. 8, 2005 by Dai ISHIJIMA (wpout06) # 0.1: Sep. 12, 2007 (wpout09) # # g: /bin/sh dump.sh skip fBXN # skip: XLbv钷 # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh dump.sh 0 ad0 # # skip="${1:-0}" disk="${2:-ad0}" title=" $disk ZN^ $skip ̓e" (dd if=/dev/$disk skip=$skip count=1 | tinydump > /tmp/dump.txt) 2>/dev/null dialog --title "$title" \ --textbox /tmp/dump.txt 22 76 #! /bin/sh # # writelog.sh -- OfBXNɏ # # g: /bin/sh writelog.sh fBXN # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh writelog.sh ad0 # # 0.0: Aug. 1, 2006 by Dai ISHIJIMA (for wpout07) # 0.1: Aug. 7, 2006 OɊmF # 0.2: Feb. 10, 2007 (OL^ for wpout08) # 0.3: Feb. 15, 2007 (G^[L[΍) # 0.4: Sep. 12, 2007 (wpout09) # disk="${1:-ad0}" mbr="${MBR:-wpout-mbr.boot}" title="${TITLE:-n[hfBXNc[wwipe-outx}" # łɏς݂? if [ ! -s /tmp/erase-log.$disk ]; then dialog --title "$title" \ --yesno '삪sĂ܂\n{ɏ݂܂?' \ 6 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'Ȍ݂LZ܂' 3 64 sleep 2 exit 1 ;; esac fi # {ɏĂ̂? dd if=/dev/$disk count=1 of=/tmp/org-mbr.$disk 1>/dev/null 2>&1 if ! check < /tmp/org-mbr.$disk 1>/dev/null 2>&1 ; then dialog --title "$title" \ --yesno 'MBR0ŏĂ܂\n{ɏ݂܂?' \ 6 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'Ȍ݂LZ܂' 3 64 sleep 2 exit 1 ;; esac fi # O݂Ȃ炻炵쐬 if [ ! -s /tmp/erase-log.$disk ]; then echo 'The contents of this storage device' > /tmp/erase-log.$disk echo 'may have been erased' >> /tmp/erase-log.$disk echo 'with hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk fi if [ ! -s /tmp/verify-log.$disk ]; then echo 'But NOT verified.' > /tmp/verify-log.$disk fi # ŏImF sh dummyread.sh dialog --title "$title" \ --yesno "OfBXN ($disk) ɏ݂܂?" \ 6 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'Ȍ݂LZ܂' 3 64 sleep 2 exit 1 ;; esac echo -n 'Logged: ' > /tmp/stamp-log.$disk date '+%Y-%m-%d %H:%M:%S' >> /tmp/stamp-log.$disk echo 'ABSOLUTELY NO WARRANTY.' >> /tmp/stamp-log.$disk # ݑ cat $mbr /tmp/erase-log.$disk /tmp/verify-log.$disk /tmp/stamp-log.$disk | makembr > /tmp/boot.$disk # echo -n "MBR log was written on " >> $LOGFIL date >> $LOGFIL echo "==" >> $LOGFIL cat /tmp/erase-log.$disk /tmp/verify-log.$disk /tmp/stamp-log.$disk >> $LOGFIL echo "==" >> $LOGFIL case x$DEBUG in x[Yy]*) echo 'debug mode, no write' mesg="OfBXN ($disk) ɏ݂܂ (in debug mode)" ;; *) if dd if=/tmp/boot.$disk of=/dev/$disk > /dev/null 2>&1; then mesg="OfBXN ($disk) ɏ݂܂" else mesg="OfBXN ($disk) ɏ߂܂ł" fi ;; esac sh dummyread.sh dialog --title "$title" --msgbox "$mesg" 5 72 exit 0 # EOF #! /bin/sh # # copy.sh -- G[𖳎ăf[^Rs[ # # g: /bin/sh copy.sh Rs[fBXN Rs[fBXN # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh copy.sh ad0 ad1 # # 0.0: Aug. 5, 2006 by Dai ISHIJIMA (for wpout07) # 0.1: Feb. 10, 2007 (OL^ for wpout08) # 0.2: Feb. 15, 2007 (G^[L[΍) # 0.3: Sep. 12, 2007 (wpout09) # 0.4: Oct. 6, 2007 (expr(1) POSIXΉ) # 0.4: Dec. 13, 2007 (o[OtAc菊vԂ̃I[o[t[C) # 0.5: Jan. 2, 2008 (OC) # 0.6: Apr. 19, 2009 (ubNTCY•, wpout10) # 0.7: Oct. 11, 2013 (Rs[̃fBXN\, wpout13) # ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" exec 2>> $ERRORLOG echo "# start $0, $@" 1>&2 echo '# ---------------------------- #' 1>&2 # PƂł悤 LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" STATEFIL="${STATEFIL:-/tmp/status.txt}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" dispupd="${DISPUPD:-2}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL echo -n 'starting copy' > $STATEFIL # vZ 32bit signed int ̌EɈȂ悤ɂ export EXPR_COMPAT # ubNTCY512oCg cbs="${CBS:-512}" srcdisk="${1:-ad0}" dstdisk="${2:-ad1}" cbs="${3:-$cbs}" dmesg="${DMESG:-/var/run/dmesg.boot}" if [ ! -r /dev/$srcdisk ]; then echo "$0: disk '$srcdisk' does not exist or is not readable" echo "Usage: $0 srcdisk dstdist" exit 1 fi if [ ! -w /dev/$dstdisk ]; then echo "$0: disk '$dstdisk' does not exist or is not writable" echo "Usage: $0 srcdisk dstdist" exit 1 fi # x32MoCg blklen="${BLKLEN:-33554432}" # Rs[̃p[^ # MoCgPʂŐ mbytes=`disksize -m /dev/$srcdisk` # 524288MoCgȉȂubNTCY512oCg # ubÑJEg30rbgŎ܂悤ɂ xbs=$(( ( $mbytes + 524288 - 1 ) / 524288 )) minbs=512 xbs=$(( $xbs >> 1 )) # ubN̓fBXNTCYɉ 512, 1k, 2k, 4k,.. while [ $xbs -gt 0 ]; do minbs=$(( $minbs << 1 )) xbs=$(( $xbs >> 1 )) done # wubNZ (vZӂ鋰̂) Ƃ͒ if [ $cbs -lt $minbs ]; then cbs=$minbs fi ccnt=$(( $blklen / $cbs )) # obs="${OBS:-1048576}" ocnt=$(( $blklen / $obs )) ounit=$(( $obs / 1048576 )) title="${TITLE:-n[hfBXNc[wwipe-outx}" sname=`sed -n -E "/^${srcdisk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` sbytes=`disksize -B /dev/$srcdisk` dname=`sed -n -E "/^${dstdisk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` dbytes=`disksize -B /dev/$dstdisk` msg="fBXN ${srcdisk} ${sname} \n" msg="${msg}Sf[^ ${sbytes}oCgA${cbs}oCgPʂ\n" msg="${msg}fBXN ${dstdisk} ${dname}\n" msg="${msg}(${dbytes}oCg) ɃRs[܂B" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXÑRs[LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="{${srcdisk}̃f[^${dstdisk}ɃRs[Ăł?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXÑRs[LZ܂' 3 64 sleep 2 exit 1 ;; esac dd if=/dev/$dstdisk ibs=512 count=1 | check -s 2>&1 case $? in 0) dstempty="may be empty or erased." ;; *) dstempty="may NOT be empty or erased." msg="Rs[̃fBXN${dstdisk} ${dname}\n" msg="${msg}ɂ̓f[^cÔ\܂\n" msg="${msg}{${srcdisk}̃f[^" msg="${msg}${dstdisk}ɃRs[Ăł?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 7 72 case x"$?" in x1) dialog --title "$title" \ --infobox \ 'fBXÑRs[LZ܂' 3 64 sleep 2 exit 1 ;; esac ;; esac ccnt=$(( $blklen / $cbs )) max=$(( $mbytes * (1048576 / $cbs) )) startsec=`tinydate '+%s'` rems='' # echo "v ---------------------------- v" >> $LOGFIL echo -n "copy started on " >> $LOGFIL date >> $LOGFIL echo " copy $srcdisk ($sname)" >> $LOGFIL echo " -> $dstdisk ($dname)" >> $LOGFIL echo " destination disk $dstdisk ($dname) $dstempty" >> $LOGFIL echo " copying $sbytes bytes ($mbytes Mbytes)" >> $LOGFIL echo " cbs=$cbs, ccnt=$ccnt, max=$max, obs=$obs, ocnt=$ocnt" >> $LOGFIL nerrs=0 skip=0 oseek=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi # echo " xcent=$xcent, xmill=$xmill, mcent=$mcent, mmill=$mmill" >> $LOGFIL lastdisp=0 dispintv=0 while [ $skip -le $max ]; do # v cursec=`tinydate '+%s'` # o[Ot p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # c莞 elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 10 ]; then if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="c 悻${rems}" else rems="c 悻${remain}b" fi fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}" else elas="${elapsed}b" fi # echo -n "copying $srcdisk to $dstdisk, $p % done" > $STATEFIL text="fBXN ${srcdisk} ${sname} \n" text="${text}f[^ ${dstdisk} ${dname} \n" text="${text}${cbs}oCgPʂŃRs[Ă܂B\n" text="${text} ${p}% ($skip/$max) I ^ " text="${text}${elas} o ${rems} \n\n" text="${text} 0%|${bar}|100%" text="${text}\n${errormsg}" dispintv=$(( $cursec - $lastdisp )) if [ $dispintv -ge $dispupd ]; then dialog --title "$title" --infobox "$text" 9 72 lastdisp=$cursec else echo -e '\r\c' fi case "x$progchar" in xO) progchar='.' ;; xo) progchar='O' ;; *) progchar='o' ;; esac echo -n "$progchar $status2 " case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`dd if=/dev/$srcdisk ibs=$cbs skip=$skip conv=noerror,sync obs=$obs seek=$oseek count=$ccnt of=/dev/$dstdisk 2>&1` status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # L^ case x"$skip" in x0) echo "skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # [v skip=$(( $skip + $ccnt )) oseek=$(( $oseek + $ocnt )) done sleep 2 # echo "skip: $skip, $status2" >> $LOGFIL echo "number of error messages: $nerrs" >> $LOGFIL echo -n "copy finished on " >> $LOGFIL date >> $LOGFIL echo -n "$srcdisk ($sname, $sbytes)" >> $LOGFIL echo " -> $dstdisk ($dname, $dbytes)" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}${sec}b" else elas="${elapsed}b" fi echo -n "$disk copied ($elapsed [s])" > $STATEFIL sh dummyread.sh dialog --title "$title" \ --msgbox "fBXÑRs[I܂ (${elas})" 5 72 # echo '# ---------------------------- #' 1>&2 exit 0 # EOF #! /bin/sh # # embr.sh -- MBR̂ݏ # # g: /bin/sh embr.sh fBXN # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh embr.sh ad0 # # 0.0: Dec. 21, 2006 by Dai ISHIJIMA (for wpout07) # 0.1: Feb. 10, 2007 (OL^ for wpout08) # 0.2: Feb. 15, 2007 (G^[L[΍) # 0.3: Sep. 12, 2007 (wpout09) # 0.4: Jan. 2, 2008 (OC) # LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" dmesg="${DMESG:-/var/run/dmesg.boot}" disk="${1:-ad0}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL #if [ ! -w /dev/$disk ]; then # echo "$0: disk '$disk' does not exist or is not writable" # echo "Usage: $0 disk" # echo "Example: $0 ad0" # exit 1 #fi title="${TITLE:-n[hfBXNc[wwipe-outx}" dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` msg="fBXN ${disk} ${dname} \n" msg="${msg}MBR (}X^Eu[gER[h; 擪ZN^)\n" msg="${msg}** ܂B\n" msg="${msg}\n" msg="${msg}MBRƁAfBXNׂ̂Ẵf[^\n" msg="${msg}ȂȂ̂悤Ɍ܂BA\n" msg="${msg}c[Ōɖ߂Ƃ”\Ȃ̂\n" msg="${msg}Rk̊댯܂BӂB\n" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 15 52 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="fBXN ${disk} MBR𒆎~܂?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x0) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac echo "v ---------------------------- v" >> $LOGFIL echo -n "erase MBR ($disk) started on " >> $LOGFIL date >> $LOGFIL case x$DEBUG in x[Yy]*) echo -n "now in debug mode..." echo 'debug mode' >> $LOGFIL ;; *) dd bs=512 count=1 if=/dev/zero of=/dev/$disk ;; esac sleep 3 # echo -n "erase MBR ONLY $disk ($dname) on " >> $LOGFIL date >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL sh dummyread.sh dialog --title "$title" \ --msgbox "MBȐI܂" 5 64 exit 0 # EOF #! /bin/sh # # crlf.sh -- sR[h LF (\n) CRLF (\r\n) # # 0.0: Feb. 5, 2007 by Dai ISHIJIMA # 0.1: Feb. 18, 2007 by Dai ISHIJIMA # cr=`echo -e '\r'` if sed 's/$/'"$cr"'/' ; then exit 0 else echo "crlf.sh: write failed" exit 1 fi # EOF#! /bin/sh # # floppylog.sh -- tbs[ɃOL^ # # g: /bin/sh floppylog.sh [fBXN] # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh floppylog.sh fd0 # # 0.0: Feb. 10, 2007 by Dai ISHIJIMA (for wpout08) # 0.1: Feb. 15, 2007 (fBXNI) # 0.2: Feb. 15, 2007 (dmesg -a Ō) # 0.3: Feb. 18, 2007 (LZsbugfix) # 0.4: Feb. 20, 2007 (VFϐ) # 0.5: Feb. 21, 2007 (Ɠeʼnsɕ\) # 0.6: Feb. 23, 2007 (: Ɠeʼnsɕ\) # 0.7: Sep. 12, 2007 (wpout09) # 0.8: Oct. 6, 2007 (expr ̑ $(( )) ) # 0.9: Mar. 22, 2014 (G[O) # dmesg="${DMESG:-/var/run/dmesg.boot}" ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" disk="${1:-fd0}" resultfil=/tmp/result searchfor="fd0 da0 da0s1 da1 da1s1 da2 da2s1 da3 da3s1" header=/tmp/header.txt title="${TITLE:-n[hfBXNc[wwipe-outx}" dialog --title "$TITLE" \ --infobox "O̕ۑĂ܂" 3 64 ndevs=0 devs='' for dev in $searchfor ; do echo -e "\r \r\c" echo -n "checking $dev" if mount_msdosfs -s -o rdonly /dev/$dev /floppy > /dev/null 2>&1; then if [ -d /floppy/wipe-out ]; then devs="$devs $dev" ndevs=$(( $ndevs + 1 )) fi umount /floppy fi done case x"$ndevs" in x0) echo "no device to write log" >> $LOGFIL msg="O̕ۑ悪݂‚܂ł" dialog --title $title --msgbox "$msg" 5 64 exit 1 ;; esac taglist='' for dev in $devs ; do d=`echo $dev | sed 's/^\([a-z][a-z]*[0-9]\).*/\1/'` dname=`sed -n -E "/^${d}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` taglist="$taglist $dev '$dname'" done sh dummyread.sh eval dialog \ --title "'$title'" \ --menu "'O̕ۑIĂ'" \ 10 72 3 \ $taglist \ 2>$resultfil case "$?" in 0) disk=`cat $resultfil` msg="O ${disk} ɕۑ܂" dialog --title "$title" --infobox "$msg" 3 64 ;; 1) dialog --title "$title" \ --infobox 'O̕ۑLZ܂' 3 64 sleep 2 # 2007-02-18 exit 1 ;; esac echo -e "\r \r\c" echo -n "mounting floppy" if ! mount_msdosfs -s /dev/$disk /floppy > /dev/null 2>&1; then msg="ۑ ${disk} ݃}Egł܂ł" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo "" > $header echo -n "####################################" >> $header echo "####################################" >> $header echo -n "following messages were logged on " >> $header date >> $header echo -n "====================================" >> $header echo "====================================" >> $header # dmesg.boot echo -e "\r \r\c" echo -n "writing dmesg.boot header" if ! crlf.sh < $header >> /floppy/wipe-out/dmsgboot.txt ; then umount /floppy msg="dmesg.bootwb_݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing dmesg.boot body" if ! crlf.sh < $dmesg >> /floppy/wipe-out/dmsgboot.txt ; then umount /floppy msg="dmesg.boot݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # wpoutlog.txt echo -e "\r \r\c" echo -n "writing wpoutlog header" if ! crlf.sh < $header >> /floppy/wipe-out/wpoutlog.txt ; then umount /floppy msg="wipe-outOwb_݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing wpoutlog body" if ! crlf.sh < $LOGFIL >> /floppy/wipe-out/wpoutlog.txt ; then umount /floppy msg="wipe-outȌ݂Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # mbrlog.txt echo -e "\r \r\c" echo -n "writing mbrlog header" if ! crlf.sh < $header >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBROwb_݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # wperrlog.txt echo -e "\r \r\c" echo -n "writing errorlog" if ! crlf.sh < $ERRORLOG >> /floppy/wipe-out/wperrlog.txt ; then umount /floppy msg="G[Ȍ݂Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi eraselog='No erase log found' echo -e "\r \r\c" echo -n "writing mbrlog body" for i in /tmp/erase-log.* ; do if [ -f "$i" ]; then if ! crlf.sh < $i >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRO ($i) ݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi eraselog='' fi done case x"$eraselog" in xNo*) if ! echo "$eraselog" | crlf.sh >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRȌ݂Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi esac verifylog='No verify log found' echo -e "\r \r\c" echo -n "writing verifylog body" for i in /tmp/verify-log.* ; do if [ -f "$i" ]; then if ! crlf.sh < $i >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRO ($i) ݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi verifylog='' fi done case x"$verifylog" in xNo*) if ! echo "$verifylog" | crlf.sh >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRȌ݂Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi esac # VFϐ echo -e "\r \r\c" echo -n "writing environ header" if ! crlf.sh < $header >> /floppy/wipe-out/environ.txt ; then umount /floppy msg="VFϐOwb_݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing environ body" if ! set | crlf.sh >> /floppy/wipe-out/environ.txt ; then umount /floppy msg="VFϐȌ݂Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # dmesg-a echo -e "\r \r\c" echo -n "writing dmesg -a header" if ! crlf.sh < $header >> /floppy/wipe-out/dmesg-a.txt ; then umount /floppy msg="dmesg -a wb_݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing dmesg -a body" if ! dmesg -a | crlf.sh >> /floppy/wipe-out/dmesg-a.txt ; then umount /floppy msg="dmesg -a ݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "umounting floppy" if ! umount /floppy > /dev/null 2>&1; then msg="݌ɃfBXN ${disk} A}Egł܂ł" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi dialog --title "$title" \ --msgbox "Ȍ݂I܂" 5 64 exit 0 # EOF #! /bin/sh # # dummyread.sh -- L[{[h͂Ă镶ǂŎ̂Ă # # 0.0: Feb. 12, 2007 by Dai ISHIJIMA (for wpout08) # while read -t 0 keyin > /dev/null 1>&2 ; do case x"$DEBUG" in xY*) echo "|$keyin|" ;; esac done exit 0 # EOF #! /bin/sh # # kon2start.sh -- JEg_E‚Aǂ̃[hɈڍs邩I # # 0.0: May 5, 2009 by Dai ISHIJIMA (as countdown.sh) # 0.1: Apr. 11, 2011 for wpout11 # 0.2: Oct. 11, 2013 (use /dev/ttyv0, wpout13) # 0.3: May 11, 2014 (comconsole -> serial console) # 0.4: Aug 3, 2015 (FreeBSD 9.3R, kon -s for single user mode) # export TTY="${TTY:-ttyv0}" export LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" ####export TERMCAP=/etc/termcap export TERM=vt100 # for kon echo '' echo 'Starting another console session on VTY1 (Alt+F2)' /wipeout/shell-on /dev/ttyv1 echo -n 'You can start another wipe-out session with ' > /dev/ttyv1 echo '"sh /wipeout/kon2alt.sh"' > /dev/ttyv1 echo -n "Starting console session on VTY1" >> $LOGFIL date >> $LOGFIL export STATEFIL=/tmp/status.txt echo -n 'selecting console' > $STATEFIL echo 'Starting screen saver on VTY7 (Alt+F8)' /wipeout/shell-on /dev/ttyv7 /bin/sh /wipeout/scsaver.sh echo -n "Starting screen saver on VTY7" >> $LOGFIL date >> $LOGFIL echo '' echo '' echo '' echo "# select console mode" echo " 0: Start wipe-out on KON2 (Kanji on console) [default]" echo " 1: Start wipe-out on KON2 fixed for some Laptops" if [ -c /dev/cuau0 ]; then echo " c: Start wipe-out on serial console (regacy serial, uart0)" fi if [ -c /dev/cuaU0 ]; then echo " u: Start wipe-out on serial console (USB adaptor, ucom0)" fi echo " S: Start interactive shell, stay in Native console (non Japanese)" prompt="# Just press ENTER to select default mode" count=9 while [ $count -gt 0 ]; do echo -e "\r$prompt[$count] \c" if read -t 1 keyin 1>/dev/null 2>&1 ; then count=0 fi count=$(( $count - 1 )) done case x"$count" in x0) echo -e "\r$prompt[0] 0" keyin=0 ;; esac echo -n "kon2start with keyin = $keyin, " >> $LOGFIL date >> $LOGFIL export KON2MODE=NONE case x"$keyin" in xS) /bin/sh -i ;; xc) export TTY=comconsole.cuau0 dmesg > /dev/cuau0 /wipeout/shell-on /dev/cuau0 /bin/sh /wipeout/startup.sh ;; xu) export TTY=comconsole.cuaU0 dmesg > /dev/cuaU0 /wipeout/shell-on /dev/cuaU0 /bin/sh /wipeout/startup.sh ;; x0) export KON2MODE=default /usr/local/bin/kon -s -e /wipeout/startup.sh \ < /dev/ttyv0 ;; *) export KON2MODE=FIXed /usr/local/bin/kon2fixed FIX -s -e /wipeout/startup.sh \ < /dev/ttyv0 ;; esac exit 0 # EOF #! /bin/sh # # kon2alt.sh -- start kon2 on another VTY session # 0.0: Aug. 7, 2015 (v1.5) # 0.1: Nov. 23, 2016 (v1.6) # PATH=/usr.bin:/usr/bin:/bin:/usr.sbin:/usr/sbin:/sbin:/usr/local/bin:/wipeout:. export PATH export TERM=vt100 export TTY=`/usr.bin/tty` export TTY="${TTY:-ttyv0}" export LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" n=`echo "$TTY" | sed 's/^.*\([0-9]\)/\1/'` n=$(( $n + 1 )) m=$(( $n + 1 )) ntty=`echo $TTY | sed 's/[0-9]$/'"$n"'/'` case x"$n" in x[0-6]) echo '' echo "Starting new console session on VTY$n (Alt+F$m)" /wipeout/shell-on $ntty echo 'You can start yet another wipe-out session with '> $ntty echo '"sh /wipeout/kon2alt.sh"' > $ntty echo -n "Starting console session on VTY$n" >> $LOGFIL date >> $LOGFIL ;; esac sleep 2 export KON2MODE=FIXed /usr/local/bin/kon2fixed FIX -s -e /wipeout/alt-menu.sh < $TTY # EOF #! /bin/sh # # vtsstart.sh -- JEg_E‚Aǂ̃[hɈڍs邩I # # 0.0: May 5, 2009 by Dai ISHIJIMA (as countdown.sh) # 0.1: Apr. 11, 2011 for wpout11 # 0.2: Oct. 11, 2013 (use /dev/ttyv0, wpout13) # 0.3: May 11, 2014 (comconsole -> serial console) # 0.4: Aug 3, 2015 (FreeBSD 9.3R, kon -s for single user mode) # 0.5: Jul. 26, 2016 (10.3R, vt), as vtstart.sh # export TTY="${TTY:-ttyv0}" export LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" ####export TERMCAP=/etc/termcap export TERM=vt100 # for kon echo '' echo 'Starting another console session on VTY3 (Alt+F4)' /wipeout/shell-on /dev/ttyv3 echo 'You can start another wipe-out session with "sh kon2alt.sh"' \ > /dev/ttyv3 echo -n "Starting console session on VTY3" >> $LOGFIL date >> $LOGFIL export STATEFIL=/tmp/status.txt echo -n 'selecting console' > $STATEFIL echo 'Starting screen saver on VTY7 (Alt+F8)' /wipeout/shell-on /dev/ttyv7 /bin/sh /wipeout/scsaver.sh echo -n "Starting screen saver on VTY7" >> $LOGFIL date >> $LOGFIL echo '' echo '' echo '' echo "# select console mode" echo " 0: Start wipe-out on VT console [default]" if [ -c /dev/cuau0 ]; then echo " c: Start wipe-out on serial console (regacy serial, uart0)" fi if [ -c /dev/cuaU0 ]; then echo " u: Start wipe-out on serial console (USB adaptor, ucom0)" fi echo " 2: Start interactive shell, stay in Native console (non Japanese)" prompt="# Just press ENTER to select default mode" count=9 while [ $count -gt 0 ]; do echo -e "\r$prompt[$count] \c" if read -t 1 keyin 1>/dev/null 2>&1 ; then count=0 fi count=$(( $count - 1 )) done case x"$count" in x0) echo -e "\r$prompt[0] 0" keyin=0 ;; esac echo -n "vtstart with keyin = $keyin, " >> $LOGFIL date >> $LOGFIL case x"$keyin" in x2) /bin/sh -i ;; xc) export TTY=comconsole.cuau0 dmesg > /dev/cuau0 /wipeout/shell-on /dev/cuau0 /bin/sh /wipeout/startup.sh ;; xu) export TTY=comconsole.cuaU0 dmesg > /dev/cuaU0 /wipeout/shell-on /dev/cuaU0 /bin/sh /wipeout/startup.sh ;; *) /usr.sbin/vidcontrol -f /usr/local/share/fonts/vt/paw16vt.fnt export LC_CTYPE=ja_JP.UTF-8 /bin/sh /wipeout/startup.sh ;; esac echo -n "vstart.sh finished, " >> $LOGFIL date >> $LOGFIL exit 0 # EOF #! /bin/sh # # sanitize.sh -- camcontrol sanitize Ńf[^ # # g: /bin/sh sanitize.sh fBXN # : /bin/sh sanitize da0 # # 0.0: Aug. 4, 2015 by Dai ISHIJIMA (for wpout15, FreeBSD 9.3R) # ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" exec 2>> $ERRORLOG echo "# start $0, $@" 1>&2 echo '# ---------------------------- #' 1>&2 # PƂł悤 LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" dispupd="${DISPUPD:-2}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL # disk="${1:-da0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # resultfil=/tmp/result # title="${TITLE:-n[hfBXNc[wwipe-outx}" # if [ ! -w /dev/$disk ]; then dialog --title "$title" \ --msgbox "fBXN $disk ݂ȂA݂ł܂" \ 5 64 exit 1 fi # mount -p | sed -n -E "/^.dev.$disk/p" > $resultfil if [ -s $resultfil ]; then dialog --title "$title" \ --msgbox "}Eg̃fBXN $disk 邱Ƃ͂ł܂" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg="fBXN ${disk} ${dname} \n" msg="${msg}Sf[^ ${bytes}oCgA\n" msg="${msg}Tj^CY@\ (Sanitize Device Feature) ŏ܂B\n" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="ATAfoCXUSBڑ̃foCXł\n" msg="${msg}Tj^CY (SCSI Sanitize) 삵Ȃ\n" msg="${msg}IĂf[^̏sĂȂƂ܂B\n" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="{${disk} ($cap) ̃f[^Tj^CYĂł?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac dialog --title "$title" \ --infobox 'fBXNTj^CYĂ܂' 3 64 sleep 2 # Jn startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "sanitize started on " >> $LOGFIL date >> $LOGFIL echo "sanitize $disk ($dname) $bytes bytes" >> $LOGFIL echo "Issue the SCSI SANITIZE command:" > /tmp/sanitize.txt echo " camcontrol sanitize $disk -v -a block" >> /tmp/sanitize.txt /sbin/camcontrol sanitize $disk -v -a block -y >> /tmp/sanitize.txt 2>&1 case x"$?" in x0) status="finished" echo "Tj^CY͐I܂" > /tmp/sanitizemsg.txt ;; *) status="failed" echo "Tj^CY͓삵܂ł" > /tmp/sanitizemsg.txt ;; esac echo '' >> $LOGFIL echo '::: Sanitize (camcontrol output) :::' >> $LOGFIL cat /tmp/sanitize.txt >> $LOGFIL cat /tmp/sanitize.txt >> /tmp/sanitizemsg.txt sh dummyread.sh dialog --title 'SanitizeO' --textbox /tmp/sanitizemsg.txt 22 76 # echo -n "sanitize $status on " >> $LOGFIL date >> $LOGFIL echo "sanitize $disk ($dname, $cap)" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL # I endstamp=`date '+%H:%M'` case x"$status" in xfinished) # Oۑ echo 'The contents of this storage device' > /tmp/erase-log.$disk echo "$disk ($cap) '$dname'" >> /tmp/erase-log.$disk echo -n 'were erased with ' >> /tmp/erase-log.$disk echo 'hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk echo "Erased with 'SANITIZE'" >> /tmp/erase-log.$disk echo " $startstamp -> $endstamp" >> /tmp/erase-log.$disk echo "but NOT verified" > /tmp/verify-log.$disk ;; esac # echo '# ---------------------------- #' 1>&2 exit 0 # EOF #! /bin/sh # # alt-menu.sh -- ʃX^[gAbvXNvg ({ꉻR\[p) # # 0.0: Aug. 7, 2015 (for v15, FreeBSD 9.3R), from startup.sh, v1.0 # PATH=/usr.bin:/usr/bin:/bin:/usr.sbin:/usr/sbin: PATH="${PATH}"':'"/sbin:/usr/local/bin:/wipeout:." export PATH ##PATH=/usr/bin:/bin:/usr/sbin:/sbin:/:. ##export PATH LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" export DMESG ####echo -n 'ÑVXebZ[WۑĂ܂...' ####dmesg > $DMESG echo '' # umd0vsɌsԍ𒲂ׂBΏd lin1=`sed -n '/^md0/=' $DMESG | sed -n '1p'` lin2=`sed -n '/^md0/=' $DMESG | sed -n '$p'` if [ $lin1 -ne $lin2 ]; then echo 'VXebZ[WdĂ܂B' echo 'xd؂ĂċN邱Ƃ𐄏܂B' echo '𑱍sꍇ́uexitv͂ĂB' /bin/sh -i fi echo '# ---------------------------- #' >> $LOGFIL echo -n "script startmenu2.sh started on " >> $LOGFIL date >> $LOGFIL ####export TERMCAP=/etc/termcap export TERM=kons25jx export PATTERNFIL=/tmp/pattern.dat # 2013-12-07 names of disk device node # !ata(4) -> ad (P-ATA: ad0, S-ATA: ad4, etc.) # ada(4) -> ada (SATA/PATA, FreeBSD 9.3R) # SCSI (da(4)) -> da (SCSI, CAM) # ataraid(4) -> ar # aac(4) -> aacd # amr(4) -> amrd(?) or da(?) (SCSI CAM) # arcmsr(4) -> da (SCSI CAM) # asr(4) -> da(?) (SCSI CAM) # graid3(4) -> da (SCSI CAM) # hptiop(4) -> da(?) # hptmv(4) -> da(?) # hptrr(4) -> da(?) # ida(4) -> idad(?), da(?) # iir(4) -> da(?) # ips(4) -> ipsd(?), da(?) # mfi(4) -> mfid # mlx(4) -> mlxd(?), da(?) # mly(4) -> da(?) # twa(4) -> da(?) # twe(4) -> da(?) export DEVICES='da|ada|ar|aacd|amrd|idad|ipsd|mfid|mlxd|twed' # x32MoCg BLKLEN=$(( 32 * 1024 * 1024 )) export BLKLEN # o̓ubN1MoCg OBS=$(( 1024 * 1024 )) export OBS # ̓ubN (stuff̏o͒) 1koCg IBS=1024 export IBS # mF10MoCg VBLKLEN=$(( 10 * 1024 * 1024 )) export VBLKLEN # mF̓̓ubN1MoCg VBS=$(( 1024 * 1024 )) export VBS # Rs[512oCg CBS=512 export CBS echo '' # debugging case x"$DEBUG" in x[Yy]*) for i in 1 2 3 ; do echo -n '.' sleep 1 done echo '' ;; esac cd /wipeout ####stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL if ! /bin/sh mainmenu.sh ; then exit 1 fi # Ƃ肠ΘbVF𓮂Ă :-) /bin/sh -i exit 0 # EOF #! /bin/sh # # scsaver.sh -- XN[Z[o[ # # 0.0: Nov. 8, 2015 by Dai ISHIJIMA (for wpout15) # STATEFIL="${STATEFIL:-/tmp/status.txt}" xpos=0 ypos=0 xmov=13 ymov=19 xmax=40 ymax=23 while true ; do npid=`sh -c 'echo "$$"'` xpos=$(( ( $xpos + $xmov + $npid ) % xmax )) ypos=$(( ( $ypos + $ymov + $npid ) % ymax )) # clear screen echo -e '\e[H\e[J\c' # move cursor echo -e '\e['"$ypos"';'"$xpos"'H\c' echo -n 'Alt+F1 to main screen' ypos=$(( $ypos + 1 )) echo -e '\e['"$ypos"';'"$xpos"'H\c' cat $STATEFIL sleep 3 done n[hfBXNc[uwipe-outvo[W 1.5 Copyright (C) 2015 by ܁ Ẽc[́AIy[eBOVXeɁuFreeBSDv𗘗pĂ܂B Ẽc[́A{R\[ukon2v𗘗pĂ܂B Ẽc[́A{tHgɁuςtHgv𗘗pĂ܂B Ej[\ɂ́AuFreeBSDv́udialog(1)vR}h𗘗pĂ܂B ȊOɂuFreeBSDvɕte\tgEFA𗘗pĂ܂B Ẽc[́AFreeBSD/i386삷Rs[^ŗpł܂B Ẽc[Ńf[^łn[hfBXNiXg[WfoCXj ̂ƂłB EFreeBSD 9.3R̃CXg[pJ[lň̂̂A ȉ̏𖞂 EJ[lɃfoCXhCogݍ܂ĂC^[tFCX ɐڑꂽn[hfBXNiXg[WfoCXj EATAfBXNRg[hCo ata(4) ň EʓIATA/IDEC^[tFCX̃n[hfBXN ESCSI_CNgANZXfoCXhCo da(4) ň EʓISCSIC^[tFCX̃n[hfBXN ESCSIRg[ɐڑꂽMOiCfBXNj ZN^TCY512oCĝ EFreeBSDňRAIDRg[iasr(4) Ȃǁj ڑꂽn[hfBXN EUSBJ[hA_v^ɐڑ etbVJ[hAUSBtbVȂǂ USBeʃXg[W Ê悤ȃXg[WfoCXɂ͑ΉĂ܂ EFreeBSD 9.3R̃CXg[pJ[lňȂ̂ u[gɐFłȂXg[WfoCX EFreeBSDňȂC^[tFCXɐڑꂽfBXN Eada(4) da(4) foCXhCoňȂ Ẽc[𗘗pA邢͗pȂƂɂĐ Ȃ錋ʂɂ‚ĂA҂͐ӔCؕ܂B n[hfBXNc[uwipe-outv version 1.5 ` ȒPŃn[hfBXÑf[^ ` Copyright (C) 2015 by Dai ISHIJIMA ͂߂ p\Ȑn⏈ɁAn[hfBXÑf[^ꂸ cĂ邱ƂŁAlƏȂǂRk邱Ƃ ƂȂĂ܂B ́un[hfBXNc[wwipe-outxvgƁAȒPɁA ˆSɁAn[hfBXNɋL^Ăf[^邱Ƃ ł܂B̃c[́An[hfBXNɃf[^㏑邱Ƃ āAL^Ăf[^܂B CD̒g CD̓u[^uCDłBp\RCDDVDhCuN 悤ɐݒ肵ACDNƁAuwipe-outv܂B fBXÑf[^ CDu[gƁÂ悤ȃj[ʂ\܂B n[hfBXN̖Oe (̗ł́u/dev/ad0 vu4,294,967,296 oCg (4.0G)v) ́Aۂɂg̃n[h fBXN̏񂪕\܂B +---------------- n[hfBXNc[wwipe-outx ----------------+ | Cj[ | | ݑI𒆂̃fBXN /dev/ad0 łB | | fBXN̗eʂ 4,294,967,296 oCg (4.0G) łB | | ȉ̃j[珈IĂB | | | | +------------------------------------------------------------------+ | | | z 0㏑āÃfBXÑf[^ | | | | h @̊Tv\ | | | | n ㏑āÃfBXÑf[^Oɏ | | | | m Ȍ㏑@I | | | | v f[^ꂽmF (^ꕔ`FbN) | | | | V f[^ꂽmF (ʏ^S`FbN) | | | | w OfBXNɏ | | | | L L^tbs[ɏo | | | +-----v(+)---------------------------------------------------------+ | | | +----------------------------------------------------------------------+ | [ OK ] Cancel | +----------------------------------------------------------------------+ ŁAn[hfBXN̖OeʂAf[^n[h fBXN̂̂ł邩ǂmFĂB̃n[hfBX Ñf[^ꍇ́Au0㏑āÃfBXÑf[ ^vnCCgĂԂŃG^[L[Ă (ȉȂuIvƏ̂܂)B ̃j[Łu0㏑āÃfBXÑf[^v IƁÂ悤ɊmFbZ[W\܂B fBXN ad0 Sf[^ 4,294,967,296 oCgA 0ŏ㏑ď܂B 낵ł? [ Yes ] No f[^ꍇ́AŁuYesvIĂBuYesv IƁAɂ‚Aȉ̊mFbZ[W\܂B {ad0 (4.0G) ̃f[^Ăł? [ Yes ] No f[^ꍇ́AēxuYesvIĂBuNov Iƍŏ̃j[ɖ߂܂BuYesvIƃf[^ ̏n܂܂B f[^̏́Â悤ɐi󋵂\܂B fBXN ad1 ̃f[^Ă܂B 25% (1024/4096) I ^ 21b o c 悻128b 0%|############______________________________________|100% ʂ̍ʼnsɂ́Â悤ɏݑx\܂B 33554432 bytes transferred in 1.307584 secs (25661396 bytes/sec) f[^̏ɗv鎞Ԃ́Ag̃n[hfBXN̗eʂp\ RɂĈقȂ܂Bn[hfBXN̗eʂAp\R x΁Aɗv鎞Ԃ͒ZȂ܂B f[^̏IƁA fBXÑf[^I܂ (230b) [OK] ƂbZ[W\܂BŁAG^[L[ƁA ̃j[ɖ߂܂B @ɂ‚ Cj[u@̊Tv\vIƁA Pȑ@̐\܂B ȊȎɂ‚ Cj[ŏ㉺J[\L[ƁAʂ̍ڂnCCg 邱Ƃł܂BCj[ɂ8‚̑I\ ܂񂪁A㉺J[\L[ƃXN[ɂAe푀상 j[\܂Bun[hfBXNc[wwipe-outxv ́Af[^ȊOɂAĂ邩ǂ̊mFAL^ ݁An[hfBXÑRs[AVF̋NAċNAVbg _EȂǂ̑상j[pӂĂ܂BȉɃCj[ Ił鑀̈ꗗ܂B E0㏑āÃfBXÑf[^ E@̊Tv\ E㏑āÃfBXÑf[^Oɏ EȌ㏑@I Ef[^ꂽmFi^ꕔ`FbNj Ef[^ꂽmFiʏ^S`FbNj EOfBXNɏ EL^tbs[ɏo Eʂ̃fBXNI EfBXÑf[^\ Ef[^\ZN^̎w Euwwipe-outxɂ‚āv EÑVXebZ[WmF EfBXNRs[i^obNAbvj EfBXNRs[iᑬ^f[^Tx[Wj E1㏑āÃfBXÑf[^ E_p^[㏑āÃfBXÑf[^ Ep^[̕␔㏑āÃfBXÑf[^ E_f[^㏑āÃfBXÑf[^ EL^\ EfBXN̎Ȑff (SMART) \ EVFishjN EVFicshjN ECD-ROMmount ECD-ROMumount EMBR *̂* EVbg_E EċN Ή@ɂ‚ E{c[́AFreeBSD/i386삷Rs[^ŗpł܂B E{c[Ńf[^łXg[WfoCX͎̂ƂłB EFreeBSD̃J[l (CXg[pCD̃J[l) ň ̂̂Aȉ̏𖞂 EATAfBXNRg[hCo (ada(4)) ň EʓIS-ATA/P-ATAC^[tFCX̃n[hfBXN EASSDhCu ESCSI_CNgANZXfoCXhCo (da(4)) ň EʓISCSIC^[tFCX̃n[hfBXN EFreeBSDňRAIDRg[ (asr(4)) Ȃǂɐڑ ꂽn[hfBXN EUSBJ[hA_v^ɐڑe탁J[hA USBtbVȂǂUSBeʃXg[W ada(4), da(4), asr(4) Ȃǂ̏ڍׂɂ‚ẮAFreeBSD̃}jA y[WȂǂB ̋L^̕ۑɂ‚ un[hfBXNc[wwipe-outxvł́A̋L^ۑ 邱Ƃł܂Bۑ”\ȃfBA̓tbs[fBXNUSB ȂǂłB̋L^ۑ郁fBA (tbs[USB ) ́A炩FATtH[}bgsAuWIPE-OUTvƂ ÕtH_[gfBNgɍ쐬ĂĂB Ƃ E{c[́AOSƂFreeBSD𗘗pĂ܂B E{c[̓t[EFAłB쌠́A҂ł ܁ ۗLĂ܂B E{c[𗘗pA邢͗pȂƂɂĐ Ȃ錋ʂɂ‚ĂA҂͐ӔCؕ܂B Ql EВc@l dqZpYƋ (http://www.jeita.or.jp/japanese/index.htm) up\R̔pEnɂn[hfBXÑf[^ Ɋւ闯ӎv(http://it.jeita.or.jp/perinfo/committee/ pc/JEITA_HDDdata100219F.pdf) {c[̓@ {c[юoíA҂̃EFuTCgŌJĂ܂BA hX http://hp.vector.co.jp/authors/VA004814/ łBKvɉ ă_E[hĂB n[hfBXNc[uwipe-outvv1.5 Copyright (C) 2015 by Dai ISHIJIMA AȂ̃t@Cuwipe-outvN}V Cj[猩邱ƂłƂ΁A]vȐ͕sv ܂B yCj[ł̑z Cj[ʂ̑̊{́A E㉺J[\L[ɂsڂI EG^[L[ɂIڂs łBIĂ鍀ڂ̓nCCg\Ă܂Buwipe- outvŃAu0㏑ācvnCCg\Ă ͂łB Cj[炱̉ʂ\ɂ́AJ[\L[ 񂾂AG^[L[܂Bʂɕ\Ȃ ́A㉺J[\L[xƁAXN[óà ܂B Ƃ΁ACj[ɂ́uċNvƂڂ ܂A͈ԉɉBĂ܂B\ɂ́Ax J[\L[Ă݂ĂB XN[ďɏĂڂ\ɂ́AJ[ \L[ĂB yfBXNɋL^ꂽɂ́z u0㏑ācv̂悤ȁAucvCj[ IAG^[L[ĂB uvsƁAmFʂ\܂B̂ƂA fBXŇ^ԂeʂȂǂ\̂ŁAfBXN 邩ǂmFĂB\ĂemF G^[L[ĂB ŏ̊mFʂŃG^[L[Aēx‚mF ʂłĂ܂B{ɏĂ悢ꍇɂ̂݃G^[L[ ĂB ڂ̊mFʂŃG^[L[Ən܂܂B AfBXN̏ɂ͐琔Ԓx̎Ԃ܂B ͂܂Ă΂炭ƁAc菊vԂ̗\l\ ܂B IAɂԂ\܂B G^[L[ƁACj[ɖ߂܂B ȂAuŏI邱Ƃ͂蓾Ȃ͂łB̏ ́A{\tguwipe-outṽoO܂Buf[^ ꂽmFvIŖ{ɏmFĂB yL^ۑɂ́z {\tguwipe-outv̋Ɗꂽꍇ́A Cj[uL^tbs[ɏovIł Bj[ɏĂƂAL^tbs[ L^ł܂B L^ۑ邱Ƃł̂́Atbs[ł͂ ܂BUSBȂǂ̃fBApł܂BȂA L^ۑtbs[iUSBjɂ́A炩 u\WIPE-OUT\vƂtH_쐬ĂĂB yCj[ɖ߂ɂ́z ̉ʂ‚ăCj[ɖ߂ɂ́AG^[L[ ĂB n[hfBXNc[uwipe-outvv1.3 Copyright (C) 2013 by Dai ISHIJIMA # termcap for wipeout # original copyright notice follows... # ------------------------------------------------------------ # # Copyright (c) 1980, 1985, 1989, 1993 # The Regents of the University of California. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the University of # California, Berkeley and its contributors. # 4. Neither the name of the University nor the names of its contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # @(#)termcap.src 8.2 (Berkeley) 11/17/93 # $FreeBSD: releng/9.3/share/termcap/termcap.src 267911 2014-06-26 11:02:51Z gavin $ # Termcap source file # John Kunze, Berkeley # Craig Leres, Berkeley # # Please submit changes via https://bugs.freebsd.org/submit/ # # ------------------------------------------------------------ # # # ------------------------------------------------------------ # # for syscons # common entry without semigraphics cons25w|ansiw|ansi80x25-raw:\ :am:bs:NP:ms:pt:AX:eo:bw:ut:km:\ :co#80:li#25:pa#64:Co#8:it#8:\ :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ :dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:ho=\E[H:ic=\E[@:cb=\E[1K:\ :nd=\E[C:rs=\Ec:so=\E[7m:se=\E[27m:up=\E[A:cr=^M:ta=^I:\ :AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:sc=\E7:rc=\E8:\ :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:\ :k9=\E[U:k;=\E[V:F1=\E[W:F2=\E[X:K2=\E[E:nw=\E[E:ec=\E[%dX:\ :kb=^H:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:le=^H:sf=\E[S:sr=\E[T:\ :kN=\E[G:kP=\E[I:@7=\E[F:kI=\E[L:kD=\177:kB=\E[Z:\ :IC=\E[%d@:DC=\E[%dP:SF=\E[%dS:SR=\E[%dT:AL=\E[%dL:DL=\E[%dM:\ :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:cv=\E[%i%dd:ch=\E[%i%d`:\ :mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:bl=^G:\ :ve=\E[=S:vi=\E[=1S:vs=\E[=2S: # CP437 FreeBSD console with ACS support cons25|ansis|ansi80x25:\ :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261i^U0\333y\363z\362:\ :tc=cons25w: # ------------------------------------------------------------ # xterm|X11 terminal emulator:\ :tc=xterm-new: # ------------------------------------------------------------ # xterm-new|modern xterm:\ :@7=\EOF:@8=\EOM:F1=\E[23~:F2=\E[24~:K2=\EOE:Km=\E[M:\ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\ :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kI=\E[2~:\ :kN=\E[6~:kP=\E[5~:kd=\EOB:kh=\EOH:kl=\EOD:kr=\EOC:ku=\EOA:\ :tc=xterm-basic: # # This chunk is used for building the VT220/Sun/PC keyboard variants. xterm-basic|modern xterm common:\ :am:bs:km:mi:ms:ut:xn:AX:\ :Co#8:co#80:kn#12:li#24:pa#64:\ :AB=\E[4%dm:AF=\E[3%dm:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=\E(B:al=\E[L:\ :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ :cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:\ :ei=\E[4l:ho=\E[H:im=\E[4h:is=\E[!p\E[?3;4l\E[4l\E>:\ :kD=\E[3~:kb=^H:ke=\E[?1l\E>:ks=\E[?1h\E=:kB=\E[Z:le=^H:md=\E[1m:\ :me=\E[m:ml=\El:mr=\E[7m:mu=\Em:nd=\E[C:op=\E[39;49m:\ :rc=\E8:rs=\E[!p\E[?3;4l\E[4l\E>:sc=\E7:se=\E[27m:sf=^J:\ :so=\E[7m:sr=\EM:st=\EH:\ :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?12l\E[?25h:vi=\E[?25l:vs=\E[?12;25h: # ------------------------------------------------------------ # vt100|dec-vt100|vt100-am|vt100am|dec vt100:\ :do=2\E[B:co#80:li#24:cl=50\E[H\E[J:sf=2*\ED:\ :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:\ :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\ :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:\ :is=\E>\E[?1;3;4;5l\E[?7;8h\E[1;24r\E[24;1H:\ :if=/usr/share/tabset/vt100:nw=2\EE:ho=\E[H:\ :as=2\E(0:ae=2\E(B:\ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||:\ :rs=\E>\E[?1;3;4;5l\E[?7;8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\ :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=\177:\ :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:\ :k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:@8=\EOM:\ :K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:pt:sr=2*\EM:xn:\ :sc=2\E7:rc=2\E8:cs=5\E[%i%d;%dr:UP=2\E[%dA:DO=2\E[%dB:RI=2\E[%dC:\ :LE=2\E[%dD:ct=2\E[3g:st=2\EH:ta=^I:ms:bl=^G:cr=^M:eo:it#8:\ :RA=\E[?7l:SA=\E[?7h:po=\E[5i:pf=\E[4i: tvi925|925|televideo model 925:\ :hs:xn:am:bs:co#80:li#24:cm=\E=%+ %+ :cl=\E*:cd=\Ey:ce=\Et:is=\El\E":\ :al=\EE:dl=\ER:ic=\EQ:dc=\EW:if=/usr/share/tabset/stdcrt:\ :ho=^^:nd=^L:bt=\EI:pt:so=\EG4:se=\EG0:sg#1:us=\EG8:ue=\EG0:ug#1:\ :up=^K:do=^V:kb=^H:ku=^K:kd=^V:kl=^H:kr=^L:kh=^^:ma=^V^J^L :\ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\ :k8=^AG\r:k9=^AH\r:k0=^AI\r:ko=ic,dc,al,dl,cl,ce,cd,bt:\ :ts=\Ef:fs=^M\Eg:ds=\Eh:sr=\Ej: # ------------------------------------------------------------ # vt100-color|vt100-co|vt100 emulator with ANSI colors:\ :pa#64:Co#8:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m\E[m:tc=vt100: # ------------------------------------------------------------ # kons25jx|kon3jx|jkons3jx|kons24-jis1983-j:as@:ae@:ac@:tc=vt100-color # ------------------------------------------------------------ # /* * disksize -- fBXÑWIg擾 * * revision history * diskinfo: * 0.0: Sep. 6, 2002 by Dai ISHIJIMA (Ƃ肠o[W) * 0.1: Oct. 21, 2002 * 0.2: Apr. 28, 2004 * 0.3: May 1, 2004 * 0.4: May 30, 2004 * 0.5: Jun. 19, 2004 * 0.6: Aug. 5, 2006 (ƏC) * 0.7: Aug. 12, 2006 (L̉P) * disksize: * 0.9: Sep. 12, 2007 (exit(3)̐錾, p[^擾@ύX) * 1.0: Oct. 2, 2007 (MoCgPʂł̕\) * * Ql: * fdisk(8) ̃\[X (/usr/src/sbin/i386/fdisk/fdisk.c) * wpout09ȍ~ (/usr/src/sbin/fdisk/fdisk.c), diskinfo(8) */ #include #include #include #include #include #define SHOW_CYLS 1 #define SHOW_HEAD 2 #define SHOW_SECS 4 #define SHOW_BYTES 8 #define SHOW_BYTES_WITH_UNITS 16 #define SHOW_BLOCKS 32 #define SHOW_BYTES_WITH_COMMA 64 #define SHOW_MEGABYTES 128 #define shift --argc; ++argv #define DFLT_DISK "/dev/ad0" #define EOS '\0' #define NEWLINE '\n' #ifndef BUFSIZ #define BUFSIZ 512 #endif #define MEGABYTES (1024 * 1024) /* l𕶎ɕϊ */ char *num2str(long long d, char *s) { int p; int q; int ch; p = 0; do { s[p] = '0' + (d % 10); ++p; d /= 10; } while (d > 0); s[p] = EOS; for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* l𕶎ɕϊ */ char *num2commastr(long long d, char *s) { int p; int q; int n; int ch; p = 0; n = 0; do { if ((n > 0) && ((n % 3) == 0)) { s[p] = ','; ++p; } s[p] = '0' + (d % 10); ++p; ++n; d /= 10; } while (d > 0); s[p] = EOS; for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* ꕶo */ void putch(int fd, unsigned char ch) { write(fd, &ch, 1); } /* o */ void myputs(int fd, char *s) { while (*s) { putch(fd, *s); ++s; } } int main(int argc, char *argv[]) { char *disk; char s[BUFSIZ]; int show; int fd; off_t mediasize, blocks; unsigned long secsiz, nsecs, nhead, ncyls; unsigned char units[] = { 'k', 'M', 'G', 'T', EOS }; int p; off_t m; int fraction; show = 0; shift; while ((argc > 0) && (argv[0][0] == '-')) { if (argv[0][1] == 'c') { show |= SHOW_CYLS; } else if (argv[0][1] == 'h') { show |= SHOW_HEAD; } else if (argv[0][1] == 's') { show |= SHOW_SECS; } else if (argv[0][1] == 'b') { show |= SHOW_BYTES; } else if (argv[0][1] == 'm') { /* MoCgPʂ */ show |= SHOW_MEGABYTES; } else if (argv[0][1] == 'B') { /* oCgR}؂ */ show |= SHOW_BYTES_WITH_COMMA; } else if (argv[0][1] == 'p') { /* KɒPʕtBk, M, G, etc. */ show |= SHOW_BYTES_WITH_UNITS; } else if (argv[0][1] == 'l') { show |= SHOW_BLOCKS; } else { myputs(STDERR_FILENO, "Usage: diskinfo [-chsbBpl] [device]\n"); exit(1); } shift; } if (show == 0) { show = SHOW_CYLS | SHOW_HEAD | SHOW_SECS; } if (argc > 0) { disk = *argv; } else { disk = DFLT_DISK; } if ((fd = open(disk, O_RDONLY)) < 0) { myputs(STDERR_FILENO, "diskinfo: unable to open disk "); myputs(STDERR_FILENO, disk); putch(STDERR_FILENO, NEWLINE); exit(1); } /* FreeBSD 5.1ȍ~炢Łuioctl(fd, DIOCGDINFO, &disklabel)v*/ /* gȂȂ? */ if (ioctl(fd, DIOCGSECTORSIZE, &secsiz) != 0) { myputs(STDERR_FILENO, "diskinfo: can't get sectorsize\n"); exit(1); } if (ioctl(fd, DIOCGMEDIASIZE, &mediasize) != 0) { myputs(STDERR_FILENO, "diskinfo: can't get mediasize\n"); exit(1); } if (ioctl(fd, DIOCGFWSECTORS, &nsecs) != 0) { myputs(STDERR_FILENO, "diskinfo: can't get number of sectors\n"); exit(1); } if (ioctl(fd, DIOCGFWHEADS, &nhead) != 0) { myputs(STDERR_FILENO, "diskinfo: can't get number of heads\n"); exit(1); } blocks = mediasize / secsiz; ncyls = mediasize / (secsiz * nhead * nsecs); if (show & SHOW_BLOCKS) { num2str(blocks, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_BYTES) { num2str(mediasize, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_MEGABYTES) { num2str((mediasize + MEGABYTES - 1) / MEGABYTES, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_BYTES_WITH_COMMA) { num2commastr(mediasize, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_BYTES_WITH_UNITS) { m = mediasize / 1024; p = 0; fraction = 0; while ((m > 1000) && (units[p] != EOS)) { fraction = ((m * 10) / 1024) % 10; m /= 1024; ++p; } num2str(m, s); myputs(STDOUT_FILENO, s); if (m < 10) { putch(STDOUT_FILENO, '.'); num2str(fraction, s); myputs(STDOUT_FILENO, s); } putch(STDOUT_FILENO, units[p]); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_CYLS) { num2str(ncyls, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_HEAD) { num2str(nhead, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_SECS) { num2str(nsecs, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -s -o disksize disksize.c" */ /* End: */ /* * stuff -- n[hfBXN̂߂̋lߕf[^쐬 * * revision history: * 0.0: Apr. 30, 2004 by Dai ISHIJIMA * 0.1: May 1, 2004 * 0.2: Jun. 28, 2006 (_p^[Ƃ̕␔) */ #include #include #include #include #include #define BSIZ 1024 #define STDIN 0 #define STDOUT 1 #define STDERR 2 #define NEWLINE '\n' #define ZERO 'z' #define FILL 'f' #define RAND 'r' #define GENERATE 'g' #define PATTERN 'p' #define INVERT 'q' #define shift --argc; ++argv #define swap(t,a,b) {t _swap_tmp; _swap_tmp=(a); a=b; b=_swap_tmp;} /* ꕶo */ void putch(int fd, unsigned char ch) { write(fd, &ch, 1); } /* o */ void myputs(int fd, char *s) { while (*s) { putch(fd, *s); ++s; } } /* Ńf[^܂ */ void stair(int len, unsigned char *buf) { int i, n; for (i = 0; i < len; i++) { n = random() & (len - 1); /* len 2^n Ɖ */ swap(unsigned char, buf[i], buf[n]); } } /* ݗpf[^̏ */ void init(int len, unsigned char *buf, int mode) { int i; if (mode == ZERO) { for (i = 0; i < len; i++) { buf[i] = 0; } } else if (mode == FILL) { for (i = 0; i < len; i++) { buf[i] = 0xff; } } else if ((mode == RAND) || (mode == GENERATE)) { srandom(time(NULL)); for (i = 0; i < len; i++) { buf[i] = i; } stair(len, buf); } else if (mode == PATTERN) { read(STDIN, buf, BSIZ); } else if (mode == INVERT) { read(STDIN, buf, BSIZ); for (i = 0; i < len; i++) { buf[i] = ~buf[i]; } } else { /* ɂ͗Ȃ͂ */ myputs(STDERR, "stuff: unknown mode: "); putch(STDERR, mode); putch(STDERR, NEWLINE); exit(1); } } /* R}hCwɊÂāA0, 1, _f[^o */ int main(int argc, char *argv[]) { int mode; unsigned char buf[BSIZ]; mode = ZERO; shift; while ((argc > 0) && (argv[0][0] == '-')) { if ((argv[0][1] == '0') || (argv[0][1] == 'z')) { /* 0 o */ mode = ZERO; } else if ((argv[0][1] == '1') || (argv[0][1] == 'f')) { /* 1 o */ mode = FILL; } else if ((argv[0][1] == 'R') || (argv[0][1] == 'r')) { /* _f[^o */ mode = RAND; } else if ((argv[0][1] == 'G') || (argv[0][1] == 'g')) { /* _p^[𐶐 */ mode = GENERATE; } else if ((argv[0][1] == 'P') || (argv[0][1] == 'p')) { /* p^[JԂo */ mode = PATTERN; } else if ((argv[0][1] == 'Q') || (argv[0][1] == 'q')) { /* p^[̕␔JԂo */ mode = INVERT; } else { myputs(STDERR, "Usage: stuff [-[01Rzfrgpq]]\n"); exit(1); } shift; } if (argc > 0) { myputs(STDERR, "Usage: stuff [-[01Rzfrgpq]]\n"); exit(1); } init(BSIZ, buf, mode); if (mode == GENERATE) { write(STDOUT, buf, BSIZ); } else { for (;;) { if (mode == RAND) { stair(BSIZ, buf); } write(STDOUT, buf, BSIZ); } } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -s -static -o stuff stuff.c" */ /* End: */ /* * tinydate.c * */ #include #include #include #include #define USE_CTIME #define EOS '\0' #define NEWLINE '\n' #ifndef BUFSIZ #define BUFSIZ 512 #endif /* l𕶎ɕϊ */ char *num2str(long long d, char *s) { int p; int q; int ch; p = 0; do { s[p] = '0' + (d % 10); ++p; d /= 10; } while (d > 0); s[p] = EOS; for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* ꕶo */ void putch(int fd, unsigned char ch) { write(fd, &ch, 1); } /* o */ void myputs(int fd, char *s) { while (*s) { putch(fd, *s); ++s; } } int main(int argc, char *argv[]) { char s[BUFSIZ]; time_t t; #ifdef USE_LOCALTIME struct tm *lt; #endif if ((argc > 1) && (argv[1][0] == '-')) { #ifdef USE_CTIME t = time(NULL); myputs(STDOUT_FILENO, ctime(&t)); #endif #ifdef USE_LOCALTIME t = time(NULL); lt = localtime(&t); num2str(lt->tm_year + 1900, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, '-'); num2str(lt->tm_mon + 1, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, '-'); num2str(lt->tm_mday, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, ' '); num2str(lt->tm_hour, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, ':'); num2str(lt->tm_min, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, ':'); num2str(lt->tm_sec, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, ':'); #endif } else { num2str(time(NULL), s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -s -static -o tinydate tinydate.c" */ /* End: */ /* * tinydump -- 512oCg16i_v * * revision history: * 0.0: Jul. 7, 2005 by Dai ISHIJIMA * 0.1: Sep. 12, 2007 (for wpout09, FreeBSD 6.2R) * 0.2: Apr. 18, 2009 (for wpout09, FreeBSD 7.1R, unsigned char) */ #include #include #include #include #include #define EOS '\0' #define BLKSIZ 512 #define NCOLS 16 /* l𕶎ɕϊ */ unsigned char *num2str(long long d, unsigned char *s) { int p; int q; int ch; p = 0; do { s[p] = '0' + (d % 10); ++p; d /= 10; } while (d > 0); s[p] = EOS; for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* l𕶎ɕϊ */ unsigned char *num2hex(long long d, int cols, unsigned char *s) { int p; int q; int ch; p = 0; do { s[p] = '0' + (d % 16); if (s[p] > '9') { s[p] += ('a' - '9' - 1); } ++p; d /= 16; } while (d > 0); while (p < cols) { s[p] = '0'; ++p; } s[p] = EOS; /* Ђ肩 */ for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* ꕶo */ void putch(int fd, unsigned char ch) { write(fd, &ch, 1); } /* o */ void myputs(int fd, unsigned char *s) { while (*s) { putch(fd, *s); ++s; } } int main() { unsigned char s[BLKSIZ]; unsigned char t[BLKSIZ]; int i, j; read(STDIN_FILENO, s, BLKSIZ); for (i = 0; i < BLKSIZ; i += NCOLS) { num2hex(i, 3, t); myputs(STDOUT_FILENO, t); myputs(STDOUT_FILENO, " "); for (j = 0; j < NCOLS; j++) { if (j == NCOLS / 2) { putch(STDOUT_FILENO, ' '); } num2hex(s[i + j], 2, t); myputs(STDOUT_FILENO, t); putch(STDOUT_FILENO, ' '); } myputs(STDOUT_FILENO, " "); for (j = 0; j < NCOLS; j++) { if ((0x20 < s[i + j]) && (s[i + j] < 0x7f)) { putch(STDOUT_FILENO, s[i + j]); } else { putch(STDOUT_FILENO, '.'); } } putch(STDOUT_FILENO, '\n'); } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -s -static -o tinydump tinydump.c" */ /* End: */ /* * check -- f[^Ă邩ׂ * * revision history: * 0.0: Oct. 26, 2001 by Dai ISHIJIMA * 0.1: May 1, 2004 * 0.2: Jul. 7, 2005 * 0.3: Sep. 12, 2007 (for wpout09, FreeBSD 6.2R) */ #include #include #include #include #include #define YES 1 #define NO 0 #define EOS '\0' #ifndef BUFSIZ #define BUFSIZ 512 #endif #define ERROR 5 #define OK 0 #define ONE 1 #define NONZERO 2 #define shift --argc; ++argv /* l𕶎ɕϊ */ char *num2str(long long d, char *s) { int p; int q; int ch; p = 0; do { s[p] = '0' + (d % 10); ++p; d /= 10; } while (d > 0); s[p] = EOS; for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* ꕶo */ void putch(int fd, unsigned char ch) { write(fd, &ch, 1); } /* o */ void myputs(int fd, char *s) { while (*s) { putch(fd, *s); ++s; } } int main(int argc, char *argv[]) { char s[BUFSIZ]; unsigned char buf[BUFSIZ]; unsigned char last; int n; int i, j; int verbose = YES; shift; while ((argc > 0) && (argv[0][0] == '-')) { if (argv[0][1] == 'v') { verbose = YES; } else if (argv[0][1] == 's') { verbose = NO; } else { myputs(STDERR_FILENO, "Usage: check [-v|-s]\n"); exit(1); } shift; } last = 0; i = 0; while ((n = read(STDIN_FILENO, buf, BUFSIZ)) > 0) { if ((i > 0) && (last != buf[0])) { if (verbose) { myputs(STDOUT_FILENO, "not erased at "); num2str(i, s); myputs(STDOUT_FILENO, s); myputs(STDOUT_FILENO, "\n"); } exit(ERROR); } ++i; for (j = 1; j < n; j++) { if (buf[j] != buf[j - 1]) { if (verbose) { myputs(STDOUT_FILENO, "not erased at "); num2str(i, s); myputs(STDOUT_FILENO, s); myputs(STDOUT_FILENO, "\n"); } exit(ERROR); } ++i; } last = buf[n - 1]; } if (verbose) { num2str(i, s); myputs(STDOUT_FILENO, s); } if (last == 0x00ff) { if (verbose) { myputs(STDOUT_FILENO, " bytes erased with 1\n"); } exit(ONE); } if (last != 0) { if (verbose) { myputs(STDOUT_FILENO, " bytes may be erased, but not zero\n"); } exit(NONZERO); } if (verbose) { myputs(STDOUT_FILENO, " bytes erased with 0\n"); } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -static -o check check.c" */ /* End: */ /* * makembr -- O𖄂߂MBR𐶐 * * revision history: * 0.0: Aug. 1, 2006 by Dai ISHIJIMA (for wpout07) * 0.1: Sep. 12, 2007 (for wpout09, FreeBSD 6.2R) */ #include #include #include #include #define STDIN 0 #define STDOUT 1 #define STDERR 2 #ifndef EOF #define EOF -1 #endif #define NEWLINE '\n' #define CRET '\r' #define MBRSIZ 512 #define MESGLEN 398 #define TBLOFF 0x01be #define MESG (TBLOFF - MESGLEN) #define MAXLINE 50 /* ꕶ */ int getch(int fd) { unsigned char ch; if (read(fd, &ch, 1) <= 0) { return(EOF); } return(ch); } int main() { unsigned char mbrbuf[MBRSIZ]; int ch; int len; int pos; /* Ƃ肠512oCgǂ */ read(STDIN, mbrbuf, MBRSIZ); /* ̎炪ރO */ len = 0; pos = 0; while ((len < MESGLEN) && ((ch = getch(STDIN)) != EOF)) { if (ch == NEWLINE) { mbrbuf[MESG + len] = CRET; ++len; mbrbuf[MESG + len] = NEWLINE; ++len; pos = 0; } else if (pos < MAXLINE) { mbrbuf[MESG + len] = ch; ++len; ++pos; } else if (pos == MAXLINE) { mbrbuf[MESG + len] = '.'; ++len; ++pos; mbrbuf[MESG + len] = '.'; ++len; ++pos; mbrbuf[MESG + len] = '.'; ++len; ++pos; } } if (len < MESGLEN) { mbrbuf[MESG + len] = 0; } write(STDOUT, mbrbuf, MBRSIZ); exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -s -static -o makembr makembr.c" */ /* End: */ # # wpout-mbr -- n[hfBXNL^\ # ## 0.0: Jul. 24, 2006 by Dai ISHIJIMA (for wpout07) ## 0.1: Sep. 12, 2007 (for wpout09, FreeBSD 6.2R) # # 16rbgpR[h𐶐 .code16 .arch i8086 .set START, 0x0000 .set LOAD, 0x7c00 # vO[hꏊ .set TBLOFF, 0x01be # p[eBVe[u .set BOOTMAGIC, 0xAA55 # u[gZN^}WbNio[ .set MESGLEN, 398 # ێ郁bZ[W̒ .set PARTBL, START + TBLOFF .set MESG, START + TBLOFF - MESGLEN .set MESGADDR, LOAD + TBLOFF - MESGLEN .set VIDEOBIOS, 0x10 # rfIBIOS (INT 10H) .set PUTCHAR, 0x0e # (e^Cv) o .set VIDEOATTR, 7 # rfIBIOSɓnAgr[gp[^ .set KEYBIOS, 0x16 # L[{[hBIOS .set GETCHAR, 0x00 # ꕶ .set RETKEY, 0x0d # G^[L[ .globl start start: # Ƃ肠荞݂֎~ cli # X^bN 0000:7c00 ɐݒ xorw %ax, %ax movw %ax, %ss movw $LOAD, %sp # ZOgWX^ 0000 ɁBCS ͕ύXsv?? push %ax pop %ds push %ax pop %es # Ŋ荞݂ sti # ̃vO炳Ƀu[gXgbvǂ񂾂͂Ȃ̂ŁA # vOP[gƂ͂Ȃ main: # bZ[W\ movw $MESGADDR, %si disp: # ASCIZꕶBIOSR[ŕ\ lodsb # ꕶo testb %al, %al # NULLȂ\I jz keywait # ̕\IL[͑҂ push %si movw $VIDEOATTR, %bx movb $PUTCHAR, %ah int $VIDEOBIOS # rfIBIOSR[ĕ\ pop %si jmp disp keywait: # L[{[ĥ҂ movb $GETCHAR, %ah int $KEYBIOS cmpb $RETKEY, %al jnz keywait # Zbg FFFF:0000 ɃWv(?) ljmp $0xFFFF,$0x0000 # \郁bZ[W .org MESG mesg: # ̋Lu̓e͂킢ՂŏꂽȂ :-) .ascii "The contents of this storage device \r\n" .ascii "may have been erased \r\n" .ascii "with hard disk wiping tool " .ascii "``wipe-out''.\r\n" .ascii "ABSOLUTELY NO WARRANTY.\r\n" .byte 0 # ̃p[eBVe[uƃ}WbN .org PARTBL ptable: .fill 0x10, 0x04, 0x00 .word BOOTMAGIC # # AZu@ # as -o wpout-mbr.o wpout-mbr.s # ld -N -e start -Ttext 0 -o wpout-mbr.out wpout-mbr.o # objcopy -S -O binary wpout-mbr.out wpout-mbr.boot # rm wpout-mbr.o wpout-mbr.out # # ܂ /* * shell-on -- w肵ttyŃVFN * * 0.0: May 5, 2014 by Dai ISHIJIMA * * usage: * shell-on tty [command [args]...] * * see also: * /usr/src/usr.sbin/sysinstall/system.c */ #include #include #include #include #include #include /* login_tty(3), -lutil */ #include #include int main(int argc, char *argv[]) { int pid; char *tty; int fd; int i; char *prog; char *shell; char **args; prog = argv[0]; if (argc <= 1) { fprintf(stderr, "Usage: %s tty [command [arg]...]\n", prog); exit(1); } tty = argv[1]; if ((fd = open(tty, O_RDWR)) < 0) { fprintf(stderr, "%s: can't open %s\n", prog, tty); exit(1); } close(fd); args = (char **)calloc(argc, sizeof(char *)); if (argc <= 2) { /* IvVȂVF */ shell = "sh"; args[0] = "-sh"; args[1] = NULL; } else { shell = argv[2]; for (i = 0; i < argc - 2; i++) { args[i] = argv[2 + i]; } args[i] = NULL; } #ifdef EBUG fprintf(stderr, "%s: tty = %s, shell = %s\n", prog, tty, shell); i = 0; while (args[i] != NULL) { fprintf(stderr, "%s\n", args[i]); ++i; } #endif if ((pid = fork()) == 0) { /* q */ int cfd; int fd; struct termios t; ioctl(0, TIOCNOTTY, NULL); for (cfd = 0; cfd < getdtablesize(); cfd++) { close(cfd); } if ((fd = open(tty, O_RDWR)) < 0) { exit(1); } ioctl(0, TIOCSCTTY, &fd); dup2(0, 1); dup2(0, 2); if (login_tty(fd) < 0) { exit(1); } signal(SIGTTOU, SIG_IGN); if (tcgetattr(fd, &t) < 0) { fprintf(stderr, "unable to get terminal attributes\n"); } else { t.c_cc[VERASE] = '\010'; if (tcsetattr(fd, TCSANOW, &t) < 0) { fprintf(stderr, "unable to set terminal attributes\n"); } } execvp(shell, args); fprintf(stderr, "unable to execute sh\n"); exit(1); } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -o shell-on shell-on.c -lutil" */ /* End: */ <fjQPS1Pjf1ɎَѼ|}r,`|uuƀrIᾢ}K1҉ .w ޿)Itduddu`PDL Zs*}}0r4u.t"rURAZrUu tBRZrˀ?tfFRff1fC0fZf=w@(f8r^P[s Ot0FsF ^(FwReadBoot error PUWEVamnesiac= !WEV BTX 1мfjf^3GG^╬s uU}EEEfh (֕Е @"ꌐ1ɱѱ8ٺ6 -)б3QPhj+5 QQQQRja %"1".Еf юَH" 1Ўػpܕtr4!PP 栈!桰!桰!XX!j4j0j,j(j$j jj j j j j j j4$D$`f|$Dut$Pt$PjWM^d$a<$t<$u D$ud$π j>j :j 6j 2j .j *j&j"jpjqjrjsjtju jvjwj`jt$D%]Fu,^+]B^u%1҉] j"uT$0taf] ]~Vq^^]6]]f "1؎ܕfffffa]ϼ]f`ffffffhf1؎֕Е @"k1ɱюَ%]t$D%͕8ك=]tM~V]3 ]y5]ʹ^t]%fFaσuD$ `X6 tŰ=VtfvtatJCPu fu6 ЖFt -t t  u^ u pPXPX$< i/ u`1ɴPf 8cuf1< tPЀfBPr0ƀrf PffajE#ƃED$<>PK=>uE 8u+ L$$4Bt xE 8t8t&C9rFFb3C 1Ƀt>t$4"1L$t1 ^_[]D$E$41USWV,ˉDž T$5@5D$ =9t|$t$lE9-5@5  [ @5 @`hE=Tu<@=s$C=Tu-53C3 C to*<@==_~9t$|$ @`1t$9=lE @ <@ 1D$ hE=@1҉@ЁTt (@!$@@ p@ u1҉D$1ҋ|$t$ <1ҋt$=hETuʸ>ʸ ?5lE>|ExEtEpE=hET>t?D$5>)9r؅ʼn$l$ \@#5DE w=hETuX >X@H 9tф: <@ =hETu(=>'? |?L$ D$$?=?|$ \$$ED$1L$ p@ uڻuÃ|E1Ћ xE1 t&׹D$ R xE=|EL$I#L$=hETu&D$ D$(\D$(D$ D$$D$ ȹD$ 6D$ |$$ p@1 uuЉ ÃL$ wM \@1 uu9T$tȄtDE#D$LE#X@<@)=l$wơpE1؋ tE3L$ t# D$uMpED$tE)9w|$t$0މt$5>)݉5>u,$,^_[]St IR@u[USWV 5G999Bـr tۉuOGπr t uw-D$$x4xPtnSu(X1҃ sk GXЃ rf1ҀDt1҃ :4Ru犊 51H눸+Hq4] H u4Iu55H uG @456E](u8:uE Ѓ 6451=55|{%45mL$)Ճ*1ۋ,4:muJ:Mt CuH5jЉ-L5z, JP5z,u р P5wbрy)uWʊ  Q5wED$tŃ%D59)׉y1 ^_[]USWVPt$D$$<%u6Fut5sue$H $(EtsEEEu`FU$H $9k )0 Mmw9cu$H $EYM9s\^_[]WVPHu31Au l+Ht)ȃ6r1^_USWV\9ÅT$(44D$(f= #l$<5H)>|$,؉9iT$,)|$0؉g9A=>C9D$$4))\$ < |$)Ef|$*LFD$D>D$$f|$T>tJ1ۉ= D$ =L$T9} G|#^-H)F>>D$ 9ZD$$@D$$ ~(>%)áHأ5D$XP9uiL$Hk(D(>4>PD$ P1H>ESE>}D$ 9E\F(|ʽ#l$@H5H 9 `5 D5 5c # HH555P5=L5Q5 ށ\5D$L$,$t$D$D$D$ D$4$4\^_[]Vƃ u ^WVP1Huw45t"HHH@t45t Wu1t4u+HHsH t^_S45t&H HH 45t[USWV׉À=9^L$-@5@T51ҹr] P5wBAl$ 1Ȁ:ujx<w Ex t Er܀uP5l$ ȍAt<tLyAT5T5B>WEV@WEVuu=X5uf@u H5X5Q5@9sa@tT@T5T+@T5L$D$40=Q5L$u=T5؉-#D$4D$4$4X^_[]SWVω։H u9595D$$4HH%HH5HHH =D5=HHHt#Hĉt$D$$41^_[ÐPfXffBB1ɵ)tPf1ɵ@ tXtf1$/boot/config/boot.config%s: %s/boot/loader/boot/kernel/kernel FreeBSD/x86 boot Default: %u:%s(%u,%c)%s boot: yesnoKeyboard: %s No %s Invalid %s format addafdslicelabelpartition%cerror %u lba %u %s: not a directory. %s 444DhaCcdgmnpqrsv   %/|\- (h !4XP/mntP@PrPgA#4Xrh@@!4XxT (h !4XPrP !4Xrh@@xTU "4X(T 4"4X~PN]A!4X"4X"4X4Xx?3x?3O'pA!4X!4X!4X!4Xx$5!4X4X!4X4X"ףi]!4X4X!4X4X(KiIk# !4X4X!4X4XX|ռxl@ !4X4X!4X4X@ڏ̩{o!4X4X!4X4Xp8ԅqY& W6,lmkĆp{-O]%eðURC4XHݼ)][臠jv_cөlE̦UGd_Cs H6 *I|ի=¿i/Fdoy3}w@Πi=DŽ`t1f7.yX-`p90eo *ٝK#9z_CN fd/LfѮҿwGZjO'm[LBaȢGp&S!fhVZ{-q NGtWkqJ?e0C_u[ien2K?/Mo\;׀[_Z3Ҕ[<qۣE&H"OV}+I_jؽ׀lQd[2@^2ow޶Ed8[U!d[%x<\77_2|i>Aj- iB-3NS  0/Yg"{7,؞Ch zK{a5!5+?򰢼< }t fPj| Km.86JlBRo( Sʹ|xh@I:-JHV@a啴.[B#hԡ gx|BsJ"BGB8$_-ng*!Y-roTiM 7 vU:]miWYr gz$d?ck[v)C,բ[),8VV= %ENB?/ex}2 {PXW&1cL9_?=MK-r"7$&-4H'10m%$`z*C @Ģ{ qdTУd\.sH[p>'4irL~#m[>#ޅ_N։ުD' ?Ǐ@L[Aسy # $FreeBSD: releng/10.3/COPYRIGHT 292984 2015-12-31 11:23:39Z bz $ # @(#)COPYRIGHT 8.2 (Berkeley) 3/21/94 The compilation of software known as FreeBSD is distributed under the following terms: Copyright (c) 1992-2016 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The 4.4BSD and 4.4BSD-Lite software is distributed under the following terms: All of the documentation and software included in the 4.4BSD and 4.4BSD-Lite Releases is copyrighted by The Regents of the University of California. Copyright 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors. 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The Institute of Electrical and Electronics Engineers and the American National Standards Committee X3, on Information Processing Systems have given us permission to reprint portions of their documentation. In the following statement, the phrase ``this text'' refers to portions of the system documentation. Portions of this text are reprinted and reproduced in electronic form in the second BSD Networking Software Release, from IEEE Std 1003.1-1988, IEEE Standard Portable Operating System Interface for Computer Environments (POSIX), copyright C 1988 by the Institute of Electrical and Electronics Engineers, Inc. In the event of any discrepancy between these versions and the original IEEE Standard, the original IEEE Standard is the referee document. In the following statement, the phrase ``This material'' refers to portions of the system documentation. This material is reproduced with permission from American National Standards Committee X3, on Information Processing Systems. Computer and Business Equipment Manufacturers Association (CBEMA), 311 First St., NW, Suite 500, Washington, DC 20001-2178. The developmental work of Programming Language C was completed by the X3J11 Technical Committee. The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the Regents of the University of California. NOTE: The copyright of UC Berkeley's Berkeley Software Distribution ("BSD") source has been updated. The copyright addendum may be found at ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change and is included below. July 22, 1999 To All Licensees, Distributors of Any Version of BSD: As you know, certain of the Berkeley Software Distribution ("BSD") source code files require that further distributions of products containing all or portions of the software, acknowledge within their advertising materials that such products contain software developed by UC Berkeley and its contributors. Specifically, the provision reads: " * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors." Effective immediately, licensees and distributors are no longer required to include the acknowledgement within advertising materials. Accordingly, the foregoing paragraph of those BSD Unix files containing it is hereby deleted in its entirety. William Hoskins Director, Office of Technology Licensing University of California, Berkeley n[hfBXNc[uwipe-outvo[W 1.5 Copyright (C) 2015 by ܁ Ẽc[́AIy[eBOVXeɁuFreeBSDv𗘗pĂ܂B Ẽc[́A{R\[ukon2v𗘗pĂ܂B Ẽc[́A{tHgɁuςtHgv𗘗pĂ܂B Ej[\ɂ́AuFreeBSDv́udialog(1)vR}h𗘗pĂ܂B ȊOɂuFreeBSDvɕte\tgEFA𗘗pĂ܂B Ẽc[́AFreeBSD/i386삷Rs[^ŗpł܂B Ẽc[Ńf[^łn[hfBXNiXg[WfoCXj ̂ƂłB EFreeBSD 9.3R̃CXg[pJ[lň̂̂A ȉ̏𖞂 EJ[lɃfoCXhCogݍ܂ĂC^[tFCX ɐڑꂽn[hfBXNiXg[WfoCXj EATAfBXNRg[hCo ata(4) ň EʓIATA/IDEC^[tFCX̃n[hfBXN ESCSI_CNgANZXfoCXhCo da(4) ň EʓISCSIC^[tFCX̃n[hfBXN ESCSIRg[ɐڑꂽMOiCfBXNj ZN^TCY512oCĝ EFreeBSDňRAIDRg[iasr(4) Ȃǁj ڑꂽn[hfBXN EUSBJ[hA_v^ɐڑ etbVJ[hAUSBtbVȂǂ USBeʃXg[W Ê悤ȃXg[WfoCXɂ͑ΉĂ܂ EFreeBSD 9.3R̃CXg[pJ[lňȂ̂ u[gɐFłȂXg[WfoCX EFreeBSDňȂC^[tFCXɐڑꂽfBXN Eada(4) da(4) foCXhCoňȂ Ẽc[𗘗pA邢͗pȂƂɂĐ Ȃ錋ʂɂ‚ĂA҂͐ӔCؕ܂B n[hfBXNc[uwipe-outv version 1.5 ` ȒPŃn[hfBXÑf[^ ` Copyright (C) 2015 by Dai ISHIJIMA ͂߂ p\Ȑn⏈ɁAn[hfBXÑf[^ꂸ cĂ邱ƂŁAlƏȂǂRk邱Ƃ ƂȂĂ܂B ́un[hfBXNc[wwipe-outxvgƁAȒPɁA ˆSɁAn[hfBXNɋL^Ăf[^邱Ƃ ł܂B̃c[́An[hfBXNɃf[^㏑邱Ƃ āAL^Ăf[^܂B CD̒g CD̓u[^uCDłBp\RCDDVDhCuN 悤ɐݒ肵ACDNƁAuwipe-outv܂B fBXÑf[^ CDu[gƁÂ悤ȃj[ʂ\܂B n[hfBXN̖Oe (̗ł́u/dev/ad0 vu4,294,967,296 oCg (4.0G)v) ́Aۂɂg̃n[h fBXN̏񂪕\܂B +---------------- n[hfBXNc[wwipe-outx ----------------+ | Cj[ | | ݑI𒆂̃fBXN /dev/ad0 łB | | fBXN̗eʂ 4,294,967,296 oCg (4.0G) łB | | ȉ̃j[珈IĂB | | | | +------------------------------------------------------------------+ | | | z 0㏑āÃfBXÑf[^ | | | | h @̊Tv\ | | | | n ㏑āÃfBXÑf[^Oɏ | | | | m Ȍ㏑@I | | | | v f[^ꂽmF (^ꕔ`FbN) | | | | V f[^ꂽmF (ʏ^S`FbN) | | | | w OfBXNɏ | | | | L L^tbs[ɏo | | | +-----v(+)---------------------------------------------------------+ | | | +----------------------------------------------------------------------+ | [ OK ] Cancel | +----------------------------------------------------------------------+ ŁAn[hfBXN̖OeʂAf[^n[h fBXN̂̂ł邩ǂmFĂB̃n[hfBX Ñf[^ꍇ́Au0㏑āÃfBXÑf[ ^vnCCgĂԂŃG^[L[Ă (ȉȂuIvƏ̂܂)B ̃j[Łu0㏑āÃfBXÑf[^v IƁÂ悤ɊmFbZ[W\܂B fBXN ad0 Sf[^ 4,294,967,296 oCgA 0ŏ㏑ď܂B 낵ł? [ Yes ] No f[^ꍇ́AŁuYesvIĂBuYesv IƁAɂ‚Aȉ̊mFbZ[W\܂B {ad0 (4.0G) ̃f[^Ăł? [ Yes ] No f[^ꍇ́AēxuYesvIĂBuNov Iƍŏ̃j[ɖ߂܂BuYesvIƃf[^ ̏n܂܂B f[^̏́Â悤ɐi󋵂\܂B fBXN ad1 ̃f[^Ă܂B 25% (1024/4096) I ^ 21b o c 悻128b 0%|############______________________________________|100% ʂ̍ʼnsɂ́Â悤ɏݑx\܂B 33554432 bytes transferred in 1.307584 secs (25661396 bytes/sec) f[^̏ɗv鎞Ԃ́Ag̃n[hfBXN̗eʂp\ RɂĈقȂ܂Bn[hfBXN̗eʂAp\R x΁Aɗv鎞Ԃ͒ZȂ܂B f[^̏IƁA fBXÑf[^I܂ (230b) [OK] ƂbZ[W\܂BŁAG^[L[ƁA ̃j[ɖ߂܂B @ɂ‚ Cj[u@̊Tv\vIƁA Pȑ@̐\܂B ȊȎɂ‚ Cj[ŏ㉺J[\L[ƁAʂ̍ڂnCCg 邱Ƃł܂BCj[ɂ8‚̑I\ ܂񂪁A㉺J[\L[ƃXN[ɂAe푀상 j[\܂Bun[hfBXNc[wwipe-outxv ́Af[^ȊOɂAĂ邩ǂ̊mFAL^ ݁An[hfBXÑRs[AVF̋NAċNAVbg _EȂǂ̑상j[pӂĂ܂BȉɃCj[ Ił鑀̈ꗗ܂B E0㏑āÃfBXÑf[^ E@̊Tv\ E㏑āÃfBXÑf[^Oɏ EȌ㏑@I Ef[^ꂽmFi^ꕔ`FbNj Ef[^ꂽmFiʏ^S`FbNj EOfBXNɏ EL^tbs[ɏo Eʂ̃fBXNI EfBXÑf[^\ Ef[^\ZN^̎w Euwwipe-outxɂ‚āv EÑVXebZ[WmF EfBXNRs[i^obNAbvj EfBXNRs[iᑬ^f[^Tx[Wj E1㏑āÃfBXÑf[^ E_p^[㏑āÃfBXÑf[^ Ep^[̕␔㏑āÃfBXÑf[^ E_f[^㏑āÃfBXÑf[^ EL^\ EfBXN̎Ȑff (SMART) \ EVFishjN EVFicshjN ECD-ROMmount ECD-ROMumount EMBR *̂* EVbg_E EċN Ή@ɂ‚ E{c[́AFreeBSD/i386삷Rs[^ŗpł܂B E{c[Ńf[^łXg[WfoCX͎̂ƂłB EFreeBSD̃J[l (CXg[pCD̃J[l) ň ̂̂Aȉ̏𖞂 EATAfBXNRg[hCo (ada(4)) ň EʓIS-ATA/P-ATAC^[tFCX̃n[hfBXN EASSDhCu ESCSI_CNgANZXfoCXhCo (da(4)) ň EʓISCSIC^[tFCX̃n[hfBXN EFreeBSDňRAIDRg[ (asr(4)) Ȃǂɐڑ ꂽn[hfBXN EUSBJ[hA_v^ɐڑe탁J[hA USBtbVȂǂUSBeʃXg[W ada(4), da(4), asr(4) Ȃǂ̏ڍׂɂ‚ẮAFreeBSD̃}jA y[WȂǂB ̋L^̕ۑɂ‚ un[hfBXNc[wwipe-outxvł́A̋L^ۑ 邱Ƃł܂Bۑ”\ȃfBA̓tbs[fBXNUSB ȂǂłB̋L^ۑ郁fBA (tbs[USB ) ́A炩FATtH[}bgsAuWIPE-OUTvƂ ÕtH_[gfBNgɍ쐬ĂĂB Ƃ E{c[́AOSƂFreeBSD𗘗pĂ܂B E{c[̓t[EFAłB쌠́A҂ł ܁ ۗLĂ܂B E{c[𗘗pA邢͗pȂƂɂĐ Ȃ錋ʂɂ‚ĂA҂͐ӔCؕ܂B Ql EВc@l dqZpYƋ (http://www.jeita.or.jp/japanese/index.htm) up\R̔pEnɂn[hfBXÑf[^ Ɋւ闯ӎv(http://it.jeita.or.jp/perinfo/committee/ pc/JEITA_HDDdata100219F.pdf) {c[̓@ {c[юoíA҂̃EFuTCgŌJĂ܂BA hX http://hp.vector.co.jp/authors/VA004814/ łBKvɉ ă_E[hĂB n[hfBXNc[uwipe-outvv1.5 Copyright (C) 2015 by Dai ISHIJIMA AȂ̃t@Cuwipe-outvN}V Cj[猩邱ƂłƂ΁A]vȐ͕sv ܂B yCj[ł̑z Cj[ʂ̑̊{́A E㉺J[\L[ɂsڂI EG^[L[ɂIڂs łBIĂ鍀ڂ̓nCCg\Ă܂Buwipe- outvŃAu0㏑ācvnCCg\Ă ͂łB Cj[炱̉ʂ\ɂ́AJ[\L[ 񂾂AG^[L[܂Bʂɕ\Ȃ ́A㉺J[\L[xƁAXN[óà ܂B Ƃ΁ACj[ɂ́uċNvƂڂ ܂A͈ԉɉBĂ܂B\ɂ́Ax J[\L[Ă݂ĂB XN[ďɏĂڂ\ɂ́AJ[ \L[ĂB yfBXNɋL^ꂽɂ́z u0㏑ācv̂悤ȁAucvCj[ IAG^[L[ĂB uvsƁAmFʂ\܂B̂ƂA fBXŇ^ԂeʂȂǂ\̂ŁAfBXN 邩ǂmFĂB\ĂemF G^[L[ĂB ŏ̊mFʂŃG^[L[Aēx‚mF ʂłĂ܂B{ɏĂ悢ꍇɂ̂݃G^[L[ ĂB ڂ̊mFʂŃG^[L[Ən܂܂B AfBXN̏ɂ͐琔Ԓx̎Ԃ܂B ͂܂Ă΂炭ƁAc菊vԂ̗\l\ ܂B IAɂԂ\܂B G^[L[ƁACj[ɖ߂܂B ȂAuŏI邱Ƃ͂蓾Ȃ͂łB̏ ́A{\tguwipe-outṽoO܂Buf[^ ꂽmFvIŖ{ɏmFĂB yL^ۑɂ́z {\tguwipe-outv̋Ɗꂽꍇ́A Cj[uL^tbs[ɏovIł Bj[ɏĂƂAL^tbs[ L^ł܂B L^ۑ邱Ƃł̂́Atbs[ł͂ ܂BUSBȂǂ̃fBApł܂BȂA L^ۑtbs[iUSBjɂ́A炩 u\WIPE-OUT\vƂtH_쐬ĂĂB yCj[ɖ߂ɂ́z ̉ʂ‚ăCj[ɖ߂ɂ́AG^[L[ ĂB n[hfBXNc[uwipe-outvv1.3 Copyright (C) 2013 by Dai ISHIJIMA  . ...snapboot COPYRIGHT> srcinfo.txtk> readme.txthelp.txtk> version.txt XsjisrP !4Xrh@@xTWIPE-OUT-16T_993 (2016-11-23)  ...A!4X!4X!4X!4XpWף IԼx˩{7ԅY& W6,lmkĆp7~%]YA v;k'nk'ܯwW,NF7oR"^ K ^rBGO H29EzwHwR6Z.9Lo3pIf|Z>~)F 8;_fF`[5H[$;QUU/t$C[*!xWyk{N6Q0C4'.lx "0x .?F80A]QA bx v x  w 8u4L$L$4A< v D$l$$#$(Pu[^_]Í',\$t$ |$$l$(\$0D$4D$C,(,$$ƅ ,$!Džut$,$VHT$PL$\$G$Mgdždž 0\$G$f\$ t$|$l$UWVSD$8D$T$0B,0l$4 7t$9D$L$Ѓ<Ct Cxt5{tmuCD$t$D$0$8Cv@ـ{t8uɉL$t&D$D$t$D$0$x8CwC\݃D$;\$BD$D$0$[^_]ÍUWVS,D$@D$ T$DRT$+L$DQf‹\$ tbfw\$ li(D,@?fw\$ i D@\$ iDT@T$ 2D$@,D$$li(4|$+fdžD$Dx0@2<t_<w <'<t8< mL$DL$4$X\$D\$4$CD$DD$4$@.T$DT$4$\$F,@$cdždž 0\$F,@$bF&L$I\$ 6ID$ d,$gƋT$ hh.V2~&~%󀾵WN$щЃu)t$t$ FMD$F0D$L$$ $_$ut\$\$ $>\$D$ $ƆL$  B88u{tw\$[D$ d,$fƋT$ hh.V2~&tF%<"t< uD$ 4$CDD$ 86wT$RL$ Ƅ1\$$\$ $}|$+D$Dx\t\D$T$ $L$DL$\$ $<|$+tkff vfdžD$ 4$4D$ 1D$@T$ ,D$$l&,[^_]Ð$t$\$ t$T$L$tDt@t<|$t5fw.t!B0B1B2fJr D$B|$t$Í&'|$% T$RB ÐVS\$L$0t$8D$ f="'wIf= 'syf=@!tsf=@!wf= !tff="!t`f=Pt&u`Tf=D!tNf=D!rPf-'fwFt&6f='t0f='t&wf=$'t f='t&u f=tf=tf=ru @D$D$D$,ffD$ D$$fD$(ffT$4fT$fD$[¸t&=uȃ Í D$9t $Zȃ Í D$9t$Z@ȃ ÉUWVSD$D$D$vT$L$ ,<D$ff=wwi {0tP{(&<$8ZHS,C,yQ y&uy%wA't A tP8K0w舃iT$yt<‹Dfwi DPiDTPt&Qffwi D@iDT@T$0:Bu%A0%=tD$AL$$-1AGft;t[^_]É'\$ t$|$l$l$ |$(u4$IÅuD$,ƀv4$…u\$4$T$,ƂfC0C1C2KL$$A3fCEC C,BC@S\@B@P C|@HD$CH$B\$4$C\$ t$|$l$ \$ t$|$l$l$ |$(D$,D$u4$RÅ4$0…tzC0C1C2KL$$A3fCEC C,BC@S\@B@P L$H C|@HD$CH$A\$4$l$B\$ t$|$l$Í\$ t$|$l$|$ l$(74${Åtr4$]…tdC0C1C2CL$$A3fCC C,BC@S\@B@P C|@HD$CH$@\$4$裪\$ t$|$l$ \$t$|$|$ 74$Åtm4$…t_C0C1C2CL$$A3fCC C,BC@S\@B@C|@HD$CH$,@\$4$\$t$|$Ã\$ t$|$l$t$ $[?$>ǀ02u 8F0sF0 u߉<2Dm,`uэR@Y 2LPX\ddh0Dm,\$ t$|$l$Í&\$t$|$t$ X $O>$=¸À0uf9sf&=uˀÈi(l$lfDlD&lD=lDlD@lD?lDAlƄlƄ4$l~5u lL(l\$t$|$Ít&'S\$T$]8$[Ív'\$t$|$t$ $<$;‰.u8s &πÈi$#fD$~5u fD0D&fD2fDŽD$8$\$t$|$Ðt&VSt$ D$$@$0Ƅ0ۉ\$ $*;i۰x4t D$4$*D$8$D[^Í&'S\$D$P3ƄD$ $:D$8$[S\${(tCXD$T$B$6C([ÍvS\${LtD$T$B$Y6CL[Ã\$ t$|$l$\$ l$$Ei(lD$$Utx|uDŽ&EƄljD$X $9lxBt D$$l$$lD&lD'\$ t$|$l$ \$ t$|$l$l$ t$$f~0F2<Ff=|<cik){9{tl<$399uA\$,$!;{(CXC`[dCXD$E$4C(CPzSFBFBFf=lF0%=i(kO{9{tn<$e89uF\$,$;{t^ǃǃ D$E$/3CL)CPzSFBFBt&\$ t$|$l$Í\$ t$|$l$|$ l$$U(f!D@ftI8t7!t$0 $6l$<$l$<$s\$ t$|$l$ \$t$|$|$ t$$f~0F2<Ff=w i°{(u8Vxti@BCXC`[dCXD$G$1C(SsCV2C)Ff=w lF0%=tgi({LuDVxti@Bǃ D$G$1CLSsCV2CO\$t$|$É'UWVS,D$DPf/‹\$@tbfw\$@li(D,@?fw\$@i D@\$@iDT@T$@2Dm,D$ i ‰T$D$DP@B<t+<6DmT$@6qDmD$@,L$(Z \$&RT$'6tjDmD$@0d,$g4ËT$@hh+SL$9K0uCMT$D:Btt&D$@806wT$DB\tD$L$( $D$DD$T$($_|$'<w5t1D$D$ L$DAD$C0D$\$ $)t%<v!C'C&c(\$D$($]+D$'D$ D$&D$T$T$L$ $߃DmD$@d<$(3T$@hh9Q D$9A0uAMT$D:BtT$@86wQ$Ѓu(t#L$ \$DCD$A0D$D$ $T$DB\tD$L$@ $\$D\$D$@$-T$@1Dm,D$  O,[^_]ÉUWVS l$ |$$\$(C'C&\$D$<${0tSC BC0h0{Otv,$(u$3{Ou拓tD$D$$1S0tD$CMD$$Bs ~|u~C(u,$֨D$C D$,$/S BD$BD$$R 4C D$8D$$IC D$8D$$IC FlS4t CMD<CBo \$,$tO t9w8&4$0W t&[^Ðt&SD$ 0 $e*D$@u[Ít&' D$9t $*ȃ ÐD$ittET$É'T$L$ DJpfDJpRËT$&;2t¤ ufÍvVSt$ L$\$882u892uiƄ1¤ u[^Ð&UWVS|$ D$$D$l$T$(]\$tWt&9Gu(:\$uitET$(&t:L$u[^_]ÍUWVSl$4\$<|$0|$8tw#D$|$@T$@T$WD$t+D$9Gu8tD$t8T$ul$ittED$dD$D$$+#tEt_ݍpET$&T$\`K(GP@CBABAB A T$8BwD$ittE)9GÃt8uÃ[^_]Ít&UWVSD$$D$\$(f$|$i8 D$9D:upLvQtuHi8 [Ѝ :\$YD$ A A$fX\$X‹\$,BCBA0 =ur[^_]Ð&UWVS l$$t$ ~tIitEtD$l$E$ 'u8Fw»؃ [^_]ÍvS\$D$D$$x EjttO>uD$,$c [^_]UWVS,D$DD$T$@T$ D$T$@B*T$T$D$$D$@x*WD$T$ 0T$T$ 4PT$T$ TD$$D$(t&<t,<r<u4D$$ D$($"D$$D$(D$$D$( t$T$T$$V|$T$$D$$']iU\$D$$D$$A4 \$T$$T$$]EiUD$D$$D$$D$(T$$']iU\$T$(T$$?\$D$(D$$x]EiUD$$T$$'"iU\$T$$T$$2A4 \$D$$D$$iUD$T$$T$$T$(D$$'iU\$D$(D$$?\$T$(T$$iUD$D$(D$$xT$@z*D$D$$J|$v!T$ $']iUD$ $'iU\$D$ $ذT$@z*uÀ &À\$D$ $|${]EiUD$D$ $D$$'?]iU\$D$$N\$D$$0]EiUD$D$$ T$$']iU\$D$$\$D$$]EiUD$D$$D$$'I]iU\$D$$X\$D$$=]EiUkiUD$D$ $ T$$'iU\$D$$\$D$$iUD$D$$D$$'QiU\$D$$a\$D$$=iUD$D$$T$$'iU\$D$$\$D$$iUD$D$$|$vxt$T$ 0$'OD$ 4iU\$D$$T㏃p\$D$$6iUvt$T$ P$'D$ TiU\$D$$㏃p\$D$$iUD$D$$,[^_]Ðt&\$ t$|$l$l$ }wJ |މ8uhCD$ CD$CD$CD$CD$CD$ CD$D$$(|$`G|$,$tt&D$<|$<6,$HÅND$8T$8 tK5D$8L$8 tK5D$8t$8 tK5D$8|$8 tK5 D$8T$8 tK5D$8L$8 tK5C0ߋD$8t$8 DP@CD$`C$T$`B}+t0t$`F tˆL@C28M+w܋D$`H0S P0D$`,C K$T$`B4D$D$ |$T$ $_,$藪Å@'@&fǀ@$@%@D@HD$8t$8 DP@AA|$`{,<$fK8<$T< vfK8D$`@ P25,G5teP|t.@|DŽD$D$$3vt&ǀDŽ$ҍ@C\$<$92<ЍR,\$$ xxPRd,$};hh)Q y&t Y$ӉЃu)tGL$ AMD$A0D$D$$$]L$<$:L$<$ t&86DD$5t&;tmJ|tfzlu`,[^_]ÍWVSt$ >4$t_+t1V t!Ft$<$\u8u<$Wt?V<$/uƃ@0@1@2CfAAxA A,A@A|L$<$w<T$$s,><$uƃ@0@1@2CfAA A,A@A|L$<$;Eډ2><$8K<$~K>uƃ@0@1@2H3CfBB B,B@B|KAT$<$;T><$Z~uƃ3@0@1@2CfAA A,A@A|L$<$:><$}uƃ@0@1@2 CfAA A,A@A|L$<$D:><$}uƃi@0@1@2@4CfAAxA A,A@A|L$<$9C&S$Ѓuu{4u4$襻{'uC,\$D$D$0$Fu~8~ `|vV(Z*B9}6CB*B+B&B2fB2T$T$0$Oe9t~8~ u4v/B&B2fB2T$L$0 $ <$wF\$t$ |$$l$(,Ív',\$t$ |$$l$(l$4u,EL$0E&<<w;< < w<S<<t&t&<<w<t9<wG<t]<gD$,${}QD$,$a}7D$,$v,$e ,$uE9t,$~,$,${,${E&~ ~8v<$H‹FF&54 LF4‹iUfF 4 DF4‹iUfV"f F f@Au F&f~"߃$F&4 DF4‹iUF4 LF4‹iUtF tF Ѓ FF+<F&G4 LV4ЋiUF,F&F&F2f%fF2D$4x\t\D$,$KT$4T$,$JG|$,$,F&F+F+:Fs F&F+F&$ 臬F&F&t&{F&rF.F&Z4 LF4‹iUۋ4 DF4‹iU虬u F& @ 9yF.< wF&F.F+|<D$ t>D$_8$۩D$F+L$9LBn\$t$ |$$l$(,Í\\$Lt$P|$Tl$Xl$`|$dWffwli(D,@:vfwi D@iDT@D$@Rd<$+hh9Q A%<"t< uAf;D$>r fD$>L$@86w|$@?T$@z&1B&T$,$u F%v"u F%N( AtfN8~%uJEf= 'tf='u:\tG\D$,$?|$,$>t$L$8L$,$l_@t[Vd(u􍖌uNdSCFdBABAB A BABAC ~%F&D$6f$'%F&O@QA A A ‰A A A ЉFDFHuf$'觟F&NufN8F&:F& 1 u2|$=t|$=u$D$6f$'SF&\tG\D$,$U=|$,$D$@8tAD$ #AD$ AD$ AUD$ A/AAD$ AC4C5AC3AD$ C3AC4C5AC6AC7AC9A C8AD$ rAC4C5AC3AC6AC7AC8AC9AD$ 4D$ C4t&ApAAAA@D$ D$ D$ [Ív'<\$,t$0|$4l$8l$Du@|$ t Fx}0%ugD$ D$ D$L$uD$D$T$D$D$$8D$ D$ D$\$D$D$D$L$uD$D$ &vT$D$D$$ U@D$ L$D$$N##\$,t$0|$4l$8<ÉVSL$ \$$Q,2C0u_ iUD$ =t =uB ǃ ǃ ǃ <ǃ ǃ ǃ $t&ǃ PEǃ pE$[^Ív'<\$,t$0|$4l$8Ɖ׉L$hD$@<v؋ HT$(|$\$$T$("'6u iUD$(T$Ћ\$,t$0|$4l$8<Í'S(\$0 H T$$D$4D$D$$LT$$'uC-9iUT$8Ѓ([Ít&'UWVS,ÈT$̓|$@{ HD$D$$T$(T$(' u* iUD$!Љ8u (T$($ @q;t$@s,[^_]ÍS(Ë T$$D$D$$T$$T'hu$$tvЃ([Ít&,\$$t$(\$0t$4D$#D$#D$t$$ur|$#tyBt_ H T$t$D$$UT$'u$"t &\$$t$(, UWVSC?Rt&(C0C1C2C3C4C5C6D$fC7D$C8C9$ TEl@fCCk C\@C@D$E`C,fC$ ElCDC| D$D$$QC,D$ C\P@ D$T$D$$Qƅ\$D$$LtxEltqtofuD$D$!@,$ f$lRD$$Eltt릸{tv ft߃[^_]Ðt&l\$\t$`|$dl$hl$pt$t|$xD$|fD$ $T$]l{%u$R|C,D$DUxT$8fDž'$D$@Lf|$ vD$ D$$RD$8$D$|$t7D$K T$<BT$LT$D$$$`"T$@z\tЃ\D$D$8$T$@BdD$@D$T$8$ T$88@'l$8D$$(fc(\$\t$`|$dl$hlÐt&\$t$|$T$ \$$B,8sTC< tM< w<w<s=$<u&'<"t.<"r&<vaB @Fn FnFn {\t){,wC\D$<$C\D$<$m\$<$!4$Vx\$t$|$Í\$t$|$t$ ^luD$($T$$fu ~|vtD$($T$$v;{&C4t x5C,@8{Ot\$D$$D$$D$(K$щЃu4C&C'\$ CMD$C0D$C,$t&t~S4t0B2tofB2C4f@2C4@&C4D$<$kGC&C'\$<$su1C&C'fǃ\$<$3D$($T$$t&\$t$|$S\$Cx$…{tr <u8{tuCCmCCtCT<uPCCtC+vCtu CpuC C[ÍvVSt$tf3\$F$"9\$@t$D|$HLÉUWVSD$8i(ŋT$0l8Ǹ L$4ilM }0u-}4u'r+ ],; D$4E4T$4BtE0BpL$0q+tS],D$0; t/T$09 u\$0C)T$48uËT$08,:.\$F$o3dždžF \$F$2\$t$Ív'UWVSLD$dPT$ @D$J L$T$`88,tFf=w5‹iuGvu8ø t&,tFf=w5‹iuGvu9t$< ;l$L$h< i T$`8$WD$D$$<T$hD$ pA$#$L$$ESD$HD$ D$D$ $+qD$Hl%i'sL)L$$<D$HD$ D$D$ $)+D$H%ik()L$$D$HD$ D$D$ $*D$H%ik()L$$jD$HD$ D$ D$ $W*t:D$Ht9%ik()L$$ <D$hT$ RT$+D$8D$<D$@D$DD$ƉL$.t&f  BRЍn@u DŽH֬6  BRЍDŽƬKP @ CBABAB A BABABABAD$ D$ 8iҰFDFGT@ F <u-FHPTF F Rock@etSt@or W"F'E<u!FF FHPTF EJ34fF0 FvW FF dW"F FrWF萶D$$F$  [^_]Í&'UWVS t$(0= uD$ 8D$$D$$ft uK8ø 8$IT$$)‰D$$贳f f3i ,U tl,F?kCmtF0(<*F0F1D$T$F2D$T$F3D$T$F4T$V5F6fF7N8F9GlFDfF$ G`F,NtCdFChFSHwu CnF0ҍKPT$L$$Q"C`t FDCIfF$GlFDfF$ NtGlx%%FxCm&CLF,Cm0< uF0F1F4F05Gl@$uNt STf;SJu YCnCS<㐍t&tCD$@C=D$<CviU iUv iUiUtdv,ǃ$'%iU4ǃ$'iU#vvCiUCiUE&9 [^_]VSL$\$D$0v΀iU΀iUtYviUiUt&v iU iUtsᐃv530$'34iU63P$'3TiUv[^ÐSL$ f f; r fǁ  | T$  ,[ VSL$T$t$\$ &uff% fS % ЉC҃A ЃACtAf% fA[^Ít&'L$T$v uA1A2BA3BA4BA5BA6BA7BAvt#A8BA9B A:B A;B A뤍D$4 PP@ iUÐt& $t$|$|$t$_ V$Ѓu u~0uh$tXtOG\8wu1 8rttG\$ 8sË$t$|$ ÐWVS|$ t$$FT_+t&P t&u8uF& t$<$[^_Ív' D$f@2@&D$$ Í'VSD$ 0D$$tDC(fpK(tD$\$4$ݷ[^Í&UWVSl$0}+t+D$4@ tT$4B u E+f9wT$4B(t%XUD$$7T$4B(D$,$dD$48T$49B8uD$D$$ƃx 4xOf}<tgCf;Fu]f=wW(tJUC(fpUK(tC!D$\$,$蠶E<9wF @lF(u!,$eF D$D$,$YF P@T$D$$RAF 8D$T$$ F 8D$T$$ F T$4j t$,$T$D$49P8D$4@(EX iUt EX[^_]ÍWVS t$0>_+t1 9u  D 9t8uщ ~Atx 9AulA4tA4\Q, Y,B 9tLz u9z u/A4D$`D$ T$L$ $ R B 9u [^_Í&\$ t$|$l$\$ |$$GXhWfwtF4V3D$D$@$؂;FTuuFT$H2+vL$@1@, 3\$,t$0|$4l$8<Ít&D$,D$ D$(D$D$$D$D$ $bÍvUWVSLl$dD$`X fE(D$0D$l$T$`$mt D$0[ E0%=$Uf ‹t$`tbfw|$`li(D,@?fwt$`i D@|$`iDT@T$`2@,D$i ‰T$ D$D$$eUfw‹|$`u0fuE2<fws‹|$`tD$HHD$HHD$H`EvtD$HHD$H@ D$H`T$HE\$`f BD$H`Ƈ \$à\$!$?\$%$-DU0E0DBABAB A t$ t8<EM t8E<t$W ˆWFffGt{GCGntjD$D$ D$HD$l$D$$EvtD$H@D$8D$7D$ |$l$T$$Evt L$I\$ct$`|$,T$f\$ك E0%=u4D$DD$ D$\$D$$D$G@D$Gf}0uME2<wBT$$T$L$` $~zD$DD$ t$$F4D$\$|$<$:t&D$D$T$`${`tC`D$4$vXS3\$4$a9Ti(lD$[^_]É<\$,t$0|$4l$8|$@w,.Ft Ƈrgt&Ƈ|$,$}D$D@Nx`tD$D`D$,$(uT$DPB,$RWFƇL$DAL$,$},$"ƇD$Dx`t`D$,$tO QBAT$DPB&t&G4tx&t|$D$4$覍FFW0u ~ u0D$D$ GMD$T$4$輑QD$ D$'N8L$D$$gD$(FC!C(K(f!K(f!T@C(D$l$ ,${`tC`D$<$RbSf<fwi(l@,xOCf=w#8i @x"C8i@Txt,\$<$萇XSD$$PCL$$AKPD$fD$(l$l$,D$0L$(D@Hf<fwi(l@,@]@f=w 8i @@)@8i@T@\$,T$C |$SD$8$'iL$X\$ ǁpT$8iU Ɖ2$%!L$8\$XD$,iUD$8$'ܶT$XL$ ǂp\$8iU ƋD$80$蔶!ދT$82L$XiUD$LD$S8E+v%$TpSCP~ t \$<,D$<9X,u˅t8F2}+t.\$<C tˆL@F28M+wD$D$D$<$hD$4T$4DŽ }+D$D$L$< $[h\$4\$,$苨( t % D$<,T$<9B,D$L$ $4X\$DP9P(\$D$$X{% uC,@T$$ۮCB{Ot,$$Ǵ{OuC :@l{Of}<t&0tmFf;Cucf=w](tPUF(fpUN(tF!D$t$,$FuE<9qC(u,$$C D$D$,$C P@T$D$$RC 8D$T$$C 8D$T$$cC T$C 8D$T$$aC8D$T$$AD$D$8E ,$'0|$viUiUu f,ut$<$<$ح +t4F tD$L$<$8_+wD$ D FF,9F,u*F89F8u"q$UhSCP} t ^,t&9^,u΅t_E2+tUvF tÈT@E28W+v&Ftt$<$*D$4$[^_]UWVS |$ o(s+tW 9uFt& D 9t 8uv!эiUэiUtl$D$$ D$$ [^_]UWVS\$4D$0D$xT7Gt@5T$B5<tu<r<<t&:L$A5L$4$QLCO{`tC`D$4$CXS4$"gD$@6@5C\$4$mL4$GGL$B{`tC`D$4$bCXSD$x&u  u"D$D$<${\&D$o8,$薢ËE]+CS t8T$D$$FK(\$D$<$\{Ot4$$4{OuD$T$8W wL$ $ӱgD$ǀ{`tC`D$4$WBXSD$D$<$[G89G8ō&,$蘡Ë@ tg@l4$C D$D$4$) C 8D$T$$,C 8D$T$$C \$4$|f9o8sT$T$4$3eG(XiUtXGt\~+t!G t G u8N+wى\$4$豚|$4$uGDŽ [^_]Ð&,\$t$ |$$l$(|$4t$0F,D$(O(f؃D@UpEtiUG!G0%=u)D$<$)D$|$,$hO(tD$<$,$=<e$ƆD$|$T$$W7ƆD$|$D$$WƆt$D$!T$$XV0t-FMD$D$ D$T$D$$!]T$B D$D$,$ШƆ~0tHt$D$!D$$vXFMV0D$D$ D$T$T$$\JD$D$!D$$*XT$B D$D$,$> ~&tt$D$D$$Wt$D$T$$WN tQBAF'F&~Ot!&,$$輤~Ou~0tVF BF0h0V4t FMD<FBD$h tD$D$$)V0tFMD$D$$1F @l,$F D$D$,$F P@T$D$$RF 8D$T$$褺F 8D$T$$臺F t$,$aT$zt^z t8\$8v$hSCPx&uT$8B w׉T$8B wBT$,$\$t$ |$$l$(,Ð&UWVS,l$@ETD$$ D$(l$$`}6vE5u9u4$ƛD$ ET$ PrUf{<0 L$D$0^Ff9E$P 9T$(tF 9!‹ uf%f9u9t$ u$4;T$(uFf=T$$z4BF(fpN(tF(N(fD$ыD$!N(f!T@;t$ t"VPpT$VF(D$L$ $謙m)f9{<D$$@tL$ ABL$,$,[^_] UWVS,t$@T$HT$ D$LD$$>D$Df{0u+C2<w N(D$ T$$uYA5D$Kl&f{wCi(‰T$D$ D$$uD$ƀ{ufD$ D$$CCv CT@mt!HXtS@tC,D$T$ $tJ"4 @L$AB‹iUVSfFH4 DAB‹iUfFLfFNfFPVR4 LAB‹iUfFJ4 HAB‹iUf VLf VN%f FP{uC!f{0uC2<w $L$ T$#!C0%=4 @L$AB‹*-iU4 DAB‹T$iU4 HAB‹25iUCv KTAnC ASfAHT$fAL\$fANfQP4 L\$CB‹iUfAJ4 @CBk\$<$]yX iUtGX=9x8yy2C(fpK(t,[^_]Ð&S\$L$C09K uA<tV<(tRD$ D$Vi D$CD$$D$ D$PD$CD$$D$ D$HD$CD$T$D$ D$TT$H@D$CD$$茙D$ D$CD$ $gD$WD$ D$CD$$AD$ D$SD$CD$$D$ D$CD$$D$ D$RiD$CD$$ĘD$ D$N@D$CD$$蘘D$ D$PD$CD$ $pD$ D$WD$CD$< $HD$ D$UD$CD$d $ D$ D$VD$CD$ $D$ C&D$CD$ $їD$ D$FD$CD$p$託D$ D$@D$CD$ $胗D$D$ @D$PD$CD$ $җD$D$ D$CD$ $襗D$D$ D$PiD$CD$@ $qD$D$ D$LD$CD$d $@D$D$ D$JD$CD$ $D$D$ D$S D$CD$ $ޖD$D$ D$CD$ $豖D$D$ D$Ni$D$CD$ $}X[Ív,\$t$ |$$l$(l$0ED$],$'ƍPT$D$$=NjE0u0T$Z B$0G0G1G2O3T$4GTGXPGDG̋T$B3fGEG G,D$4G@G|@D$GH$|$T$$\$t$ |$$l$(,Í'UWVSt$0D$T$22<ЍR,L$6RD$dR D$ ,$؎ËD$hh+SC tD$8D$$|K(\$D$D$$PH{Ot4$$f{OuL$ 8QnD$|$4$[^_]Í&'UWVS|$@5@4@3ƀ Œ =u$$T$D$ρL$L$\$P$t$H$ D$T$D$vD$4D$xD$0D$hD$,D$nD$(D$zD$$D$pD$ D$qD$D$lD$D$sD$D$jD$D$rD$ D$tD$D$uD$B$$'D$u$A.D$tA/D$rD$zfA<D$xf D$vf D$jfA6A$f=t f= $C1C+C2@C0ƃ C,T$Б‰lD$ui(t u$p$蚑‹$D$rit u$$]‹$D$ti t u$$ ‹$D$zt u$ $$8$ʐË$T$謐‰lf|$jtFZPD$sBH$t$D2BD$s@ꀃf9L$jw$p$B‹$f|$nt0B$:B f9L$nwՋ$$‹$|$qt3$t$L2BD$qf9wҋ$$芏‹$$t$P2B9uۉ$A‰|$pt2$*B˜D$pf9wӋ$$‹$f|$lt0$t$T2Bf9L$lwՀ|$utO$4$脎Ӌ$  L$HPD$uf9wË$ $;$, 0 D$zf6 D$0 $< $T X D$uf^ D$X $虆d $躍| D$rf D$ $\ $} D$tf D$ $ $@ C&f C&D$ $ $‰ D$tittEtЉu$  D$tBD$tD$L$ $_o~&ύ I$, VF$,Fƀ`ƀHǀ @Z LPX\$ ddhFC&f9[$F0Ɔ2Ɔ3Ɔ4Ɔ5|$ui($lD'lD&lDLlDBlfDŽDŽlAAlBBD$uf9w$fǀ$Ƅ=u|$ti $D0D1D $QQQQQQQQlQ(Q(P(P,D$tf9X$ƀ|$rt}iҰ$fD2D&D(D4ы$AAAAlTD$rf9w$ƀ$ D$$ $$ 8 D$@$$4 \ D$@$щ$X  D$@$讉|  D$@$蒉  D$@$v $ |$qtZÉֿ)ŋD$L$˂TPX p$L$LPD$qf9w$ D$$ $ֈD$X$ $ T$P$,T$XPX p$L$PP5 u$ D$$ $.$ $  f|$ltWÉֿ)ŋD$T${TPX p$L$TP$f9|$lw|[^_]Ðt&UWVS l$ |$$_TG+D$l$$#fO2}+tIC t <C u E+f9wfv%EэiU#EэiUtD$,$C89C8 FMD<FBt$D$$ :~Ott&,$h$~OuF tV@lF(u,$F 8D$T$$轝F 8D$T$$蠝F k t$,$ EEXiUt EXG&fg2t"‹D8u4L$L$4A< v D$l$$:)"(Pu[^_]Í',\$t$ |$$l$(\$0D$4D$C,(,$$ƅ ,$!Džut$,$VHT$PL$\$G$ldždž  \$G$k\$ t$|$l$UWVSD$8D$T$0B,0l$4 7t$9D$L$Ѓ<Ct Cxt5{tmuCD$t$D$0$8Cv@ـ{t8uɉL$t&D$D$t$D$0$x8CwC\݃D$;\$BD$D$0$[^_]ÍUWVS,D$@D$ T$DRT$+L$DQf‹\$ tbfw\$ li(D,@?fw\$ i D@\$ iDT@T$ 2D$@,D$$li(4|$+fdžD$Dx0@2<t_<w <'<t8< mL$DL$4$X\$D\$4$CD$DD$4$@.T$DT$4$\$F,@$hdždž  \$F,@$#hF&L$I\$ 6ID$ d,$gƋT$ hh.V2~&~%󀾵WN$щЃu)t$t$ FMD$F0D$L$$ $_$ut\$\$ $>\$D$ $ƆL$  B88u{tw\$[D$ d,$fƋT$ hh.V2~&tF%<"t< uD$ 4$CDD$ 86wT$RL$ Ƅ1\$$\$ $}|$+D$Dx\t\D$T$ $L$DL$\$ $<|$+tkff vfdžD$ 4$4D$ 1D$@T$ ,D$$l&,[^_]Ð$t$\$ t$T$L$tDt@t<|$t5fw.t!B0B1B2fJr D$B|$t$Í&'|$% T$RB ÐVS\$L$0t$8D$ f="'wIf= 'syf=@!tsf=@!wf= !tff="!t`f=Pt&u`Tf=D!tNf=D!rPf-'fwFt&6f='t0f='t&wf=$'t f='t&u f=tf=tf=ru @D$D$D$,ffD$ D$$fD$(ffT$4fT$fD$[¸t&=uȃ Í D$9t $Zȃ Í D$9t$Z@ȃ ÉUWVSD$D$D$vT$L$ ,<D$ff=wwi {0tP{(&<$8ZHS,C,yQ y&uy%wA't A tP8K0w舃iT$yt<‹Dfwi DPiDTPt&Qffwi D@iDT@T$0:Bu%A0%=tD$AL$$-1AGft;t[^_]É'\$ t$|$l$l$ |$(u4$IÅuD$,ƀv4$…u\$4$T$,ƂfC0C1C2KL$$A3fCEC C,BC@S\@B@P C|CD$CH$B\$4$C\$ t$|$l$ \$ t$|$l$l$ |$(D$,D$u4$RÅ4$0…tzC0C1C2KL$$A3fCEC C,BC@S\@B@P L$H C|CD$CH$A\$4$l$H\$ t$|$l$Í\$ t$|$l$|$ l$(74${Åtr4$]…tdC0C1C2CL$$A3fCC C,BC@S\@B@P C|CD$CH$@\$4$裪\$ t$|$l$ \$t$|$|$ 74$Åtm4$…t_C0C1C2CL$$A3fCC C,BC@S\@B@C|CD$CH$,@\$4$\$t$|$Ã\$ t$|$l$t$ $[?$>ǀ02u 8F0sF0 u߉<2Dm,`uэR@Y 2LPX\ddh0Dm,\$ t$|$l$Í&\$t$|$t$ X $O>$=¸À0uf9sf&=uˀÈi(l$lfDlD&lD=lDlD@lD?lDAlƄlƄ4$l~5u lL(l\$t$|$Ít&'S\$T$]8$[Ív'\$t$|$t$ $<$;‰.u8s &πÈi$#fD$~5u fD0D&fD2fDŽD$8$\$t$|$Ðt&VSt$ D$$@$0Ƅ0ۉ\$ $*;i۰x4t D$4$*D$8$D[^Í&'S\$D$P3ƄD$ $:D$8$[S\${(tCXD$T$B$;C([ÍvS\${LtD$T$B$;CL[Ã\$ t$|$l$\$ l$$Ei(lD$$Utx|uDŽ&EƄljD$X $9lxBt D$$l$$lD&lD'\$ t$|$l$ \$ t$|$l$l$ t$$f~0F2<Ff=|<cik){9{tl<$399uA\$,$!;{(CXC`[dCXD$E$E9C(CPzSFBFBFf=lF0%=i(kO{9{tn<$e89uF\$,$;{t^ǃǃD$E$o8CL)CPzSFBFBt&\$ t$|$l$Í\$ t$|$l$|$ l$$U(f!D@ftI8t7!t$0 $6l$<$l$<$s\$ t$|$l$ \$t$|$|$ t$$f~0F2<Ff=w i°{(u8Vxti@BCXC`[dCXD$G$6C(SsCV2C)Ff=w lF0%=tgi({LuDVxti@BǃD$G$A6CLSsCV2CO\$t$|$É'UWVS,D$DPf/‹\$@tbfw\$@li(D,@?fw\$@i D@\$@iDT@T$@2Dm,D$ i ‰T$D$DP@B<t+<6DmT$@6qDmD$@,L$(Z \$&RT$'6tjDmD$@0d,$g4ËT$@hh+SL$9K0uCMT$D:Btt&D$@806wT$DB\tD$L$( $D$DD$T$($_|$'<w5t1D$D$ L$DAD$C0D$\$ $)t%<v!C'C&c(\$D$($]+D$'D$ D$&D$T$T$L$ $߃DmD$@d<$(3T$@hh9Q D$9A0uAMT$D:BtT$@86wQ$Ѓu(t#L$ \$DCD$A0D$D$ $T$DB\tD$L$@ $\$D\$D$@$-T$@1Dm,D$  O,[^_]ÉUWVS l$ |$$\$(C'C&\$D$<${0tSC BC0h0{Otv,$(u$8{Ou拓tD$D$$1S0tD$CMD$$蒮s ~|u~C(u,$D$C D$,$S BD$BD$$R`9C D$8D$$NC D$8D$$NC FlS4t CMD<CBo \$,$tO t9w8&4$0W t&[^Ðt&SD$ 0 $e*D$@u[Ít&' D$9t $*ȃ ÐD$ittET$É'T$L$ DJpfDJpRËT$&;2t¤ ufÍvVSt$ L$\$882u892uiƄ1¤ u[^Ð&UWVS|$ D$$D$l$T$(]\$tWt&9Gu(:\$uitET$(&t:L$u[^_]ÍUWVSl$4\$<|$0|$8tw#D$|$@T$@T$WD$t+D$9Gu8tD$t8T$ul$ittED$dD$D$$k!tEt_ݍpET$&T$\`K(GP@CBABAB A T$8BwD$ittE)9GÃt8uÃ[^_]Ít&UWVSD$$D$\$(f$|$i8 D$9D:upLvQtuHi8 [Ѝ :\$YD$ A A$fX\$X‹\$,BCBA0 =ur[^_]Ð&UWVS l$$t$ ~tIitEtD$l$E$ 'u8Fw»؃ [^_]ÍvS\$D$D$$x EjttO>uD$,$c [^_]UWVS,D$DD$T$@T$ D$T$@B*T$T$D$$OD$@x*WD$T$ 0T$T$ 4PT$T$ TD$$D$(t&<t,<r<u4D$$ D$($"D$$D$(D$$D$( t$T$T$$|$T$$D$$'E]iU\$D$$D$$TA4 \$T$$T$$0]EiUD$D$$D$$ D$(T$$']iU\$T$(T$$?\$D$(D$$]EiUD$$T$$'biU\$T$$T$$rA4 \$D$$D$$NiUD$T$$T$$-T$(D$$'iU\$D$(D$$?\$T$(T$$iUD$D$(D$$T$@z*D$D$$|$v!T$ $'=]iUD$ $'iU\$D$ $,ذT$@z*uÀ &À\$D$ $|${]EiUD$D$ $D$$']iU\$D$$\$D$$p]EiUD$D$$MT$$']iU\$D$$\$D$$]EiUD$D$$D$$']iU\$D$$\$D$$}]EiUkiUD$D$ $LT$$'iU\$D$$\$D$$iUD$D$$D$$'iU\$D$$\$D$$}iUD$D$$\T$$'iU\$D$$&\$D$$ iUD$D$$|$vxt$T$ 0$'D$ 4iU\$D$$㏃p\$D$$viUvt$T$ P$'D$ TiU\$D$$㏃p\$D$$iUD$D$$,[^_]Ðt&\$ t$|$l$l$ }wJ |މ8uhCD$ CD$CD$CD$CD$CD$ CD$D$$( |$`G|$,$tt&D$<|$<6,$HÅND$8T$8 tK5D$8L$8 tK5D$8t$8 tK5D$8|$8 tK5 D$8T$8 tK5D$8L$8 tK5C0ߋD$8t$8 DP@CD$`C$T$`B}+t0t$`F tˆL@C28M+w܋D$`H0S P0D$`,C K$T$`B4D$`D$ |$T$ $_,$藪Å@'@&fǀ@$@%@D@HD$8t$8 DP@AA|$`{,<$fK8<$T< vfK8D$`@ P25,G5teP|t.@|DŽD$D$$3vt&ǀDŽ$ҍ@C\$<$92<ЍR,\$$ xxPRd,$};hh)Q y&t Y$ӉЃu)tGL$ AMD$A0D$D$$$]L$<$:L$<$ t&86DD$5t&;tmJ|tfzlu`,[^_]ÍWVSt$ >4$t_+t1V t!Ft$<$\u8u<$Wt?V<$/uƃ@0@1@2CfAAxA A,A@A|L$<$w<T$$=s,><$uƃ@0@1@2CfAA A,A@A|L$<$;Eډ2><$8K<$~K>uƃ@0@1@2H3CfBB B,B@B|KAT$<$;T><$Z~uƃ3@0@1@2CfAA A,A@A|L$<$:><$}uƃ@0@1@2 CfAA A,A@A|L$<$D:><$}uƃi@0@1@2@4CfAAxA A,A@A|L$<$9C&S$Ѓuu{4u4$襻{'uC,\$D$D$0$Fu~8~ `|vV(Z*B9}6CB*B+B&B2fB2T$T$0$Oe9t~8~ u4v/B&B2fB2T$L$0 $ <$wF\$t$ |$$l$(,Ív',\$t$ |$$l$(l$4u,EL$0E&<<w;< < w<S<<t&t&<<w<t9<wG<t]<gD$,${}QD$,$a}7D$,$v,$e ,$uE9t,$~,$,${,${E&~ ~8v<$H‹FF&54 LF4‹iUfF 4 DF4‹iUfV"f F f@Au F&f~"߃$F&4 DF4‹iUF4 LF4‹iUtF tF Ѓ FF+<F&G4 LV4ЋiUF,F&F&F2f%fF2D$4x\t\D$,$KT$4T$,$JG|$,$,F&F+F+:Fs F&F+F&$ DZF&F&t&{F&rF.)F&Z4 LF4‹iUۋ4 DF4‹iUٱu F& @ 9yF.< wF&F.F+|<D$ t>D$_8$۩D$F+L$9LBn\$t$ |$$l$(,Í\\$Lt$P|$Tl$Xl$`|$dWffwli(D,@:vfwi D@iDT@D$@Rd<$+hh9Q A%<"t< uAf;D$>r fD$>L$@86w|$@?T$@z&1B&T$,$u F%v"u F%N( AtfN8~%uJEf= 'tf='u:\tG\D$,$?|$,$>t$L$8L$,$l_@t[Vd(u􍖌uNdSCFdBABAB A BABAC ~%F&D$6f$'eF&O@QA A A ‰A A A ЉFDFHuf$'F&NufN8F&:F& 1 u2|$=t|$=u$D$6f$'蓤F&\tG\D$,$U=|$,$D$@8tAD$ #AD$ AD$ AUD$ A/AAD$ AC4C5AC3AD$ C3AC4C5AC6AC7AC9A C8AD$ rAC4C5AC3AC6AC7AC8AC9AD$ 4D$ C4t&ApAAAA@D$ D$ D$ [Ív'<\$,t$0|$4l$8l$Du@|$ t Fx}0%ugD$ D$ D$L$uD$D$T$D$D$$8D$ D$ D$\$D$D$D$L$uD$D$ &vT$D$D$$ U@D$ L$D$$>(!\$,t$0|$4l$8<ÉVSL$ \$$Q,2C0u_ iUD$ =t =uB ǃ ǃ ǃ <ǃ ǃ ǃ $t&ǃ Eǃ 0E$[^Ív'<\$,t$0|$4l$8Ɖ׉L$hD$@<v؋ HT$(|$\$$T$("'6u iUD$(T$Ћ\$,t$0|$4l$8<Í'S(\$0 H T$$D$4D$D$$LT$$'uC-9iUT$8Ѓ([Ít&'UWVS,ÈT$̓|$@{ HD$D$$T$(T$(' u* iUD$!Љ8u (T$($ 0v;t$@s,[^_]ÍS(Ë T$$D$D$$T$$T'hu$$tvЃ([Ít&,\$$t$(\$0t$4D$#D$#D$t$$ur|$#tyBt_ H T$t$D$$UT$'u$"t &\$$t$(, UWVSgL$8D$$!g\$pt0D$$gT$8D$$f|$[tZl$p|$8vދL$pD$,$fT$8D$<$fD$[f9w‹L$p| t0D$d $af\$8| D$d $DfT$p t0D$ $#fL$8 D$ $f\$p t0D$ $eT$8 D$ $eL$pt0D$$e\$8D$$eT$plt0D$T$ieL$8lD$T$Le\$pt0D$$+eT$8D$$eL$p8t0D$ $d\$88D$ $dT$pt0D$$dL$8D$$d\$pt0D$$qdT$8D$$TdL$pt0D$$3d\$8D$$dT$p, t0D$ $cL$8, D$ $c\$pT t0D$< $cT$8T D$< $cL$p t0D$ $yc\$8 D$ $\cT$pt0D$p$;cL$8D$p$c\$p tX  D$T$ L$ $cL$8  D$T$  D$ $hc\$p4 tX8 < D$T$ L$ $3cL$88 < D$T$ 4 D$ $c\$pX tX\ ` D$T$ L$@ $bL$8\ ` D$T$ X D$@ $b\$p tX D$T$ L$ $gbL$8 D$T$ D$ $6b\$p| tX D$T$ L$d $bL$8 D$T$ | D$d $a\$p tX D$T$ L$ $aL$8 D$T$ D$ $ja\$p tX D$T$ L$ $5aL$8 D$T$ D$ $a\$p tX  D$T$ L$ $`L$8  D$T$ D$ $`\[^_]ÍS\$$$e $ e$$`$.D$$[É' T$D$B3D$$ Ív'S\$$8 $[Ð&S\$$8 $[Ð& D$$! Ív',\$t$ |$$l$(É׉͋pl@xD$E8/$7D$@0@1t <Ѓ Ѓ T$B2BFfBZ B,B@B|T$D$$iƃfǃtYClt\fuD$D$!@,$f$^T$$Clt uft"D$xuCl@:fCf T$T$D$$ t&؋\$t$ |$$l$(,Ðt&,\$t$ |$$l$(\$0|$4slkx ,$D$@0@1<T$B2BFfBZ B,B@B|T$,$ƃfǃtUCltXfuD$D$!@,$6f$R],$芙Clt uftD$xtT$T$,$|؋\$t$ |$$l$(, L\$C?Rt&(C0C1C2C3C4C5C6D$fC7D$C8C9$QEl@fCCk C\@C@D$E`C,fC$ ElCDC|D$D$$OC,D$ C\P@ D$T$D$$Oƅ\$D$$|$t7D$K T$<BT$LT$D$$$ T$@z\tЃ\D$D$8$T$@BdD$@D$T$8$T$88@'l$8D$$Xic(\$\t$`|$dl$hlÐt&\$t$|$T$ \$$B,8sTC< tM< w<w<s=$<u&'<"t.<"r&<vaB @Fn FnFn {\t){,wC\D$<$C\D$<$]\$<$4$Vx\$t$|$Í\$t$|$t$ ^luD$($T$$fu ~|vtD$($T$$v;{&C4t x5C,@8{Ot\$D$$D$$D$(K$щЃu4C&C'\$ CMD$C0D$C,$t&t~S4t0B2tofB2C4f@2C4@&C4D$<$iGC&C'\$<$cs1C&C'fǃ\$<$#D$($T$$t&\$t$|$S\$Cx$…{tr <u8{tuCCmCCtCT<uPCCtC+vCtu CpuC C[ÍvVSt$tf3:.\$F$6dždžB \$F$5\$t$Ív'UWVSLD$dPT$ @D$J L$T$`88,tFf=w5‹iuGvu8ø t&,tFf=w5‹iuGvu9t$< ;l$L$h< i T$`8$'D$D$$<T$hD$ pA$#$LL$$ESD$HD$ D$D$ $b)qD$Hl%i'sL)L$$<D$HD$ D$D$ $(D$H%ik()L$$D$HD$ D$D$ $(D$H%ik()L$$jD$HD$ D$ D$ $'(t:D$Ht9%ik()L$$ <D$hT$ RT$+D$8D$<D$@D$DD$ƉL$.t&f  BRЍn@u DŽH֬6  BRЍDŽƬKP @ CBABAB A BABABABAD$ D$ 8iҰFDFGT@ F <u-FHPTF F Rock@etSt@or W"FE<u!FF FHPTF EJ34fF0 FvW F谲F dW"F 蠲FrWFPD$$F$  [^_]Í&'UWVS t$(0= uD$ 8D$$D$$路ft uK8ø 8$ T$$)‰D$$tf f3i ,U tl,F?kCmtF0(<*F0F1D$T$F2D$T$F3D$T$F4T$V5F6fF7N8F9GlFDfF$ G`F,NtCdFChFSHwu CnF0ҍKPT$L$$1 C`t FDCIfF$GlFDfF$ NtGlx%%FxCm&CLF,Cm0< uF0F1F4F05Gl@$uNt STf;SJu YCnCS<㐍t&tCED$@C=D$<CviU iUv iUiUtdv,ǃ$'iU4ǃ$'iU#vvCiUCiUE&9 [^_]VSL$\$D$0v΀iU΀iUtYviUiUt&v iU iUtsᐃv530$'34iU63P$'v3TiUv[^ÐSL$ f f; r fǁ  | T$  ,[ VSL$T$t$\$ &uff% fS % ЉC҃A ЃACtAf% fA[^Ít&'L$T$v uA1A2BA3BA4BA5BA6BA7BAvt#A8BA9B A:B A;B A뤍D$4 PP@ iUÐt& $t$|$|$t$_ V$Ѓu u~0uh$tXtOG\8wu1 8rttG\$ 8sË$t$|$ ÐWVS|$ t$$FT_+t&P t&u8uF& t$<$[^_Ív' D$f@2@&D$$ Í'VSD$ 0D$$tDC(fpK(tD$\$4$ݷ[^Í&UWVSl$0}+t+D$4@ tT$4B u E+f9wT$4B(t%XUD$$T$4B(D$,$dD$48T$49B8uD$D$$ƃx 4xOf}<tgCf;Fu]f=wW(tJUC(fpUK(tC!D$\$,$蠶E<9wF @lF(u!,$eF D$D$,$YF P@T$D$$R!F 8D$T$$ F 8D$T$$ F T$4j t$,$T$D$49P8D$4@(EX iUt EX[^_]ÍWVS t$0>_+t1 9u  D 9t8uщ ~Atx 9AulA4tA4\Q, Y,B 9tLz u9z u/A4D$D$ T$L$ $ R B 9u [^_Í&\$ t$|$l$\$ |$$GXhWfwtF4V3D$D$@$؂;FTuuFT$H2+vL$@1@, 3\$,t$0|$4l$8<Ít&D$,D$ D$(D$D$$D$D$ $bÍvUWVSLl$dD$`X fE(D$0D$l$T$`$mt D$0[ E0%=$qUf ‹t$`tbfw|$`li(D,@?fwt$`i D@|$`iDT@T$`2@,D$i ‰T$ D$D$$eUfw‹|$`u0fuE2<fws‹|$`tD$HHD$HHD$H`EvtD$HHD$H@ D$H`T$HE\$`f BD$H`Ƈ \$à\$!$?\$%$-DU0E0DBABAB A t$ t8<EM t8E<t$W ˆWFffGt{GCGntjD$D$ D$HD$l$D$$EvtD$H@D$8D$7D$ |$l$T$$Evt L$I\$ct$`|$,T$f\$ك E0%=u4D$DD$ D$\$D$$D$G@D$Gf}0uME2<wBT$$T$L$` $~zD$DD$ t$$F4D$\$|$<$:t&D$D$T$`${`tC`D$4$vXS3\$4$a9Ti(lD$[^_]É<\$,t$0|$4l$8|$@w,.Ft Ƈrgt&Ƈ|$,$}D$D@Nx`tD$D`D$,$(uT$DPB,$RWFƇL$DAL$,$},$"ƇD$Dx`t`D$,$tO QBAT$DPB&t&G4tx&t|$D$4$覍FFW0u ~ u0D$D$ GMD$T$4$輑QD$ D$'N8L$D$$gD$(F@!|[^_]Ð&UWVSL|$` fD$ iUf%f f;D$uQP iUʁPL$$hT$`$f Klt&X fD$L$f; !fL$ PiU%Ptj+tdu1tF"t&ƍHuHu"ƍ@,u&&G+f9wD$`$xT$`$C df%fD$iȰT L $T$8L$<Ћ) f{>C!C(K(f!K(f!T@C(D$l$ ,${`tC`D$<$RbSf<fwi(l@,xOCf=w#8i @x"C8i@Txt,\$<$萇XSD$$PCL$$AKPD$fD$(l$l$,D$0L$(D@Hf<fwi(l@,@]@f=w 8i @@)@8i@T@\$,T$C |$SD$8$'IL$X\$ ǁpT$8iU Ɖ2$!L$8\$XD$,iUD$8$'輶T$XL$ ǂp\$8iU ƋD$80$t!ދT$82L$XiUD$LD$S8E+v%$TpSCP~ t \$<,D$<9X,u˅t8F2}+t.\$<C tˆL@F28M+wD$D$D$<$hD$4T$4DŽ }+D$D$L$< $[h\$4\$,$苨( t % D$<,T$<9B,D$L$ $4X\$DP9P(\$D$$X{% uC,@T$$軮CB{Ot,$$觴{OuC :@l{Of}<t&0tmFf;Cucf=w](tPUF(fpUN(tF!D$t$,$FuE<9qC(u,$$C D$D$,$C P@T$D$$RʹC 8D$T$$`C 8D$T$$CC T$C 8D$T$$AC8D$T$$!D$D$8E ,$'|$viUiUu f,ut$<$<$ح +t4F tD$L$<$8_+wD$ D FF,9F,u*F89F8u"q$UhSCP} t ^,t&9^,u΅t_E2+tUvF tÈT@E28W+v&Ftt$<$*D$4$[^_]UWVS |$ o(s+tW 9uFt& D 9t 8uv!эiUэiUtl$D$$ D$$ [^_]UWVS\$4D$0D$xT7Gt@5T$B5<tu<r<<t&:L$A5L$4$QLCO{`tC`D$4$CXS4$"gD$@6@5C\$4$mL4$GGL$B{`tC`D$4$bCXSD$x&u  u"D$D$<${\&D$o8,$薢ËE]+CS t8T$D$$&K(\$D$<$\{Ot4$${OuD$T$8W wL$ $ӱgD$ǀ{`tC`D$4$WBXSD$D$<$[G89G8ō&,$蘡Ë@ tg@l4$C D$D$4$) C 8D$T$$ C 8D$T$$C \$4$|f9o8sT$T$4$3eG(XiUtXGt\~+t!G t G u8N+wى\$4$豚|$4$uGDŽ [^_]Ð&,\$t$ |$$l$(|$4t$0F,D$(O(f؃D@UpEtiUG!G0%=u)D$<$)D$|$,$hO(tD$<$,$=<e$ȸƆD$|$T$$W7ƆD$|$D$$WƆt$D$!T$$XV0t-FMD$D$ D$T$D$$!]T$B D$D$,$ШƆ~0tHt$D$!D$$vXFMV0D$D$ D$T$T$$\JD$D$!D$$*XT$B D$D$,$> ~&tt$D$D$$Wt$D$T$$WN tQBAF'F&~Ot!&,$$蜤~Ou~0tVF BF0h0V4t FMD<FBD$h tD$D$$)V0tFMD$D$$1F @l,$F D$D$,$F P@T$D$$RF 8D$T$$脺F 8D$T$$gF t$,$aT$zt^z t8\$8v$hSCPx&uT$8B w׉T$8B wBT$,$\$t$ |$$l$(,Ð&UWVS,l$@ETD$$ D$(l$$`}6vE5u9u4$ƛD$ ET$ PrUf{<0 L$D$0^Ff9E$P 9T$(tF 9!‹ uf%f9u9t$ u$4;T$(uFf=T$$z4BF(fpN(tF(N(fD$ыD$!N(f!T@;t$ t"VPpT$VF(D$L$ $謙m)f9{<D$$@tL$ ABL$,$,[^_] UWVS,t$@T$HT$ D$LD$$>D$Df{0u+C2<w N(D$ T$$uYA5D$Kl&f{wCi(‰T$D$ D$$uD$ƀ{ufD$ D$$CCv CT@mt!HXtS@tC,D$T$ $TJ 4 @L$AB‹iUVSfFH4 DAB‹iUfFLfFNfFPVR4 LAB‹iUfFJ4 HAB‹iUf VLf VN%f FP{uC!f{0uC2<w $L$ T$#!C0%=4 @L$AB‹*-iU4 DAB‹T$iU4 HAB‹25iUCv KTAnC ASfAHT$fAL\$fANfQP4 L\$CB‹iUfAJ4 @CBk\$<$]yX iUtGX=9x8yy2C(fpK(t,[^_]Ð&S\$L$C09K uA<tV<(tR8u4L$L$4A< v D$l$$) (Pu[^_]Í',\$t$ |$$l$(\$0D$4D$C,(,$$ƅ ,$!Džut$,$VHT$PL$\$G$mldždž  \$G$k\$ t$|$l$UWVSD$8D$T$0B,0l$4 7t$9D$L$Ѓ<Ct Cxt5{tmuCD$t$D$0$8Cv@ـ{t8uɉL$t&D$D$t$D$0$x8CwC\݃D$;\$BD$D$0$[^_]ÍUWVS,D$@D$ T$DRT$+L$DQf‹\$ tbfw\$ li(D,@?fw\$ i D@\$ iDT@T$ 2D$@,D$$li(4|$+fdžD$Dx0@2<t_<w <'<t8< mL$DL$4$X\$D\$4$CD$DD$4$@.T$DT$4$\$F,@$hdždž  \$F,@$hF&L$I\$ 6ID$ d,$gƋT$ hh.V2~&~%󀾵WN$щЃu)t$t$ FMD$F0D$L$$ $_$ut\$\$ $>\$D$ $ƆL$  B88u{tw\$[D$ d,$fƋT$ hh.V2~&tF%<"t< uD$ 4$CDD$ 86wT$RL$ Ƅ1\$$\$ $}|$+D$Dx\t\D$T$ $L$DL$\$ $<|$+tkff vfdžD$ 4$4D$ 1D$@T$ ,D$$l&,[^_]Ð$t$\$ t$T$L$tDt@t<|$t5fw.t!B0B1B2fJr D$B|$t$Í&'|$% T$RB ÐVS\$L$0t$8D$ f="'wIf= 'syf=@!tsf=@!wf= !tff="!t`f=Pt&u`Tf=D!tNf=D!rPf-'fwFt&6f='t0f='t&wf=$'t f='t&u f=tf=tf=ru @D$D$D$,ffD$ D$$fD$(ffT$4fT$fD$[¸t&=uȃ Í D$9t $Zȃ Í D$9t$Z@ȃ ÉUWVSD$D$D$vT$L$ ,<D$ff=wwi {0tP{(&<$8ZHS,C,yQ y&uy%wA't A tP8K0w舃iT$yt<‹Dfwi DPiDTPt&Qffwi D@iDT@T$0:Bu%A0%=tD$AL$$-1AGft;t[^_]É'\$ t$|$l$l$ |$(u4$IÅuD$,ƀv4$…u\$4$T$,ƂfC0C1C2KL$$A3fCEC C,BC@S\@B@P C| CD$CH$B\$4$C\$ t$|$l$ \$ t$|$l$l$ |$(D$,D$u4$RÅ4$0…tzC0C1C2KL$$A3fCEC C,BC@S\@B@P L$H C| CD$CH$A\$4$l$G\$ t$|$l$Í\$ t$|$l$|$ l$(74${Åtr4$]…tdC0C1C2CL$$A3fCC C,BC@S\@B@P C| CD$CH$@\$4$裪\$ t$|$l$ \$t$|$|$ 74$Åtm4$…t_C0C1C2CL$$A3fCC C,BC@S\@B@C| CD$CH$,@\$4$\$t$|$Ã\$ t$|$l$t$ $[?$>ǀ02u 8F0sF0 u߉<2Dm,`uэR@Y 2LPX\ddh0Dm,\$ t$|$l$Í&\$t$|$t$ X $O>$=¸À0uf9sf&=uˀÈi(l$lfDlD&lD=lDlD@lD?lDAlƄlƄ4$l~5u lL(l\$t$|$Ít&'S\$T$]8$[Ív'\$t$|$t$ $<$;‰.u8s &πÈi$#fD$~5u fD0D&fD2fDŽD$8$\$t$|$Ðt&VSt$ D$$@$0Ƅ0ۉ\$ $*;i۰x4t D$4$*D$8$D[^Í&'S\$D$P3ƄD$ $:D$8$[S\${(tCXD$T$B$;C([ÍvS\${LtD$T$B$y;CL[Ã\$ t$|$l$\$ l$$Ei(lD$$Utx|uDŽ&EƄljD$X $9lxBt D$$l$$lD&lD'\$ t$|$l$ \$ t$|$l$l$ t$$f~0F2<Ff=|<cik){9{tl<$399uA\$,$!;{(CXC`[dCXD$E$%9C(CPzSFBFBFf=lF0%=i(kO{9{tn<$e89uF\$,$;{t^ǃǃD$E$O8CL)CPzSFBFBt&\$ t$|$l$Í\$ t$|$l$|$ l$$U(f!D@ftI8t7!t$0 $6l$<$l$<$s\$ t$|$l$ \$t$|$|$ t$$f~0F2<Ff=w i°{(u8Vxti@BCXC`[dCXD$G$6C(SsCV2C)Ff=w lF0%=tgi({LuDVxti@BǃD$G$!6CLSsCV2CO\$t$|$É'UWVS,D$DPf/‹\$@tbfw\$@li(D,@?fw\$@i D@\$@iDT@T$@2Dm,D$ i ‰T$D$DP@B<t+<6DmT$@6qDmD$@,L$(Z \$&RT$'6tjDmD$@0d,$g4ËT$@hh+SL$9K0uCMT$D:Btt&D$@806wT$DB\tD$L$( $D$DD$T$($_|$'<w5t1D$D$ L$DAD$C0D$\$ $)t%<v!C'C&c(\$D$($]+D$'D$ D$&D$T$T$L$ $߃DmD$@d<$(3T$@hh9Q D$9A0uAMT$D:BtT$@86wQ$Ѓu(t#L$ \$DCD$A0D$D$ $T$DB\tD$L$@ $\$D\$D$@$-T$@1Dm,D$  O,[^_]ÉUWVS l$ |$$\$(C'C&\$D$<${0tSC BC0h0{Otv,$(u$8{Ou拓tD$D$$1S0tD$CMD$$蒮s ~|u~C(u,$D$C D$,$S BD$BD$$R@9C D$8D$$NC D$8D$$NC FlS4t CMD<CBo \$,$tO t9w8&4$0W t&[^Ðt&SD$ 0 $e*D$@u[Ít&' D$9t $*ȃ ÐD$ittET$É'T$L$ DJpfDJpRËT$&;2t¤ ufÍvVSt$ L$\$882u892uiƄ1¤ u[^Ð&UWVS|$ D$$D$l$T$(]\$tWt&9Gu(:\$uitET$(&t:L$u[^_]ÍUWVSl$4\$<|$0|$8tw#D$|$@T$@T$WD$t+D$9Gu8tD$t8T$ul$ittED$dD$D$$KtEt_ݍpET$&T$\`K(GP@CBABAB A T$8BwD$ittE)9GÃt8uÃ[^_]Ít&UWVSD$$D$\$(f$|$i8 D$9D:upLvQtuHi8 [Ѝ :\$YD$ A A$fX\$X‹\$,BCBA0 =ur[^_]Ð&UWVS l$$t$ ~tIitEtD$l$E$ 'u8Fw»؃ [^_]ÍvS\$D$D$$x EjttO>uD$,$c [^_]UWVS,D$DD$T$@T$ D$T$@B*T$T$D$$/D$@x*WD$T$ 0T$T$ 4PT$T$ TD$$D$(t&<t,<r<u4D$$ D$($"D$$D$(D$$D$( t$T$T$$v|$T$$D$$'%]iU\$D$$D$$4A4 \$T$$T$$]EiUD$D$$D$$D$(T$$']iU\$T$(T$$?\$D$(D$$]EiUD$$T$$'BiU\$T$$T$$RA4 \$D$$D$$.iUD$T$$T$$ T$(D$$'iU\$D$(D$$?\$T$(T$$iUD$D$(D$$T$@z*D$D$$j|$v!T$ $']iUD$ $'iU\$D$ $ ذT$@z*uÀ &À\$D$ $|${]EiUD$D$ $D$$'_]iU\$D$$n\$D$$P]EiUD$D$$-T$$']iU\$D$$\$D$$]EiUD$D$$D$$'i]iU\$D$$x\$D$$]]EiUkiUD$D$ $,T$$'iU\$D$$\$D$$iUD$D$$D$$'qiU\$D$$\$D$$]iUD$D$$<T$$'iU\$D$$\$D$$iUD$D$$|$vxt$T$ 0$'oD$ 4iU\$D$$t㏃p\$D$$ViUvt$T$ P$'D$ TiU\$D$$㏃p\$D$$iUD$D$$,[^_]Ðt&\$ t$|$l$l$ }wJ |މ8uhCD$ CD$CD$CD$CD$CD$ CD$D$$(|$`G|$,$tt&D$<|$<6,$HÅND$8T$8 tK5D$8L$8 tK5D$8t$8 tK5D$8|$8 tK5 D$8T$8 tK5D$8L$8 tK5C0ߋD$8t$8 DP@CD$`C$T$`B}+t0t$`F tˆL@C28M+w܋D$`H0S P0D$`,C K$T$`B4D$D$ |$T$ $_,$藪Å@'@&fǀ@$@%@D@HD$8t$8 DP@AA|$`{,<$fK8<$T< vfK8D$`@ P25,G5teP|t.@|DŽD$D$$3vt&ǀDŽ$ҍ@C\$<$92<ЍR,\$$ xxPRd,$};hh)Q y&t Y$ӉЃu)tGL$ AMD$A0D$D$$$]L$<$:L$<$ t&86DD$5t&;tmJ|tfzlu`,[^_]ÍWVSt$ >4$t_+t1V t!Ft$<$\u8u<$Wt?V<$/uƃ@0@1@2CfAAxA A,A@A|L$<$w<T$$s,><$uƃ@0@1@2CfAA A,A@A|L$<$;Eډ2><$8K<$~K>uƃ@0@1@2H3CfBB B,B@B|KAT$<$;T><$Z~uƃ3@0@1@2CfAA A,A@A|L$<$:><$}uƃ@0@1@2 CfAA A,A@A|L$<$D:><$}uƃi@0@1@2@4CfAAxA A,A@A|L$<$9C&S$Ѓuu{4u4$襻{'uC,\$D$D$0$Fu~8~ `|vV(Z*B9}6CB*B+B&B2fB2T$T$0$Oe9t~8~ u4v/B&B2fB2T$L$0 $ <$wF\$t$ |$$l$(,Ív',\$t$ |$$l$(l$4u,EL$0E&<<w;< < w<S<<t&t&<<w<t9<wG<t]<gD$,${}QD$,$a}7D$,$v,$e ,$uE9t,$~,$,${,${E&~ ~8v<$H‹FF&54 LF4‹iUfF 4 DF4‹iUfV"f F f@Au F&f~"߃$F&4 DF4‹iUF4 LF4‹iUtF tF Ѓ FF+<F&G4 LV4ЋiUF,F&F&F2f%fF2D$4x\t\D$,$KT$4T$,$JG|$,$,F&F+F+:Fs F&F+F&$ 觱F&F&t&{F&rF. F&Z4 LF4‹iUۋ4 DF4‹iU蹱u F& @ 9yF.< wF&F.F+|<D$ t>D$_8$۩D$F+L$9LBn\$t$ |$$l$(,Í\\$Lt$P|$Tl$Xl$`|$dWffwli(D,@:vfwi D@iDT@D$@Rd<$+hh9Q A%<"t< uAf;D$>r fD$>L$@86w|$@?T$@z&1B&T$,$u F%v"u F%N( AtfN8~%uJEf= 'tf='u:\tG\D$,$?|$,$>t$L$8L$,$l_@t[Vd(u􍖌uNdSCFdBABAB A BABAC ~%F&D$6f$'EF&O@QA A A ‰A A A ЉFDFHuf$'ǤF&NufN8F&:F& 1 u2|$=t|$=u$D$6f$'sF&\tG\D$,$U=|$,$D$@8tAD$ #AD$ AD$ AUD$ A/AAD$ AC4C5AC3AD$ C3AC4C5AC6AC7AC9A C8AD$ rAC4C5AC3AC6AC7AC8AC9AD$ 4D$ C4t&ApAAAA@D$ D$ D$ [Ív'<\$,t$0|$4l$8l$Du@|$ t Fx}0%ugD$ D$ D$L$uD$D$T$D$D$$8D$ D$ D$\$D$D$D$L$uD$D$ &vT$D$D$$ U@D$ L$D$$(\$,t$0|$4l$8<ÉVSL$ \$$Q,2C0u_ iUD$ =t =uB ǃ ǃ ǃ <ǃ ǃ ǃ $t&ǃ PEǃ pE$[^Ív'<\$,t$0|$4l$8Ɖ׉L$hD$@<v؋ HT$(|$\$$T$("'6u iUD$(T$Ћ\$,t$0|$4l$8<Í'S(\$0 H T$$D$4D$D$$LT$$'uC-9iUT$8Ѓ([Ít&'UWVS,ÈT$̓|$@{ HD$D$$T$(T$(' u* iUD$!Љ8u (T$($ v;t$@s,[^_]ÍS(Ë T$$D$D$$T$$T'hu$$tvЃ([Ít&,\$$t$(\$0t$4D$#D$#D$t$$ur|$#tyBt_ H T$t$D$$UT$'u$"t &\$$t$(, UWVSC?Rt&(C0C1C2C3C4C5C6D$fC7D$C8C9$QEl@fCCk C\@C@D$E`C,fC$ ElCDC| D$D$$OC,D$ C\P@ D$T$D$$Oƅ\$D$$|$t7D$K T$<BT$LT$D$$$pT$@z\tЃ\D$D$8$T$@BdD$@D$T$8$T$88@'l$8D$$8ic(\$\t$`|$dl$hlÐt&\$t$|$T$ \$$B,8sTC< tM< w<w<s=$<u&'<"t.<"r&<vaB @Fn FnFn {\t){,wC\D$<$C\D$<$]\$<$4$Vx\$t$|$Í\$t$|$t$ ^luD$($T$$fu ~|vtD$($T$$v;{&C4t x5C,@8{Ot\$D$$D$$D$(K$щЃu4C&C'\$ CMD$C0D$C,$t&t~S4t0B2tofB2C4f@2C4@&C4D$<$iGC&C'\$<$cs1C&C'fǃ\$<$#D$($T$$t&\$t$|$S\$Cx$…{tr <u8{tuCCmCCtCT<uPCCtC+vCtu CpuC C[ÍvVSt$tf3:.\$F$6dždžB \$F$5\$t$Ív'UWVSLD$dPT$ @D$J L$T$`88,tFf=w5‹iuGvu8ø t&,tFf=w5‹iuGvu9t$< ;l$L$h< i T$`8$GD$D$$<T$hD$ pA$#$L$$ESD$HD$ D$D$ $)qD$Hl%i'sL)L$$<D$HD$ D$D$ $)D$H%ik()L$$D$HD$ D$D$ $(D$H%ik()L$$jD$HD$ D$ D$ $G(t:D$Ht9%ik()L$$ <D$hT$ RT$+D$8D$<D$@D$DD$ƉL$.t&f  BRЍn@u DŽH֬6  BRЍDŽƬKP @ CBABAB A BABABABAD$ D$ 8iҰFDFGT@ F <u-FHPTF F Rock@etSt@or W"F'E<u!FF FHPTF EJ34fF0 FvW FF dW"F FrWF萲D$$F$  [^_]Í&'UWVS t$(0= uD$ 8D$$D$$ft uK8ø 8$IT$$)‰D$$贯f f3i ,U tl,F?kCmtF0(<*F0F1D$T$F2D$T$F3D$T$F4T$V5F6fF7N8F9GlFDfF$ G`F,NtCdFChFSHwu CnF0ҍKPT$L$$QC`t FDCIfF$GlFDfF$ NtGlx%%FxCm&CLF,Cm0< uF0F1F4F05Gl@$uNt STf;SJu YCnCS<㐍t&tCED$@C=D$<CviU iUv iUiUtdv,ǃ$'%iU4ǃ$'iU#vvCiUCiUE&9 [^_]VSL$\$D$0v΀iU΀iUtYviUiUt&v iU iUtsᐃv530$'34iU63P$'3TiUv[^ÐSL$ f f; r fǁ  | T$  ,[ VSL$T$t$\$ &uff% fS % ЉC҃A ЃACtAf% fA[^Ít&'L$T$v uA1A2BA3BA4BA5BA6BA7BAvt#A8BA9B A:B A;B A뤍D$4 PP@ iUÐt& $t$|$|$t$_ V$Ѓu u~0uh$tXtOG\8wu1 8rttG\$ 8sË$t$|$ ÐWVS|$ t$$FT_+t&P t&u8uF& t$<$[^_Ív' D$f@2@&D$$ Í'VSD$ 0D$$tDC(fpK(tD$\$4$ݷ[^Í&UWVSl$0}+t+D$4@ tT$4B u E+f9wT$4B(t%XUD$$7T$4B(D$,$dD$48T$49B8uD$D$$ƃx 4xOf}<tgCf;Fu]f=wW(tJUC(fpUK(tC!D$\$,$蠶E<9wF @lF(u!,$eF D$D$,$YF P@T$D$$RAF 8D$T$$ F 8D$T$$ F T$4j t$,$T$D$49P8D$4@(EX iUt EX[^_]ÍWVS t$0>_+t1 9u  D 9t8uщ ~Atx 9AulA4tA4\Q, Y,B 9tLz u9z u/A4D$`D$ T$L$ $ R B 9u [^_Í&\$ t$|$l$\$ |$$GXhWfwtF4V3D$D$@$؂;FTuuFT$H2+vL$@1@, 3\$,t$0|$4l$8<Ít&D$,D$ D$(D$D$$D$D$ $bÍvUWVSLl$dD$`X fE(D$0D$l$T$`$mt D$0[ E0%=$Uf ‹t$`tbfw|$`li(D,@?fwt$`i D@|$`iDT@T$`2@,D$i ‰T$ D$D$$eUfw‹|$`u0fuE2<fws‹|$`tD$HHD$HHD$H`EvtD$HHD$H@ D$H`T$HE\$`f BD$H`Ƈ \$à\$!$?\$%$-DU0E0DBABAB A t$ t8<EM t8E<t$W ˆWFffGt{GCGntjD$D$ D$HD$l$D$$EvtD$H@D$8D$7D$ |$l$T$$Evt L$I\$ct$`|$,T$f\$ك E0%=u4D$DD$ D$\$D$$D$G@D$Gf}0uME2<wBT$$T$L$` $~zD$DD$ t$$F4D$\$|$<$:t&D$D$T$`${`tC`D$4$vXS3\$4$a9Ti(lD$[^_]É<\$,t$0|$4l$8|$@w,.Ft Ƈrgt&Ƈ|$,$}D$D@Nx`tD$D`D$,$(uT$DPB,$RWFƇL$DAL$,$},$"ƇD$Dx`t`D$,$tO QBAT$DPB&t&G4tx&t|$D$4$覍FFW0u ~ u0D$D$ GMD$T$4$輑QD$ D$'N8L$D$$gD$(FC!C(K(f!K(f!T@C(D$l$ ,${`tC`D$<$RbSf<fwi(l@,xOCf=w#8i @x"C8i@Txt,\$<$萇XSD$$PCL$$AKPD$fD$(l$l$,D$0L$(D@Hf<fwi(l@,@]@f=w 8i @@)@8i@T@\$,T$C |$SD$8$'iL$X\$ ǁpT$8iU Ɖ2$%!L$8\$XD$,iUD$8$'ܶT$XL$ ǂp\$8iU ƋD$80$蔶!ދT$82L$XiUD$LD$S8E+v%$TpSCP~ t \$<,D$<9X,u˅t8F2}+t.\$<C tˆL@F28M+wD$D$D$<$hD$4T$4DŽ }+D$D$L$< $[h\$4\$,$苨( t % D$<,T$<9B,D$L$ $4X\$DP9P(\$D$$X{% uC,@T$$ۮCB{Ot,$$Ǵ{OuC :@l{Of}<t&0tmFf;Cucf=w](tPUF(fpUN(tF!D$t$,$FuE<9qC(u,$$C D$D$,$C P@T$D$$RC 8D$T$$C 8D$T$$cC T$C 8D$T$$aC8D$T$$AD$D$8E ,$'0|$viUiUu f,ut$<$<$ح +t4F tD$L$<$8_+wD$ D FF,9F,u*F89F8u"q$UhSCP} t ^,t&9^,u΅t_E2+tUvF tÈT@E28W+v&Ftt$<$*D$4$[^_]UWVS |$ o(s+tW 9uFt& D 9t 8uv!эiUэiUtl$D$$ D$$ [^_]UWVS\$4D$0D$xT7Gt@5T$B5<tu<r<<t&:L$A5L$4$QLCO{`tC`D$4$CXS4$"gD$@6@5C\$4$mL4$GGL$B{`tC`D$4$bCXSD$x&u  u"D$D$<${\&D$o8,$薢ËE]+CS t8T$D$$FK(\$D$<$\{Ot4$$4{OuD$T$8W wL$ $ӱgD$ǀ{`tC`D$4$WBXSD$D$<$[G89G8ō&,$蘡Ë@ tg@l4$C D$D$4$) C 8D$T$$,C 8D$T$$C \$4$|f9o8sT$T$4$3eG(XiUtXGt\~+t!G t G u8N+wى\$4$豚|$4$uGDŽ [^_]Ð&,\$t$ |$$l$(|$4t$0F,D$(O(f؃D@UpEtiUG!G0%=u)D$<$)D$|$,$hO(tD$<$,$=<e$ƆD$|$T$$W7ƆD$|$D$$WƆt$D$!T$$XV0t-FMD$D$ D$T$D$$!]T$B D$D$,$ШƆ~0tHt$D$!D$$vXFMV0D$D$ D$T$T$$\JD$D$!D$$*XT$B D$D$,$> ~&tt$D$D$$Wt$D$T$$WN tQBAF'F&~Ot!&,$$輤~Ou~0tVF BF0h0V4t FMD<FBD$h tD$D$$)V0tFMD$D$$1F @l,$F D$D$,$F P@T$D$$RF 8D$T$$褺F 8D$T$$臺F t$,$aT$zt^z t8\$8v$hSCPx&uT$8B w׉T$8B wBT$,$\$t$ |$$l$(,Ð&UWVS,l$@ETD$$ D$(l$$`}6vE5u9u4$ƛD$ ET$ PrUf{<0 L$D$0^Ff9E$P 9T$(tF 9!‹ uf%f9u9t$ u$4;T$(uFf=T$$z4BF(fpN(tF(N(fD$ыD$!N(f!T@;t$ t"VPpT$VF(D$L$ $謙m)f9{<D$$@tL$ ABL$,$,[^_] UWVS,t$@T$HT$ D$LD$$>D$Df{0u+C2<w N(D$ T$$uYA5D$Kl&f{wCi(‰T$D$ D$$uD$ƀ{ufD$ D$$CCv CT@mt!HXtS@tC,D$T$ $tJ4 @L$AB‹iUVSfFH4 DAB‹iUfFLfFNfFPVR4 LAB‹iUfFJ4 HAB‹iUf VLf VN%f FP{uC!f{0uC2<w $L$ T$#!C0%=4 @L$AB‹*-iU4 DAB‹T$iU4 HAB‹25iUCv KTAnC ASfAHT$fAL\$fANfQP4 L\$CB‹iUfAJ4 @CBk\$<$]yX iUtGX=9x8yy2C(fpK(t,[^_]Ð&S\$L$C09K uA<tV<(tRD$ D$Vi D$CD$$D$ D$PD$CD$$D$ D$HD$CD$T$D$ D$TT$H@D$CD$$茙D$ D$CD$ $gD$WD$ D$CD$$AD$ D$SD$CD$$D$ D$CD$$D$ D$RiD$CD$$ĘD$ D$N@D$CD$$蘘D$ D$PD$CD$ $pD$ D$WD$CD$< $HD$ D$UD$CD$d $ D$ D$VD$CD$ $D$ C&D$CD$ $їD$ D$FD$CD$p$託D$ D$@D$CD$ $胗D$D$ @D$PD$CD$ $җD$D$ D$CD$ $襗D$D$ D$PiD$CD$@ $qD$D$ D$LD$CD$d $@D$D$ D$JD$CD$ $D$D$ D$S D$CD$ $ޖD$D$ D$CD$ $豖D$D$ D$Ni$D$CD$ $}X[Ív,\$t$ |$$l$(l$0ED$],$'ƍPT$D$$=NjE0u0T$Z B$0G0G1G2O3T$4GTGXPGDG̋T$B3fGEG G,D$4G@G|@D$GH$|$T$$\$t$ |$$l$(,Í'UWVSt$0D$T$22<ЍR,L$6RD$dR D$ ,$؎ËD$hh+SC tD$8D$$|K(\$D$D$$PH{Ot4$$f{OuL$ 8QnD$|$4$[^_]Í&'UWVS|$@5@4@3ƀ Œ =u$$T$D$ρL$L$\$P$t$H$ D$T$D$vD$4D$xD$0D$hD$,D$nD$(D$zD$$D$pD$ D$qD$D$lD$D$sD$D$jD$D$rD$ D$tD$D$uD$B$$'D$u$A.D$tA/D$rD$zfA<D$xf D$vf D$jfA6A$f=t f= $C1C+C2@C0ƃ C,T$Б‰lD$ui(t u$p$蚑‹$D$rit u$$]‹$D$ti t u$$ ‹$D$zt u$ $$8$ʐË$T$謐‰lf|$jtFZPD$sBH$t$D2BD$s@ꀃf9L$jw$p$B‹$f|$nt0B$:B f9L$nwՋ$$‹$|$qt3$t$L2BD$qf9wҋ$$芏‹$$t$P2B9uۉ$A‰|$pt2$*B˜D$pf9wӋ$$‹$f|$lt0$t$T2Bf9L$lwՀ|$utO$4$脎Ӌ$  L$HPD$uf9wË$ $;$, 0 D$zf6 D$0 $< $T X D$uf^ D$X $虆d $躍| D$rf D$ $\ $} D$tf D$ $ $@ C&f C&D$ $ $‰ D$tittEtЉu$  D$tBD$tD$L$ $_o~&ύ I$, VF$,Fƀ`ƀHǀ @Z LPX\$ ddhFC&f9[$F0Ɔ2Ɔ3Ɔ4Ɔ5|$ui($lD'lD&lDLlDBlfDŽDŽlAAlBBD$uf9w$fǀ$Ƅ=u|$ti $D0D1D $QQQQQQQQlQ(Q(P(P,D$tf9X$ƀ|$rt}iҰ$fD2D&D(D4ы$AAAAlTD$rf9w$ƀ$ D$$ $$ 8 D$@$$4 \ D$@$щ$X  D$@$讉|  D$@$蒉  D$@$v $ |$qtZÉֿ)ŋD$L$˂TPX p$L$LPD$qf9w$ D$$ $ֈD$X$ $ T$P$,T$XPX p$L$PP5 u$ D$$ $.$ $  f|$ltWÉֿ)ŋD$T${TPX p$L$TP$f9|$lw|[^_]Ðt&UWVS l$ |$$_TG+D$l$$#fO2}+tIC t <C u E+f9wfv%EэiU#EэiUtD$,$C89C8 FMD<FBt$D$$ :~Ott&,$h$~OuF tV@lF(u,$F 8D$T$$轝F 8D$T$$蠝F k t$,$ EEXiUt EXG&fg2t"‹D8u4L$L$4A< v D$l$$:)(Pu[^_]Í',\$t$ |$$l$(\$0D$4D$C,(,$$ƅ ,$!Džut$,$VHT$PL$\$G$ldždž  \$G$k\$ t$|$l$UWVSD$8D$T$0B,0l$4 7t$9D$L$Ѓ<Ct Cxt5{tmuCD$t$D$0$8Cv@ـ{t8uɉL$t&D$D$t$D$0$x8CwC\݃D$;\$BD$D$0$[^_]ÍUWVS,D$@D$ T$DRT$+L$DQf‹\$ tbfw\$ li(D,@?fw\$ i D@\$ iDT@T$ 2D$@,D$$li(4|$+fdžD$Dx0@2<t_<w <'<t8< mL$DL$4$X\$D\$4$CD$DD$4$@.T$DT$4$\$F,@$hdždž  \$F,@$#hF&L$I\$ 6ID$ d,$gƋT$ hh.V2~&~%󀾵WN$щЃu)t$t$ FMD$F0D$L$$ $_$ut\$\$ $>\$D$ $ƆL$  B88u{tw\$[D$ d,$fƋT$ hh.V2~&tF%<"t< uD$ 4$CDD$ 86wT$RL$ Ƅ1\$$\$ $}|$+D$Dx\t\D$T$ $L$DL$\$ $<|$+tkff vfdžD$ 4$4D$ 1D$@T$ ,D$$l&,[^_]Ð$t$\$ t$T$L$tDt@t<|$t5fw.t!B0B1B2fJr D$B|$t$Í&'|$% T$RB ÐVS\$L$0t$8D$ f="'wIf= 'syf=@!tsf=@!wf= !tff="!t`f=Pt&u`Tf=D!tNf=D!rPf-'fwFt&6f='t0f='t&wf=$'t f='t&u f=tf=tf=ru @D$D$D$,ffD$ D$$fD$(ffT$4fT$fD$[¸t&=uȃ Í D$9t $Zȃ Í D$9t$Z@ȃ ÉUWVSD$D$D$vT$L$ ,<D$ff=wwi {0tP{(&<$8ZHS,C,yQ y&uy%wA't A tP8K0w舃iT$yt<‹Dfwi DPiDTPt&Qffwi D@iDT@T$0:Bu%A0%=tD$AL$$-1AGft;t[^_]É'\$ t$|$l$l$ |$(u4$IÅuD$,ƀv4$…u\$4$T$,ƂfC0C1C2KL$$A3fCEC C,BC@S\@B@P C|CD$CH$B\$4$C\$ t$|$l$ \$ t$|$l$l$ |$(D$,D$u4$RÅ4$0…tzC0C1C2KL$$A3fCEC C,BC@S\@B@P L$H C|CD$CH$A\$4$l$H\$ t$|$l$Í\$ t$|$l$|$ l$(74${Åtr4$]…tdC0C1C2CL$$A3fCC C,BC@S\@B@P C|CD$CH$@\$4$裪\$ t$|$l$ \$t$|$|$ 74$Åtm4$…t_C0C1C2CL$$A3fCC C,BC@S\@B@C|CD$CH$,@\$4$\$t$|$Ã\$ t$|$l$t$ $[?$>ǀ02u 8F0sF0 u߉<2Dm,`uэR@Y 2LPX\ddh0Dm,\$ t$|$l$Í&\$t$|$t$ X $O>$=¸À0uf9sf&=uˀÈi(l$lfDlD&lD=lDlD@lD?lDAlƄlƄ4$l~5u lL(l\$t$|$Ít&'S\$T$]8$[Ív'\$t$|$t$ $<$;‰.u8s &πÈi$#fD$~5u fD0D&fD2fDŽD$8$\$t$|$Ðt&VSt$ D$$@$0Ƅ0ۉ\$ $*;i۰x4t D$4$*D$8$D[^Í&'S\$D$P3ƄD$ $:D$8$[S\${(tCXD$T$B$;C([ÍvS\${LtD$T$B$;CL[Ã\$ t$|$l$\$ l$$Ei(lD$$Utx|uDŽ&EƄljD$X $9lxBt D$$l$$lD&lD'\$ t$|$l$ \$ t$|$l$l$ t$$f~0F2<Ff=|<cik){9{tl<$399uA\$,$!;{(CXC`[dCXD$E$E9C(CPzSFBFBFf=lF0%=i(kO{9{tn<$e89uF\$,$;{t^ǃǃD$E$o8CL)CPzSFBFBt&\$ t$|$l$Í\$ t$|$l$|$ l$$U(f!D@ftI8t7!t$0 $6l$<$l$<$s\$ t$|$l$ \$t$|$|$ t$$f~0F2<Ff=w i°{(u8Vxti@BCXC`[dCXD$G$6C(SsCV2C)Ff=w lF0%=tgi({LuDVxti@BǃD$G$A6CLSsCV2CO\$t$|$É'UWVS,D$DPf/‹\$@tbfw\$@li(D,@?fw\$@i D@\$@iDT@T$@2Dm,D$ i ‰T$D$DP@B<t+<6DmT$@6qDmD$@,L$(Z \$&RT$'6tjDmD$@0d,$g4ËT$@hh+SL$9K0uCMT$D:Btt&D$@806wT$DB\tD$L$( $D$DD$T$($_|$'<w5t1D$D$ L$DAD$C0D$\$ $)t%<v!C'C&c(\$D$($]+D$'D$ D$&D$T$T$L$ $߃DmD$@d<$(3T$@hh9Q D$9A0uAMT$D:BtT$@86wQ$Ѓu(t#L$ \$DCD$A0D$D$ $T$DB\tD$L$@ $\$D\$D$@$-T$@1Dm,D$  O,[^_]ÉUWVS l$ |$$\$(C'C&\$D$<${0tSC BC0h0{Otv,$(u$8{Ou拓tD$D$$1S0tD$CMD$$蒮s ~|u~C(u,$D$C D$,$S BD$BD$$R`9C D$8D$$NC D$8D$$NC FlS4t CMD<CBo \$,$tO t9w8&4$0W t&[^Ðt&SD$ 0 $e*D$@u[Ít&' D$9t $*ȃ ÐD$ittET$É'T$L$ DJpfDJpRËT$&;2t¤ ufÍvVSt$ L$\$882u892uiƄ1¤ u[^Ð&UWVS|$ D$$D$l$T$(]\$tWt&9Gu(:\$uitET$(&t:L$u[^_]ÍUWVSl$4\$<|$0|$8tw#D$|$@T$@T$WD$t+D$9Gu8tD$t8T$ul$ittED$dD$D$$ktEt_ݍpET$&T$\`K(GP@CBABAB A T$8BwD$ittE)9GÃt8uÃ[^_]Ít&UWVSD$$D$\$(f$|$i8 D$9D:upLvQtuHi8 [Ѝ :\$YD$ A A$fX\$X‹\$,BCBA0 =ur[^_]Ð&UWVS l$$t$ ~tIitEtD$l$E$ 'u8Fw»؃ [^_]ÍvS\$D$D$$x EjttO>uD$,$c [^_]UWVS,D$DD$T$@T$ D$T$@B*T$T$D$$OD$@x*WD$T$ 0T$T$ 4PT$T$ TD$$D$(t&<t,<r<u4D$$ D$($"D$$D$(D$$D$( t$T$T$$|$T$$D$$'E]iU\$D$$D$$TA4 \$T$$T$$0]EiUD$D$$D$$ D$(T$$']iU\$T$(T$$?\$D$(D$$]EiUD$$T$$'biU\$T$$T$$rA4 \$D$$D$$NiUD$T$$T$$-T$(D$$'iU\$D$(D$$?\$T$(T$$iUD$D$(D$$T$@z*D$D$$|$v!T$ $'=]iUD$ $'iU\$D$ $,ذT$@z*uÀ &À\$D$ $|${]EiUD$D$ $D$$']iU\$D$$\$D$$p]EiUD$D$$MT$$']iU\$D$$\$D$$]EiUD$D$$D$$']iU\$D$$\$D$$}]EiUkiUD$D$ $LT$$'iU\$D$$\$D$$iUD$D$$D$$'iU\$D$$\$D$$}iUD$D$$\T$$'iU\$D$$&\$D$$ iUD$D$$|$vxt$T$ 0$'D$ 4iU\$D$$㏃p\$D$$viUvt$T$ P$'D$ TiU\$D$$㏃p\$D$$iUD$D$$,[^_]Ðt&\$ t$|$l$l$ }wJ |މ8uhCD$ CD$CD$CD$CD$CD$ CD$D$$( |$`G|$,$tt&D$<|$<6,$HÅND$8T$8 tK5D$8L$8 tK5D$8t$8 tK5D$8|$8 tK5 D$8T$8 tK5D$8L$8 tK5C0ߋD$8t$8 DP@CD$`C$T$`B}+t0t$`F tˆL@C28M+w܋D$`H0S P0D$`,C K$T$`B4D$`D$ |$T$ $_,$藪Å@'@&fǀ@$@%@D@HD$8t$8 DP@AA|$`{,<$fK8<$T< vfK8D$`@ P25,G5teP|t.@|DŽD$D$$3vt&ǀDŽ$ҍ@C\$<$92<ЍR,\$$ xxPRd,$};hh)Q y&t Y$ӉЃu)tGL$ AMD$A0D$D$$$]L$<$:L$<$ t&86DD$5t&;tmJ|tfzlu`,[^_]ÍWVSt$ >4$t_+t1V t!Ft$<$\u8u<$Wt?V<$/uƃ@0@1@2CfAAxA A,A@A|L$<$w<T$$=s,><$uƃ@0@1@2CfAA A,A@A|L$<$;Eډ2><$8K<$~K>uƃ@0@1@2H3CfBB B,B@B|KAT$<$;T><$Z~uƃ3@0@1@2CfAA A,A@A|L$<$:><$}uƃ@0@1@2 CfAA A,A@A|L$<$D:><$}uƃi@0@1@2@4CfAAxA A,A@A|L$<$9C&S$Ѓuu{4u4$襻{'uC,\$D$D$0$Fu~8~ `|vV(Z*B9}6CB*B+B&B2fB2T$T$0$Oe9t~8~ u4v/B&B2fB2T$L$0 $ <$wF\$t$ |$$l$(,Ív',\$t$ |$$l$(l$4u,EL$0E&<<w;< < w<S<<t&t&<<w<t9<wG<t]<gD$,${}QD$,$a}7D$,$v,$e ,$uE9t,$~,$,${,${E&~ ~8v<$H‹FF&54 LF4‹iUfF 4 DF4‹iUfV"f F f@Au F&f~"߃$F&4 DF4‹iUF4 LF4‹iUtF tF Ѓ FF+<F&G4 LV4ЋiUF,F&F&F2f%fF2D$4x\t\D$,$KT$4T$,$JG|$,$,F&F+F+:Fs F&F+F&$ DZF&F&t&{F&rF.)F&Z4 LF4‹iUۋ4 DF4‹iUٱu F& @ 9yF.< wF&F.F+|<D$ t>D$_8$۩D$F+L$9LBn\$t$ |$$l$(,Í\\$Lt$P|$Tl$Xl$`|$dWffwli(D,@:vfwi D@iDT@D$@Rd<$+hh9Q A%<"t< uAf;D$>r fD$>L$@86w|$@?T$@z&1B&T$,$u F%v"u F%N( AtfN8~%uJEf= 'tf='u:\tG\D$,$?|$,$>t$L$8L$,$l_@t[Vd(u􍖌uNdSCFdBABAB A BABAC ~%F&D$6f$'eF&O@QA A A ‰A A A ЉFDFHuf$'F&NufN8F&:F& 1 u2|$=t|$=u$D$6f$'蓤F&\tG\D$,$U=|$,$D$@8tAD$ #AD$ AD$ AUD$ A/AAD$ AC4C5AC3AD$ C3AC4C5AC6AC7AC9A C8AD$ rAC4C5AC3AC6AC7AC8AC9AD$ 4D$ C4t&ApAAAA@D$ D$ D$ [Ív'<\$,t$0|$4l$8l$Du@|$ t Fx}0%ugD$ D$ D$L$uD$D$T$D$D$$8D$ D$ D$\$D$D$D$L$uD$D$ &vT$D$D$$ U@D$ L$D$$>(\$,t$0|$4l$8<ÉVSL$ \$$Q,2C0u_ iUD$ =t =uB ǃ ǃ ǃ <ǃ ǃ ǃ $t&ǃ Eǃ E$[^Ív'<\$,t$0|$4l$8Ɖ׉L$hD$@<v؋ HT$(|$\$$T$("'6u iUD$(T$Ћ\$,t$0|$4l$8<Í'S(\$0 H T$$D$4D$D$$LT$$'uC-9iUT$8Ѓ([Ít&'UWVS,ÈT$̓|$@{ HD$D$$T$(T$(' u* iUD$!Љ8u (T$($ 0v;t$@s,[^_]ÍS(Ë T$$D$D$$T$$T'hu$$tvЃ([Ít&,\$$t$(\$0t$4D$#D$#D$t$$ur|$#tyBt_ H T$t$D$$UT$'u$"t &\$$t$(, UWVSfL$p8t0D$ $f\$88D$ $fT$pt0D$$eL$8D$$e\$pt0D$$eT$8D$$eL$pt0D$$ce\$8D$$FeT$p, t0D$ $%eL$8, D$ $e\$pT t0D$< $dT$8T D$< $dL$p t0D$ $d\$8 D$ $dT$pt0D$p$kdL$8D$p$Nd\$p tX  D$T$ L$ $dL$8  D$T$  D$ $d\$p4 tX8 < D$T$ L$ $cdL$88 < D$T$ 4 D$ $2d\$pX tX\ ` D$T$ L$@ $cL$8\ ` D$T$ X D$@ $c\$p tX D$T$ L$ $cL$8 D$T$ D$ $fc\$p| tX D$T$ L$d $1cL$8 D$T$ | D$d $c\$p tX D$T$ L$ $bL$8 D$T$ D$ $b\$p tX D$T$ L$ $ebL$8 D$T$ D$ $4b\$p tX  D$T$ L$ $aL$8  D$T$ D$ $a\[^_]ÍS\$$$Hf $:f$$a$^D$$[É' T$D$B3D$$ Ív'S\$$ 8 $ [Ð&S\$$8 $[Ð& D$$Q Ív',\$t$ |$$l$(É׉͋pl@xD$E8/$gD$@0@1t <Ѓ Ѓ T$B2BFfBZ B,B@B|T$D$$ƃfǃtYClt\fuD$D$!@,$f$_T$$,Clt uft"D$xuCl@:fCf T$T$D$$ t&؋\$t$ |$$l$(,Ðt&,\$t$ |$$l$(\$0|$4slkx ,$D$@0@1<T$B2BFfBZ B,B@B|T$,$#ƃfǃtUCltXfuD$D$!@,$ff$^,$躚Clt uftD$xtT$T$,$؋\$t$ |$$l$(, L\$C?Rt&(C0C1C2C3C4C5C6D$fC7D$C8C9$*SEl@fCCk C\@C@D$E`C,fC$ ElCDC|D$D$$PC,D$ C\P@ D$T$D$$Pƅ\$D$$ltxEltqtofuD$D$!@,$ f$VD$$Eltt릸{tv ft߃[^_]Ðt&l\$\t$`|$dl$hl$pt$t|$xD$|fD$ $T$]l{%u$QW|C,D$DUxT$8fDž'$D$@Lf|$ vD$ D$$VD$8$D$|$t7D$K T$<BT$LT$D$$$T$@z\tЃ\D$D$8$T$@BdD$@D$T$8$@T$88@'l$8D$$jc(\$\t$`|$dl$hlÐt&\$t$|$T$ \$$B,8sTC< tM< w<w<s=$<u&'<"t.<"r&<vaB @Fn FnFn {\t){,wC\D$<$C\D$<$\$<$A4$Vx\$t$|$Í\$t$|$t$ ^luD$($T$$fu ~|vtD$($T$$v;{&C4t x5C,@8{Ot\$D$$D$$D$(K$щЃu4C&C'\$ CMD$C0D$C,$t&t~S4t0B2tofB2C4f@2C4@&C4D$<$jGC&C'\$<$t1C&C'fǃ\$<$SD$($T$$t&\$t$|$S\$Cx$…{tr <u8{tuCCmCCtCT<uPCCtC+vCtu CpuC C[ÍvVSt$tf3LJLJp:\$F$=\$@t$D|$HLÉUWVSD$8i(ŋT$0l8Ǹ L$4ilM }0u-}4u'r+ ],; D$4E4T$4BtE0BpL$0q+tS],D$0; t/T$09 u\$0C)T$48uËT$08,:.\$F$7dždžA \$F$7\$t$Ív'UWVSLD$dPT$ @D$J L$T$`88,tFf=w5‹iuGvu8ø t&,tFf=w5‹iuGvu9t$< ;l$L$h< i T$`8$wD$D$$<T$hD$ pA$#$L$$ESD$HD$ D$D$ $*qD$Hl%i'sL)L$$<D$HD$ D$D$ $I*D$H%ik()L$$D$HD$ D$D$ $)D$H%ik()L$$jD$HD$ D$ D$ $w)t:D$Ht9%ik()L$$ <D$hT$ RT$+D$8D$<D$@D$DD$ƉL$.t&f  BRЍn@u DŽH֬6  BRЍDŽƬKP @ CBABAB A BABABABAD$ D$ 8iҰFDFGT@ F <u-FHPTF F Rock@etSt@or W"FWE<u!FF FHPTF EJ34fF0 FvW F F dW"F FrWFD$$F$  [^_]Í&'UWVS t$(0= uD$ 8D$$D$$'ft uK8ø 8$yT$$)‰D$$f f3i ,U tl,