Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!bsu-cs!ibmbin From: nelson@sun.soe.clarkson.edu (Russ Nelson) Newsgroups: comp.binaries.ibm.pc Subject: v02i069: intercep, traces software interrupts (part 01/02) Summary: interc.arc, traces software interrupts Message-ID: <6798@bsu-cs.bsu.edu> Date: 15 Apr 89 22:18:17 GMT Sender: ibmbin@bsu-cs.bsu.edu Followup-To: comp.binaries.ibm.pc.d Lines: 549 Approved: dhesi@bsu-cs.bsu.edu X-Submissions-to: ibmpc-binaries@bsu-cs.bsu.edu X-Questions-to: ibmpc-binaries-request@bsu-cs.bsu.edu X-Repost-requests-to: ibmpc-repost@bsu-cs.bsu.edu Checksum: 625792755 (Verify with "brik -cv") Posting-number: Volume 02, Issue 069 Originally-from: Ned Konz modified by Russ Nelson Submitted-by: Russ Nelson Archive-name: intercep/part01 Part-count: total=02, first=01, last=02, prefix=part [ The Part-count header is still experimental. -- R.D. ] [ This is a program to monitor software interrupts invoked by any program. After you have invoked the program whose behavior you are tracing, and it has finished executing, a text file is left behind on disk that gives you a blow-by-blow account of all software interrupts that were invoked and what register values were passed, as well as a brief text description of what each one does. For example, here is what lharc does when it adds a new file to a new archive: 4FBF:000B 2130 Get DOS version number 4FBF:0159 2135 Get interrupt 00 vector 4FBF:016D 2125 Set interrupt 00 vector to 4FBF:014C 4FBF:00DE 214a Change size of memory block at 4FAF:0000 to 157B paragraphs 4FBF:4229 2125 Set interrupt 23 vector to 4FBF:3854 4FBF:4174 213300 Get control break state 4FBF:4184 213301 Set control break to 01 4FBF:5651 2140 Write 0001 bytes from 552A:1222 to file #0002 ... stuff omitted ... 4FBF:5651 2140 Write 0001 bytes from 552A:1222 to file #0002 4FBF:5651 2140 Write 0001 bytes from 552A:FF76 to file #0002 4FBF:2AFF 213700 Get switch character 4FBF:478E 213d Open file (name at 552A:1721) mode 02 4FBF:3A4F 211a Set DTA to 552A:FEF6 4FBF:3A59 214e Begin file search (name at 552A:FF2E) for files with attr. 00 4FBF:372E 2148 Allocate 0100 paragraphs of memory ... lots omitted ... All software interrupts to be traced are listed in an external data file. You can modify this list easily with a text editor. Russ Nelson has revised the program so you can easily specify which software interrupts it should trace without recompiling it. The program seems to work well. Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 58613 30277 part01 15310 29974 part02 checksum size (bytes) file 47978 43710 interc.arc -- R.D. ] intercep part01/02 BEGIN--cut here--cut here begin 644 interc.arc M&@A)3E1%4D-%4"Y#`%Y>5Q<``(L2+%3)!)HL```,+U2`2..&3ADY8\K`H>-B M#(@6+4#,@1/FCAL084#`D?,FX9PY&-V0&5CP8,*%((0D>3(EY$@B+!LH`"%P MRI4D(%#,>6.&SITP2.'#,$S4ADI/-&)DV,(,RD85/&A5F!1,JT>>.FJYRP94".01.&X-6A!XVBY"N2 MK9PY;F>J@-3C+8@I;]BRR9.6JM(W;>"L#9N&+H@Z(@^FI,HFC,@3(*G4D2/F M#8@AB6DR=GQ%3AHZ!B_>>#$CQHL8.7#<`"$FCXZW"4`X*3-R"5T]R$'(B`$# MQ!.V9<0^9AC]B9RY(E/NA6J$"8@9,F#T55BT>%F MS7,0KR4QA0XWV/">#2S((,,,;SDF11ELA3$'B0AR:Z*(!55#$$%&S6`5IV(7A*!Z.)`@4I79*2 M44<(A1+9H&+*N385''G8=@8:=`RD5VEIM$$AB3W^V)20AA:IV%N0^/""3#(% M-)MB"5"!!E<:<73&76V`\!-(=]B&6QD7[00"3E/5P<9(:H7W1HH@Q%&'AVM, M)BY?="!GVF?]N?&&1=V^\6T8;:`&F!QFA)&0N+>A42*&(,PK91ID"'4':2.- MZV02P8*8%P@"!SO&:D$5I"]A9+`%`E]5_134PH))Z>05_`X4\AMY'?$=$3\&^!<$F>&:776, M0<=J(Z,@!D%`Y9$"PWYW&GGW+10*("N.B<4_K8`M?\;V^$',G9PJ"[+G#!#6B<(Q?HH#EP%?"`"5S@ M(R,I@@3<+P$3DA((+EBVRG@P6!I,$9O*@`1BA+:TRH!E)E"`( MN`FE0)NM\^0."$BDU1Q(:"NB9THRO=Z5Q`A"!0 M8::51!C\D"H4E$+4H&$-%UD.2I?;4&6FF'P?4$[D!LI,I0W0$\G]"'(B.9Q! MH>BR*G$R)*$)D6&F-+40Q<#CUJ`TS5O@B9D@@$E+IJ<2EF"O*8A)@!",H\T$='(YS7E.;3LYG>I<)WG: MF0)#=IL`[X!G)$(8#PC*X^N&/?]R@!P"I:4`%.E""%@0@%+@'/O*A MCWUZ0UP8X.`%,)#!;X)S`^(2H:E/?<-".G.1Z05O#G\)`QDR-A)D^6A"RUI. MLR9;69A)!'!TL"P+$A"0U+HV>/WSRAP0O!>E&!@%9N!(N*0&`AC@83I0,<-% M/#P#-\$@*2H0H3#A8%D0H*"D"# MWS,(B@Q7EDF0ATR0KD0/!6M&,Y;C#+`VBZ4I,&?<8"# M=8F.)(A3''UI(L(1V)2O$4W"%T(W!2I(05146(D3$N#A(1"!SP*1VA?$PJ$R M;"%_$'$,J5TVE8*(""L,;8-##U,Q,Q!9E'B919L7>] M#&R&F8-CYH"&>1G;H=3#VK$H,Y>N7`:OGE$JUT"BEL-P!U=.>`((D!`$*1#A M"N4N@J&S>NG13B$$\':,$RK(IIT0\*P8FM!!PT`9:-]5G@;1)[T*X+2"H@@XQ`W"79*4%=]4,6QQSS^Z)RS3! M,I%:WV##MX@PRASJR!ID(NI5F[H)0<#"I$77DA5DJ0LT9K!`(F0'H7`$,\X< MB]T@A]H?CU`!#?8RF+E"AU,_I`7!#DI&TB87JE!&:JYYH(^,$+'01J\%&P*&)MS=?ZP%_NN^,5 M$.325,UE=/^RW2>O=\L/3E!X\+MR.D]X@S#(/HACQ%YA8P5%7V*K*,7-&91;$@5SX7E^3ALJ?5QI[?)59R"NIK?& M-ALO,B,Y\D%8)$(ZBY_F!9&_.5&@Y#,PV!8\86L&)4@'H3!N9GS" MYAKH,@>,$U,I9W7<\D`'408A*!!E]Q-,(84F:$Z$^J>#YR8#\RD#\AP%EPMW.5 M=FE#D&E/X`1)L0>?-R[K@SDD0QQUHM!*35<:95&*3[O0XN;:(MF MZ0,^J5`IU&$I4&,"L11N<`+!PA=P``?HHD!"(X4)$!2+$RA!]WEB0"_WQ(,B M\Q2@)WI9L9@7(0)SP$@0D@>MDX^;*(?1AXI="0F(!1=Q2N1!D9,1?&9P:E@16/R$L0 MEEX;*9=+ M.3L&I5]D$!0?<7H&E815(RC&TWX7L592"$9O@)_Z60;\29``*II/"9.J*1"/ MF1G;EQ;@DB'`YQ7KB78#4YOG88G:EVJ;>!:[*1;&UXG!YTU!`FT7I%\4`H1J MM2T@L9^.&)4D0Y.)$84J]@5#^!"<90,*VF!DQJ-.%CVPB4NT-CT@$A+K-QUE;*$@= M@0)N`!7X=9W9&7MJ:#C>Z9T=J9AHVF$*NI.YAY/HQX9^BGFFQUGH!P(^EZ8) M"*F!0C)JFD;(%XI<^IKZEW3+8E`B-1+BIVR*47]ZAG]NAF=XFH!W*',T895? MF`1P2$YVT(?I2)4"R8LZI4R:6NVC^P"B@U(ZNK%V"J[,.JYH6:[GVI$)`*_]6@;_ZK3V MFJPW^RZIZ;/\*J_TFI3G&+"F.K!*IE\E(A>N%$W.5Q"N\9AF8`8'8:C94:%8 MX:/?YSJ.87@$D7@99&L=(BB(X1A3,$QEFQFN5P:C1I-044QG:Q#@-Q(E0;AX M\;>X`@7Z!1(6J:C"K,)*'8N M@V%;-@<"Z0:H:ZC6B9UF\+ZH2YU+LS?>.:T=:;/W&A'0*Q3/BG,ZAU53`)?O M(ZHCAJ[[^!%^6;_#RU?@6P(R@`Y0)Z+4_3*[APEGD&'1]MG2P)!0&I7I2:`:)\@83(I"Z8XX*G"6E M^G2G6E)F-XJ+.5*O`RC0-#RZ`Q6"A&->D5:.$<9[L19A8[X7,14HA`+7R1$# M86M/L`3BLWI2(Q,E);M[0[MLI`+6!`=?!,>UNU+\:BQ1PR2D=`9SD3$LD(`M MI@*:(U*2W,AT<+MED+L)H*BSAW>UYV4DF\J0)WD6(Q5?N+N]2Q,\\W%L\LR; M!!6AW,SG?,HQ&<91O,3ZF!/7BP*YC).&0YAN8,YF*\J==0=B,+[[2[/KG,RE MK!-TD#%%$<]L,@2F`9@5H]#/Q!RXX\;2A,^0U,D^N\^6/+AP(%+T"M`Q`+!5 M9`8VE5I%(`15<`0)6-'MC-$:'8#.+,\9QWQ804WXW#HW;#LDC;9ED,\=R=)E MD+@-W3_>.`*:MS0];1E]&HN6FJETP)6NG)4UXJ4&M:HE\3IG`"S MG#0X:7NQ*,(8ICT&D9QQ/0;RBZCUN]?4&2>U!@<;S%GER+\^Z]/*#-3P/-1L M$C?#$QB6X1E/A=+4+-54G1DP'9,)H,47U,6Y3*_:"+\$L08,K=E6S=DR'9-> MZ[6>S<52&]I85D(V70:V1@0YO=,]SV]+]#!64+%(=>=59 M;0:A2LR<2A$6P09P@`(0B6Y)0`504=Q,D%7W;G;BFG-DOWFW<_H+1):O8EA/,Q, M,<9J5JL*`#T$\;[!#2#)>AI,$O'/L5@7NUGLO M,S#[5E?&DWUD@(\J9N,PCLNF+.1F_%0H)85,_LG@G6/](^2*6[@71S(!1.5U MZ!`<=L?OHIAT&(9#,4H81-W%?.95N,O7E(NC?J:HCMF9[@*< MCI,P!@,S=J(%TT1*T08M`VD'!%@%`1)2:(LNGI@9W=@B4`6;"4?W MS-QS<-G>XM!N!$?T&HYT@`+E2-/@*1`>B$[E=$[CI$[L-&;ZQA/A?2+$I*+T MA(T#C0(&;\!/TX2W>FBJ$.\ M8LYQ3MX+7IU^;?'6O)R-#M?\SEGX701.$`1-4`1?>.65'$?G9,LD;_(HGX[J MNSNJ'H^K7NHUX7*GHU0KV\G,`54[[0AM>.I*(AGE@)V0189 MJ^J[B,$^WP9Y`!4GQME?XU=V8)1X+P9:MP8*^CY+(?9O0/56GS1+0QE1/N_U M*?A1G^E/4/8^"_*,SUEPG[R3+^-\;_9^WW:`GXZ.+_9D8/A1=_6)SU3:P>^( M&?923P22_SXT%?(8H?=;L(MXK_E*//F='P:?KY2A+_5L0/I^/CN9W`)L;L:K M/_A2SP2O#_O_G3&;K_M_'_BLG^ETT/S5?P)4@/U3&"AC4/&/',FS?P8S'O<: M3[\<_T7>>?MZ'_VPGP"[W_M..U4XY3/O'^WN/.V_G>A$#1IK(#`$(U^Q=!%( MO5$BD,^8O?2BW=F%GO]!#;[6_D9YLMR3I.@"U,S?[L]F+^XH\.Q]/_T=Z;5Y M3_[N+[`U*\ZM^[J+:[BS*Q%M9^H4<2'F;,I),=$=B?^,O?_/O$I%81FRDLQ8 MT;JGA]0;)0)0O=+=SL^F'.YX((Y@8NZ;V&!O(`99-M$=B?^,O?_/W-$?'2P>2$%*>%!=UTQ460)UT/5(_MP7[+2X M7A>`$^YX((XS8(Y>.R0V^(WXS]C[_\QL\B`41398(7%K50)U4(](OKE/A=0; M)0)0O=+=WLQU`3@8/^\?WV`'&R2O*7Y.V3*B095M5V'B1Q(3A\4J=K`9^_$- M)C!W$!6@@<,<(>RFN"UE/COM71%N,*SR_07T;=_C/^/Q"!6:7^[`/CT0>G8K MNA0+P3@/2Q016Y\6>ZL9^_$-%A2_AS45L\?;8FQA'*/U:8MD_J"STP-0?-@4 M7>CY']0<_1CN?1$0A=0;U3H-LS=DD.U0O=+=WLQ+;ZBB*-FH;L1,L/X=*>XH MT+2;R,3[2.8/.CLZ>V(=B?^,O?_/W-';8FQ,E!<@@=0;U3KBOJ20>,^'!=TK MW>W-O/22C,>*^?$-9L9,C3VI M7:Q`D6')T]53UQ4?+^[?ZHU)"1H(24Y415)#15`N1$]#`),.```"#P2=YYOP M&@``#$F<4"DB94@1*%1>!!PH!8J4(E1`M&@!HLT;-VGHO)$#@LB3*2#"N"$# M0DB2CR#&A&'#9HZ+DGET-%`P,X&3,B277-134T8,&"">L"E3ADX8$%/HN*CY M1([%D27'H&$!P@@3$#-DP+A!HZ9)+#K)S9;`4 M4G\9SJ29&'6<45$>(-B'GXO[N<08:B?8>$8:$(94'1H;T0$";I?!8>(;9FAH M'PAY;`>"'/-A)Y!J!T5$GG%+(8E9?5*>\<9K/F:(FY5AO/8<&BI6Z-R`07*D M($AA&$=5>'>@D<=,(G7IAG-S0,D=22H9=V>>1^7W(F9DO+'9Y^09)RLJ! MD1MQOO$&&R&Q<9&/=W3JI+DDB>'N&D%2-^!,*+"1QK@@0%&4;"`X$:6I_8D@ MF7Z7M2';"?T=44<:FHEW'8+1-E'P$"*XH!Q-"DQ1!QQPO#$AEUXR)^D8=7BV M77_-`COILWNB!&P:`M-QJ`(B,!&$$$4PX<(03S0A0F::N@2"%&%V6R8(`A.L M:W\%BEA'&W"R7,>#9>Q0'5%.LJ$BPA.F)QIU6%:X MJQD\ZT9:3>;)1AMH5,=:XY%9;)MV,6-#68LHO)D$,0^8>HY'VGM-)0)(D0^&RUN>#LTL5/1D8=M)%D M)\H"P^F0%0RG*$HG0$)1"2PQSN=JNMM4<.)TSA"ELH!"+`,`:(*V:2>B1)JSW?>0)WBG$&6RB(%S9%DC#>`)$79N7UV'L>Z=)A-P9J3V)"EO"%H)H8TSI+(AK#K8@]V6-B-L?HSGS2T M(65R,`ILM,M=:!D'MD:&EL`6I=ZC:(8SG@$-#_-6J#QQ6$H+D8U_9^+D#(ND M/^>#%GAC@P\>;[W#2XXF&'0`0NOGLA"?#)P?>-0EO6`"B0:``4 MJC`%)-`;"Q-/.+==*02_8!S>\J8W$E@@PY`K_(4,=_@"("YQ!>A;Y"@,XPR( MH$AU0B(!0V@"%#[.@G$JTN7"2%G?/->I)4H/[W M:^>)D[UD`U.*FY?G736JB1,Z@\2V/)/N]FNM0:*CMM&)0F.N^LLI&PF.-B;F M$$EIS.6A3OWN1P72)`"WA]UG8LNR6*>\9JR0->YDBV)9[61LC",+,,O$-R[+5_%ZWA$?_"D#*SAE+B4PYI3!T;DT@V,[&ZXUK"=S=# M*^UKE]*#V1#A"TL*!3?7`8`E109AF:$Y[%,`AZECI\'C[R6MW=6NVJ.28K,' MR)XZ=K*7'6#+?4L!EJ$.M(V&-(_-Z"@BD`K/2!)Y$>7X1`C*PPF8[WSHTV$F M.Z0'FZ%=GD4I^F(S'`-X%9(G8A4\J_=36*1%7.1%8"1&9/1/9_1&9:&!&AA' M9T1'SX=..(!'G54C;$`5;T8Q;Q=W%:(RMO404T`05E`$1'!_UO8&,!-\QH82 M3B9ARL4BNU)L)#$Y98`[\$$';'-+Z\4G.],S:3"`V`$V3).#1X@3`-A!SA%F MFU$&5%%>"R%.]75B;C!V6'$#]34'=2`&+2"&8]-TB%PT$25!`S^F(6 M7^(LHM4?=?B'^B4'*`!@B*AMG"B(GL@@(S,3FL9I7Q(U`S0U,Z(][34X$L$$ M2Q-@=1@W\[*&&W$A"N`L<``L5%$OX[%>PU=\>;-?'*-D'W(>-/,[A.@I3I8F MG%4:CT$_3C`%A<0$3!`0RV9^I&$:UL@0WJ)>:(@R`D,A[T<=05`04!4J7K-_ MSM&`<((AJ,4JBM,D?',&,4,ASJ(E9I4A1D$PF!,H=JB.[(AI,Z$$$B(E%M$D MI^9VYL$N9V7^9G67)Z?=,?\D5MSE$&G8(PF0*)1J$Z,Q$>UF(= M,4,;XH$;=*!C7%DK4K(HD04B&7E(;X`Z*K)F5TD>,^%;H((=HN(ES.,\9,(: MPN@H!0DDF-4&X3(2+0!XB"('^AA\,4)J*D$=MW@4$A(&GY8?5Z84K=$X[%$C M]G&*U'@:0W`1TT$'_9$WZV@MPO2-U:@`1M`W:24Q`(<`3``?9S",9=$$10$E M)*%$2)$&`JA$4I"7UZ%$1#!6D&``5&!E8:,`+0`)")";U6D`2I2=Q,F=$C$1 M);:=X`EP!@">+1".A7DT`'<`2(08K1=6*$8>PZE$-7`#B:%$-)`#):!$@M$" MA=$"BE$6,8`#.C`#-:`#-)!'`B2.!T%I3^!N!F`#.)`#-K!7S",5%$*<,W`# M?X&?-K"?8H0#_KD7`0H"B%&@,E"@.(">R@,%.:F2Q&FB-O!%,P2?8RB?Q!D# M,F`#.JI$?0&B(CBB`-IZ`XJ@,:`#6L&BJ^$""F:=.IH5%AJ?%/*<.%!/96&@ M0-J?_UFB,7"@BH2@"CJ4ZFF=-B`#.2!)9G&A.*JA?Z%/780#62JB6TJD!+JA M.E`#82II1%EI$?&<7&&@47JC&:I$,T"AS$0#-Q"G0LJE!'IQ2)JGSS-I.AFC M6>$6MI2F4CJ?9:$8;:%$7*&H`,<`W)EQWFF>YZD`9O1" M&8<#B-&E`.<`,S"A<4&?,U`"1P*."UJ8A0<"50`B,":;I[$]@R,E6_"870`" MS1H1='!E%OFLS=H?X8('/6BM+7`=SB),S^J7T!HH9S`'6^`"Z-H%75`3CYD` MHD@U\R(YNY@GO@@L.C`E>$`GCL5#0>`$1J2,3,81Q;@9[$H%[EH4.%(&5[81 M@3(K[M-J\2.O'+$]$M-\8[5-&2("TPH'%FE"-9D`*%`O-N)]5"!TUU*R4$`$ M22`%4^(&=N`^%Q%\#A8H3C-JG6-MLW8F]3(A(\.2V6IE6]-#M\<1 M>3,%5Y`=[P-L%"D"V=J#'LN2;Y``M[DIFPFU*`"+YS$XW@,LNE43?ID`"`)RU("+":*"6`. M32\T"<2$]$]B+%TY"+A(9`%?`%HPFH58Y"+F(@\L`#C2-DH2`$8&(,GTP`A` M(A>L`!PS8(GA/W0T`A#SH0C`HF.+L.7Z]\=$H!XX;M3)8&)1%0&`]/6H`P&0 MN6__R`(`Y"]+'0*)R\IS-2[,$!,X"M2Q!J@9H'O9$CEHFPOCM'&#AB$8-`Y? M(@^.KFI;H6Z1#S('`O44,.?`+P`"$MW.?1BW`K/S*.*`_]80$@#Z.QS M`#KC($`+`,UH0!0F7CF@"4,6(-+`/S8@PI`-AMQ("`#HH$,`%.B`J"!`#I'`*`![@`4(-2K]%QE0%V`(`+`7^&\!H>@^IA M:`&)OH8D5GX8:D"D'D2$E2"&`E`"(\I,I0L6`2CUP3!\>EJ,!8*:RB(8DD#BQA!`:@["&/'&!%3T`,`H,RQ MQ2(.?.*>!YVX9\$H`8022@":K!"!17,40>_*!DS1B!<`6#!%+A(`H`D]&P,P M$(+CW$`?01@'X,PA@$&P8/!%<,+B_`=!,^5+@I:$&TR6`0-%T`$`M#A!!KD MH`>E`4(`B)"$)C0"/_2QB!A*40`W3`0+J78`(`J1B(-+!A*5&,%TF0%<3Y1< M`:#PC^:A8QL.R$(6%H&/MRP`&'4H0(/2(0<`K.,)U6O!V7;!M$S<8Q\]8!8? MU+<.+E3.'U#`107V6#E-`*D5+Q"=`7J`$3H43@2!\,?9[$`Z(NAC!T;P1QT* M)X&(F9``QZCBV&AHD2`:X`JX($.V2@DD-:!`E8>L@R>.`9E_7`$=3:!`%G"! M$=X!+XD/K",[W`"N&4P+!'L$!28"@`D^-@\7&2"E$6`!)&[P0'0*J!P]T5&. M&V0AFAO0ISL5@(L6[!$7F$``D/+P3&(@0&#_2$<]#$4$>>[3'PT0Y).J!U"! M]I&@1SAH0H&4A(8^M"'I*(;0//`^(U!"=I)8!QAN9@F=L:M@._O:SX)F!6YF M*WK+-((E@!2("G"/E=LY@4=IB0LVB%2AZ,#'";AG!73<80)9$"@Z'I"!;39D M'6A@A#0J)PG[Z31L%@$9RIXR/RM0(F*2.)]%Y+"(J@8!JPURIP&6R@!XD.KIL#`((_AS3F&DXGL M$`"XF&<`&EDB8*IX*I"V,%5B&``=]ZB!*+K@`!Z\@`X%$.(Z7Z!.=O*1!NAX M!`\TBH\CX,(%V;HF*S0[2&P8XP``"*Q.^K`!&E$B`,ALA6K148'6/A0C0)*" M`+:IBSVB@P@UR(("&Q#-!^`B&.:M07K7>T@Z2``70,@6C3H1N50$`$C_H*QK MQ\)?VXWE$PV01@'2L0NW<$$`BC@".W.A``#L8AD&<,$.#D`'`PQA".*XQSKD MX()_G($"1```$UH"@"D`@`H`4"8;`/"&FFP'`!0X@`<.H(`#S,,`)#A`CG?< MXQ\'.:^?Y",="(".$=S3M:,H10",8(1U(+&*ZZ7R.J@@10*,`L%:5D)B3A&` M=1`!O_I=,B[\VTP!&T#++_B'*Y'YC>W*P`3*#G)L M+]`A`5)[LD`C*:/C#_O8=!TZT.H]DT#4"(5J+T[]T&JA0Q\`./0%]CLC&T@9 MF53`-:DY<6H%H&,5^Z@>$("@9`%$5@PY4.4H0@$B<`#1!]S^1QU$$%E"Z.#2 MWB#Y2.X@SK&4O.&5&\4E##4 M5P'@0&'$9(GL6`?I/&"&`T1C'/^XA!<<$(JJ_\,!58_F.CK$A0-TR`MFMP`8 MS.Y'&N`C"P^42(8?80!X(,`%C/"`/!#`#PCIQQ<1D0$Y3,`*(#"B&(>PQB06 M88.V!%$`I5F,#ZPR`#E$`$)=680_8O$'&0!C,N.P`R#B\8=T"<"G`QC&`()1 M`G_DCA\KP(<1QB&PL8AB+@,80T$$F M\\@!"!0'P!WRP0,0T`$!/&C`DGF0@#J@P_/K($=]#R`$52@`D0$8@B'`X?E\ MC*,"K$@""T1`AP<00`0\X$(=#@`('HA@E_&'@P`P0P2/A07R3@`3OF"%P!`#-@#_S@>Q]`2!<7&]Q%`*(C`'%Q`*-@ M(]&T'LMP#PTR%_^0"#^0&@(P&9BA&?20"`<`==E1=2"02#ZU#A40,03P%%5W M=8EP"%N7&%77(+SS61)$`.Q"`"OD`'UQ!`Q`%'*`A'!P'D[@-EY```Z`#KA@ M`.$Q%GLX-@;0AQ:Q#C$PAR:0.`CP.B;D!?Q05_X0,2CD`7U(-5>@`%1S!`CP M/WL8"GV81E=@AU5#.R07AW5%.D:``)"8`@=@`AG`0I"X"#K4%S]H!6YC!(*( M#NY0`(E00B?TBA&#``6`$8,@#4)CB9[80EI85[\HA]"H1@80BF7XAXL0B/_C M!@<0"FQP`(.X`(;8`"F$%>#X&N.X#EA40IJX"$Y`.EZ``(,8"<3HBZI3AO`H M1I"(C=J(B9I8`(/%.^#$A1/41Z7E1V$0@UE0C&'4<'[@>G7``('%#^)F`/6S M/C_PC>$XCJB8C57#C]6XC-'EC*@HC0>0C@:PCAXPCAXIC@=`D([4.W#81`K9 M1TQ6#P,@2!!Y0H%%D1;I!QA9!QHI#6YX`RRI!B_D`6BPDI:HCDT)D[Y(AB;9 MC,^H0FJDD@(I1C1ID*W81&2X`$9@B`>PD>GP#FY1ET"&NT"'X(B$0X##`P"-'0-]$@!QKP&#LP#')``80)&7;@>G;`#^C0 M#OW`/>N0!I>9F0>P`[XH!RF02+A$`,[11ZX)FV+0#X)T0X-P``&`9RRTEIGH ME07YB-"8.`Q`B;)SB0ZPAT_1AUW)#X-(`%:T'G#0$':PD$P&`XUQ:#8)=:/E M!V58!`8P"J#@`#MP#'6``&,QGXU8-X_Q%/.9"'=``*'PGT1@`,`#A^U9AF69 M`@6P"#4P`/<0,08`!(D@0WP@`*'@"?1IGWAI`QJZ#J/H#P/@!WBY2]53``10 MDP?*GF3X/*LZ M#17H`V%1/;JJ'_59GHMP#^:J'U9`(_J!#OQ@:#(X"`U1!QM0/?N*#J/`'?-J M`/7J`?<:AABP#A:0'Q8Q`,?P/,EG@A80%J.@"CJX/J+:="E*J@Y`'T\A"FM9 MC8-H"`$@!TOA`/_J`2Q+C60XB'(0`'PLQ0`,C\;M&`; M,6O+<0%@!PB@"PU1JR=`+_=JG9;81[AC!_B`#LW@#]&4MWO[5:/8C_P`E@_D M",(P"2LD`%/`BPN0#'W0<]!P#]%PE:%9IUHQ`-@P!P00",(``!"@".$`'=)` M#IXW`-"@".LP#>HQ#8I0#"7P``"P!6P4CY M#!$$(-UH`(X`C$HA!X7%N%,`)"!P#U@0KA)D`*.%M^9T#)8S-F*45MY@!`R# M"$;P#SP@!\;Z"QCAPPWK2"\`"'[P#W=0!P_P"P)`LI83$4X<$^N@`5+\#V%@ MQ5B<`#ZL#UPL1EZL2,"0#H4``(I``$;\#T80QBM`!Q'0?RM0!RL0QG3086$L M!G7P`7:<2'$\QV]1`AC9`"E*2&<,"`'@Q"GAQT89",\``$"P#B40R'6P`):\ M&('@!/R07^M``:$`#MH#`,"P`(5T#*FP&+@5RJ,L%@:`=M&0`2LLA1%#1H$X MC6+46>`D#$PC3A3$/`B@DY7##YL#2NCP#R8T17K*`8"P28,S`L+91QA9GNA@ M`T3C6HA01>>WN<901?\03#3AAD>@"%743N@P!P6P:;',!#%Q>L`!!?=`3`*` M6V%H;<``!7E556>@-@Y57PM052Y@,+"Z#F9,!`?A%L;00,',-!6$!PBP#H6S M&-3,!Z1C#$$$`3V`"PD@!^XPS2G*!QJY/E!+J0W$GNCP#+D##WEJE&[H`.O` M``G;/`J)#B$PK4R'H,8L1?1I#$OFAA%05;/PSC?-FJ^U#_[@I>PI77/C+W_P MTC'-21+P)G)<15:05SE]N$Y-JDY``+3``]3XPH4C:OQ$#V\H##%[+MU(`"N0 M#"L@#<6B%&L=$\3@RO=YRJF\ROC`UZKJ:.G0"/@A#@D0`K&8C*D` MR?OG4T!""?3`U7Y$#`O@DV+4`Q$[`?<0BQ$QU.LS`#YU0J5,V%;45U`@;V%` M#^E@#8Y4.#[`U_"P'1^@DY$5!51M#(?4!PUJ#.G`-U4E!N^\#B``LCJ)S=^W MV[W]V^EP"8X$!UKAQ!91<'X4&U":IWR0!?^,#F?0DP^92X^]'2'PR37F@`-"4 MP465Y.O@`0H!0X1>>X0^-UCXP M#U\-6J(%IMYX`]6C.ID8B/=P!`*07TO&0#_HC7^@`.NP`.]Q!/JB`(Y&QYEH M#$X03>[@2\#L.TX'`!UN(6 MYP[NLD>:UVR.#F7PYO6EN-/R53\@V7D%!9/.SM$P1`[UF`U71'Z`RXX[/54% M`7T>%_V#!5H@P!L0#>O@-HX+T4H$+K]``0#@"Q2]#A-P1B4```.P,0.02%6U M#PF0!1W]%D\03>8`/"S://<\SW0P`.B`#`W185+$Z`K@ZNL,)'%`WZY5H8>4 MYX0N`(CAAB.P#AP`1^$A[7^`40DQ0X5CQBGJ1?(L-K7:TVF^YCB=WTRCGJ%N MY,N#TPS`!QS2Z(JF`!'V#R>2#E@RJ7QP`.4.`0'0+X&P\-*:#KZ@\(`172:] M'1-054_`M'IJ`!"5#J7@2+V0#J`073Y`#@D`'CB`"Q2]`\90!S'PZD`R#,$6 M3060[ZC3)P)@S_BLS]W$S_[.#M#@#Y)=.?\`[Y0.)#=` M[ZO42@L3[^@@Z%F`5-RQ\@(@-C4M\`3O%314JQD0Q@VP?^4NY:N0[XCQ)B!O MI`>)]%`%&>H)=;1`!&_"F?)(.H+^PD/)-/TI#"!:[$`R!_"`PWU"!&^M%'T" M`'*P0>(0#="`P^U).LT#U$I?D8&%``+P!P:@&W11GCO/LMEA#D5OQ;B`"`AP M^_AI`,3?32LW],4?.4F_]`8P%D3/C$54?ZS>SU!0508PFPY5[BG*'7*&`.B@ M!-J4[_-0S@6:5I4:$C/D[KF?SS\PIG90GP90=O"`'20*'AAP34]0#^%M`..G M]UWJZ1-;EC.D`/&?"":=^W8^]?(\6&[XLE]JT0$$&AXX!\=!.A83<@" MB,](/@L4$2&`"0HZ&P"R+,)W+"0``#T9`AT)P-C,?PH9-)PP`Q@4DPS0T2)@ MTT6!+#V5`N@(X(N7+L.J+&)G99$=`@OL\2DPR!\%/@EP,;3ISMVZ"(N\11MW M[!"N!/_^562891V`KV''ECU+RT?>9B'D,-C;]V_@INL,V,QE]S!8*U=^/0#@ M"QF"=0]`"AC0L$!%#?^R##(&X4D==UZ'@?XUTA>>TQ!4LZ;C&ET9`UF>S(:P MX%\==KG%LAO$C@#H1480`.DA`("&WA/ M`%TC`(.(&4ADA!]V?MMU]UUXXXU3WE\``$*'`?\A!,E63OAGAP$>'+"(/WGQ MPPH/&M#1`@\-$*>*./2LPX$X\!@P!2X!``!%(T;\\]19Z/B`GWY;',"/(C&J MLL,^=0BP3B7K@+!B=U#894!:=12`W6E>+&+,#-*$ MA\`,R3B`SC\")&*%/_SQ,X@^`=P1&5K`S+$!?>_Q\YX"Z(!P`!3_:;&",(3> M8\\Z)ZQ3PB)^('#$.@,$<-83!FE$AP/T6?$I.O?LN1$Z?ZYP4%>!BID8.X&P MHP@`UV47(`!S%+">/5N)1YYY"=(AP7OQ3?CD.#<:D,XUV188R"F6]8/=?H;P M\<^?B1B"QS^-V.+'/^NT\8\C]R[BB;S_Q/N/(@<@8L@>__"@0!T$&$-``T8H MLO`_B!!@1".&[+N(-2M`$X@^@`#`AP\<>^S/"OA=BO8^\\`AM1L[#I/Y+OOSO#;\;PKXY,K,':X MX/+5,];7PLQ)VXSS!3OW7"W0_";P)])*'^1G=E\F6R<[51K(+0)T0(`+DDU! M$38Z86Q5#BU`G)GF(FNV^0"IVHYS)8(08)&93<^L0^>R5@3^Y#T"9*$3/&TY M5Y`Q)MYCA`'=+7B/,2U"C-D"QQA`"0`%`,"V88A)E_>Z[=(B!(\***XFFY$) M.2HZ;*R3R>;242<":`SZH4"%A@ZR#PEW8`'(/@+(,05V#*#IP`+)]!$!('XP M1,<"QA30PA%*WH/-(-D`T(@=WHSS0"0KD,8]YA&)`2*"`D881P+6$8\`&A"! M&JE#/1KA!&\H:0#.X(<3%$$`%BA@#@0@@`YH)0`C$&!$[X`%`%1A(2,HH&YA MZH(PE!*]6#V,029\WMP(0"@IS&@^\(%%`*``BS#8A`O\`L#=Y,,I^'Q*A40T M(CJ`D,0EBNLLX/K4(*SWL)^U:!T""%P1;9*!*NK&$I(HQ$8$<(]Q1$*-!+F' M.0:`#$NT<0#1\,(RI+.8/=FC#@/PA2D<(#'=H2,!4*A('W*2!5PHP$6"*@!K M2&7"'MJD#D@A!@)PP0Y$5H0+C!04[V0X$CZ:Q3J#\`$I>-6GOP&`5BP"0``, ML,I0K-(FF9@7/`)7$13X0W0]"$P=JB%*SRR+%D%@'`':Q$-@7`X=T4@']!1S M!?_X@0#8NX8,@)&+P,C#%8W`)*P,T,U_?/,>T5A!/@YQC]>UB`X"($42HCF/ M4LPA`*18A##J=K?%$$`17C"`.QN2`%;H8!ATR(`(-A*!5AR4#A%8Z$ET,(Z3 MB(`<=7@'9@RP,2+X8Y2D*=%[HE/,PA4P.UH5_=,FE?!2ICG"J4V[RU*?7G$<^38A4:F+O MFGI"$P*BR8]ZWG.J!*@J.V@Q!!XQ:'%66&9D!A")9[H"'9O3A3P6.`!=W",! MN@\Z3%`+-A-T#J*8[=5B`@AGLX'^DPQ@`F+(L%>(^ M$T"D(1&H"#Q^Z6.VI>,4PF7;(JA@@%,E@@#IZ(.5*X$?'YCC/'7(`2X0@0"! MU$$&_JT).M)@CXP`HT^!((,`_M&/RPH@23Y)S\^Z`\;`\1(=7;#'E-+QB'_, M^&$?4`T0L(N!6$(!%R3@;Z!M`H@`ZZ<'L2MUBUYDPO[.1-!H<+4!8`UF`PL` MP5-N\.X.0.17'B:&G#OEGA&02'0$XY>%,29C/:S<@K2/?B&Y+AU&`$;#X.H8 MNJI`6;P0G^P@3-`7`J8PQ9&..@!`U`VY`9<;$@/F#O@8Y2Y+B%;?X'T5> MAP/&7>[XW``=^@!X%H+IG&5P!4QB$@9#_F$"133`=VG-!0$>L(L6*&!'QI`& M.JZA"D480P3%(+HBA"%TI0L#Z42GDS"Z(YUF60):5SB&$53Q$V,8H1506`<. MKE#.;9XS&DGXPC`048`C^,,)K?"#"*80!2D8`$:N8!G>H6!P)UI!`5X'>P#\ MH(I&^,$5!XCM%H9A`'X8WA6)\`4;YB7Y>4V(%0I@*`]*T#>VNQWN?W@'.KJY M#G6TFP")L,6]-L3Y`0F'_H7@Z]7T<`6"$# M`DZ8`(`P`K!<$6)B0`$B@`@A\?4@+@"B(X$"(AF@(P)<.W>`/ M2`@!/#@-_A`((+AE,O@/[\"#P\")I?@.HFA[)<.#L^`/MW`:"G`++[0`MP`! MLY`.`J`-QF`(F%04AO`&_P``+.@&\X)5UB(-=V&+OTB,`7",R3B%F7`$1Y`( M$S*$MM=@'%$!UI@(U]0(OL`P$30#"R`-=?`".P-\V-4"BU!YB^`(O#<..I,/ M)F$!BT"$_U`"VD8`L@`#8"0+(+!TZ&`+_2`.^1!D_8"$!.!#5Z`(QU`3%D., M4#`%@W8/%F`AE@")TO`'4T,!3!@"T6@)R(B-=^<+>C`OXO$/-S`$0Y`(XJ&- M_P`"#4%A+?F2XI&1Z'`!_0`+.J`*.OD`_1`_PDB,^%&*^]`(CI"2ZG0(S[`( M&VDST?`'`K`(T>0+`&"2TBB%BT"%!"``&2F.#%-\B5``N=`BZ8`-63DA6WE- M,DF3V;4(/3`(55@AS;$."D`,`)##,%4A!+(Z"/I**/J5`R=*``KJ1U M_C`2ZW`!J2!+IXD+UZ6:C[0."*":UR47+H(.-^`?1N`/`6!"83F.+Z:/VC8! M4,E[Y^@'"X`.6\`/*Q`-UY0(EE`S%H-)F4<'%&`"@-`#+;`K@^`*-1,`@U"= MQ?@$)L!VZ$`#_G$/[SAY`L-[N)`[H6E[/9`[XJ4(IH",@,`/;U`'$)`VQ?@' M!J![X_E*'_`@_8D'Q-&?6%`'%("$0+`$2Q">-2,`?5"@9?,3`S![Q5F$V,4` MF0$+((`.X;`/2[`#V?`']B"3HT8'#``+,(`.S[`/%H.,Z(`,^P"5-;.<)[`" MRK`"VE!S!,`#WXD`/``"!,$#*U`'!V`"K(`.J+`/2;`$AZ`,XW``,HH.G;`/ M"'FEXQ`!*Y`-4.IY;]<*'HD.#^*E\;``V^`';K,,)(H.>^"E">D*^V"24OB6 MV%4\>_F5%9(9>DF7(80+4```*O!U`[!U)E"6<;:CJD=YDP<+)8`./+`/F'=H M^,`^8%>9-[$/+:0*,!1SUY54Q!`K:&(`%C8/JN`5,E2J=L(."%`6:X(=!>$$ MQ4-NBK(*]>`H^V%"3$0CR#`.HN,H^L`?^+``T$`'3D`,7H`/C/";,,D/Z[`# M6\00$`;+L('N"V#*L&#XL&;\L".V/S$#V^`(PV"[2`NZ2RNZZ2`)`("Q;KNQ7]"7 MTAJRC.NU?WL`)=`B@2`./Z&L==!WZ&H'_(!RWV"Y#@"ZG"NZC%.S\XH.P&`. M=<`!L'L`LFL`M`L`MHN[NFL`O.L!HHL:C,NQ?6FW!X"W)6$'U7N][T`.HK,. M&'"Z;'NZ;HL.X`#`6>"R2'NWG6LA61NK"!"T@_`"`>!E7]`=0;L(?MNU@3NR MBI(.Y6"LR!JT]ONQTYJ\7QNVS9MET`L`TIM9VVLA\MNT4ZLH"F`.=``#&[S" MBR"V+TNV)F"V5?DH_^&L^-"XC\O`JP.38=4<5U0?>*!R2-RU/LR\SOO"TOLM M=J`/[X$/P5H?\+"0FG2Y>-.O_RHD.*"X)E1.NP#&BJ("([PF_%$0([L#:WL` M4;8#ZJO'!8`.)?!14`Q$]5$/&!+!9%%MJ00*#M`0',"YC+P(!`K)#I`(=[`? M$),("Q$*C.Q>8:4`B6`#G4P0B;`@KKHLU$%M6855!!``!1`*GN!P`"#;-U7S-ZR4`U#QRZ*`%T;P. M#'"ZL8P.4!#-H1S+7H#*'78=6%0^N;S+ORE?;%0`L4,!Y'S,NX++KMS+B4"5 M.;4.Q;%H.N$%_G`/!Q`[@,&_%6&ZHD/,R786?"(D%Q!)GK((\$#.ROS'/,`O MQ=%I6=`[U#0#]B"%$BTHGM<6->9]3F``?I`"&?<`?"`!&7<$Q?,%"J`(+E9D M*+T.&XT2DI`.HR,H+%<'R%`Z=9``.W!-LN-,%D"4AG(/1T!E`N=,44A5R'(W MN'`$(A`V\@$CS(8.HE`/&T8=*@`:6J>60&$$VO`3ZZ`!#P(K#&`/1G`-2@JT M>\D`!#`,"`# M@-`+GJ```5`'*S`)"K`->(`!@/`+J;W:$=#9GTT`AO8'YI`.?C``X#(%@H$< M6?`/3J`-ZQ`+!-8*X/(4:R(ZQJT-Z1`'4^,&`Z!UWA`87HXY@Z(`!Z.KGASX)B)X"BSXUE)(.XQ``9&[F MI[;F(V`$WO#F88P.;R`EQ,``=H[G.+#G=#``ZZ`"#X(.UM`/&H<-A$X)``DS#;M3T)?E``QNT-?W`- M&H_IHE,2QQWL`Z!"JI`.8=`/,H\./>`N_),6E>D+[P0;?*WQ@J';!V#QJM"' M#^`$O"WSZYX.)M`/(@P`*S!38>D'X)`+#38/J\`*@`#D[\`#7M`G.`X!K%!D MBH!\^!`+`S`-[Y`+&2T"RB`-Y8``:P`.&](0)L`#74`')6"D8J@#%'`'W0`( M?$\'V,`**B`,=%`.`@`-T%`,@X`N=@\._H`,=5`BU9`.G+"6"<;I:VX6WI#S MEZ!!?/`40Y_;6=#QP,`'3V`)><'VT^`. M-+_NX,(V+B\;?H`-Y.D%:ME"V)`.AN`>?*WZISX!("_R)*_:ON^Z@Q`,P!T. M=(`/A?$+`:1S[E%!?%`$4N`D\>]WNIT%6G#J->`/R<`',:`(Z``([0`#<@`0 M,:`(Z``(*@#U4R#G`J!V$>2`$&A`CH*#(.188#@G`J!B"J*)T\A1G(!JZVRM M``8H'P$Z!K(,"C;@7[@LZ;[\^^)E4;DNP_Z98-1`IZ.>)B`!:#`%T#H8LRB)V@]@9 ML'+%F)%]`(X9X0<@KQ%_`0`8^'7GP+^]_^P@^&>%0)8%P/B8P33)WC!`=0K8 M"Q"@CKE)_YPPX+.%QPHZ!WBTJ&/!W]W0HY</'D6VLL+?(WR(G"L8Y M&92/Q)T7)07(4<$#1ATV)2'4*0.;SXS9M1D[YH&'CA0>6.@X64='J%Y___ZM M*W"^;VTHC%-F"LH8,D]9B@P`#P3Z%,'"]4Q<:!MCEV8H3(< MSM'-.BJ,&,XEARASCS@#W#-!,)=(8$T=2%0'PHL)RHB.)S5:\UY\6067.P(H"8!BQAVP"+8*'(`(D;\HP`PF=VI7@&* M9$J+66;>U-9;:AKPSP.*OM6($0C`9XFNNNO:(C1+#E#%LL+3LLTE@S(DQD!&!PV+>&.$$8/\```=*ZSCIL"9 MWH`.'^ID`40B>RURS`![]?`'`'8(L,X#`_C!SR`\'#PI!X`87,O( M'Z`\V/Z(3?:VW0*`=A?"*`[)Y?IJ0CR0,XF*O3,(B@B&F+R3"#_9@A!'P\3D`Y((``)@&.BBF M#R"DH&+[