From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Dall To: gas2@cygnus.com Subject: ns32k support broken in gas 971029 snapshot (with fix) Date: Wed, 29 Oct 1997 05:06:00 -0000 Message-id: <199710291305.XAA08929@sibyl.chez-dall.org.au> X-SW-Source: 1997/msg00020.html Gas core dumps when trying to assemble instructions such as: movb _z(pc),_c(pc) The problem is in tc-ns32k.c (convert_iif). There is code which ends up calling frag_more with a negative argument, which causes an assertion to fail within frag_more(). When this code last worked, it did some fiddling of the obstack directly, which is admittedly evil. I have done some work to clean up this code and avoid the above problem. The patches are quite extensive, but that is mostly due to to a general tidy up reformatting to avoid excessive line lengths. The old code overloaded the opcode pointer under certain circumstances to point to data in the notes obstack. This was messy. The new code just adds those fields to the md part of the frag structure and the fix structure. This adds to the size of the frag structure for all targets and it may be time to make this conditional as per the comment in as.h (but I have not done so). Here is the proposed ChangeLog entry, diffs follow: Mon Oct 27 21:44:30 1997 Ian Dall * write.h (struct fix): comment fx_pcrel_adjust field. * write.c (print_fixup): Use TC_FIX_DATA_PRINT (if defined) to print out MD fields of fix. * frags.c (frag_var, frag_variant): Use TC_FRAG_INIT macro (if defined) to initialize MD fields in frag. * doc/internals.texi (Frags): document fr_opcode_frag and fr_opcode_offset fields. Documetn TC_PCREL_ADJUST macro. * config/tc-ns32k.h: Add comments. Remove obsolete BFD_FAST_SECTION_FILL definition, change prototypes for fix_new_ns32k and fix_new_ns32k_exp to add new arguments opcode_frag and opcode_offset and remove pcrel_adjust. (TC_FIX_TYPE): add opcode_fragP and opcode_offset fields. (TC_FIX_DATA_PRINT): new macro to print out TC_FIX_TYPE. (TC_FRAG_INIT): new macro to initialize machine dependent field in frags. (frag_opcode_frag, frag_opcode_offset, frag_bsr): macros to access MD fields in frag structure. (fix_im_disp, fix_bit_fixP, fix_opcode_frag, fix_opcode_offset, fix_bsr): macros to access MD fields in fix structure. * config/tc-ns32k.c: Avoid overlength lines. Align comments. Don't use struct opcode_location as these fields are now in the frag structure. (convert_iif): Call frag_more as it is needed instead of trying to allocate for the whole insn. Avoid call of frag_more with negative argument. (md_pcrel_adjust, md_fix_pcrel_adjust, md_apply_fix, md_estimate_size_before_relax, md_pcrel_from, tc_aout_fix_to_chars): use accessor macros to get md fields in fix and frag structures. (fix_new_ns32k, fix_new_ns32k_exp): add new arguments opcode_frag and opcode_offset and remove pcrel_adjust. (convert_iif, cons_fix_new_ns32k): call fix_new_ns32k, fix_new_ns32k_exp with changed arguments. * as.h: Move fragS typdef to before struct frag definition. Remove ns32k frag substructure and add fr_ns32k substructure. begin 644 gas-971029.diff.gz M'XL("&HS5S0``V=A-W(D7J\7R.1;-IM;G=Z6,>"6F\4?&L_H&9K1 MZPIZ@*3X04_`W_4G0E1"RQ.M1O.BW6@F'SU?NJ$,+F0@.@U=5,W&><-L4"O\ M7*-VO@ERAYYC!G;XY*E(?MRPU3P755=&XW"B"<>.9(@=X/=0C*5CRPLIHKD9 M"9!(X*^P`B\,ZV88RL78@3$MTQ56'`32C9PKZ",B,YC)*`*QIUX`A!9>&`EO M"F2D,,<>$)S#DU`3OA.'Y5H8#+2FWF$M"#&,?=\+(B0G]E\=B'#NQ!;#91QK4"9 M5*$!]W-/`HE^5X>^_?ZY6)@D5AA/IS*PW9F8!MY"C.TH\**&TM547'FQB((K MX<6L*\\%=2]85@'D62O`;P1:#E$[I`O4@C1#*1QX"N@K&Z"D*^CK%#^&8/!`3FHM=H/IK;)ZD!@AHVY M\E_\CO9>[K]1%$$3+SP4PG8M)Y[@V,!Q[#J@#Q&C#06V1M;.I?19O2'* M-_$NW5+>""WM'F@L#0;?D<8(&F)S&HP\'X<9X8.C[?1][(;VS(4!;`)AT@K@ M&\IHNZAX>%W0-GS^%@HOA6RWJ[5[K02R_P1>;%>*X>'_[;\]&`U/CD_W3D8' MQ[LOQ;_A=;5*\FS6_I*!-U+N0)II@$PX&P>F4T\:_72K%4[5(-AO4ER:+EDE MA+"0=7VGGW&\)!>K"_B]PVTI)@.Y/9[-^1U@QPRD&,>V,P$E)4BA=_`O:--; M0"R.T/J'H-U08S5!W(#<(=`2?:-AH1>(8KLCB-9$2"*O4_L#A`,)D`-Z8V\6 MA]N,94A]VCV%Y3M"-J!Y:L^>15:=0-"P5/"]]7Q%,+_5[G9D;^G+D?W.3BK, MM^[(\]I:,Q_77KXY%2^EBS831_'8L2WQRK8PKZ/PO/#`!!,9F;83JKD3?OZ` MN5,Y*\7^0%K2OB`?M3S_*LFY5M-F!S(=#\!_:4=S\7)WN`US.\^5%*+WWA[] M`9[4H,D:Y@M-7`8V3J8>=\:&!P'T&'K3Z!*1. M:4E1AR0">[=:D"4\ARD>&[W>%7K3,(RZT=)[&GCN;N)M!,?4A7Y]^]OHS>EK M86P^`Y#&"+P%P13G+SF.9S-T8NY(J3/HN)F+A#^@CE/U,I7/T3%3^.**+@-W M"_QVL!P!#P\/1OMO3HX/]X?":%4J0-F-%V/*4`10#VR)T438]I1))QV/C@__ MM7NR/\(0*IJ=+O:DN`S]%E>0-`9C=;`CK)7O/4JT=H3\2`N5P.R( MVI?,11*O#S$5]9W23G+A]KE/>8E4TS MGUE-[I;;K&R9=YS5]$I\9V7;@O>L)EET(&KVF2Y4-F-T^UJODU_F4<:+P^*0 M"L:0].*\0V`&Y_!\F&W=B:CJ]18$T30]IZZA93IR,E(4@`#U@HEL;.,:@R9B M;L-O2GL'PA@G_7&-%I[ZGCF:!;QU2]8?TBP.N/ M]4;CN`>)>B@.X,^#GK!QN4ZM0:XZ+=CKZ5!%FN9BA!AF@C*,[(6)>R$+\T,: M+&8J_4!5U1>\8@^BL"B9PA'3`:827.T8F.BK'01\@JD$3?K%_H1891,#"=`# MC8,*_*H%)K@Y)B@NKK:FWA(-)#_";2'[P[OFV3:2'>T?[^T.]R''YHTY!Q8:PC47DB;93(6-@3&W<_(7E?$"L1K'.8'FW(6U$,UF=3 MJ\5,CGY#[*HS@H5IS7&VS@]NF2Y3&H/`]H7-JWP8!!=',2Y)@"),1^)H]_@D M;(C?R@5(SA(F.;9\/_#\@#C'S@(W@:$G-+5G+MHVHX:"ST'BL928HO!N!#`2 M;2B]@<$N9(#/B#7-7W/K(=:?"]IA;I4KJ(T3TLK( M\U$(BDJ#EF;H[20L?8\HNA>`6&6W4"1+4+0*0$SB4U!T&T")Y1Z`HHR%ST>1 M$@7WM;X"C$IWBHRN9C2[^>0(=T@+9N?E%)44LB(.%[/$DZ7/!+U# MUXYLX)A>)6\R"BIW'(K-)(MD/H[4F8,9)4T2,=-I"7E/,SFEL9 MT6`ASR*[T>3+LX,]K>-*ZFII.L"M8)Y0ANI4:FY:Y\F0-[S8@,XCZGRBVAXF M5CG,P>@`X&U&J?$4\\#S",`V0O#3P+S7;C0-S6@5$I'_3LMD&<,#3?2EK5.Z M*:5WM5933_SH'TR#H[`?RGCBC7`A.12+R2CY;$(XP9@,7%Y7F+'0$U,02"[\ M*!7R6HU2K5:_5#[^>=F[6GUJE9+XW4T]T+> M8;.*60#1CS8-%IA=(A2(([:7+>D4$%:.&#P7L1/9OH,1:'PE MVDB$$D,TN,F40%\0HQOB7_9?*5=J6Q'B>NRRCA7DY(R0"6/35F3#RK9(LX0L M)^;SX]TW>[]6*D9^9V/O>/]5I=+D31-#!_6GT^.#U/^=Z+^H>E;A`_6?5ST3 M>@S]E[I#$]RAU5_>I7WQ]O3YJWWLE#T[??-B_T!D/RV>UDY(*'5I@T%$_QKQ"G",%D#YI,ZO!$N,I$"<'D'2$U&L,JQD75V^W$U*<;0M$ MQY`'I90@MB**EM".<)\Z?SO$"*9AQ*#:6.$C)M-[+<8JO.>#C(;X4CJ$`"&]/"S`#S`XHVD-162 MT!4@_PDHHD+"Y(2>AOV3555TF1[B,S4^&54C$4RC5)-5TQH+2%;"&!*:X-DX M")^]#^%?//C%8@V@A>M,4!/;CRE>9L<<.W/NCF+P3CDSC$S!9#DNT8N(9+V.GG@.+-0XP>$B*BS9!*5N"`TAZ/(=QADE6'=,E M3J@(`;PI@F_)F"@A+C*X;BI9%T(?=T:KL84Z(.#]U]WGP[>O3D_V1T?'^P>' MOR<)&?*P]&HK91Q(DU#PGR,@QP6-[(B-LXT:'\GK`]!#)TMY'U\/WY<22L'1 M[E#-36Z%5D9B39$0HH+ZJ7";ZAJT<*V%3\TUL2X_1-5U3;1K-?'33X*Z_R)Z M-5(%JI;3(&C%4P^)6N$QT^S]J/X+NC]6?^P@"?%4M+>S=C8\U7.?W\/G9N[S MQ",`7M-(BA`F1KB9Y-*ILTIN>/`*4GBZ(VCWOU+)9'_/>JNRT$3T M`4E=O5BH])A*^XI:>R2UE6*OVP(UIGN7V-H,1Y=FX(KJ^J%[83KV1(17;@3Y M+(3D_40!2SODZ[6$"3XE%%5=/;E)=$CK+>)-;/Q;U_6-;3[C=)Q40IE(?;=^ MC4R_H(""#O-M:_W8ZC-0*GG@K\`5/;M1H$(%-6!IM M*6L-VEI'+Q[=?%'F*@_EKDR5';T%W&:^19$D%P\*G/Z4BUN=,V"Z.O4SIIGK MBA"*5:-+K+[F0_UCR$`BW*55@>'F_H.$Q4%0R1V]IW6,S"6^,-N/PG>I^@T` M2[.9#VT)&_WMLO'H+4P8J@*BEIO$5/5$L,1P*8QH^TO)_9X=E?@FBT'"XM-2 M7+J3)*W/_+V2GR4J-"4D$5S9QNB#3-U\N'J83%].J,^4JM1RS8'6:77REKN< M8Z%;5,_'4#WW]*9$=858S0&L MTX*0T-;S]ONZDJWS7JL*ENN/(FBI2=L@>*=='@LIAF\$&UO%!\?P8"T/YEP4 M:)Z)7V`BU3=4OI9[_K/8Z"\_;A=3HNO50"_2JM,03T5_>Y78>BHV-U@:%%&_ M5D@,<`Y1I_SH>K=B7S*GW"<6MHL1EQ#6A@B1Y<6/KF@EW?>M[D?2=RG0>TVM MT^L7$NI5X?2!,D+ZN+$*52JFASZN'5\^2]4[ MZ&A=0R_$$2'&@33/MYF5CL7"LA;]:7ERDWZIB$JY6(8IH&IW$$M1%( M*PY"F%)&CKR0.'?Q[,3Z8FYSO!8Y7"ZP*BN5XL8)@TMS$8^2(B8/3E6SQ$OC M6[*,K_BX$YV@JQL`ID$A5GZ/8%*6+[[]&)A*.WTQ2&5YQ/HGH4M\8VPE?*]_ M%9"51;"NT=*ZN64)R0SA,BNTYE5K-IHFC(P?FIQL-.OM>`U+V+OTE*`5\G3; M<>3L]C;&P_UP[;:*?$4MZRTM`K(=O&2KQ?DZB-O$5R>E%8,B!/]#FV, M&&FS6_L^8`&MVRHNW&H'_^ M@P_C_2C@+=(0S\W!@.E96,9,L0$6@)!R^=9W[AQ8G6GA.:`3YG`1>7C)BS;L M6%?Y`MB&*A?.#N!4W;"J$\M5J4ZNL`C`-X/DF+!XPD>7Y"'","6N#[M"A'#= MJL32NDG&29C6X]J+I-:.>+FP33X_J_.%6'5,B4=Q?"3U-3&!0?)LO"H]J*6HV3+(+R#RWC0L_!'1H(D3,^.&9#A:H&G"];NAL1!<$Q)";2@N!JPFH#&/)< MR0?S>`]I8@83\6:XEY"@'KQUTA#/Z0!8IM]4@26=-GY?R<23(9!?6UNC]GR; M&;_O0)@"RT6Q2BX-Z&E,QU)W9@F!M/`=V[+Q^T[H$'/"7Y50L/0\JZP3HGKA MV9.:D'CM"MJ/Y`<_@*4I_@,*!POPZH\4@+@7D7F.Z+074@SMV7PMJZ?[J%V6 M#\MHD,;OB*)1>+48>PY:+GGJ^>IA.N5=9XENR10QD:$%"TC.JNF=DQ0KJ^)_ MOAB6S3,J_Y).*!\ZA+4T1'H/;6F4FU1'-!K%KPZD:[W<->`?`/G+J"=MW8G\ M5:BGGB7(%_>$/0-^J@J@'P/VXL>%O7A\V(N'P+YT`NA!OCQH+^V[K,XORYA9 M&C,';2I@\PEZ8,D%?J,&5BGA.K0P?W.U$P.4UUNT@3G&;XL*,ELS;:P"CK"$ M7\)4K:J6;D=S+/^@:PKF&-PKCM2=[51I2N5L'4PXL##H?QIB3^D2"_Z!&$[` MR?R-C[#LB4=$`8C-AB)U0A5&X!'H3EB/2FF,XX%`/`R6D'H:?641UO4OXH7& MMYSHK@7)FM"BW.10%2\AZ@^!&O@!?;<*?AV2-9?6.:N5W%PZ6$+.U/ARNOKN M%45PEVYC@(-2)1=6S00V9").,J#2,3I(M/"7%A)9EI\&,%4X0?D*IRO)VC@Q M/Y"IUU75=@`Y%-UY!A+J]K/2K6L%E%_QEX()O.[FQX&/!6PY%T>6_B[EB1#T M\\^BM9TVSKX*-,CIVM^(S[J:R\KVN][++1]^+. M*1$A'MNSDZ',SW3MA(Z5UFP^T+D30IF/?[)[)R16>_EJ__Y>7#N["_+?YN.9 MY+><73SU$;T#)`J5QOQ[:3*+/F%Q"LU(HF;*Y*@UDD]+=.I92\2351R MT15/Z+84L]D&Y1&XHQG%@%I5S<%"U^LO./Q3%:XG)LD69*)=X+Z=/,%Z7-N- MU>%A8CF>%^%YS/7X[\N_)S?B_B)ET:R2`V526-MKM[5>Q\C9 MY2LP_R#3K):CU"C=KM;KI>K([ MB97D'Z+`M")%(N3+(EF\+KFF*S;5<+0K@=^/B1>B(9>QYGG:V42:?K4A?0G8 M9HY'K*94'X5O8M;@4IX/F0SF7\3&M=IV5;,#73'5Q'M-G&M4QB5=(_FCN5UL MJW8%F3!H!Y5PI@_#33ROY_T/46?DF^BR%ZZ"G]9/O<664/Z',5TFF%$&[ MS;01$>;.+M+;F,GW.8!&\.HZJ6/NT;6E2,Z`([J/#S$23V;2;XH0R66PW$VE M4#@+L&R(_W-\_,L/DAN'M*$?J9O*6)>,+.`WS"$=@D5RAX;WI/'12,EQ%V#6 M[@,8B/76_%,00@QE$'E,-V/SHXVJ7`&9"`J)12,AM$8O;)[SDXF.?XJ52+?[ M$LXT/&^D-$75=<9T-X8[\7VGT)QF)W=YP3"3SI'U@NV2-C\5VH# M'F,NSR/.Y"+'A#*S(\;XJNZA>J9JQ$`#'S;HSKHC6^T@E;3B>7[ND%E.$SUI8"6BV^-&N!;VX_] M8_5+Q0ZBI:)"WX-!P0"AB"X5OSL!+BR@#!ZOT^'2($%A:)#$BA,Y4H@K';4N M4-)D=LF*A^Z(.NN3)WFT,>L'&NA+FVJ-CA)_X5_R!4HG1EHM:\;F$;C=*VE7 MJU+Z;VJ^H@WP1-+%)Z_5!+['.J9^68"D5#)?#C*YJ-.L`J2L`H"'>R'#H9YK MQ?O0+_(&4+_OOWDI;_J3^?$H*E$#NF/D_5;.>YAA2>Q])9KE,()%XEV2J"X& MZW*V-`)4R@Z%^.M95MQ:F7M'?)(3UQ\ MKBBK)?(@1GWHK$9GT]-+Q>O10Z%-K6F7Y]C:&!BM\.V8IUNM9M"N6&G]JT$" M>W3^?\6&.]KEW*/?KL.NU]T@`X:$QP\67=PC=>8?<%<>_QZX72K>;TX'OLF= M**,T;I=R4#LP7BA=Y`:(DR^,)^=%5P?J?T?277G3V-U[J0J!C[%N?Q!?"J/@Q'O%8/<4X:.,? M@=GX"G\$*J3_+]DC:Q7B'%#._PE$("EHOQ[7+<,J/XTJF.-:.(^3G^0%]\:0 MOT$<14`%5E\A8`)6,(J)@[+9$3.TT?#8O\L()+F!)U&S!C MS2N=/EX7TZJ>'S(YY'QS&L^]*V6JKPPWE4P)QK"R7@N@ M7D\)?MNRV-YP_-XC+&))L5K-%<=<8[X%3^K`@X.DK:&9%6_K&XZ0@ZG[0UW1 M`%5R**2CZ$V)#H9847(F]?1.*(G9<"Q#FEFDZ>.AWB_2E-YH#6MF#82?#8!4 MLYZ2CKXB2'%ZWR\-JEPD:P'=;&?I9H70-W1/[2+\I0SO(/Z==R\35>44=6Y> MF]15:J]GG6*V,X[.5:$6J#5JTC1MBS1VUZ2B13\FJO/(&E%*NG/XH7@EAI5(/PDH89FC:5[)PM63A)EJ+QKHA%/*0(:RL(50:35_BY$[]Q^NI M)\>9)YH?L$^0-HMA1"OCT(7=T6L?YU4"L`(+=/X)Z#EZ&,`)6,?LPJAD&TRH MWB=F-;15.^OTT42JQQ)QC["`(?`16>=S*[]HOX=HVHV[LTFL*$IWPVGA^$#@ MKYX#Q.(Q?JNNK;'"FC([H_,Z&HPF/8QZ19WU:&*'2IX1=PM96U89QWB#')/1+S':8]G/-7'*QR1.WR#'=I1HXY$5(W-B MDL)PK0(@6+/.<]\J",3OZ]&-0)&/'0W$#B>!'*0C3<'BC\H,2+O2)5%T%\/^X M=6BZ<4;\\3_[(?2XH#%<@:^LCL0UG?0)'#DV M0%OK3[HB['E$OB%4Z&,6DSV"Q^%,%.QRC:S1^43IK.?37LD`QV"BGHX.P<7@ M7QIH,(RQ?/A8UST^CFS$;A]G2/LM/#OF>I^>4CF598,)",B!7Y+-XN_NVODE MD%SD)T$^/<9<`'$,8D.9A]JE4B-1-QX-J1@#)EZCVPN90:3_("OCKF$:C#'[ MTDEI7&P3=T\P_"!OW]!M[FPN'G/>E#!K,D^WK_IS93DW>>`B`*N`=%0=M^-(W&?;RA,=GR26)&@M5*Y6`*V!!WH!G=U'*: MS-:=4[YN@O40@Q*=_>'A+B-;W4"V"E--4P)^/,.XZB[!I,Q)NP%:MLH7'-KN M^++X.X_EC--5R)MS-RIO<1Y1W#67Y0".GW>#'6T$(3$+/S05;,#"Q\X9X",] M3!P&1P"BAP=69<%Z>1#SN;)Z&_UG/HQUPN^NVUE/2Y?E`7YIQL^ED2%` M["5E(F]&DX3JYO*%(H.(:$U+1WQ@=Q!3"]Q4`/>J?]N:W[J:`\:1/E"Z`D\' M:7)!F-:P'09A-;01OM_LA:%!Q]D4;G==/*"Z1>;]3:X+'L*],[1CWZ=<&3Q* MYM[P:12EGNP"SM/AH@-"OPTO[*W!`^5<'=ZM@3?E@FO#6T_NW7'-:^.!J5*V M[.Y8?FWP&->\.]0BVLJCT'9X9Y@^3\7;N42/"_CAS.X&[YI=45?7@U^R'PB$ M0&0+RE<1"-LJ.\U:D\'P!.D:T@6\FK!D"W,"/HK0I/1T3!C=$RF55%847][% MC!E8%L:%%G:"9RA1^=P'5@ER!TD(O':1WFAB2[$H4EQ_3+#>(RUQ` M:Y^D'G!C^:Z\LU_FL<^BLP/)@0`3&-D?WW%O_#&.3%5)$BM0JI3C<-;E2AF< MT@3],1PR++YZ]"%4DSK?I7,CV1_Y(_BDDTPZB#FD*!$G4R)`IK:'?X+$KY;+ M:M+I,S8O0Y'$L%B3RCA^(3%;^Q/XK97OL[6A0-1++)MI.J>,A"![_F& M!5X/`I7$Z^Y)AZA2P6\EJ1_1+)?,V>N10D:C\61^RQ&,98J--M-1Y(%D(MA0CHO)I&N@IF\:)TIZ#)RL.P+LI!@*1E) M/R@U%:;$O=JW'@OJV4%C3%RWH7P'ZE--H7Z;!.-$HCP;FKWL%I;`_2QU>>_+/I8O>V?&8_N$4=6 M'93UB%;!Q]<;(U$^3:JW$:F\>%<:0?SC.A,\S@?Q,0 MY>->HP4@:]>\,'A'"XT\M?#7MMP>0>7I,9RI^-+$%W]T)EFBG^@0H6<',6+\ MS'!J)?V<>UG7DQ4YV<9NY51MG=HJJD0&;0H!D%#FXRE`U`E3&GL2$YW@YD+TF<5F',JYN"35WG`IKQ"S^5]()`GE%68B/ZF:KDU M":P]B\HLO0,JX^;18FM`D?/YTDP_^(G9A(ABJ7KUGWFW;_!+.7F^@`".1Y?0 M93J-Q@DKY2C^33(L]M-\KHRP^!XGM,;UC%'%@^E1X$,M#4&!`R"[JL+4S:W( M2W6BW'GRL\D$U\&9/6!:!L/T,`"TFC.`1K.J:<;146R)>X?`@G]*I4"1GUO5 MZ?I!+XW&T?#MS"8=*G\FO.>J&@6<['+8ZS"$?QVI9\]4^#L#`(27PNO=HZ/7 M.WL_O^D<_?-@IVCG;"+L/SJ[:TU1U68+BQC7O3P.MSZ`BPZ5&"P_\6@M,N?R MB;O^.5LTCOW:-W+HG#.U^.R5.3)7G[=E-G'\<_WC^&J>]:\-TE!_=<9AESGE-*L M+U#)8=9=R6?L*(78?,Q%C-$22^(M!@.89R:#J#<,?)"LAF0BQH1T["/"LKFY M0U$9&KO"C,JY0Q#"V7O+">S67<6%L<,9#6`@#$M@O986-E8T,BS5C]G6-OP) M?Y/KU/R^4'A"(NF4;V[:=1N,8W:;=$DAZ'[*BX=_X(XNM8]LXS]3UU!9;6]\,Y9-DSZ M.BK_J>ZC6]XDSHM/4K(MV/3/>;GDRBNU>C,(L6#WIROJ1+2_6TT=_N*6_O-G M8U*^C"8GPY[U>34P&/]>1KVX+7!EU.96:6%NBLHZG3,08;O]P$5SU#$<1\[Y M@;.'!NMN8G<+#2J)&`#&O@5`61,`@*X',^:Z+:;G4 MY>L#;2T:=-#OD2%_8ST+Z4JNF^1?TDW0/!XN)*T?3+`NL7J!ZHVZG,ZJ+H?+ M8<[%:%;7I2G(2_N:2JC[-6T3>CKIQ`XZ>)2 M.7FD2=U#]V&%+`-C=+3*H7TI*\%MK3G>4"&'@K%_31YMS7Y<;%V'B!X5CH;2 MF^(3$OW4)25U^YA/.ML>A^(L:7*-^\8A28;'6'?MRA(N5A%"##W2[.L)4[WH MO%!/=M:>B;.9Z-!M((B;Z6J;T(\;]H>#011'0%;\HL"6^GI&')8;6.K"#1%X M)+/N"3FDD`LM$+H).TX:_VCFS"+X%KF,DH?.\:6U7`:HD-3]T<7%]"%7%^-S MUGF/B;"[5.&$,3NB1*`D_IH^7<4)7#`?L*:EQMEM./LW@&8TP?ARTX/.9AR= MHT?O>#*.`IE_C`ZYZ67$*.@EZ*Y)@U-/_>3XTOH,F0[6J\2X`=-%>#H?OP.: MBTZAZ[1&T^,\LI[`FJJP(D`H,S38VS]2_]PY,GW0/NRZ%^(=-$\,6I?J92TM MTUYRS(&2G3QD%VO)8#6=Q)@:7W3#)Q%=31>\/,(;H18*$\/39+I),@>`5;07 M-*P4$P(ENIU@H77&T5A$1<4W5:E@CY^J%_EZ7R'`G<2PK@*VH\<>,V(=U4;] MK&^-TZ1#7N%P/@IQTCD#\@J75<>XJ!NVJVZ8M`K%8-*$K(+`BU#_>>_ESBL. MU83S"9M";K^GY"YLHG+Q3Y82!'FOF-LU4V&R:2[)YZZ#@GFZ;J_`E!N?(SLA M!:'!BE::TO"B:P\MTLWA4V";0]SRF9(Q%(V`\_6::KY5>']EO>84I),]) MN7:*(\<)E34F)5FTNZ.;L0>H-`JU[@LX;CG/T%ZWG"ZASZ9[@UA?^9_'8F$ M[Z:7XH$]B=])$2MD+-&!&K;6D^IU>A1]NSU]LE`LW&`Z0/[[3*Y[`O*6M8O[5.%+BO*7%_<4D;( MXI[7D;0<\8H[74?&\@4K[G>5=&5%JI0<]=5)3LZY-AP'\$#DV,9NUYBRA8O@ M)!.IB+/0L"])!S6#5,Z5NWRF/]]9[FN2L-2G2%@A)XI8*!9=+16EOF^U3CG/ MC0HJ)1K=AVQT"^'HWJ6C^^.I5_&'#&+7N5[B&UB`Q[]ZS/?GY:)SO_\5,-4. MAVAY,UJ9$^E2T&`HYO)G;G,^$MD.EDFS78`-]ANF6>2,&6$Q6^424L*G_ASO M&O*^UB%< M=!K.#60$VSK<$:F[)KLU8A_,05WEL-UT3^7(Q'EJ+?W4EP%$#:F5"WVAV6<4 MG>41:Q<:_*/E\_`WE]63V_@3N#V/V>/O4"2&&]#E+L4)/\`>.D<$_BLL;AW= MJNO-M)W[ROV\BB^XR5Y]02AF@).+_&O-6A"NM5I.@%'F"CSM)J?JNV0=_GM$ M97A+S[`21T!5?PT,.R MY"4PI;,##B;N57\*>"(V+.A1$U/L7QR3.FDA5WEA`1, MT*"[,S'L-=.%,DF_.HG)PU(]00P[4%@A?BP(@94W4?U*"A-,<8_!MO`<4R=B M*,[^_Y1Y(`(%;\0#PFN$$T=^!+1&QM]4N7@.IZ,CMH;YP=::;B;(+XDU*A=K M'&],_/,-X1#ODB#2C7"(1\@BTB?@T`.GVE,6D6Z'1+FDJ%&#>[A1;Z=J8`E, M=3I\G2A".G%N0]_RZ.DN.5>F9&B7'_+QRP7\0T1$5 M^&DHC]6%?8U>+O(V3+W-_K#2-ZJZ_@,)C>7EZ^0HF!8#P(1+H$#YOLY=,J,, MB`\=4B/G6.+?<^[1X_D@0%--H,:ING'P1FA.(P2:T\@4G+H#]."9&ARY/GIP MQR4X&B[,8\*T MHND*'JR,I<+@*O@N"4"&!WC\]NB[Y+='<-]UX&K8V^ET\*=7NZ_A)U,DZ*-& M7D9K#*AIM-;\"CCW.5>Z)Z\SWUQ88_W0L-EJW`.L;P-J(A)Q=YQ0&@BCV8XC M=(2#4\?6':HS9VP]P_%@(JEC*.FJXHQ`9;:JP!]R_9A0DBBB$'C09^?#?G^$ M=[JN))OH("5,`M0'SB;"$M#OHQ$/P@6C(ZWC1%J`+,%\".R3SGZ2I0^V1+F= MSI%3%IV3_U"%(;$TEZF(^HBTJ>X[6K#.?2*V9_A#'$FBA'Q9`&#/)%:%%P#, MWNGA_/CM9`[SC8KJX7/ZGS,=)`?]3CPLPQ_.73L<$>]!10%YIJG$=W\;#@`Q ML%8XKA4>$&4H\3A.5`Y,BO+T`S;$PR*/H0F#>;>AGXM5CI;:P6WM2`2/>A(/ ML=4'SE:"%K%AZ5F,*AH]Z`<]B.)7;EDT1K*5%3?M./P;G9&1'M.-LUA-J\L/ M+_(6@N-+5B4;+.$]+A8WKAY*K:(KCFP';M=&9UX9_U`4X)HH^ELP_ M202'L9\'--:PD_&X.P48UJIX+GK3.:F%B[QS8D?]6S3N`XI0#ILSG7)6RQ$# M-$I3$@0Y_F2&C*4-Y6M)WIF,-)@9B%MCLK[C:("VU0E)"V+DI@PT_%K'BS[F[M;>RX@$C#T1XGM/6NT MWE$RBB$`TOG*4TG9R$GLR(1/DS,[HI&K54&XA5:D_U)PL_:F;P:`^8C8!H`Z MI4A0P$]G)2NXF0V1O?U`W\W+N:5S%L5L39`$1C-16!Z0S3&9'[-\G4V1R$/) M)2(#H%T71GCV3%6+&%'+IA=4M-LA%WH$P058--4Z%Z1CI%VRBT!%SA*_&OM1 MLC6D%1!H'0*.W2?0C,NIG/)H)!V+C+I;FSVK?M#,O-QYBT0O[PG M?^'4[7`J#YA+\`@HVA9E#"?_D4/:G_DTF^V0J"%P":R+0.E]V&?%[GM)!M%" MV:_5-`4`[H#$R8*/<@&P$"5\A,B8=\0; M[KY\++OYJ\XS=/#)(L-]DX0[V128H[;;XD=3>^('>^6&Z+APGEB5WU` M77%,[_:0Y?(5;61PVPU3#XIVSFC$W(U=O`!Q3C))#STJK7.#F9+<(M^^$,X\ MD03D**&>N-7I??F*V71'?Y?]@"LW>(1-QZ"9+DX`FDS*:#Z5\03D:>Z:8JV^ M](1%5,-VQ2C:[A!N9D6,A9\!<.DO7`=R&FC^I#X1=/DHB$ZD[:;1^6'?;9-C M54X;&_;('V.!6M?Z=J3N,/4<%PX[D$/;>#7K!!DS@.ENS>YD`#=2,*,`UG2% MOZSSZRWGG>9LKIRV73$MH!A<8^9Y.U"MU-:":L7F!17)"T>F>8*HEKJ(S96E MM?5IM#/K&T2.$DH4+QQ:50`27\1D],4-,X9_5ZVB#T^*V2`]X&`^9GK'5)8M M+%$R&YYU3?Q,UV;LU\$MF.,:J]M,+P/9PF8#MK!5TUOXZ0N_[:+O;\'Y.]^H MP,XWFSGZ#>U@]8%=HDVZY* M@%9K=D9T')>=2;N1C^06X#G3,C.HXZ8%L@4/H-I?5ND`'%?R<+W[7*Z<#JY^ M'DHND*ME+:<'_Z"=8/.[ZOP>.?D@<[!"5X$4=U57?O@U_'VSYBLR7)V8KL]C>XT\LVD/PL&9SH1IJ;QW*1K!#D MO/98?^UI=>?[GGOH,1U\M1HV')Y/+*8Y4`^XP@$;$`+E^,7*%2<55]U"A'X) M5A-+J[F.0)%!Q"'Y(DBPS_02[O8-N6$[(6PK+#PQ$GZ4G@-``ZA))>&RO,T',Z>"`',,N@:RHD4ATA M/:)LA9.5?CB0XC8CSM5!A7=8AYDMAT=_K*N_2?N+HSDI%+7N8Z#;/H9;$*0Z M=A0:L.-/:F;HJ>P9ODI<95?*[H9<\\&Q+O(<395=*Y<:654$.ZJ&N1R3F3R& M]6H`IZ+JL/1W>RSR#T+@RI'F%PF*^.N07'5(/@6EK3'@<^&V_<)=(;ECP-#8 M_M##B8Q^1>4K4FTUA-N=E?PKI0IGIUI?RT@0,'7++"]0U*JLJC$MJF-<@VRT M_U[O$S2P6A",5U494'05@HJ\-P]Y2O?WLUG,S?!/.`7 MGL:.>?K79?9%+K/%I_-:N*BTQ?3%JY>=K?TO7VW!+VUH;[N''27Q+-[7CIGVTW=G>WSOLO-K]1V=OYY<` M*W2-.`(6`Q4X1'V(6]GMEWL<;$#$4`3A2AXQS,#CST40;PF^?/1JK`$XFZ'G MO'M-XF-.P37IL]4L4K@Y)I&5;%RN[O07<1,:3[C,*NJCI/`T$22J$B>J+1W2-=$?J'.N<4J:- MR\=.O>E%M4-%#7,A):S`?CR\=7I+J"=";WC#NS<\P'*H7);H2\3%>26>3 MR3B12+;"\^?/U:XD?HF')Z>SYTK!L7BS4SK_3-KF#8CI)3R ML@25_O[ZG]&\SZ64!U%\>RA]@8T)B-G6VD=O/-UI"5K#BVY MKX4:I;4[5/$.UY>[L;6P!AL;MNW&=@%'B+%#KI*>'`_Z'?:>IRL1\W%U*#A1 M5TFC14AI1&J(BY@:RR89.J>6/W%^UZ9]T7/@A-&]OF`F4507.NQ3N\3+.VT' MA]]*SX"0HA,H>:INJN_-^+`+R67IV3&\UQO<@`57&TY]RGM:L,LZ3(OWL^+\ M+:^'L.7UIF-/$`S=?_'?G:W]GX^T!/90S7J=[F1.?(H3:R"W(@M68D[2"-\9 MCCOH-YZ*UV)9R6@G61!`J\D3S0()OHZZ%QWCS\'O.H(C MMVOAX6%G][#SKA&/%H@[J>+ATBDY8Q_*&6B(QL1UV4G67N;*1 M&'J;7=*'ST6V>K.#LA5'<3Q]PJ7H7T_0F?SO8GE/UOFIA'24>I/1_&R\KBK\ M>&?M)-2NUF6*FV\<>G<-P'PY.GIOVI*N<_IR-WC?XKOP`/OP^'O=I6 M87N]7EF'G0[;[29M_H+!W4[5ZOI:_#;@4^4)=7`T=;;'W>..EMO MMW]:6<&KJ1OW3IF&\54$1`_SV^F&K_;?OMDZR@[`SU=6'G7+0-)+T]Y:K5K" M,(A'EF\H2;0DR$E1/,0S`:<%+[HR55-^W5UN%1YW!G^VAW?P\# M@UYSBM:_B:.";KJWWWF[\WI_&PZ8PZHX#>#=UNO.ZZT7.Z]!PGVA0DW6QSW@ M=2+U2(3F,DW:Z:@O*A#O.C3+SNED\JYP45SYL/%1JZ]UE(^]1-'?,)FW!7\5I>\7OT,X,U#[F8E:+9316.U5M1) MB9>6V@._=;I6K'GF._7H5]F:IUD=):44EQ2S]JV3,`\'0D%#&`"?;95.PK^LAM1YN5A'>ALXY2%. MJQJTT]6&A>^2G(%/NIGD;\HS:'^%2.1")H/TMGKQ/3@/?%JE*2QJ*A5 MHQ(=D]TA.)W.*Q^33C7YD(]1Y)#Y5V]L_ MZ.P?;.^_W`$1M5OUB<=9OT-%P<=](!AT&%HA;JI_&.YD4[^%@_%-[_VMMC[O M?(>52A!6C+`CP*%D2$[D/DA3)("?D6".OR'[_NOO&^[-NMWY<6=OY^WN-EZ2 M6__H'&T!&YGJ(G>X[8)J="SOI#_VP6XA2B[K*MR@V"O=120:N!!QVS!Z`]50 M_IB[>[M'-/#+K:.MPJOB2@'^*CU+]5$4Z4*.S0B#-2,YW`\,LF#`V78.WN[N M'14PMCN0YT5"J]](Y]&?K.@_OXF][$/F"1R1:0QX.2C0.,5`/?IM[!R7S>^F M2K!"#O/F=_W`[:__`)3@U2,5J(+,I>R,:E M\_KCXJ5@8%*O!]0!DWUU>_$DT1E"QB>)G'I,F7TVP6#M>#(?BQN'P?Z<=:L6C&'7>-4HW#(]C,!@86<^FODG7@.)3Y@%FK=[66)_X$![ MB:DXOXTF*7J(CS?>%Q;(1'&12#*I)R*AG:9VS1'5`5H"+O,LU=(8*@U@[;-4 MTSQ,<*G<(@S(6%V7=,YNO*@H\OKD[;=/C>G@7O_<9A>9>VSS%I0]M7;BUSRT M2S0<_4GOJ$+)32"\B?\EI@D-M'_Q<2J91;S@8]M1IU,74<*@1YB^+-,Z5#"XI MJ1IM`(/.^(+='^B<$Z`?7Z@,:?[F8)K+CE8;U0#^,B*G@`\-T&>D!Z-,6SPO M$ZSR46(F!;@4R#P<]R45-]E^N>$#)>$UP%1WB>)'_0WJ8T9D:.H1T5C<[Q/` M9%>D;H1I[^*UTXM\VOGFZ,WC&"X)`+UP]+0-I]WI-!HC4.FFT7LQZ)X-1Y>! M\PT@H0?;P$UVME[^]\^'1Q_YAJ+*&.QY,G'J:LTF#]`R=C;%W/_=L>LIRJL^ M@XW1&.HZDM'JB!E&"UWH6.B^[AU8#!W!T6]O%Y;<.CAZ4N[)72"_+;A?Y&WV M4@FKZ4LEIZG<)&M+].4A.FDTK>6:.$)=@D/T")NR[1O9%B:?@'7N2[>8BHV7 M?V!?+N#57HHCSXSHFR2O*J//QH@+OSDY0[G-\5P2>O8H/?*QCMA&TM@R#([O735=E8VEHD45Y^-Q&7AL+W M7GLDI('RGV&:L*(+-8Q&.`,ADZS$QE9-#@@%^!=CGL5R2SOGI#*[CYT3T[`K MQ1%>'2RZ&K]4#H(9_8?BWA^%K-=BY\"\,=^"RY%K1=L6R M^]N":T7>YEPKC?2UDM-4KI7&DFNE55T+JBV=NXUV4Q[Y'J:*E%RRF1URZNR$ M6#L0.,_8<0%*YL?)I4G:891CMN6C9X^ZVSY M`Q`#AM&X=TEI=XC10Q:)W$O1I`M?IN9)V?IW$.F;]C*>F4)HA"B1)U`FXY8= MX*?).?!7XTL)D6?IX_UD]#[JFY@0HQ32@TF)$P`-K\]%M*]A?5SMVHAOQY>4 M,['L#WV+E2]`OM&,94-`&/UC#MKI5VF M#\=/DU,QXFB`>9]15(*9$:+8F1UWOX*Y MY4&Q'3:"=M7DK(EZIU*O&3_UOR9XS<#C^$R5!K']'<0W]<,/._NOU#/],'<7 M>!6PT(-X\GX(]R*E>.Z.`+?Z^#;NQI>EX_EPU'<3T291_'[8PRS:,`A!5,]2 46V+N8);>CMS%//\?@MW)(YHH`0#N ` end