Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!crdgw1!sixhub!crdgw1.crd.ge.com!ibmbin-request From: ibmbin-request@crdgw1.crd.ge.com Newsgroups: comp.binaries.ibm.pc Subject: v12i076: port11$$$ (part 01/02) Summary: An i/o port diddler, low level hardware hacking tool Keywords: util, hardware Message-ID: <3893@sixhub.UUCP> Date: 15 May 91 05:06:51 GMT Sender: davidsen@sixhub.UUCP Followup-To: comp.binaries.ibm.pc.d Lines: 435 Approved: davidsen@sixhub.UUCP X-Submissions-to: ibmbin@crdgw1.crd.ge.com X-Questions-to: ibmbin-request@crdgw1.crd.ge.com Checksum: 1581923850 (Verify with "brik -cv") Posting-number: Volume 12, Issue 076 Originally-from: $$$ Submitted-by: jgd@Dixie.Com (John De Armond) Archive-name: port11/part01 submitter jgd@Dixie.Com (John De Armond) says: This is a program that allows you to do wild and crazy things to I/O ports on PCs. Boreland C source is included. I wrote this utility to assist in developing bus hardware for the PC. It can read or write to/from an arbitrary port, write a port and spin for a return bit pattern, generate scoping patterns (repeatedly output or input a port/byte), work in byte or word mode, and execute a very simple script language. I've also found this utility handy for things like figuring out where an undocumented card decodes its I/O addresses. You can easily walk through a range of I/O addresses while generating scopeing patterns. Lastly, this is a handly little chunk of code to embed in ROMed code for testing embedded controllers. Just branch to the start from your monitor. Caution: You can do fearful and destructive things to hard drives or video displays by trifling with the wrong port. This is an adult tool. Keep out of reach of children :-) [ Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 5041 24015 part01 46051 23666 part02 checksum size (bytes) file 37884 34587 port11.zoo -- bill ] port11 part01/02 BEGIN--cut here--cut here begin 644 port11.zoo M6D]/(#(N,#`@07)C:&EV92X:``#6)%"H"!2Z< MN)`*FC(,W\BA`X+*G31DR+!)X^9,QS=OV$0<2)&BD#P@E+Q!XP8$$8Q!Y+1Y MXX8,"!1JSI`!0B8-GC1E7(QYTR:%Q)8MI82!`])F&3ALWN1I4\8-QREYYM`I MTV8."Q!)W(QQL3(M'3EOR-090R<-SY4-'X)(,P=$&!!T4+(!<4=.&CIC:P8& M82;,F#0CZ8092UCC&I(F/])!@_;%$Q!P--+IRQ/P189#0&@4Z+;,8#APQY29 M,T=C"S%AYI3QB2:,'#)W?"`:::"$J()!T/)E4(H53A2$&9(=3B34%=QAC7D(IY6-5[@:" M&'E0YN4=&ETYV5ARN"&B>V4D.2>8&)'T9IP8S5DG"#MMJ*5V17@EGY(7\H55 M&#!!*-E>-95QV((73IG<8%Y>A,>B?$HYV6YLP*2>GTL"ZM>,&X'0`@AG="7? MJ>*E(1L(56?8XFD:I]=MMID@SZ%P0:>;N`J1AETW%%& M5Z]&.66;/OU(!WL)@)!`L(@-"ZU?;`RFAWQO]#5KK>/)<6I?\'&KHFP3]OJ& ME*`)FV>QVJ4UAGI<>04IA@>3U15'6/H5DGJTS488&I!AM&J!)OT99$GD)J#F MMU:^>2:ZU)(Z11UBM''F4FVD2$9?9L#5!F,9U[C2%))M%%Y>$!7)LV]U40?T M7OCF!M.L:C3'$1UY`"P"EB*HIMAI,,L,PDCC0=?1@A@))Y`,JL%1%T_2^B7' M&74D/)IIDX&0QX&(4LKKFE3"1&6G6X11E?-QY!O;;@O$%Z9XPH:M MF[E5!ZOA/4FNVU*5+TY2X^HEZU=?.XH+@D`H#QOX12@Z_29&WK)9LJ"B$K:I M>&]LS6QXB5*)U'QGE7$&"]A%/(,8-(``0PS(&T3$$TZ<0`4(S6$$`Q[#%Y_F MU`TTD M>Q'S@'G\*['(XJID/UZAX4!L\`GF)".HHV5-3'UIFE@^MQUX3#$(<_[2+OJ@X<,(B M.@L9>L"PLXBA!\!D)F%Z,$PR')(C-5$(%=[PG0**C@=N\(%`QD"1(=C/-^P: MC+CF()"^3&0*V`JHR49#.HH@%&*BD1@E9T-0!9R!!W;)ID&.4+NT0(JC('@" M@F0%&OGH4"=^H8M=:K)`DM3A0'-(E>(H8C"$/5\I>T(SF[V*@$U4P`\H M@@37P,&)&"N@H$1PAMH=B`Y56^99>-@7&+3`@BH<3&#JB9&!GH4'=,AD7GD4 M/=*TAF4M;&F+6Z$C5,#2E:=U2L,=AK02J/AV(D+HT%-^VY(: MT&`&9(L!#'*``Q#KW>.- MMXWE;2,(MHFA'H``"47``D&(,)DPN%<(6:!"$0*(,4M*JK8&U"UJZ;:C,=1! M#NKQ2JHD6DDW8>DL!3YP@CDB+M()S`T0/LTRU[6C2_(J#>\Z'49$L,RJJ<<, M\@%=[3K\7TH)9,,U3-_JZK.I1T'S4Y`2E8@1Q4VD4:@W)7&39CA3(H&0F)M5 M8RVDX"2YPK[!@CO*79OF`P(1X*%J7A(!&:HVY.H(!`5%2(&CMI?$GG@-H7UU MC6X!-,HRS^R,$YH5*VDI&NP(L"]*#J4+QT)#$+"R-#MJG>X<+!JO)0'*I[DD M>SY"ALWX6#=/J]T5'$*$#$/V-$R8@A!\+,O$`&;%IQ$TN";'GAKNJ`F:YC28 M/+T8+*U@C<1!-$8\S&A'+P[2GP8!?O4+O`#M*-.;7ERG(0MJUN%MU!$S]6E0 M'6P.(5,CNV%S@`XM0C?[&+=9T5:X;&N>4(JG;=>2@Z6UJK7#(@AT%V%/.N]& M,B'/;DU<\F27H+YP\9>SP8;_;L<9,,:F`#[%#[+QL6 M0='E8Q@,5>W6QRY9Y(@>GW%/'\$@85U=QK"&.>Q@+^H\/(4S!,;=BX<\G?(] M1U)/1`50,Y?7I#H('BHY^ARA&%\42@$IV:V"D(''S?5GQ(&XB*"?'$6CC&@`M'&O$A!QW(,2JX+66Q-?2D*VFS&)NQ.&@`;@4$&_1D M+S%S=94#>1CQ3WGB)DRV&?$25@D0<`JB*YQQ)HL3/D-4)(DE'B0U3WRU4(^4 M3URW.$H&=@6X149(3V=00(&&+16G&A:D'#`A.H+R%^VD)2+@!M?G?J(3&GU# M/V)!-.$1-^\"%Z?3'./&;#X6`S4`+>SQ:ZFV.#"@>JS7!JX'>QPQ`P8!:>Y' M`XXF.B@P`\0D.FX`;OE!'2!T,S"0`L6$@G42=?PT*_[4)Q-R60M54>P1@#PQ M:V]@,1HH@ARA2&%A:#!'A32T0@-UBZ<1(Y\1B.P1!`&V$4\G>E7F;3`@`E$G M+_N74,`X4-CQ6-M]7?6E6(84%AA\I/@TR?BNBD4J7B5UW@7V&,6?`&,#G8Z6&($SQ(A72+C#18;TGE;^7>@2Q M>JUG/["'$3-0!C2`'0)Q41E%4B#E45X"4B+%$0TI@'7S/7WA0#Q1-"_5'`L6 M1"/E)>86C\;6;CYQ=HMADYWI.H06*TL%&9+#`_*623SD8XY3,7XD.`PB'/2X M@]+"'I:W4@V85CM796T55ST6@FJ#EG@P*4P4+FIV!U&7!B154PZC,!*I4\6H M5#_U?TJ@.LFX%\M(*6:!*0V3&[T9,:]XE8_"9,48=3XQ*T-E4]`943F%5-/9 M4]69C6<0!B1Q%A*4(/*HG;S"G5%'5;-B5>R35:S552'T%V#5F$IV5>T3F2B4 M:W,6:MGG)F"U+ILC'X[#F>P!5B?@D([B%30$.AND0&[V'`0A./0!5IZ$$0\7 M<0$G%AJ!&2EW+#3I8;F7<104G11E,344<'P&,1=FHB$U'CQ2/@FPF;D&=^Y9 M.632H9QK+-Q3.,Q)K5#+[="&>HA)751%T9'<,1B-5ZF`-:X-4S4%W2Z13+V M!F*@&W)@=!TD.XZF'*K1*Y"1%?XB)5Z#I34A$*DU9I*SK6O997_!5FF`91/" M5F]`;UM%!N,F>=LV%HK3%^^*+*@"$TCJ)9@9:98SH5?BGC1SJ!2T(_O$%$*T M6@B+K(>1CSXT4C*P72YS,%F(.3-34MN3!V-00*7Q%S%@`XB"!GH@73C0?`I0 M0U`B&3UA(>-*L7%'$/PE'V'#(+IAFZ!B-KKI%[,*&3Y20%VH5@AGL7AYEK:E M'F?$`]N1(>PYJ3I*D?%Y(%XA;3Z0`,Y95'06*^\)N$0JGV,(5,?4(<9S5\-( MAT@I?KCR9#'KF0LE;720`%;7L7M5AV4`G!CB-4_@!@LVJR/A$P'W!%7P/'7K M44>('-QT%J51:HN5)[@R!DQK/]T9:#([*)2Q.$A:0X!6>=I#(;^;?G:*$:Q; MJ\;C8YN9@VO)KO-C,?9"%3[1L#P7I%8CFA=27_HZ'IJEFF.F3P'"!'UB='3+ M3=*&J;.TG]H3?*_B;P?IN#86K6Z2O*R#IV[@-4;@)=ZR&SE++.$W/[J989T: MK3XFAM`#!Y;B)CX%O+OW27TV6Y.2!P*1+X,;:P;(JC`['8?A):':A/`I:T+X M+YAQ%GU3JC#QFGV16!+J&'T%4%V(H\D!F98#P!$\P6\R4@[H5LLK@>T3=5)P M3&C`4/\7@$RXE:/JAO^2!X:QDQP1`SE`1W8D$S1A%7ND$SRA>$U`$JLC%H;1'<5+!ZX%QTXS MH[/U%FD`R+U)QV;0`J'T%HZ1AUJ0!%!0/QB1PU^H%FQ0!QLB.2IX('(@&V<& MRKO2!JHC+<$AK6L7!FWK(EAI0B3"*2=W-7PQR*,3(''>(JJC>3G5M$ M1MZYR1RS=WG#J4PE,CWQ`BZK%AKQ(2\"+**QMII+=QA23%$Z(4_LA)IEN!:T M15(VEZ>QS7E<.7V,R(JLG6?A>N#Y8\I1*Y)3+5SQR3?[=E54%?_3'"NURY*S M*GJE<=)FN)71(M$"!X[S&+A"E?38$XV(/5)&A)?W)HZAE(M1)JLSZ4A M*!!'!P>F,:[1)\[A-4+0>]!F@(13*`+)S\FA!EZ2*&;!/_]$'Q$Z8AW]T9&" M59=7-9=#/]>2;1QV(#B*&_0Q9)X7-I-*%O8Y&(O+K\/[TVL6'7V1!-!#'W9, MSAX4(!`"&7EP%BZIK]^S8,*9!"R1<>]L M,6D"EB+-$>`1'_IV,VT-0P=BQ5[#OG30H;P2'`<9?MO7$Z5VSV.2:'50@A5" M&<.T!E%G!`B"T]"JT[H)>V4UFV8+1GN!(9%#UC?35N&Q&-'D>D4%@JHQTZ^W$MI!!=O[*R:AI81J-N1X-(,%R0=90QH,8'QH'OV1'O>#)[W-Q`EP M)A@R%A1HKR1;OK,A;=H!!;[L,M2!.7X\%V_CHS$4LEOSSG7@DX'S=@285,$: M(%C]*C]*CW%0JVIQR;-#U+K2*8_1-Z7AW6\!WIJE'=KH8>H!'F+Q*(M(?OE( M@/EFJ[P"JWZ1RH[D)>NF:`$2Q!!IAI/OH&FS`X9C=13Y+[WA`GEV"Z+\`=.<-6 M$SZ%(1,B!-#F(I4S!"NP`B`@`VSDC%5M,7KGYG#NWX1*@:7VI[6SCPB$G).3 MY;E&!0?F0T<$*=EL$T\P!8D.,U1A/_,A=QP1/1$)%VK0/HR!+#BMN6H^VS64 M&H(R$F4P19H+?6'P/6"E);)9MN#SYWB3-I">,9#"-4J9FSS!K[>ZP[U'ZV$H M/C-Z60FX+1C2QDU\&C]2+6KIVK-FY7^,(/LLQ:#88)\Y.U"05B"P!).A!X;- M/VL0&3SGRUZ#!$J\8%@E0UU1[-(6!`OI'-YZ&B(M)`EB-XM1*R)(Y'/!&5U6 M1%###'D+PSA8?>SM!>"$P'VDP&6P0`AAO$*L1(+4G\AJ1!R&@\80$,RHO M%)""`DLA%GU!`CY/?"]?!SZ%+27?-RA_\V3@%F=A,%KR\@VA:V]@?#9P`S`P`U=[%B&3`$W@&TB! M&&%P%D?P%S.@73:`M0DP!0>$("&/`C001[98`S?07#E@7#?0%M],-[19&J3$ M(B2PQE-*(*HQ4@=4'A6]U*8!%]Y!>1@1^74P^0.+$3S0`NK;&E6HUZ>2RM)& MU8/E!$_P/$Q(<>P8=4?X.!P!M; M!,ATC-]`$GQ###,,8\9`W8PBH#W&PVB(.D&@_6&]JG`3MMY6N"E>;RR`/;2@ M%J2-%"`"CFYQ_`5(=]R$DZ"1%B#F3-6$QC!!:L,FBVASZ//=L5<6A$A"%6$# M)`=DV!+R%!(<3&R@*!JA.U&!(0`%7@`E>S_9PC(T-`7B-$+('`@+(E!(70&, M())ZTP=Q#$"B+IBL$ M0PCH2X@A_UL<.X)P3)`_1(\,@UVS($[`L5@&$'`%]E\]HG.'I\_,@4\Q&)9) M&^@>:>"*^!#CXP)-1?GI"$S0"58RK<7@#-"3H'L9!SPL!?MPC5`"H%%"'M-`LAEJPP?7@1U)3F$83/TA@>/(>@&3O8& M6L"7"A:PZ=.DG'UDKW;$`:F!QT:<\9R(LA@85%8)59L#!+@T,;`N%AUNDA(* M#%CX!J#S."8=0;A_N\+N%*?V81%G3$8$`22@!F@7:6-$QE@Q3"C',!D>.XQ@ M&/G?3V`O9($;0D5;I`(5XK1(`RV`16RI+`1\;L8"@0M!\<7)(Q4DN:Y%MM@6 M=O`ATA#LQTV"$''S2))#%'Z$D@![M`,2&3PIP4/HED1"B(`%^``AQ`)4VA?^04SX$NP&E?P M"5J*=1&,!"`$5L4[C&RT`@_E@1;P&X_?>#1QMH]'!:R4\$(BA;1H`>OO:@V6,7+XB9$P#@D&B+`\[3&!C0[JH"*>$J50P@( M`4=W!;^>D.)(@T5:T*FUH[FT%,71BG:*,RJ(VM$%[2,;P(^9276E."Q(%M!- MW,`/T6(^WD#6X4+`A,(3&?6))$R0WD!^PH."N#2^L37Z&)^2>.@<+`P;K8S0 M"0H98USMBEE!`F[`)8*+-J>W$!>H4'6< M`!&0%2LA(`#'*_,T``"=%P```0`````````` M`'!OP,DC)\T9-`MCY(`*EJI5K%JY>B4#MLG%-&TDAG4,6:/0.67D MV"E#1BKBPF39L/:8AN5*-%GGU(&3-K!(.'+>J"DS9J$9D%GK8$P-0DA"-F%( M#EFQ`H0,%S!`B*E#1^H;EJD_H@:AG/#;,&TNAJ$K\J/MZ=7)!'_#QH5KH$7\ MLJ=MN\F2*2#8D88+((!`!402.7;5162XQ1-8J"U$1QABS*58#S1`V)(9='Q$ M!DL8^B35%'7(<4897H%PA%NI272"1G>$(8<;+NE0X!!A<)>&5S:"X)ENXR44 MT79!=L12&AI)E=2220'WQADGM0$"DB"0$=V)P=4!$T3@@8";1+9QI"232>7Q M1HE>RBB27W.L`9:9:+;5E1QYO'FF'`&6A>*89'9%8TQX1B?2=[CAJ=L8:(!P MQAMO^%7&'`2J^,9J,_+)))R!%K>C&QJ%,09A'@K-=M)!."O4``UABY$&7R3MTS"G((HD\;1BK?4$R'1#27,87*=/5 ML@*(RJA='69L@0,,7?PLLX-T?M%5K#W@JZ_2;VFG\LY/9Q7UN>E2O=".3C>J M=<,/>PU"''4$1@?+!,D<&AV(\GSUSP25@0==,Y:$AM#(QK2&6RBD\'/0>*K@ MMULVTR&'V4A^$<87=-"A4M0PF$T<&F]\05@;H9%$.=T*A'81"C*>,08+I=MQ MF`(RES[&X'L7KD+J/^]!4`(>PSQEU6>$L<;/"1B1!!/JJF`&'*`G(!`(>3P* M5A)50M16=""(T(,(VI6AEK3@WIY&1RB`$`(*C3\>^>13SK&>Y"C`D$(*(,"_ MA_+((DK<&M/2(>JS0LYQYQA9Z9X"DG*YS&VN1!0YE`$L!05`&3Z'A=F1B4H&TQ3E!?2M<">C#L!+P0-*9*%L^B)H,Y$>_ M*77$*Z6R#EC`0XL@$+1!-@A@DJ!G`B,(\7 MJR<'+W;4#8(;X0B7=].K=,D\_I.F4(4ZT_)!3G(@B-H"09B``FJN,`AD6T'- M0X>+U*$,P$OA,EMHU0,*BI@%K>1;+CF&-I!!!R68@Q0A#2D984LVSL"!P`F;?0 M$H>TLV$L(:,X113$%IER6&07O_BVN#W2M4Q2*QVH2-4EB>`*8:B-2_B'IT>" MH`0T<`$-\!`I)/@Q.BIIYS97DIKTN&$]9:CE+T4C@! MTKTD%'A[%?"*%P_\4PYG5KH0]%:D#*:2+PN>ZV`F+3C!.VOP@9;9["[$MZ,]CA2[>EH4+BFU*%AMT8`(W:3`]@U_X7!-H^,B=;E)CUHJ"'5_7T=O]97\;D@OC->+-_?"5\8[+M"M:;QC/M=F9Q+.=0+Z*\W_!GC`@?-P"(V\ M8!T+.2EKSG:-/0T^[X(4!-.^FKA#&&(48%+5Q4;Q+U4,E@&/1-DQMN6,Y;WN MI-Q89T`)ZW,$?GSO(%#ZX@N>VS#)_V2--#J"EF11E-$QY>566$9:S@YCCW262 M*T=L6$C66IZ`.>0U485NK8'WR_,3X"'/-1SZL/V\1-R@.&O"Q;2FMY#'7/=N M#5HE$ZP/:5R5BQJY8*%U(\^>:WPM:@'N0+"S5F.-ZK6W4R8%WH M;R'ZA8W^V]!0!.P;1Z?;,\W7LM?X[&EGTMJI*.NXEZ`.<_==W2\O0]*!OCPM9:5+L4\ZO,7&=(-.?NR6/S#F*W=@LJ)^[TM_ M]]]7-V[BLKWSU6/D%^F>=YB78<>;;WNH9>MYT$]?]($G_=T=3B;!.[RZ.%_X MZP$;!L'2`>O,?!*ILM*@CYWAO?OI(Z`CWT*^`A'#/1<&)S!O!B=^?F`U/E-# MD)8&HE%G8&$&SP0'$3$1VE$;&B%=[H49YK,5I#I9]T+=%9+!3)D!] MU1439S!_/%,;*(""^Y6!.]=^=I8&A%5=-T,=#B:#"L!^@F5X.H"#.]$"+;"# MZ[=5--AS;0!_RQ,A''1\N]<@_68W8-$@IX.`&>01">%JD>=TM:%74<=I4TL=W8_-WZ\:#9)B$)P"$.Y:&R0&@B4&-WANCZ2&4=4< MZ%($>-AP-59U>':&(?2'=0@O\E*(@R=D5<<%,)!GR^,&A+)=6A=?AFU<6#/FAG8\"$]2,;0G--%>@MC&5WQ!>#HY@`53<'JC@M9=!B%*A_ M%QAY=N<'LVACM5AU<)"+3EARB24?C_*+*?A[_M<%G69\BH-\O*=\^L)\FN=\ MG.=VW!=]M0:#3')FUR=D(NB-"X%==+41W!U9RI1>)Q&B(,RA8<9"+ M:.-'C"5/%24"\U5==N."[C-GM@B'9Y"+BZ(M;^%59S('I0(6$X1!ZP$"T#$7 M-7$3&R&!C.6%<`-UT4B`!RE8-DA[8.8&_AB%&K=C$_D%.X("!Z-M;L@D5?<& M?1A"+?F2#D,%,EF+2?&)H1A=W#$']C8%8:`25[`W=/`#3!F0?NB3Z6>*2"A8 M/*"0NTA""*01-548X013*[E?8A>2#M9"SV)3&"19G2<"/<51^N-1`"A2)!4_ M8QA=NS9=]H8C;H")"U%4`A5?ME1W@8"9ND6MY$52$4?7_E:<^`X3Y4'F4=`B&)`6"4H"F2$]MB#4VEG/X", MF",MNL21D1>;;I9SJ;DD0(F#0UF41PD"2;D>3/D#3NER3?AT0U,T2&-RTN62 M-K="DKD\PH87P@0_`D002K8\HG,5U:D`R^F"JY-F+%0U:<`":@`\N7-_(5,U M^@<\=H,W5T$XW[)-+2A9N%1&X.-4YR-N]88]2]6?_OF?`-H<%BA?KK6?`7J@ M_UD#-#`#,E`4,)`#.``"-V`#"@H"#!H#,$"@P'-7U)AZUQ@URS>7^XD0"M$C M^2940G`U)AI>XP46WW47.W4S*',U.Y0Y?219SU6@=7E)32`V(*HO!3*<9F9] M(KJC]D:BH/A=->`"-5`'**JB2LJD=>"B<16D8"&C6%BC\VEA'::CEF1O/=IW M6#%:CA>D=<6A[78U@/AN7%,$^FFD(D`$ZQ$&6S.(&CI&+Q=SY[2?.( M1'"GDF2=PP)R7D$I+785Y\DL#"4A"%*![T4G^;-K9\!E\/D3,;&E^K M"[&>!)%FM\,M794M\/E8+D%V-9`TWB.>Y)D\-RHC*C%(T4D^)D.>+#,E/!`#-K`#4T(=Y$D=XD:6^@<")O!)>``# M,3!OM'H&/X0#+:`&010U)Q`#)Q!60ZJG"*8XJ1H#X"JN@7@"E8BN(-1"XT,^ M*["MX`4_)G"M:>`#VTI5W?JM#4$=\$JN/3=GU1HUU>H#`+NA*S1!=%`B5S&K M[#HJD31)W!DH]]]F9YB,Y;_JE(I`8)402*!";+?`#*6`C0GH[$DNQ M/Z.QZ99?W[E"_:>FR5>GZ2)N=G<1-R,&*!!&&YJG60&>"R=^0IM?1CM&$;N+ M-$NHJCESV(:S'VN?>\6S'RJ(/SN79T('0UNT.S%P'7:TY`BVW"%A,DIM@SI` M,SLCH*.QM)FS`[2?M50%ZG,B-E)R/'`SCD,&S`A%53*G/E`@6^%/;?$6G3)! MY.1U@@IB<%I+*)N5.A"Y^YD`F`NG>!*@]G69?[:Y)BLM`6JUH'LSHLMK(E`& M/(`'9'"X_5D$B1-`#7E>%/6"%*,-@-.H1/7"[H5*\P[F?"W$5_WD@*RA- MU$@?Q81@GO`&N$5F'DF;U'"(A&@9Z'"BTO`6V;`S;@1#$,8 MRD$')1P'!QH%:4/$]GNW<,H#!RH4WD0<"V%6&*&5'-N5R%'"/W"@2*`]<%!+ M)9R4X[1$7"`""QFV9:R28-%.&@$#+=`1'T&!*CA_KSA'LD('AQO'%"%%M@>Z M8>N/)7Q08!)(\)4]'5(&ELE'%[9;D1-(Y32!%*$'J0$L+@#&2ZRQ%*,QFKS) MG-S)GKPQ$],W;J=.?],ID[I=NP5%Z0D"*&9"%G+`H,LL=[--H49.74(J;R`& MHB%`RV,',L*`8B!-LA8I"%K,QES,O(PL]9059E`>'DR94CLCIJP3(L,+`ZEXH'M=.JCS8A?O:G M]7S/^;S/P$.JV*(W?$/-LYL\'HTW@8@"EPH_<,D$R<-MT:L"*$9;>$$X)FU; MXN:18,C2\U9U/1>4DYBM.6")?4,A3"=H$JTU41/0`^T$(LG2\ZN%G88>.BM,#(9T:#+0\(0VL97`&%T$CHQ+.S43+EBE<<2M9U+'0-X>T M<[DD:[W5R-(F"G4;5$(XW%PXG4BJ8T//]EP$^*S/A(A^I7B$2S*);G"32Z+4 MY,K4\_K4LD<1S3;569'6ISS6J&75>!(U6;TXU976*$#2L?,M\%.05`640=T$&DB+MYE"%T?3B;*=V,UDX\3=0EW([S;=XL;8 M/>?8YPI"LA:(G1U6EAT^HLTW,6UJ:$ND2KO>41/?A3/?*`U"[_W2HZT"_'VF M5$L0.?D&TKLZ,N/0->2[\73!0O+'%RQ`X-FIC3HEP'.JBD-V2`,\,B.T'EXU M--DI,\(SXVPWC")3Y`]'%?"S:,,@Z: MLPBR>(%B[[:3)^%@@6/(#' M6'Z^69%$A^P6D2NY)OODOVI",+#F,'!L"\$#6G>X!V4A<$`@0NK62HNW;I`8 M#2G"VB2T%]P0_@;GLROG$$'G=D[@3&RR9S#"+S$ M9JZZYI6H*D$HS*%>![4;5N)G431!;E');B"H.@L^=-BU(:JTH66DC[5(++I< M3RM)>/Y$]5;K6[2D3>I%N1YD]VNR2!J(<25CDUI7<_":+H@'+#">-:ZKQ0H" MPB27HGI.+?1MWHGMJ6U#5/Y.H?+@.),3P0%`A'O-61[F%MAR0AN('5>;VHT7 M0DN`B*W8=`:'7"`'^-XDNXD]P_E@$RNWA`>'E1B4(VEGYHKP52<#_5YU,_#P M<$@#$B]8-5#Q=F8#&-]S-[#Q)X`#'M_3"%]A1!XU1KYC-=Z"R22T+2"O`[AN M/QZ(?O#CKG?=^2Y8`LCP<,B'.B]8J=CS=B:'5`>'/U?P@F4&_4[R`'CRYY;R M^D<^*(G!)R"`(%`=&*IM,1\U,Y\&"I$'-4^/APV'[U=8RU/CAGP'B#S!:ZLC M8^U=:L[FO==")4\V//G6E[;N,E_CZ];L^?3LT5(W\S M1%AC'6J-4/.C6""23=?KBF/K)R;L.Y%KZ9JTV$?YLU8"P.Y]PUYF&[CI[@L" MQQXUR2YPRQ[=SIY,T"[MZPZ8J6GT=N8#29^#T%U\KGY\:PKYDC_K7^KK^8;Y M"J'YNWYNPL]KQ!_ZQD\'FE_Z!IKZ+ZKLCY5K?.\>TOOW@7]@4LDDJ+T\+@;J M>*)>I`Y?(S_WZVR_[8$[[8`]QW8UJ7`9"XE\<=7!-*O$KITM$+.%* MF!RY!X!BTEO;<4TJ']S05\/'C"%#6`P%;K^N%(/<7^P#?[*,O&FLRI1PPMVI^RW%@#73$ M,@VR&5'(Q!S:2V19QNUAA.KBBMA<=AB!>&':V;T6D@9*`*(Y,'1`Q=F=!6AC MQ,\P8A)6J^;4I@(TT5:"%*0X^Z4#-K>DD`75#6$K*&*P0#B0CJ"7M@D-9"QE M$&?!0`Y8KW00U%(`F$RU48DL$<)NS[HS90OH!HJ$:K5$;IE:T&44P90!L!"4H@'C@8K5`IX`$/-PE:(!U[A+L2%LO`7;L*C M(0QS(9N[A:[P&,9"94@+B>$N[`/)8PI>&"]0Q[8`'B@!S(I5P:UHY@9J5J%" M%N?/U*V_JT`&2L1VX2I-+H:!P(V`)P#=_B$(%Q#V<;_9US:JAD.KAU_#;.B] MK%55[H8CNU3RZ4;I%R$GO0H@4IM+C>_W28W(]];PEAP0"HG%(C$*.`!70A]8 M\&6O8FSD&[`05W;*>'HD+E!3R1O7(@:IBD.$B"+A,5%$T">E+J)$^"K(SB*^ M*(]HMC)(IA*(.8I>Z3KF5J]Z7S52B+'.)$XN.7`%^DQ64(D5L24&B)>H$6\= M1Y0K8.$CTJB;.#IR(@=,?DO"(1;%:R,1%4-2;%(N,2/&1*78$:-B30R).'$D MZL2>F`1G7T.$4T)EQ+F$@%<2]XN!.E!T\0XF@+3F#8F%.\,83\BE]*5O\1<[ M6;@("-RGQ/T"`'*```#=,0``;A9V)SV0E4X``)5.```!````````````<&]R M="YE>&4```````H`$-=\`````*0!0````$`I(R@`35K)`!@````)`$L"___M M`@`$`````?#_4`````,!4$M,251%($-O<'(N(#$Y.3`@4$M705)%($EN8RX@ M06QL(%)I9VAT`@!S'8/K(/J.T[P``ON#ZQF.PU.YPP`S_U>^2`'\\Z7+M`FZ-@'- M('1X8#L$(#O$([`CMOSI?R.W0<&OP`!,_:ME;H0`.LLD*V5LA#K-:V5LA#K M-JV5LA#K.ZV5LA#K7:V5LA#K7JV5LA#K7ZV5LA!R"*31[4IT]'/X,\DSV]'M M2G3%T=/1[4ITQ-'3A=MT%]'M2G2_T=.`^P9R"]'M2G4$K96R$-'3+HJ/7@&` M^0IT=#/;@_D"="K1[4ITG7(CT>U*=)S1T]'M2G2;T=/1[4IU!*V5LA#1TX#[ M`G,5+HJ_;@&LBMA6B_U*=02ME;(0T=.`^PARV]'M2G4$ MK96R$-'3@/L7OLK0/#^H[0K8O@^ZT#V%.M4([%CMTSP(O8 MB\B+T(OHB_"+^,L#``(*!`4````````&!P@)`0(```,$!08```````````<( M"0H+#`T``````+I9`RZ)%C4"M##-(8LN`@```(L>+`".VJ.2`(P&D`")'@6@ MC`0NJ`#H/0'$/HH``!S'B]BY_W_\\J[C84,F.``*!77V@,V`]]F)#ANY`0"E M`-/C@\,(@^/X-8X`@#W:*^J+/C`*@?\``G,'OS(!!8D-Q\0,+_>L#0$GIA`&+WP/:3J"' M%*"D`*&.*]B.P+1*5P"`J%_3Y_J.THOG^S/`+HX&@@*\O_P+N5LKS_SS4`JJ MM`#-&L^6,PZ8*)``,^VXW8[8ONH+*`4AZ.H`+!XL+L8&I$+G`7(&UK+_-HA* M!02&!(3C+@%0G+;H\@PR_#*X$THR_Q:V"`2XLBD$N@@1Z');4`#`B_"Y+]<$ M@-0`1N+X``4M7`UT";D9`+H3Z,4`0%&+[+1,BD8"J+D.0*D22`#IP0`>2S4/ M$H#'=%9V`+@$+94->`UZ#04ME0U\#7X-!BT5#8`-@@T`@"(EC,J.VKI<`10? MPU%90R7%%D$,TBD+!`MX"P6=T@M\"P8+@`0`"\.T_XO7B]X[WW04@``*/_]T M"CAG`7<%B@6+TP"@@\,&Z^@[UW0@B]H>!P9@`QT`Q@?_U'0')O]?**D"'^O% M!U<'OI`H0T"[`DS#N1[$!P!6">CJ_[@#```%4.CY_@```0!5YX/L!@`*5E>+ M?@2+=@8SP!CX'@`D6:.V``O`=0;'!K@B@Z"H_P)\$;BJ,KC:!"I0AT#>%X/$ M!E*:%@,6K!;=F"06!.C(%KC@6<``E!!9Z"`%Z+T$N+P('TZDR",:#!9V#""T M*58A%AP!!`&R&*N.#A:J9FAP:&Z!9`'I/P.#/@ET#9**-K@>)'!06:""``V8 MB4;\B[N@"B@&+HL'.PSL0T,`&^+TZ00#+O]G'&/$*`H263WN?F>X&PT[!44A M64D8#$E6N&X5Q4DE2?\V#^@AEA*G*%<9IR\$%(7K+:'%HVP9)`2AHJ@H.P8- M=14I(BD&N%LC]@]ZI3BA'*,/ZPU1``CHZQW$=,SH"1WK`V`[Z/$#Z8X">DIM M;GIL>L$$>MM-6WI^>J<65I%Z"A.X@1(_6YM;Z-4#?Z5=Z@,$?[0D=PA.4G]L M?XHA4'\/`J!RF#UD*)!L-#UX!0+K6K@`)ZD2 M@(L21\<&E*VN``-5;RT2N^D"+=HM^A4#RN8M!"U"+>4#K&0MX4)U%+M---TT MQC2V6^L2%.`4L@<4`$CK`.E@`8`^L&&2Q'4+]??0%.E.`8+:,XY7;A,WXS=[ M-_]V`)3^Z(4&6>DJ`?\&JBLCDDP'#@<<`?.`@XE&^KD%`+L4&"0,^G0&#.LD MZ'8+"MT:*T&X$@BP7EE*ZQ@(`@@"2H.(V-6L-MAMSPG__^G&`.ANB`8#60+: MYH^ZV^P4`-KI%-@$.Q2#?OX`=.!#!)KL[#`$MCT064=M"`O"69QI*!`7/6\% M#.L4N`6B4AXN8PH&2J0*)`H*N.TS"BHV,Y;K0X.#EK@"62+Y.:1H;`LX)&4J M^RID#2H;"(BT`>L(N`T"H``=PP]9Z%6(A/Q?7HOE"@!=PR-B M`&0`=P!X`"L%`)`;!1,%(P4+!3P`/P!C4``690!G`)IM`'``<0!R*@$`!.P$0@6&@*&Q`SD%J`1Z`Q*2)SYV=!"X&6K=#))< MI40(U0PP"#`EM>A<`&9!65`)!*H`N'8**2"U]9RIV)H*JRKK([JT)3<"):8; MD*49)<@*AD](*:[MV`]W2ZHT&>0*;0I*BM"$5E=_`%``0E^X_`L$`&D;&S/_ M,_;K1`A0]T8$`62[$BC\[-[&AQTQZPH```PPB\=`NP0`F??["])U$(/P4_\! M?@M&'2"+*`HZT>B)!4=&&A!\"?NW6>L`7UYN+$GR@O""ZPO@GJ,6*`RB#(L6 MO^RT`)JPV0O+Z$@96=C-Y@$E"B4@7NSNZPWR>%'HQAQ92K@#`XJ469)9N#L( MBE)*"$<(@@A*""FE>@AE"'((@912"&H(Q0AB2DD(]@A:"!($22D(4@@N"$JE ME`A("$((9E)*"#H(H0@R""FESP@J"/T((J2D"`\%"!H(.I12"!((30@*2AX( MFP@""\`P:XMV!+^7%!`5#`#748H$F#T)$`%C/>@B/4.%(&TH0Q4;=1#&!.,C MHP"2&`Q&B\;K3>L$1C7K(A\"%C/`ZSA0%71U"HDV$!QB`X($!@"`/`!U4S>J M0@\"+`PD+*D]0@.<`(CL.V`@CNO_:9E^!?A"@07VB/X&=1*XTJ0(N$H*P!T& M&)0`"C5*4DH*.!)T"#`(R2.6""@*BPK=>[P3C49!2^":$+;;W13"%)><)!0* MN,@Y[PB%"5E95XY6Z"P"1`@8Z.<7D`,@7.DB`>@"%Y6+%6`#!O2Y%0"["PNI MRX_T"<6;]`"0*KC3!%-\#%GI7P&N"Z)0+P70_Q.J`5DH^`OV]]`\]NG7`*5N M&ZD;CP$;O*,X&Q&+QP^+^%5AAJ9)ANFC`%AW$`+2U=/=OMD/`-+;O-(4Q0_2 MX8\=;S+26DSK6*R[8@)+[76W-XX!2_,4>E_R2_E+T@C:3DL/2PT-.Q$"#;P% M=1]2"`+*^.C"&,XJ^.-T"\F$)-X`)$.#?O;RGA,3\28@&\,;"_]T(_=&_L1V MV1=#^AAIMNB>2?H()&P#Z)/\!8X*A_S_)NEG_@(`]PH`#0`P`#$`,@`S`#0` M@``U`#8`-P`X`#D`/``^`&&P0Q.%4O]F\YL).M`"I@D"]0E`"L$).6@``MP) MA18"BO4>N+H`4+D@AF(F4(8[NQ"2)%C1XAH#T*6++)W:,P<&0R**1A4<5>`$ M!74[L(Q>&@,T^\,@`U:X!0=,&``'`.O;+Q@:&AHI;9T:=AI1`COY^E?J(4TA M50%^:3O?&G(:.Y9"&GH(YPJXES)$$"L'%Z1*APHA"@`(`UE62O]V!.B1`*AB MB_"#_O]U0#@"ZQKW1@8"U?<0`L8!`'4$A@G'!L!CE``%`+C__T`(%K('('4% MN.83B@"+'@S1XPB)4/6'<`S_!@TP@L+W!`OV?`53%'P)H%`L MQX?\"4I6Z%"/&'/="`(HW0B+?@;&1OO'!`!,#K3K_NA$#K$(I@C3Z`S\!56P M.T:*!X@@%%`0+0<-V(/[!GB)(U)0(`OF^%#>#J$C`!3K'HI6_HIV_+0"MYKS;(P/BAXTM`FWAB`JZ.(/ M>*"W%T!V#G&A/(H-"@%.H$$8_'T<9,FP!E`;!#\$JB(M!!E0L`(%RR4*I_R+ MQY&@3]$#Z1[_,RT!:8H/90`"D,_"!@#[#`0-(@T=Q7`$`A,-.!RHMPQ0NJL0 M&((5'EW#X`!*ZPJ/_R@JEW`,H0G_#@0-T/#KX>[R#(0"U?__.70.H0#`8(-\ M7G0>@SP`?2`+"U;H5P!9BQ9*]T0$1`($M?]T".A00)TC68!\#7P+BD0$F$10 MLOY9B_C'8:H??40ZBE(%&@#&&?^134?M$Y*(B'0,Z!/$51U9"JLAQ-[+-L)X M"X`I]G4%Z-<`ZV=^!4B24.M?>WPI1`!P"``LQ@4%`#!_.40*=198#E!0"(M$ M"(D(ZS'K+U`X"@8#!$""*3Q7G4854)=%I1);.\=62@`"H-1U!X%,`A!GGI'- MJ'Y,3)8GX`@[B.L*D0:*"H@$1@`HO0IT(O].!GX=_PW#``6+70K_10J*![0[ M!5?H!!1G$%G+/:5U6=32*`8).SD2X0\1I"FN]T5A=`X#>.C\=[T!:&6_%`"^ MO`A21.L2D`-!$,16Z/O^62N#QA`"P?!UYW,><@,V`#F+VS/)4!'KBM`\*PN` MZP"E#Z$D"B4`P`OX,*D*(P_B@O":<9;8)!6>#$8LD\`>V\]_`ER\!!`+B@")X+`CNC7_XOPB"2G%0I6NIPS M2^?@S>!4HAT/>+TKR/Q9(A%AA2+24@GHD0YY`$80BD8$V%A$42*-`/X!>DX$ MB]F#/P``"GT(BT<&`P=`ZPD/BP=0P9DSPBO"/V2"D0[W1P)`)!-0,AE_"BLA MZP#!"T^+WX`_"G4#.)(HMTYG[NL2$_TA1P442<(>H0(`9XM^L##3Z(K\2L1( M94="A'X0:GX``.5J_YDI1@895@B!9`)?2Y;^:40(2G8XP,(&APT/FT`.D7)A`GD`!U+@*/&@##XF*9"@&F1("` M8G15L8TP-P+KQPUT/??8B0AI&0-IW=@R?S*5ZTBD,AMU'RE`9!B"/]&"(H'RD55RRQ<Z*C^2TS@BAH0(IJX"I^&$;=SRQ<#_'P3[W40U(O( MH$81`(-0B\$STEOW\XA&10'_#8H6$[8`]^J*B%C1*M"(<1&FYPN+!$>-/P8% END--cut here--cut here