[alt.sources.amiga] OMDS - converts OMD output into REAL source code

mykes@amiga0.SF-Bay.ORG (Mike Schwartz) (06/28/91)

The comments from the source tells it all:

/*
 * OMDS - The 99% solution for converting OMD output into assembleable sources.
 * )1991, Mike Schwartz, all rights reserved.
 * Placed in the public domain, with the limitation that NO printed version
 * may be sold for ANY price.
 *
 * Description:
 *	SAS C 5.10a comes with a program called OMD, which is capable of
 *	disassembling object files created by the SAS C compiler.  The
 *	only drawback is that OMD prepares a "worthless" pretty listing
 *	of the disassembly which is not suitable for use with an assembler.
 *	The process of converting the output of OMD to source code by hand
 *	is tedious and prone to human error, especially if a large number
 *	of files need to be converted.  This program will assist greatly
 *	in the conversion process.
 *
 * Use:
 *	First, you must compile your sources withe the C compiler using
 *	at least -d1 (debugging info) option.  Then you need to run OMD
 *	on the .o file created by the compiler to create a listing file
 *	(redirect stdout).  Then you run OMDS on the listing file and
 *	it will create an assemblable source file as output.
 *
 * Invocation:
 *	OMD listingFile outputFile
 *	Where:
 *		listingFile is the output file from OMD
 *		outputFile is the file that OMDS will write
 *
 * Limitations:
 *	The SAS 'C' compiler sometimes creates code for twitch statements
 *	that cause OMD to not disassemble correctly.  OMDS will complain
 *	about "syntax" of the listing file in this case.  In order to get
 *	an assemblable source file, the switch statement must be recoded
 *	as if...else if .... else if ... 
 *
 *	Also, when OMD generates data for the initialized and uninitialized
 *	data for the .o file, it generates a "hex dump" format in the listing
 *	file.  OMD has problems with this hex dump format when it looks like
 *	this:
 *		oooo xx xx xx xx gg .....
 *	Where
 *		oooo is a 4 digit hex offset
 *		xx is a two digit hex number/value
 *		gg (followed by a space) is the first three characters of
 *			the ascii part of the hex dump
 *		.... is the rest of the ascii part of the hex dump
 *	The workaround for this problem is to edit the listing file
 *	and delete the ascii portion of the hex dump altogether.
 */

--
****************************************************
* I want games that look like Shadow of the Beast  *
* but play like Leisure Suit Larry.                *
****************************************************

begin 777 omds.lzh
M'@XM;&@Q+3X   !J    &(?:%B  "&UA:V5F:6QE--[]_GX?_C96- NZ]^6PX
M/Q>ZS<]BZN;>)9L=3Z_JW=@.'\<&P^59NXP!WW\_U;'"VJ$]Y3E^ZN^<JM"^X
MGP((9AK.+6QH,2T*(0  ;#D  /8%W!8@  1O;61SA%?&8N/?\,> ,20 ^.PWX
M92, =N'O EL;(#=8T']1S"HK86=77U86T%6X!*LAT[8)O:;_5:SD1EC:'LOMX
MDF]U4@[9M>W)Z$OVI5%SCA[F?Q^N<#>\?)'5@M<^S3YI'. FFU1I'Y@<^628X
M_"><SK)W]-]!"^[B1GB=8W=(?-QCU'FX&IFVOH8P4B\<A771MY):_-&IF-^AX
M9R0MM2&UJ.D'/:4ZN!V*\O?4>4,&2Q^@<!VR&/]*OZ'\C%S/&3*S\_-B2 @AX
MALW:SN_M7R]1X0[$Z\]&+_I9DK.IX1[!+V[.]Z%:J$DZ"P@?M),Z*3J.YLW)X
M/]UJ8 ><;^M.(W3WCY^<85XZ5GP*K;OVP2&^Q<#SRY)Y;_Z&6QF_;[EYU63@X
MW-M")D_=,1PHN&]K#A!)3E\]=>B^SY#-^BX9_RXU16A,B"MUIZ:I(9_;KOW(X
M6-BVID=8$\=VO/)36/BJ=E'C<Q@5I&5'^LUAURTZ<27^5!3%J?I=\,VYO_35X
M$?^R*KGSUV4N<KW!*[,$^2< GN8@)0FAD^#!)V?!0X.\U.4[) HVGQR#RZU#X
M>T70=HB8J?E>]_ <)UD\D\?RYMOY^"HA3>\J;!*U/48)2O[K8%[^9FX?/\53X
MND&<$F:?>9JQ84JQ=5]J?6-1N[21+A4C@#3T;1IZMW\Z:^'E\,5O-LSX*KBIX
MH,O^,NAJKY\&&])N- 5BF_%"*YV'.1O3]H0?U<L7SRW2VUK'D%F>[+T_+$!ZX
M*#2.L'*&8R?MFV4O[U"CK$,IMX_"5U291_:;3U*VJN&MYN1WA[*GQN'/_U[CX
M?YI]_8WETIJ8G_>8HV"L*$'@7=P[G3)1<#@-Y:CWI1L<_1J95Y./7!X-0>1BX
M$2<9Y,[T0";,Y(J9YNC7L7$AG=0H81-T89]GI7H:^?QUX2G\RAJU.6&SI^QWX
MI$TF?.%O_X7PT'[2 N\RVK/9-[QJVK3&WP6!]/YXJS UWIL O^\>@+;D [2GX
M#2 9)8,S%=MP$>0: QS)/+=J ;<Q:D_NK7(_"/WVC?*X(CH7-C04,T?!S('OX
MD'\Z]3ZY\PVIZTL/D?7J%^'()9-!_+#;";]64$WLQ R-WB)O=6A;__=-[/^DX
M9#$T]C'T8ABC)I5<\'ZJ=/1%%"G5L??J.X123VL5\9>C(F#57$8O>72D?<6YX
MK"P2*DULK?Q=5FBZW]+*M-<\?HUCS[J<MO8V#,QT&WBOY/!F^1Z7-WO@/E_"X
MKY? :."XS0<<AJY8R__[!**=LL9#+Y.#%YL:7!P:^E^7===_UNBQ"70(_IR-X
MUC=.Y2.+_,)O.O;@LPY56^=#I[;[H/T$]"(M1STYROP_C/J[ 7C=5;U-H"A1X
MM4^+>[XMZ@KX6A304 IM=<4YJT%/PHIPN J1JH?Z#9:E/9;^RC=TF^I]EE3CX
M7M3:N8X8\A['C;7XL[+^\_JR0+] # N%%+(+*J(BK N;1Y@NEK#2^.?WS8J.X
MJC!146V^,#Q2O/YO=U2X1>?YK%2D45GN(HX+^HKUL.*@>M:T3$*DX2L6>:_UX
M,!0/)3J.%E)]AUP&-$E8O5<!SB:YY#K$3D600/]M5/YT738A;_+!&F>^ C;LX
M7W=;06[:EKB$O)5!>DR6Z2-WB:JF3AV\V4(@4\"\/N;:ZMH3H'7+R+Q).9@JX
M<6>Z,MUD/<2R;78OA$_\1.(&FYMAN%#H]'SU*FX_,N)'3,=2;@U4"%D^=PD+X
MB#\Q\]#[F]*I(:3&^YDN"*8EZ)L\M;?4)O"'JG#DM*"2'];6I=2UJM42P=)3X
M.L,]P QWBMR8*1&&BJ:OK@#L)TXM/O"5+I0NC-KE[0+OH79_TB)BZAWEA =,X
MD=.IMZG7PW0ZO=5=>I@KC3!3/OKS '9+4A;;+TY*,ELJ67$=BEMQ5#A5*>N"X
MBK<KUKJQ-&?%*#N/0?93';MDT 7C5@7/>,A?ER-"97:[1AG'BS;^%]XD]T3;X
MYEDV7Y>D$LT]/-KM^N]B->DG'259%AJ2HEN$M#"ANOM@^FB]31I+Q=U"]T;\X
M-LF]'7=O4%1#9+D@/SI'1")>'/7I*!*[B:J^RW,."GIQ1YNX; OV>=N5G]<YX
MLSL_KOPSZ3I:1I4*EIN[X821[^^0O)X='[LVO. & M.>BM7C!Z/]",++K=Z%X
M[6;.:]5=VX%=0^;</2$O&1@V+,YK=Z)&+9.W*!J.N#7.<&H$@+VB&;>(-PIXX
M$](Z4.C>%+;N6&:O!!TT0?T=?,8ZWYCKE,==-$X$GGD_S,%L%_L&GB<%-G9DX
M_&/.E%)V^W4FG]L'MEO]4K\4-&GX!MR65F;#>+:.R#X<K9,",[<%O9^4"J7?X
MARZ ZD:.9*5GCB:/8:7X!O6[=EOXR5H)-N@>I[<71_O5.(J/G51XX\>NF#]3X
M](TOEJ\Q-$2[?0(%%,('@/[&$+V&_ [!0_VIO%%..<QX+TA&UT819]P!"_L:X
M5!EXK1 )Q\"7)>9_G=<VH[K!S_9GUZ</M]_E:AL3Z#5UC%DMK\)JWE@6;$ ?X
MEX$F:^T"W(@_M\9TV/]G,3\]PL]T4C;DO@'.^UKO?1C@<CHPGM7_EH=RZYV]X
M(;XLY*J"!G *C=&:,F4R"W:G58$ BV@DM !_<E65C,4*JJ3SM$N?<94AYSK=X
M]IYD^U"K;Q9[=D+?'0CX$3\OO@'K-:<+KN48#[3>4N5+NJNV&*)U1+=,'X=KX
M> ]^*8I"U FEF=%-;;>SWAOY*R<5I "%XQ>+_5FV4Z\KR;8F6'#(L%M(L%;)X
M,7]%O+S'S^8\[*I,Y=)SL/P6Y).)O0X@=Q7IYTSDU#:W2(67^"S&NA?J[[8+X
M6O1N?>8&"UFKA0-4/[#JHM#7;C9Y(T5/)C<^IO7UVC:F9=YTYU6<'9 8;7ALX
M%[0N:=>9_#L>*B4#VQH9?=04?W3C 59.&A"2, FPB6;-(E[YAZZ,K6Y.KJ>UX
M0&WS;=V ;MX0VS@[Y8_$G>:DH8R>C!OX<B*R#'UN.,=8W?_Z\X"^MQLP-^>+X
M)>V_YZ _<#B4%"6Y'WPZG1A/P*+P _N76:7Y&=M'A"V_TDT:W>XB@YQ=6=PWX
M.PD_J:P6%V]'OP&X9"\(?7(XYO ^W/P@\JQ&./0AQE,[!:3%>(Z%))*,G?U"X
M-XLY)KA*^";X1J]Z1^SF/-C=.ETW08Y8!OGLQT(C<T7B7<^/?ACO?\KEQS3YX
M9; .P9N&3Y?A^CT%,W-3&<FYFTN4O8T>]>70OEWZNG=N(>37T.5:1G=OHG*<X
M#QU[GT3O&4OWN90>\L+#1C-Z;ZVMB&_FH*2P!^8O+=Z U&Y^?EZ$NGH*R*!\X
M/+XD?P!Z![ ^>$R'TA2U97)"DY&%"F#,8MUPAMM(,ZI[_EX(I<7/38O24CL:X
MGY +1FO0G.M+VMA"+L_8=R:*,Q"G&URWQF/9:\A+TC9@ 5'B34/79$"0^(OPX
MR'>E;)?;(KX8XU=56(AC__YS6[8VNY>N+WIM03+Q6<6?Z8*T'&O8/\\TRF_*X
M!"%-T!\9G:@<T#WE)SN&I'/I4Y4(2[A[%?9\D2O.#YW^^$]E49KP9X[Z[JSAX
M;S.R_I=<=/5LOT@%S)'#?^1]>\]S"ZCS<^<_*"C?^QV^?FU](['PJ2+@#SCKX
M[]D2HWQ7V0\SJCUA'\_^(E?/^A??P,DI5GI77"U\WFF2ISB;/G>">) (IC_3X
MJKI=8YKT91GE_#P]0ZD&I/NWQGVSSCZ=\I&>7740<IT5T<W8Q=V2B=[GY[6FX
MDZ[[4TE(C^$1H>CU_(GI]G?;K/*O3-:.[ZI)-EH[5BX_39I[/_X/WUWM7UOMX
M^C])A;3<?#$ @MD+?G3'3>C),0'*]+B[,:-3*FFRT04DJHNKZ#)[XK(?L*;'X
MSBFJ=?2?.\+D?PBEO 1T"=AU8D,L;F,=*C15]'MY?'O6V"G=<3VA?T,_H-5JX
M&%#"]=>^X5D7JCMJ;AUIN+ %FUA_*Q(_#_A]N76=4F!=")L?^"+][9W;"A!?X
M3?4AP%Y1Z,ZBFJ.__C,["']8_+87Q7'K(TFHI5/>J\%:#FN4GC-U3F?-]57%X
M?O%-V^5>VL=8J<E^K'&B]YB./-.$J7\3(=-*$CJ+[XSZVAZ-:KY$2Y JF?+'X
MXMV#$TJ+9ULS!F^V4K5 E90#= P-^R<QOYJPA4DDKFOVV;_*D=OD\MLJO=N'X
MG@>*%I?N'SV0KQLM&P=W" *Z:]OQG%@8SZ>YX+IX5^?G(/UT'4*5 H;>]2%SX
M*=]<#I^]WG^?0%K;]Y5O!#K7VI*MAB<CJGY@5^SN6,;(T5L,BM;\&BB\UIRWX
M%6*7)5QIV-G:WV]FQT@U]_O8.S'+&V2N^;R3YF;QLV]>Y*_I$'O9S"1F<$USX
M%UR ND"4#O)N90RA*T@^U!YLK2>)'K]=D'>C@F6NM7\M+Y?4'5\B8U+VL/\RX
MSE++$C8R>9$_0R/Y#P]2JS1^_])_VIPLIT@XQ0S\H<K=&=NOX/I]*S3Z<)(4X
MB(G@R(TSEE7_T].%OI_!ZK#7?_'06''1X?>@8TDPY .CA1WLX!3P5"[WV],NX
M*<^B/Z4G_.I8/OWV'ZDV+%J"4GTK7HKK6.'UFS/Y>WU'>+A8DJ7JP$E/&5A[X
MC^.KJG"/K!V9;S/@"5YC^OX3-KS<#H9]?@4.F<MI? Z%H%>._#-EA9W?,5;1X
M4A?\1*LF<Q=$#ED[EW[3BLCN'I^-O%Z7[IIK&@V_;_M\[@X<+@KOH%8-4S4'X
MK*!I]0-R3H8WG5^I@CC*A[IZX3I1<L41F\_5&;C/I8V!U-YYJM'1CM)$J[.FX
MBI-P $<W7%'X+KZM 0/&BT8U7B:8:T,BRG^H74\X)H:PY_,MC&WT.?U\"DUHX
M&W85IQJ!ZY.V ;OM&_Q0K_*W;PJJ=[T1U3QPMB7) PTRG?1/_0#'Z=6J6:^DX
M9%^Y?R7@MQ?/$O/$' <S8\;A3\#$NS1V"=P=7<GV;#UXXRZOU">R];]7!64UX
M5%Y^CJPAY,BKZT^>ZLQSZ]P%1B'L(/KL$^U2(K'3(E*/A9]== K@6@:FG]KEX
MN7GNB_I&R/^\M2'.,KX_RGS_&(DE!*YYK'[-VGKG\R;V-FJZ!4290-TG=H7)X
MP#!F4UI-6!:;CY="CG+J<ZD??*V:X.ZE7G0G7[-P>WRA-FUH%[$M&7>?DI^%X
M(0,HQD8#QZ[+B:\/K'6<MZ9/0YA"K9-PAEMN!LUO#OQ=>5+LB_$-;V+%-?ZXX
MHG!X'U; OX?4W_P, M.'^%X>RY1!^"LNNKX;X3V1I_M?O25:Q=.)G=(1R9NAX
M!K2G=._^#V*4HQ__(:S<\>-.QU1=;FM_:]QU'Y>5<H[WQU'Z6?W&\??ND=U6X
MK&XW0;G%B^#LV-CKT40M,]N;ONOU7_I\2N[N-IF J'<Z1NU=GJ3ITX#?MSI7X
M39S_LZR5DX9UZ.L=,3J\H5X;Y);!INO)<J>20^PRSG;WO;\;JG4"%&!G&SH1X
M)?[?U2>@'NO3=XR)MW']8FYU]3F\C;#F,\M_NX2P;_: K@5:[' .;]6=]GE\X
M93"IL0_W,E9?>HR]Q[7*C?VD)^@54'65@^7.I6$G+]5QTD"OU7DI-:SLZ7FJX
MB5AHY7A%36SRDF/$_6_8%VNE)6D>+9\B5^5Z'SO5U6B=8,3AEF[K2!!7[MSWX
M8JOE\]"'-@@YP6I;$&6N*(/_QF[YH(]_X'IV1$ ]5'$*U=N0N(]E+-C'=Q,ZX
M.5:$I"YH[33\>6Y.0\C7#P_Y_D#7T ]\<0V/MGJ[9G=8B=;_1VTRYK?6!M;-X
M_UL_Z</Y#2;V+,=67;B.(SX9J6'W\F\<,UI7^5!-?>?B')"5E@,A*[>69^)]X
M5X$E92^E"_X!+I0C*G+',=RP&.>L@/GVAEAX<'XC]T^8^4./!.SSZ_;;_\=#X
M\Q:B9N(*N].PQT9RGO7$L,/7C>3,NEO60752"X)_%7\=_\0C_2?EJ%>#[];=X
M]_N)3<]UKI8]BH%PGB,<MY/'OT)WE7[CDQ?;"CVI?F\F?]=T<BC=6>=Z<8\>X
M47G\:A*_HA6W4F)I*)MRC!?GLK.N5TV\8>\7B][=(B[5=."+9#]G8F@D7!P1X
M8.=%Q9'F[16"/6;A'GT72B/WQEB]'CEPO'+D!OV5?,7L'],L4O2\8LC+AV&!X
M[;R.R^(?]3_^AZ:#_^O(V?]!/9Z.TNJY@A^FY#_OB+7(64<K=O?'-(/97SU[X
M1GLA_]N3EK/<X"8+G1_UR',TB'L&WNI[3;1/LOAXT6"_7O4WY,HW#<UK62CRX
M&YH%'291@68ET&*,Y1/9"C@5*/H,811\F12[8G]-3@&RC6ZH%$H[6X.X\A;VX
M7_NQ..DBP$I]+^,%$>]MD)R.FU^@J=_^N' !"XLK:SHM-(J=[!]2&@\.\V3GX
MY3^U@^R[G?C4F)+# =Z?0=@'OSG?W/+Q]8'&M7EHBTWR/^O>'7GE5++4ZME9X
M",8&T_;:1&90G*?;[?O)^*[T"(YVMXWL1#Y8-92EL[EA!-QVOOEKCH:NCGV4X
M2^Q8\N9>W_]L?_4B")D[P<2;BB.@./G_$$=+W1?OW"?P9)%K@GA/&H#OCPWMX
M+4LS+N^@/A/7+().89/G%EI\;@?2N_K:\Y@[(WJ, M6=P[!Q0C&X:S>RV XHX
M1W\EB']NUT>W_XNFG0?\=0S<< F$8ED%ORP/G40+#L"X+.NX9W/%:I F \23X
M=CY97&-\F[O@^-N_FRB4CG'[/)IRB8R&>Z&^![@N [E=ZD0G,L?@4AS%K@,_X
MB&\E.F+BILZ?\[8E\[AD3]#FO@&F ]<>+ 3R><2F,W^T75F+KBHHVYS[YW'&X
MP7 4;>[BO*8*I3$=YC70ER_MAR81G0F"4[,L##_N,L&-=H.HE>V/TS="[+OGX
MN\LY5>+[LM>Q<QR*TW.8+D[6U-Q? \;K*(!]$0#YA;[+G]PK!K%#YSSW;?7-X
MO3[;>>0@Y3]0#?HSVI^0==ZO_8/\MF!30^^K?Q ;=Y_HKH6?8C!%&_/[BV$ZX
M875D_MX=6 WSE5#_-K<6N_F4S+>/FUWHNQJQJ_?P<2&WHGE56C#(/<O#W6Z/X
M+A==3^H<T-SY?O;YGGPKKP4*CX5S48&^1?BYF.I\;=P>-4)<M_(>2H)'VU9AX
M[RK<S29!ZG+!Q<^,J4D?OPRTQ[3I]>3)\;(KJR&S>OF9'_3HW9G.TB BRT9 X
M=UW(#[[@#RF [ITADZ6,3YB8'2"[*7'&J#)\SZK\=M'?#PV#Z &'[H,LSH?>X
ML_0S024'SK3N!>[6R*+9:?D;-:"P.7T!S#K_M;Y"S65HR6UG^GR_VPKO3HM>X
M5@J'A:"O?V!2*\.$]5B/IDB956$/J>X?B[A_^LR##_3ZGQF/9H,@DC6S+TW#X
M5>1NOM].+D<X=6A$5E#6*WNYQ>C^FT-LL>#OKN]Q##T#-J4+XS<-W'SX1:@)X
M+!R,->&OE>)HZ%3#^Q%P$:N$(H@GY07- G9VAYX9X1_^6QJ[C$]R[!X.'E^^X
M(T4NY$?H'P;8#^U$;H'UMH/32;80;OI\:T/P;U[F=$_V$EPDSQJKY9XT_+_;X
M@B,EZ[6'V\*&/5PL0@-&;^6'J-W<I2^>Q:X>?+,@];2:303[)A^NH]9X3Z,WX
MT;)*62<?,I/K#DG&DB]%X)'+H)_0D>-S^)B1M=?P+S*#K^!!&5ARPW]TQTC>X
MG4+?:_!X6(+Y+JB:$1U/X&9#4+QEK>;L-Z$L7[O:<#]&OI:)[Y]ZV90&;_RCX
MW?2[B[+L;5-;M\I!,Z_9($3T/%*ZWFZZI[)V:7A>:PD+:QN!$OV5\C/XN<H%X
MK=\8*FOH4T0'H%Z[0K6]6!EQGU=T@8W"<!^@R%J\8[_5H'";T@8[VRH_\^_'X
M3:F#.G^Q(?H_;^&!QE\1;P(':YT2&8NJF19*W3N VG(F6W^?Q/A63B;<1)OLX
MW;U"4F+3JC=Q8;\&X;F&"0G0)'O>0A,]XLD2 Q^-+=C;65%SWB38=V?R37H7X
M]BQT3'N8:HZE_2;U,/KW6B*;^5UV.,O=X*W[[-:<K>S^?,_CZN4_94^XDY.[X
M/J2R7"J_B9WQ=K?BU.1@ ])>-^!G=:D)Z$[@W);[(( E,MI.)!FR!N?;D0(OX
MZT@9!W(Z@I<G'@*#:[3^YFCC4B"G4$42@JW+%H.IY$R+XTMMMI7NE]P_(-;\X
MEO$\?W8#;^6AZ+J328=C9 [1H*JJ+">Z0">52J\F#=TP3:N*8]ZGXW[P&I1'X
M9./RB:_\P1@>_>I*6,9CIZ^R4>,4R*5F$UY19NT:'^AS^-VNH-N'H]^Z(S/0X
M9>*6]LCI\GJT5D.8,D?'Y#.@OTV-2=GJIK-8U9-3[J<'*%J'(Y'G<@9JGV]^X
M!._DRTU_>9)8M%KT#]?@9$._COE+H)^/X=X>83D/\</I-QCO\:!94[]3D^ENX
M-?2W$(3Q(ZQCQBP>/CQ_+EHO,_LGVPN'-DT.:"1?CQ@A/'QG=RZZLH[QW46#X
M7,>RG$,W6O@0(%7.6&C']=.9GFN G*='^TP@FZ.$#I.VON8\H6=TX)(SN[#[X
M\^UP@%3J%B_9F-8)&VG+0UJAXL*PN22VX(28L3\38/1U<;S8WU\HMP/]HVR)X
MT=S"X\UPA8*]8!%XB]!+!.]KA1GGF>[A8WZB[ 8QJPC&*<'+S6O;&+4KLA;\X
M@I:YBT&HQ2GO; 9I=8?=;I<=H:O!DO@#+C_O<N-[*=;IK;&?!9,B.*4JG&+NX
MQN$.R'O@U#';<+@)_-V5W?*38;]=6PE//:ZKZ&^]$JNS!G.G0C,G8"V6+-B6X
M< >?$MTP2T)^*,W[FWB3"UT^'*L3;$H\P2_S;YH+-O- =&<T.>NG._:5\J>+X
M?XJGL!B_*5*GGT_Y$VJL58EK!_W#ZV;9RQ?3N5DGLH>!E!\#*K_(;7:=#?:_X
MS S:=#.BV_L>Q!6IU@ALU6WAFP?^_0SS+V*A\B]:R[D50S%TGB5.!<*V5\THX
M'3/6#S9X5QT]<2B0\_3V#Z=>*UN%%ZYS8[I_#WQZLE=-6H4;2A(D:%53JT%KX
M4Y;HX&9-/7(?(\F$EKK-63]C.A=6A,P/W7P_VVL/_*&D//_9-V>->SXC%-ACX
MHE7M2*O H5:YL,<T#X-8'[Q=_V4L/CK"?G*A/+'8OQW_F_\?VRKWWG@O7'%LX
MA9//6K]8[FJE4NT\:L37X78_@*P_5\CL;A^:G,+%GRW7Q'^Z/+4:XE3"+/(.X
MR!>NP!<!\\3$YF ?NTT0B_[_]B;W,QC]E[,4+:[>R$&+O,Q8W,/NA\-_\&<^X
M$@(VU/T_F7SRH#+ )P4_+F3S[17S5PBBRDAR!V,Q!V,DPIT6DB5S67YSI<%KX
MV.SYL]N-S.28;*7&F[].SHI%[D1%\I35G?TR^KL9J@%HEV.J&4ID@G.BFC(/X
MS!FCL@9LOF;OF,UV"RF;-?K_=HN/=?[J#4K:[Z=KQ177?6)<O:'"RS/N1VOZX
M;2/O%2^8 3(KF4,]"\>?GP\84$<^/:ZA'$MUJX/"E5U$,,($?$)B/4F59^ /X
M87-F$Z[=-CA\>?"VH%/ZTT%/4_HT6/WO8?6VTE.0[K?#5J7A=S\QBMVIG"\YX
M8QAD7;W1"QO$*JA_U!8ALT%;,95#[3ONV&H%#.3GPLS1798CKT"N*OO9DC25X
MA_,POJO#^JX(1%N8.(=09L>4[8\B-3WC-0[JIL0LICTC,:P2@>QE).UUX/W*X
MPOTE(?,J!.L%]_O'(NLJ418^CB0PMEUAFM4BW^.>E%Y/)/@!\B3_S^K%CWHYX
MNX5N7A7(+@=>\@Y/EY@61O$\*WX1Y^3E/[^4]\8DW9]RB^-_;1=>7N'!UX-OX
MO+FUE_:[[R&"_2S8U.MH5,T7*^8M%,GMU=: H*ONM_H]DK=7XL2GMFT1J*N)X
M7]YW!^C>&5=27\-X]=D/F8'?(,Q'R2]"E^^?9;A!U>>]/I"1W^/A?YR=KR8/X
M*U"60=Y/IT+O5#8KGO_LZ?8)\4\\OPE$)L/\CY U#'ZY8/^OBU0S>,47JC8SX
M-@1F\9OGQ1A>K@Z-R@9=$-U$FB[&\G 4?=]1P?@LE'C)30I!3-'NY><,V4Z7X
ML;8#G+G>D_46[#J Q3;Z4[1#5[#K(=Z/,,^&PN][RD]S)-%/OCEZ8?"]@.<MX
MS*C@/3 E8@:_1&YQ<1G&  "\P;H +V,0 N)1$X7DR 7D%^H IX+4 ['[R(%*X
MN@%\(@(H$>,@C=UKJ1?!FA X\^_22GL!@!L+L!^^P'-&"Z=8#5V#XU@?2F!\X
M\RMSYAN)C _OL+^HPF<[#<'L7G+(?\O]9'PXS#4W!XB9P6,8#PQ/'6-A0V55X
M,!["*,NQ!5R+!<PPO/,'Z6L'W&#_JE%;4K%]NL+_WT*[%( 2E; 9[(KLP'A,X
M!VS <VP'JP';8#F& W\OCU,!^!@/.L!O62,ME\9 8:0PRJ8H8#5& SK8#8E6X
MI#,!U-@//@C^,/_K#Y-A\XP^=8?4,/J6'U;#_)^(0KS& TI@,QF VI\3"8#DX
M%@-JO%2L!OYO%JK'2& XZP&U7CTL!Q5@-K')Y 0GHQG!U.6SE92Z\9^/33+WX
MO@%M!04/X<L&6UEKO T:(X=;[@'>O'O\A$H9LT$H;U+W=XDA[21"YL)8O/Y8X
MMRFO9V\2:OL6!)AQ05/C@0MWK-C/P7T>#R,2[2P&*_$#S>28* +*OF/!"/YOX
MWF!G_2K*.*#^D[9&6/%J5&PR/QMN+M%/V:P/13]B5-= :Q@%R,.);8V/7##HX
MME1J-V</&R][%;'^O4 RQY[1O?H"P81)E#H4D "D;VE>CU)R\* @Z@;K*TX+X
MX$P $<7(' K3' >2++K4DK7XOFC>M ZGY4M6C<7)STAY^JRL6CZMM56=XV>[X
M>RKOK,U"#N1\=3B;YC$#"2N"74$_G8$.?$@MBCN:F[JX':BAR/A_7(>6V=N0X
M=:4O\ =IA/2*DGE:.-HRE!93N8E8*7WPXG<J??@6#C:8?\VA<&K+ 6&9S99LX
MK?AV)U$2I\[R'B1Z/]]_2(#HB#T?(/\4-B#V=3@<$-.@ARZB&,6'OIU6(2C1X
MEQW-[/Y!P4^E_@0\PL/7Y#\JOYWPK&Q=>2K4M!CS1,+Z;E^4.HE?+R445-AEX
MB#=(-'IK2(^*XI&73C8<LR3E&7Y.I\BX&2J+?JF3]PO1GT(/LO*_3$TWAT?OX
M>DX(^W8I+/8=V(?&3B K:OY9BIL\3I8T8'>H$CZ+>[R0!G=NO"=@=#=*)>"+X
MG5  ">5?4N_=WT*3 ,<8J GU8!0=453V6.GW FNE '_\=\_VV+':#MBDL._@X
MTH[K@GL0?D\ 10 !=!J^%ONV" #F1  H"&*@ &I& &X?4Z !CBB  'MD5%F2X
M_OXE^A?V0-!X:6^>A7_-8#>C?B\C?)Y,^892[]N*.:4P>\JX.SZL=FO/6<\^X
M9SS]GMD:-)UXP'=F V0Y#[ 8:MP97HV V2Y01@/DV WJ/)D>73H@1AF SL,OX
M3 >M@,2P&8L!T3 ?U@-.V Q# :A8##/3?,!_J&L\' 0M;&@Q+>0/  !P+P  X
MZ0C<%B  !F]M9',N8R*DW>VRVLQ,+M]GH=^[N;W@^GQMXMCL;/_^_P @'UM/X
MU7\J?^K]]2K KBGL;"A\ZZ)HR64S^0Z$9=*"2/MM7L'\^ZSERLJ <<-)SZF<X
MF;J?(\UWK>,O[A^!-^[C[YU<@;J0X#13X35N])2B8.*06;4<:HS?"S"WN'H1X
M#-2@DA=7F!/%R:2I0H&)1%4A$+\N%XTA=;\G_^I]FL+\H4.U@@=;^F,,.3S?X
M/2.XF1:KUV@40F8LR3G[#4%R^!,7\(5):57_Z)?7R8XAT=P$LKIGICZ_^B8_X
MU.G?"5<R9V<L>^B<8\^._ &]'M\;HT[(9GCK$0/=2!35N33*JR(/7_M"%%9*X
MES/OK_,'^(6%R,SS#[F<6) Y((5%;<I^=P[KK?T7ER0.6C#,_JX]T\_NS_T4X
M'I(OEW]^ ]P75=<T5-OY=<#W)72U_!;GS^PI323&?Q!#)RA.AEV.0=W'6/-LX
MF%?4/.C5,^\!M)^JF:+[141E5P>$ZRTG?*.K]OM6"7#?=!BQMZ<%?MUTKG+&X
MR1Q/AX7,RZ R9%GTT>\T>%ETRP+I7,FRQFQN<%>IL>I>M%O6=+CHC\Z8%*G3X
M!ER6CQ(C=K$KLC9$'JM890-5W.%=L4P:9,W4[W73EU(&SPO2>XV9#%ZDH;8=X
M(PT<:G'_RBK;A]N7%*%IW\VS+B<@YK(\!"%Y%N2!CH.[2)UHCK+GL!=F+R%PX
M.]>UO'O#=<E#>2#D&4R![R8YGYSVY63%.D19U%@2M6G#UD[OCK=]8+O>.64*X
M+$>P"M2G!>C $(GSX7P\( I&_$UL]XQ97"J%%Y*CYCP&4_L[,JLQH4+,Z'#9X
MYAAA#HOW(2%F:CZXFD%-&5:847GE#5P0Y@6""B5=O:,WMK[@*D2)CY4/I2H:X
M#$@M-4,C=$)W%2A'\DP7PGXHB@12LD:N4?E'(F3Y'&(Y]KCLX?!+2$\_8T'/X
M_"O1YNCBFLE@WH1>4<CT^R#EV4BS8L*^'U92"I"EED'4$K"J*L&6\//,E-AIX
M^UGK94[#J['_E2/'9_=,=5ENTUB;+%&4X(G!#TKOPGL2N!M[.TA+P8^9;:>CX
M%3]YB\\I3NCQ(8378T@M'L F=LXAV3%Z"D_J6#/\V> #%I 4L%V("-;XY\S&X
MZJV/#^<JKQAY?2GR=8T_VO=9_4_^^$;V7]PM*C6D]K]VY(;7:3EL>83&[=*UX
M8D:NTJ<LQKS5)>5N[3S>@O:QR4;PKJW[D)^(/!]Z5-H1?\VX4U3%OR"KF!(]X
M 'N")W0%QY94;FQO,,;PFW /]YW-;GWTD$.T=W"?IB@31SD/&+#QQ!U6V_W3X
MZVOHA])W'\"6VE0?X(__'X;D,[G&+6U*ZA-+[;&)_0,A=QUI8=B&GNLPDXQ^X
MW!'FY:!H$F>1'EI4TJ>Y=>@2/L-HP"[AMMA4-9UW_[6?[;87#DD#>ZFB#<3:X
MD8$$XO17POU'VX5?8O9N 0I7=H6*_HE\MO^S1C/5TD9%Z YKQ6%_\[ @6A& X
M_H^6<HS\_G@W\9WZ8)P9[A?Q*@ORS+]M^,C.6&G/N/C)Y 1[RUQX/?FA#>+OX
M7_J9'>FZ<Q&\@$&Y\T<PXL_-=-&NVM<IBR;]?EMQ%KYH?B\'UAB?J!#Y-\U7X
MW >GVC4/WPE3I8FV ']"A2%NBGS4KZN9)AV3CJ$;\C"D34U=;9/9)+:QDO['X
M_SJ'"^2P+1MB6CW9\>9;<OFYO!?'5TS#U@DL!'CY$MVD7U6RK U"]:H_HD>DX
M2LB0-??[3*7N.J71W+&.$0>'[P/EV^X!J]V*U[_'F(JPE9S<"'$9.:K KC'HX
M_VN3LT21.K;X?J>,03-[PW??^=_1EP3C&"+L9?G./LW;A;K6A6P3.MK>?PYIX
MR'-:I_,]ZUNCD@P-M+AORQXC^9@RABH5Y\&4@P,1P6,R[L-8+$&$78)74<47X
M!/P=]-EFFF0H>R/$8:>\0O'?(2A5H!OU=:" G/)1S,(I%3XC"FD(%5YJR;:DX
ML+6TT GE$-<F<E:UV-^-]#U5'-HHO1O[9'"59^->3 /4BA7T@^TA)++:IBH_X
MP&-E)(3'(W$BV1NG9MA#W6/3U=8-!&EO)6:"^A1.-"^>0$;,B^0!Z42>50^!X
MVACIP/F2J11!SK=Z(FLS$(_BD(B40@YD)"BJ*?E6(2+O[G1BF;QK^(]XC!#AX
M$83.$98Z\%$>#=HF45<AP7D+65IP*_*/?%M2:0B'CS2^S52S+JANK]5G,RJQX
MCW@P*OK%+[NZ8?*E_EB8KH_)$Z5\"DM1M<:Y?6"52Z_4')?5B!>Q9J2-PM5BX
MPL16+8#;2HPM] "WK;%OLH+;"!^>ECC2'S'3LNTG)^^6&I=AF+@8S ]K2./,X
MT^>7'A+E!U5 EC1C2JC&+TKY:J1/<JC<.8,\^Z0,,?43]PZM!Q3;*)*JY>BVX
MFPQ<B##E#61SM%Y9'6^*H\?9SNTJXR_SY92&067"+Z :\/; R7P&RFV_@-:IX
M50!LZ^!L&8#X&&4!0X2*9A(;/6ANUM#>"5/P-H"))PU(4VHJ$4+E5"]'[S9KX
M,S3I9 VB3S^1H'YQJ>T ='*9'QIAF^46/]75#LT^QL&.T-)+Q);[% 3^8;=%X
MHJ\O:(Z>J[J5*LE]2786#-:VEG?GJ095"Y]SBQ "X4 +.0 6N !3J %IP0+?X
MEU<U B_4$7]A"\"0O%D+SI"]L0OC$+VQGHPH0\Q::J&VGE72A[ 2*V["2B-3X
MP()W(PU^U@TT>O2%S3QY:]+&VUP\T$%9W>%SWW,@M"$H708>.'KT3PX?AYOAX
MYZ6R *%A'NXA@A$^P!R^>Q?"1 J!I<9%7M[1KCT.PR1.'%@Q=0D4&8"%\M$!X
MW9G+Z97H^<QY-R*T!$JPFE<IO]3=.1NZS68BVK59H>6;F62,N#GU#EL5 _F9X
MN2+< K)5GC@N5S%7\AD=&TN[T:^@B(=D\+J^"#[/Y-WZ6_7VXM08E>X0B42EX
M DPH@I^H#Q.S1!+\QGO05>\C'H[!'>PX70R_S/;,Z_:L '3U?PT,LA\KRTP_X
MMCZ>P">C/4&R+2Z!_)U:G5@B#,RW_]95+U2.^;F\I]>B\Z5\K-,Z:@VPZU[0X
MXN.JB-=I3ZJ%2@UA2XM7#JLLP J\06JXQL*/!OQ^+=3<6_V'MELOIVF^'AI@X
M=9+/-*7D_;,1&;+!K2A)2V+K2KGTP&.6JX05K.M;EUR9M5PCJY\DZ7SH67^HX
M9K,=VD1I?\?_]=EE[K?<B6,"T0N7 Y&^M":(3@^.,N'0]2X*EK&PUF7ZB3+;X
MEM"L-LG5<6)F=(U\3D^HY P2&>HH1$)^P;*A5-Z@Z_Y3>2$R^3R3E\6#2M\:X
MT95((?%6LG.71F48D!^0]Y&,'9:L]]5BEZR]>!1$0T%/:75Y7Z0C>D\>JET:X
M_B!NY!=24W,7MY 5A&:@72>O65!FFWB?/1/98&:3YD]/C*85)?I4GBWALV<5X
MN2^9WZ'Z;CR .'\E7Z#OZPKO;QP+W-(A$KNJ@QF;!JI4*1'ZE>9@'%MWSP5[X
M/PZTF;G[1T\WA.7KS8LMI/ZOW<5I].;6;,!V\R0$YD+(S,R^>PPI'.0(7Y&.X
M*SU3;X3&BD(^]>);:+#72Q,YIN+I;$GPZ[=A+3[KJ/D9[)8\<W<DU_S2RCNEX
MY-W[21V2$,I3HUIX3/7<4?5)WU*5)%DQJDSM4CT<J2J3SZK5(!)JE521ZI/NX
MT5P)FV>_>=G$[.KRJV FJ*M8ZV"=4Q7-1V)%+B9;.S\?+8?#K]PV'(%S]*Y!X
M(/]![_?/P$GXY&!R%H.(3B;:M]CW9.<T=C: NBO$TCN_&8%O7^0?I!'C&*5[X
MC&/$3@29]6-&\/_%9A5INCB7R%;1ZPOI1"X-6_VKJWFIO'\/Z^J\6N4CK^>+X
M\:NWM03<O=+];5P*Q*DJ?66*W5TW_&Y\RRSJ)\R3EN[]I/Y3W9!RXI3D9"YPX
M69>0<]D%XC'\0,5OK'X=W"\);80MHT.8Q^MN(*Z&0-(@>-I6A!;GIU$F7I+;X
M7V-QB9N788\8P'BFEO5OS1SY-JI8[WX<XTQ^]<<OS-).Q75Q?.#.N_0WL5W[X
M>ZS.8@%\!FF9KS5E0;K5C9P28GPPS:[.@R=DY2B\.S]TI509 W8U0C4C]C,4X
MD+OAB_HQ>QN\3,4:+HPC1W4^#3R9#W]RP9/R3+ON!XL![+ZKYON#'WE^]V05X
M7K/?\/U8@D"M#O^U 3*1'#KMR/(*>W>@CG#<1*$U*5B(4;TY_OA?VNEH# V>X
M>!I/^$ /Q Q9NCUZ23%1<Z[7CZ\9=^8RKESF:NP[":Y(O++0P1<?>Y%T= 5KX
MFRGC]HJ$^Y+V3_1Q&+/)AEG4AK_5T\,W5\@WPAPPGPT 7D9^XW[,]Y1T]S"0X
M,^.)^\DI@:%UE*C,"3$).I8W$$M1I/;/$A#^Z'AV%7WE4W):[$DW8 P3V!,5X
M"TB3W$OLO=A7-DV"*3?>4:Y3>^]#B6 >$N/8E6%)5=?<8^0YK'Q5?M?-V?)LX
M@*@3 N;VKVE3CS*/O%>[*WDA76<&LKZ;&BF5IC=G9WNR\M)6\KQNS+]@K?BXX
M ]+?E6<V<G*: \JWM A3)+'7/M:%G!EGG&?['5\EZ5EHC66V7S[DDZ/O@SYVX
M6Z;+?Y*T66&\%O[C+6$G!94I+IS"R&8;S226>_#?J:<2]^7KK/FVXJ//-<(NX
M/QS9^X=C^/Y5Q+/?E6G7ZJTE>*K[Y =]I)/B)-G[?B%<W_$+B[I_6Q"E)Y %X
M?HTQVQYR7C+<8_-?-G-D#LWY?+S?],?E=%58'+SUD1/I"9VG@\6MM'QTA&3XX
MT"YZ6>C"7.R9M""KT/Z4*A1'H;^1?]16 :^,2CU\_94>46JHTJ]3Y[U0K)DLX
M&/5[A8X4V_$Q6RQ14AWYR;V'^@G;BTH70$6 ) XBVC7RQR6PB;AP>;C7+!/^X
M#,X+<+6KW36DA!V>'$$_X4TSSP-<OLGX +<_"X7:"][GM1L"$AO %CAFQFH?X
M5A6!#PFNOYRZ1J>^D^@DCP(>PX'$2!WEEF8&[1<8\ ^UF4ZS,H_V1<$RCO\>X
M&\Y._>ZPO/Z;SL(BU;]-]*&9(9^1]R/Q@(Y([M!*3.>XW.!.K7]@UJRFKVPFX
MGU_I\P6JGQKI\GDE44_?-4_)<-8L*+6G.9=6, Q^2NEQV=;S,85_;7TG# +BX
M/,&N\\< =<L71JNTNM!62!!LRG3QC0',>YA4^\+P-Q@Y\62B )EH2]>5?5'%X
M\DIH-ICR93LOYZ#MCG7JR-_*K@$_U\&SI7%W+ESP'?@P+MT$HE+:E<8G(!XOX
M7'3)(#H!: >86]&;6UBX6'%<0L>>;0[%U?D^FJ2)M_5<"4J_H*[49D<I.$D/X
M@2;.+\G+A>0HLJOET(;.9.%T[Q$[C23IP>3I"#NA/8QP3S(RTOW#;V1HK]T X
M&NR/W+ 3++HJK$K+5;617AT0UE7K#0\+.<YV? L]K_A/T43E:$3[@6>N!%A+X
B5^$1,I)I,?<K1*6)*&EJ5BPWI+#7H9R6:&>R(9IJA=)P $3EX
 X
end