From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4761 invoked from network); 17 Jun 1997 21:44:29 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 17 Jun 1997 21:44:29 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id RAA19421; Tue, 17 Jun 1997 17:19:09 -0400 (EDT) Resent-Date: Tue, 17 Jun 1997 17:19:09 -0400 (EDT) Date: Tue, 17 Jun 1997 22:23:01 +0100 (BST) From: Zefram Message-Id: <28149.199706172123@shrimp.dcs.warwick.ac.uk> Subject: module building X-Patch: 263 Resent-Message-ID: <"O5ta_3.0.Ll4.Czlfp"@euclid> To: zsh-workers@math.gatech.edu Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3252 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu -----BEGIN PGP SIGNED MESSAGE----- This patch is a rewrite of the module build system. It removes all knowledge of specific modules from the Makefiles, allowing modules to be added, moved or removed without modifying anything. This means that a site can compile locally written modules merely by untarring them over the zsh sources. All the specialised knowledge of each module goes into a .mdd (MoDule Definition) file, which can include a Makefile fragment (for automatic generation of source). The system of modules using symbols from other modules is, in similar fashion, automated. Each *.mdd file lists the modules it depends on. For each module, a header file is generated, which includes the headers files of dependency modules. Each source file #includes only its own module header, rather than having to know the dependency tree. This system is further simplified by treating the base zsh code as another module, that just happens to be always linked into the executable. The system of linking modules into the executable is improved somewhat, so that linked-in modules will not also be built as separate modules. -zefram begin 644 module_build_patch.gz M'XL("#6SIC,"`VUO9'5L95]B=6EL9%]P871C:`#M?7M?&T>RZ-_D4[1E)4)8 M(R$!-A;!!PRRS0G&_@%.L@F)+*0!M)8T.AK)&'M]/_NM5[]F1B!`V>P]UZPW MZNE'=7=U=7=U=775TM*2VCLX.M[>WU^H/GWZI++\N%*MJEJMOK):7ZLM5,OT MO]IW01"D,SY1U=7ZZN-Z;?F[)?\/O]5*K;3R1-$G%H?/M64%H>`[I<:1"C^% M[N5^U%GT@MC=1J>1:-07443-1Y=J?%%J`;A9>]*M:/^ ML-L+.^IS?`%P&$CKM!>6X>N[1VJ[T^D.SE4?2PLPB`W2?Q![#%`!C.ITX_&H M>SH9=Z,!5#`8MZ`Y*@X_AJ-63T,I01NI'4>C=N7YI-L;0Z820,'OU]+LUJ!# MW[_U0H`Z"MOC:-0-X[)2>V?4F8O6QQ!R7:D6M!/K@PJP)X]T-5!%:TQ9+[O0 M-,"3]%@!0B"Q&RMH5HPMC:25BL;B>T< M3L:8TL?_C$)HXC^@TG9K(/``3BN&P8&VAI_&HY8/]:(+N!FUX2?&;-C>01AV M``HBU@JZHRVCT MH0QEX9\@3V,$<*<`&:.P'WTTHXPQ''3!J];9.!QA:0##R.]!]SI7:C09$.F5 ML/\#R==BZM'`,8S(TU5`F3K`P3^BVN$H'&(+E=H!JAE%O1Z6N,01A'$RI-H= M0*,)#A`64=QI=]`:74&YX"Y_4.[YE>J$9ZU)C\:0JJJ6Z*<][I74YQ[T*VY? M0.4XU*->M]\=QZ8?K5%H6IIH&I#&"M`7884?(:XL\`8>7N MP*Z`-;6\7(=_*T]PJ:P2LC(S\E*Y6E]>R<3WTVKIZ6,'WU7`MUDK'YH^X(IT M!6O`X!RB);)N&@M$E5I'G8Z8<'=P%O%B^9`HN&662ES\SKKGDU$+ER;(@,F( MY84VK6OJAQ]4?O'U]D^-HOSN-EX<07B+T6U:6ID,=)O_B5,?\6QHWFVOR8=? M.`0WUX3XTNU,CD9UN0Y[U]HRC,8J;UK9.=?46Z^OK&O#M^^^YX49,# M[Q/NA]Y$_%C8.FS$"8!R]A>;L!LYP!ICY^-U-W:^WHV[/1_-[=W&X5%._>M?*FQ?1.J9 M@@'L#X.+/XJ\.(0?88G'B0]#6MW,?X$?6)&_YIBT`;5/GS[5M#U_S,Z*&<2% MCYV_$3-(=&XO/&)=Q46FME:OKB-9KQ$:IV:&A6:MOKQ>7UO+I.S:X])*=473 M]4/8J8?#:#0NJP(A-JD,MZR`/QD)93 M84;@^V?H^]Z;`[6IMB2XQ1F/7C7V]R&Z`MVM$->V==0X;N*DEASC:-B,1VW` M!9:V7UN0)O'X!VDV_N>WV\>O5#H>_L&J==;]9-+X$].06VQ**B0XGYC*HV&* M\2X;7E$G0HAD M[V!G_]UN`].#O7(9_P/_SR_RT`N6=P^DT9N"]3>OW^[M-VAT=G:**FA#0$/" MK46C'<.RQ2SNV)BM?4%UD;IP\),>:@267Y068M#VEK^<#D"U$>Y^6>]UGD,;%0,<LJ'< MSLYF@1!6,!1/$1KS!:)WC*(!*-#2O&/SZ5R""(S3."D0F5,,_$I1GM$8R2&( M=F8ZQCN?D,@3'>,Y)&!X,F.T3.N"0LY)XB0(D<@\S(4O"J*^",_,UO29LN+01 M*+)(A?2\KR#%07JY=?D!JX4$.GT6J0'",R#*H+&`<=U"B<5(6"MD0Z/C]04< M#^$H2/M_%XE\)$1^'@[@T`LG[;A[CN=V/.'$:I&^(%1NXQIQM/?R`#B65SA[ M='A+PV?0R)6W>Y,.G0P]X0,N#WM'Q\U7NX&.7C@YW$/PI\[P`$&MOC2DPZ,`/SDGX.>]% MI_!CNPYA``<_V-7NH(O![F`XP=]_1J?8ME[XJ6Z;(W; M6)WA[N7P[4;1R1PBD->'HWJ3UIW!>2R@=+1T7']^"*_ZK:$3(?TSG\#?)B"@ M@,3)87JI(V`)'(7QA1,#`]?^<)4`H_NFOS]VG8_+:.3T!0@00R*)$#@>40G' M:.E(SZN.0^20`%O5\1N'9"!1$PT'@6PP0(2#`2(=#%CBP2]L`&$2/XB`.(`D MA"$B(@P@&=&O)B3Z0%+28`CA^$$D10$@*OIELL*@)BH,"\)U>28N2F#RPJ`F M,!-&$J,/(C(,$9EA@`="@V-2,XOZ0Q6=_C-LCVGIBIGE@K79G78&@X(_P9[@ MSL6<@S?!FL:98(SQY6!+<"7(8=0(VA@Y%C4&,9&@Q"#$HL-!!D-A=`@R-"HB M08)!@2,_4DGYDB(!4]8#FQ57\$#M"SJ)#B*(.)`(XC\P7-1I M2NT?';]^2R6!XSLZIM`!Q\FY$)H%(Q9C/.=0[^&8Y2>^YYK3]4"0`I"(5>P] M_^T(-QW@57`;B*.R):P'`H(XKHAGP](PMX*L?CHS#K9P^DLV3/S9HN:)BM/8N6GYF9TC\/E%ZC&BBK84?>JW'%*=OY3A+JA4,-Z^)%S&P4T_0%(TNO575GZU+<#F`FEW!Z%[6LL5J&YD3"JH[RJ+/"S+B/-'T*>TK3\()YYJ8+U^`-D&_1[ ML'?0M%Y@0L/#F9!<@1JE0VAAM?"TZQ3[:B8*`T MCE00JEP^#[$YVP&WMC,6'>)Y()\G&!MXXT+I"^T6D$<^+[W`/!R/!9<`8!Y+ MYI:*$KW`2-$302D2Q31VFUAODW-7@3PV7#!%34T/NV=04.W^XV#[]=Y.;B,! M5`G4=P=90).Y0^#4SYRJPKC5=GK=B09A@IRGX40Z[V"%J^@.QNHTBL;2A.;B M(DMFBL6-7'9-[E'7#CW=IL`B0')JV.E@VSU(3OB,09V50IPIAK6;>6]J]`7X M6^K!IKK"^]Y;M."!5_V#&^MVUQR1P)M4O6C0QN#LZO0=&`&6QB*GUI4C7=!) MO"B+:I4_ND5!I;9-W4+HS8EFZZW-[BN MA8%WB"!$VYM=N=!]D'&)>P-:,IJFVS/G_@$Y95U*6V)+7IBG"*P.F1:V<.7& M.R`@P7(Y=7:0-3S@E8>6OWP>L\.:!]F!_UM$3I"BIEYL%S<8!"[L/`NNGV@[ M^XWM@W=O$[,,3SCQN'?5[H4MH&?G(W"$]$XL$#D4DNS\E\SNQG)VE/"9(N;# M*V)CN0C,QYXI8CZ\(C:6B\2383C29>R'6\:)Y3(^`C"R;D\M;=0*\X[72VI) M'UIL@0S\+!C6V!QV7'F@PV&;#4BY&T3ZM"&<(-2_!`"62(Q#X^J M^=N:Y91HEM$Y?_,][?-PR/H7L1)QQ8*K5%Q^].89F&>01;J__]0=JZH4IQDY MP];W>GOOX+AQL'VPTTC,2KRRKSTNU6HUJ]1SKZMWIQEO8,D[W-O=?K[?4#]O M'^YAX"BU*NC;>;DM-#?T#^P-O;Y*G'Y/[]RY)Z_=8W-#GIG4A/W4)/D7_%ZJ MP@53EX$\]FX]EDM>+P&SLVC0J7X3M2/2F@#7Z`*H&[0!KM$'N$8CX`:=`+E! MM%`D8HL$S8G*.4*2PD]CFU1-JA=,43'0T9EJ!E-5#:Y1-U`IE0.K,6!4";*T M!AP]@YDU`!ZY^@-&I\%)=E0/.-G5/GCD:$-X&A&/'(V(A%;$(T$27 MXUX"79.3IJIS[7W"^G.WNHK&,AG7T1E7T4QHFXX.RY#1B2 MENE&P2>,-'ZAV+*06HMGDU=3*:T#]VQ"9?4)43T=VVNZEP=<(ZVV>_Q1QO8<59$\9=[Z4 MU\M$$E8O)EO6FRJ4(>[U\J0DOE(@2^![8XNFBGW]*DTE6H9C,*$5&T9]G3E` M\3?SQ5Z<3MU\*B M0OYS4?-"1>9"K>B%=58J_0_(\V'-)'TQNBQ%BZMG?@LSY/VI=#\FFQ)2A3(H MPW%X"?DWIVB.I[N;&BPL\:Z8"LNP(G#E*YX-,"DZ).`T&=!ZDG5 M8.!:LKH+?,*K)FDY;.*T<*D;)P52OCV.8L&$H#!Q3,$%$'?"O0,171ZE+G&] M23.+^!IW##D9.-?0ZME]!-(T?O2>)@''I>IZ0JCL]12O'-7Q&_73#X=JY\V! MT8M.L`"S*:4))424Z(_!C=UXA.I_%13O&LOBUDL1M+YIN`>G+6I%24(=\( M,\&G&9GI`U]FRM`2F)Q!:LKE4CCVD.D'+*)JRU"CP2 M/&SLO`,:_;E!DHBT&/#&ZPZML$#J<2=!3$&Z9"N2PV)%002.DC!;$B"&H( M-->[*A@'7%&_\!`#!6H64R)E)5ER[6FIMO)$"Y/OT>M'GGKV4OGW]L4?:JG" M@2DX^4_#2"9=K`!=K*P:NK`+MH>!L-]JXT$:@=6]?F210$@5>[EH-%:72[75 M53,:,]5E%`-\G&94H1\'&MWY]-/`6G6A6EY?-T\#,[*NJ>5:?66YOI9MK`$( M:F5-8TOQ?RK"W(IN/S_FOL"GW#;*T<[.<:\K2U:35DPFT+MW:ZH!(1/>J$[! MVG5U]CMSJE6C4C\^2+[DKM:7Z27WLL%D.J=!Y.I<$6E5VVV/#L/Q9#10PZ@[ M0.L$L/:>`:?Y*4O&+%V#SC]^;#J?S,>=!R3-=XKJ!Q)V5"?R MH@FO($=P9E&-P\/&KWO'9"QB/&H-AV0%XPQ?,_T&:24,8(;R_:?NO%NCD*=/T8Q783WTS2/K!S].K@W?X^2B+NC\[9 MZ]&(A5\]4V_&>W\?S= M2]I"13L38X_Q:IN3FJ\;KY_#:4SS0[/@SWG"EKMWK5D=7WU26C-OZY%WNAJ& M"!_6QTE[K.)V:R!LV=(1A(\HO#$#,7D/FNQ('Q%<6(=IN('1BT9DOD8J@1G3 MLB]ZJ'K<&@'$.4ZSLE*_D.4;V3BX]=;&R]U;GR+2O[S]AK;IQ5R:K%>0/ZI9 M_BB93U/T:G6NBX!^=F:[_&!3+:L^G/IB>EN%DB-ZU]0=L_6I;JQPPX4%,3H[ MN__J,(<&:-3RT\L,U*[@IF89IF0^C=IK^,ZG,Z/6ZYQ5NLHEXT6Y*H?J?R9> MO_USMVR408[5($)]'R!R0,Z&0?G3F5'^8'HMMVON]0VS0T'/7Z>,1>VQ,Q:) MC#P8M6EFB!X_+3UQZ%R]_>5(05GDWRK`$\]*]N9MI24[Y,?CB[#7XT>$ZJRC MB9OK-)B>N[3C^B#R&L*IQT'&1E9#48>SQ0*J2!]5;![< M'U]WK=9@DU[N9]#58SPW/K6H3.0S:'PZ7S3*ZV_;EXL/K=E'>E4)W[OM,\>94VL:J2??&*HG]\ZJI?NFYL4(QYMJY8*DI2)J^1?7"E31H.[Y-\P*YZ0JQ\B MSX)@YP$LZW@0*C1^]--7S-+J=)JMR3B"Y,63'.8ZR944A*!3)[GB1D[?#-&K MC&E]K]_8<>IY?6JW;^IW)QS>LM]0@OJ-)4V_4U2AG%?06`)(@^(<#`%E0$HX M@`)P8`=*@"^B!*$AT6I+X!0R+6HL$CXA@O")I92\9'9QR_&D$L4I\@S&?0B- M;1'Z)U+D5+RNA[PT]W(J.3&<=\^"8D/P2:LD"3*_[4A/&6%O9&E$;S6@UXTG M#Z?NO(QGUG#./IKN8#[[H:9RC]LGSDZ:[PZ%E56YXNFR(/@;MRC26;.[%']>LU%1 MY;Q5-:?M5JNXZX"TL[TPM[\=ZWLTM9_ MS]K>3"SNTE&]P#=OL\)+?G>53Y&&Y-'I'FU(7!9%2#%-$S<,FEV]FW_+\FT0 M\1N^T+!=$XX)]$EP352L,=W M.2L:JWSV(`PS1K1'%HOD[N(T-#?0Z%BBA8Y&C,$\I?;&:D1*$+&B`S2,B4C' MXTD;!:4E&`2(/&MU>Q/RHX$>,*)![TH-HSCNXM457J6A($?RT"4+.HFP*ANK M3^YV>G4Z2.\/H8-8/=I-*CA&_=FCB7:#<(ITWHX``+4"D%`8BVL.:#7@@WH/ M#7F$W6Q!06"[T`K66)O28[QT8[*FU6WUNHC`TRM2N5DLEE010HPR!G18 M0!TC>.S')"324V=BD41E=9L_P)'TF4+=P1A?3R)!0^_%:([J%R'RBSB* MX('$JY1'ZNM_*D7H^62,DTZ94+6:F5`968WT9;YR9<>XI9U2[F"T%=6D M#DFUOH8"L35[Y/_O>OWZ!6C!]GX)84*>QM M?SJG0>[:?)%K#.8ZEW%H"*$U9EO3J.\9?Y@#%F>OR$&7L3PY!675)R[*,G*3 M1YJU]?KJU$OEQYEH@[DNNDKRLHT,EQW_XVWC"(T(!=.49H,IBI]!IHYCD*G` M%V3JH073%7^"3-64;!V-(/MJ/\B\OPZR[FR#J1>30>:=6Y!Y@1)D718$TW:= M:4MOD#U/@RF$Y\8[]J$S$L18=")%6X[VH[49:3_6V)3VHXUQZ00*'(Z3Z6LR M0.%")O61AATEO]K^N=$\.M[=WWO>?`7Q[8O62"WU@>&,VFCB,.Y^#IOC8G'# MI.%3&4G\&'5A>0*NTF324UQT[O5$-+;:,V9AS;]`SLAJ5J[YZG5XXZ?TDK(] M&K70AUO8^L`EE6_K[77G]1HY(#D;4'M M@UVD:G78.(8H"BXN%8$VX=11+!IM4DOK/^WM[[]]>2VABI'C*2AR;NVS02,4FTG8R_[T"N$FQTGS(*/_`+2Z\] M)*:S9134/B/4]VV:-M^WJ=+EE57ZSXW-QG-?.I97#T!9/S[_73?J4>T/M:F^ M8&[2.0/G],=ZE5]>!WE&: M9%G0*1F?UE?FRX$ZF^J\M%HR06H$L&^1M.8!O2*IVN--,A]O8ROUY?GJ]%CF M@9J*NT*W+7OU>#@>E>#G='*&/[UN?^.>F+EM;1IIXJDD8TU%9:!U>S1/931H MFZ\ZD,-=Z5WV+AFS;MW?D[/RKJDJ9(1_V3*WJM%TAT;3P^W\ M7J>N+*321[52!N:HO*H8YEH%5FQ@AE:?UM=6U,7GJ-=5C4]#E3<0'*LG@>^] M%3DV]PXN-F6.T70!/)TZK46Y)[_U*_"`&6<*6![7$ MWD2BZ$.L>MT/(;G0JE.D7#M`IB9R+^J9%J'R9YGL/$IKR&N'!LT2OR"S\>!BVNV==%%?KYZ+H MEWHRCM!;#-9QYK1#`T1%.=L&A)BH&3.9.LOL()E\D./9NH4KW5EVQTUC-Q:EZI-8>'*"].7=0>FK:[)^";K9'D7B M;1P[\?X9&6D:A<->J\T2^OW)A33Z5*Z$`\[ M''8B0(_0I1`"BB:@6-@:];KAB"_<'R8L6"Q"`73Q/8C#_YD`/GK0<;QC*5K$ MO7]8P/5M-(Y%N`?9N*+37FOP`5LGWK_A1`'4B?[:]RFNWZ*+'SS*=0<3H55# M;Q!"M^VGK?:'N->*+RJ#\!)A`<'`T>^3;<`BX?0RFO0ZY`6\1?T?H#_YD<@A MVY0X"GM7B%E^5Z!O@>CI-BSB10&(ECK8>]HS1;]J(C\#^A7#S6BLZ8&XV.B% MS\B"YH?P2GV$GG8PBA/JG-,6:H][SW3`1GG9R%/;,_ZAM;]:DFW(-$VW@"NQ M<'1IL[W0[I?!F>"EP6,KF4ADXQN#)_75J?ONVNJT?9=/9DUZWX@1C5%+BZVB^E$M0OB_%(;K&"Z:&_3J%/9PUJ&[ MS%ISI?,"-+CX8!$BXJ%ZAC=B:+N& MOGY4M;7'Q:+ZLO%5D84_C![#-O<[I3]Z],IE>KCY\`5I[4C'@CC;C:T[52=679($X_O2;!]^+2;[WP9PB]&!2U-)P% MY=G9]@9CR4FR23?C9("B1-@3^2#-90Z!5J0`1Y>4_A4`).>O3!V.@-YR7]!F MZSC/Y>=WUY;+O.>X2%V+F.NR:9=+%_HN0B\X#WB+DZ-UM8:$65NO^1*FM(=6 M]]A7K=57U^K+>.RS#VJO*T('Y-K3>;_DTS6YU^AG0GZ=19(UOVP<'^[OO=X[ M)@M".@FCFGL'+_8.]H[_49S]%*TK3)VDY]62%/[%'>X4[*^EL9\JH'%?FR_N MN9[$.ZH.\1J4Q*\8;R/`88AI0>"L%6G^#K=V!%'IF8>Y&=[;=-I(/948:PTN9W;JX@A:I>-`@SD57-1E8ROT;7 M:K9<>66]M+IZ%]M$5$^&7)D!WH0=*IW&3Q;0)$;"3ZW^L#<=)]5:"BD91;3) MIN6U.5LMXIKN*G#7Y3,,$&4"3B*'MK#IJ'F:0DVJ@$;,7-XD.[LXBBX7EUY' M'\,7<&ZV&S>*!L9F^Y8O9@!F1QOW0I!VSTJ3*$71:R9&:]Y;RFG9-3ZON1>^ MXW)%-5EZ"`>3/LF)\?>+.CIN[C9^+N'OWL$;^GW]9K=!`?(92:%W>[OT^Q)^ M;[$?8,WI[6#>[=$CH5VSI^40CV'^>IMM5E:61:Q?=[6T?KTL`@^!GBS"1-Q( M]F*'2$XX0X"](\&-J;F4S77S/0(K`S@GJ#G7G\GZKSPN55<-T@Q6=IJ'C:-? M=H\6%JL__EA[HC4,O.3&X<^-78F2XBO!]F_#BLW&&]W'F,#DV(()>+ M"T`6P?ZM>&,-/-,PY6UK=3'<"7OC"/>GK.OTU37_8F]J`8/EZ8O?DQNQ+/+$ M:]#^F<^S;O]M@4UF]?JXMSZL:4B;Y2 M\["=R*KQ7+OS)H-83@B\)6+ZU$^LWY?;#2,5U(M M=+0Q(EZT$8X,T4:*L-!&B%AP/FW/W)B6UTO5ZIICS5`C\YAD:HL_$)1N&/_^ MZQ_%E$BN%S8I/39R.9B9T;#U/Y-0?0BO^JTA7^UI>7"BA9)EZ2?Z9>Q6EY]" MBU:O$:/AMK/V)+67OCM^_N[%B\8A+!0'#57E1WML_KJN3B=G9^'(ZC!>7D2] M4"[*HC/T;-,RC=00?SK<.WBY?(RT099B:K96-:8P2K/3K'6=5$HW;D])@:-`=LHTO6=,$[K-3F2ZG)(V MZK8_3$F;HL&,21^[V?$XFV[/Z#S@A<2P.35@EQT4U02":V8WRQHU4#M-%.7J&&X:C?'8_#SG\IM2EO??1][/T' MY*]I5W+L9&'*&KW'OJ;C]!)F_%;^/>/'IJ+HS2=O4;)Q34;D,/P.F+\>8A)G M23MN'L96TQA+YC?X>OQWT'O*F)OS3JT`%$86"L).=WQK6VC3*/FV-:;PC=M@ MUN'A2?J`EI7?X'O];\&WV<1U[X'3"4>HR=$/QRW2AF,;_B5@'L<7PD'&<\+] M/6I/C0,R'5GCL.Y[;9B6G\:AMGS=\]N_ICYV^ZW1AW;\>^W)'R7Y MPE44OS?F@?\[U)K$>_HALX?Y)RG$3WGYC*A?_;?6YOV'(:0K.@IG#'!ZO49K7"%UTK:69B2@G$W>U%-G?` MW4U"RN1Q45/2L?8)!+.6;#V@UAM&\,D?3^RDU'H:(A>`W`"K9K,_0A(%E.;" M5_^%C4N.[I3W,(]90R#C9)0J8,;V;UE]LM^V]+'+[#Z+O4FL0YR6\RV)&U M6B8[DLQNT%[[6Z0J1OATEX>$4\4G&5"Q,Y5.^+$RF/1Z9?NW<'PQ44?A4*DG MBGBR^LHROCFR)QGQWUB&\^?!J,;$[T?!JU#V_&*O%=I&:%6!EZK"+]PP=2.^%_1;E5]LD M8H6\^,P%CA4?PT[9`'J+8H@X%K\F^%CB]$J=`U'!XLF'#;2'MUV"&<6A5YJHJM6;WRESD)\_3*.4+$=7V4,KTKX7J-[=L4/ M+M#GIY@+01UU`A-'9^-+LL,R8/M#-@\5Q9.06,:)V?$"M-H40HEU:W!%D(:3 MT3#"BF&\/W:1.R+-?-PE6J?`[U.#&(6#"-A]J1*?S525>+SKB;Z&&#K(!U>UWH*;K/F[0OI,46M[>K3EZU MM1YKM(L;QDT&$;"$\>MO6)FQA'_&BIBR_6X-L6TXWO MAR-H%:!'&H^-.NN.R4X3D2<-7[<]Z0$5"8W*,T*-:B9?3;4X)5'T/L+Y&6$O M5:Z%5K=R:*2N&_-][RE#<6)QZ]:NSOBZQT4U6`O:O$%Q"_==0X;J(K7$@V#WD],!CL`6HO&AIDF')"<"T]E?MU.4 M(S"IUSWUDS@"DUZ_V=W=.U1.HSF-_'Y7'%_E:&7P++)@`(I$(!BTI>75P!&2 MA#:D3%*5>[JSXQHTA!([.YA[Y^W;%_OHWM9$2P0FHB]EKPQ&4"FG#)UW%2.X64VHRL4!1>@6^^B!"$S8_N4G']<0(9-)NZA&\ZB&_C8+^44.%0LN MW6&\\PF))X;P,$U$X#!*J*D@A(91')+"0D,8+T%(8.+!.`YQ%%"11$%( MBN_L8-3.#GQJ0J$("4,T=@ZCR`^W%++Y3*Y]&ZG#DEL&!5,D2/F=:/,!"1X9 M8*(7H4$:2B"HYHO*-[S"C51)78:;@6//;<"0M$PW"CYAI/$+?HJ%C&4;^?:] M_>UC7)0/WV4MV;L',D?DFTLTS'(!N%=!F]X].GA7@G!E<(PQ6_LR,8L\^0RH M&0`%NT`WT$(?XKZ%A^J?[CJ&\.R0*0^9*CDN*HC01SO-(0-G4PD:?3C.>"EW M\`T,^+=W<'2\;78SFG,2M653\;;]Y>'V:R=51PF8GPX.T=G\9CGB#PHWSZ*H MR>G;![`XZW3\:"9SE(_>O7BQ]VOCJ.Y]J');E0W5J'(Y@O]3,85!"0'7(%#: M0$(`?NO=%E101%@+@&$>/^FXRO^(T5MBJ7E1ML,B*C/WAVA;/CK]9VSA07=\ M<*9`:Q!W:Q\&(X"(!MVWRNWL^B1!*I2O&>LO9W7(D*37)9W_]@U.P\MJ,L,' M7`M8G*OS/T7;P[5\W=[^[M[!R]3"P$PV&1'`+%H#&M0BD2B$WF8HX`@FH^216)Q M;<%8?B7'L;NO*(K4@C"">D!1O!,-"2%;;)O5Y>0VW6P; M&S9;*A>CKY*5'PV*Z^`G9(Z=HA)/CNM-P7_]2QP22"H#CW'=/7KW'/8Z6*HE M"8\*P@3BJ^V\9$4S[+:QB29*)J`H4E$?0:_)D;Q#2HFKKVG[X`8<.N(:B_,HZOZ72B"`CZ32:,NP\ MJN[DU%8E:))"QFE)3#"[1!UL4KXP[O9#2J,#V!(:NN?7EP5G5@!)[S3JLQ"^ MK,!9I(]&`8C\)5!FQPH)S#^]1Y$H#K MR8@T+),S%:7S^DVCV(S*ZWY.%X8L9/:`U/\@V9#8E6$!]8P0]PGELK-6^%," M3=,@T9?SY%)E$RV9;.!)>*#J&_Q^F?)"K8F=%*D?BYA**_3M$/=9-T6NV:BI M_P7MY:E\EFP>3C.]D=VBW==3^,Y^8_O@W=L4>?>C>-R[:O?"UJ#N?FAZD!0O M#@5X$F^".@WMETJ:">JT>#(,1Y)HPP[E)>NOV_VRC5:%EH`_67)8EZ7_P^6< M$EE]$!!+Y27@?)9PMZ45XX+_V^6?F'_*8UJ*W%X*X"R0>"+AI;/HAEFJZV)# M8*30Y6%%,J7PEASB2FSTS@(.F[7D M,$AFO-B>V>:[XTV;^7WW1MF))-_=-J/K9\GK[;V#X\;!]L%.(X559WSKB<%V MQ3UB:H6=N?^G\C"\B?J<#.&3F8:"K;AP/?\0]!U^U$%*(9-9@BINRZ!,JR`U M)F7<)CW>U^-SG`3O]D6S%AG,!QN@^M\_A-V_>@B[UP]A-MZ%_^\X&:9->7^\ M[G[YY[8Z>?>W7J\]GO'N;Z5:-7=_#ZPHFR\XW#KJZCPL.WU.GTHG".;8@T*O=W@PYHK`QJX!O+!0D#8%B#;F(,5 MZCS4$+H``99:O!?AC,E,?.LX.C>5YJM0A$P)2T(!Q^[HVB`]R%EOP5L>P_7CRK# MG<2A=37D'$C8(U!9J0;:$3?Q?.U`=^AX!>1X&,)K(Y.-1E2[*&J)W3CN?4D\ MN)#QP4=L?#".)J,VV;?;&Y-Q.VT%RKT"%2@?6R.ZAN01E9'1?N>48T>0KJBX M+KH^%*K4A@(7M9'#`72C*'`&T>?X`EV'T1^ZR&,WZ,;Z(EY3&5N&H;8VR`Z< MAG$XZ43BD5``MGJ7K:L8[0P*BVU@EB2-C!"Z5AF[@S%;:42Q]61LKER5\:K' MK3,6,<5P"][.6#`EON(32YGZ!EDIX)"`5#2F@#'ET8;9C2B>##U<+2XAF2WA M$$DE&E',4^D_XDWM_/=`:#2;B&:(":61,_=Y_&HY:)FPK3';J+SL@A M`1^`0PA$I!?74P'9@>P.VG$&*+:I-S+66#OFQALH/0U-9IX[-9"^R:RDU@=I M^5__\<<3S%N@J?N>@[!X$W+(A,B)@&"=>MXUY$8`U0L8&C<3*2-` MWS)@M1CSU$]95GC>VX4EOB#3@493Q@P7(4Y;)--546M:6@7/+D&T:W&1A]9F MK@LJUNH9_J(`4YINW>G,2[V2F_2\C'Y)7V:;9)7GF;"(`-&K"NP-;*24[YZ+ MO*:YBQW0RBBDB0#+`;9!5!VLB52WH7B#?Q[RK;;)[S6*6J&I7[)#K;]@*R$[ M^W-SS*-VTJ,X]+KC$V,TZO"#3-B\QU:;)G0W67:Y-C';>(QJ#Z&SJ+!Q/+T=L*6\Q))# MNYOD,+,WI=.$5OQH]YA:VK;9)1M:%%`-@M4ZC(9/LHF4;Q3^SP06#88'<\9K M!2,YCOJA1H24Y!D(^SW1#T,:A"$O0D;'HD?F6ZD/CN9#''::@VC4)^]_FP5Q ML5>O2B`N54[*E5*E)-]CG5"OV1R__UDILW-?R.QEI^(W)%.&[/2QK>3/2LDI ME:08+ M%Y8/>VD(W:D0O!9H$&==;K%S<&)'R17WQ*'^A:/"/JOMV.3>8\&+L,E,ZB8Y M!\9O?0#9S-=$7@(3V.F`::)&JNN`V`*LY+^XT+X"P3E.B:T?4B(R7#IN**L+ MB2OC:S-[%3S$/Y7.Y,P89%_Z^`"&75WZVB>Y#&B[;]3!FV/5V-T[?N"F9V35 MHA2R<[?WYD#D48I2IY;5#<4+*[_E?G.T9LZF$@_9%B\R[(6X9.9#J5PNG1?> M^R`D]Z9;-M$N^2H[?EJU#VI.F59\$*,1<33P1WZ(4:*1]'[, M>7(DA"`!##K&8HD,B1_L<-)MPH+7XUS>_50NL`7BHS;S%HD4RW78R"W/C_4C MQX^U]`/=(F.TP)-A@F\7I[F\\Z5%J^7\%X;QE1PF:]@(84L#=4?!`.&^Z,+E M$R,+-W#()3(&S)!)80@Z)>&3<9%GIO*''^R8Z@(7?H&+K`(\Z%R".3CZK]-! M*L2-HU$3RH#9JX,5=JR>'M:*X,(E6ZY*OH@DN`9-GMY2XX+6GH`KGN<3R(M?>:M,=Z%06UJ]QAS&197>7E<',8"737WGI%XET MOC_7Z30&?@:1N$L&W<_,93"]NN\=[.R_(\T`7WAZ_4H/!WV5E`PFV<1T[3P- MG66>)]\1"@`%NTT8FTTA&02ZY*?D],9PDE/P+W?-SO$G%B^58,NHG.3."TI/ MH^LAHJ=UARKL56>_W=TN/VFDL`IA8;L'J=X)5'QE9WKE"P8WM2CE2))"K($P@*.Y+S MYH)E4VX!VG9A>D)*^H!UV<4P7N]@-/C)70R[JA.GT/8"YBR:;0`(`Q#R!0HZ MRRXFR!*/N?72:/*?.'=0E"$+`-6?RUN2!+*5)BS0Q@9GT9Q9C1=P&CCDZQ7$ MO-[F938>IZ7W::0S2VYNI3NE_**SM-.-%KGGA25+"C(<_RYQ(8L-=FX47S8. M&H?;QXU=]>+PS6M_\TTNG0NR""YXFTK3E$'V56@UYV7+R-=)9Z3MP<]E]@C) M`FN\#^=$M+)L9-&1;&0T.K'SU[,@.!5FI-HBJ,Q6S*@CQ4!1D12ZW'KDJJR0 MG9$FL5[HGSU3)].T!U$SP&N0/MT&GXEYT&MPSO+P=C/-8METRS.;;HH6C,)@ MP0>Y0)!08[4X"R!:NKH6*QYGUZW[G%Z,$'V"\#"ZI5573O);=-E.+94+)+:. M9WV4H$H6Y,L83+_.>@9[JNL[T?=^5*>C=7'BW?V[\+SQ0A@P7NW^4`4)KC9= M2I1U3D[S4O`D=W)R\M[+3YZIK!RP?))+EF8%H13`_L?,NOV8 M:UKRCM[X=%2Z11EM..NFYX^OCL'6.S[7'_@#...XR[+3*?H6P<"849.;D MJU];=^Z4,1-NO1*S(/6FCF,5=0_JXK3A*V@;C_C"R\Y)81$+&]/+R07@[+/$(1\FS$[F^N9465E2K].7`6JI8JM+E'/4ZLQ^RYH_J>Q"B\81R;LC.)0T M^7R5"=\4T%9G0&WC MV@N]&Y`,\TF.%U1\&HY-TW!&G>"5B+\BNGE=A"10#.6FH=A;Y&X&=\(Z,L7* MC7!)+_).(WK=\#"K=,/@&)I,F5.\=DSP?(+:1&EFZ*8ID$`W`)H/1<_>_@R\ MI:%:<]F9BY!'LU*Z.'7GR&;ALMF?>L;ZC2>\((29]*=:JJNE'W]42R=T$ZR6 M\I52Y4\,YBL/.H[Z%&:/,_-7-I0NX1;X/UF^.&,L*H*0<06HUA3\>%PJG6.^/R9D:;-RG9)XD#];:VOM\B M;3&]/WO[,22:`Y7+H=+K6"N=.5DL+YT4(7,B4#E9)'G_23%?.JF>K)S43E9+ MA=2\S<24RY3;#%_KR3Z07-W>I9,2U06:"ABPO3;D-*":;"8[*8QWAZ# MV5=`WBW0#S5]865#G75+[,S5"M'+=1L!;3W9F39`1DE/)^>-EY M[][&;4B\7-/%UUW0I41FU`D`12)F"X:@3+ONV>"[SL)[:HKMT\Z;@Q=[+YLO M]H#8-Z_!1CWOUEBY_N)-0WW5V-YM'!YM6N>.1N'7&2_205Z^GT9BU*%[J*1* MX@K:<5E9G5$E<77E6HU$6T<=<-P:M2^2SVI888-R.:HCL35OLH4*A*)IUV4; MJ1K2*.K;ZW.9"%;8B1#M125?3=KVY*2(>6RF+XTV"W2;?7F!=X@TX_,/83:& M:ED6*O.8JIIQV;Q(ZGYYNF+`3FX8AB=?9?5Q[1+6+,WHM-Z_:[-N$YW?6B4F5'8QL.*OD*S-Q_95W9T3S:=INB.V4^\2!/YI.7]. MU#O+$7FG:8TI,.C`#VZR\(/:9O!C_2KRDQ,R`QV1/W+Z&4[P]Y_1:0P_/5B= M(M(X[7&V7A0-X:??&E](^7[8QPA6ZXU4Q#K;9;8\U)=`C$ELXA$"VA6F[FRXW%8^_A5Y%L(8;:CR6#,078\ M*<8?K+])!Q503KL9I3JTXJ3;O';=AO&-\M;1WLL#.$"\VLIZTURL3,GL/-RT MK71`DW2>U2CXH%5>@K([;]X='!><7`X8'KJZ,M[DRS1!`!-`!A MPYBS2^8Y\1G7D_5]ZC MWH2;=QX&)%M@`"!JT.\!Q1.;LB":7P4A(+(G\GSOX&BSX,&0(]BOD+KSPN2N M6,@%Y\6*)'IU&<*Q9%&?VDQ+`+D=K>$%F]H6X(&2%BW23AD+FTFE(=8:\C6& MW#>>#H-!5^G.&R;;CO?VC9QHL.2E/O-(R>BMZ%U;HO6A4>@7_O`VH;';1!0V M.73VT@`-1*Z@RR@R=PD)'"J]*V,AU9'WL8(KZV^SEC!:$3LCW_$AFZPC$_"PGK$I M?,6;]H72EN'%N,:L=ES$DH6>/`136',!:&PYT`6>WE@(0VZEM(=,XSUFY4!2 M;HD3[`C:QGQ:K\YJL[%JV!'-;6SF"+":R,^`?G,)!D/7'J7W2)-D0C@6.FS& MVUR5L;HXO<(2E7$83MCJ]O#K9D5N&-\-X4ZSG0JNVR-!L051V%, MNN1LV!#:C:;J!F$;?EKTELHTP;:&=F-V8WS4W#O8D?U;-KGT-GY-.9@XI@+] MC/#.`/`TYN\_YBPQ&>#SB(%@J([ZZMV>4Q*W/3:2![OYM(DLVE6Q7TE1+8)-DRG6)%YG[M-YUJYS9]%KU M[DT'H&@+%W]B^DEV`VN=9R?$D7!6-];OT0T$FVHZU37'QEMGOQG-7UF[>_,% M<+(#NKXY=D$[WDUU`!;NU;MWH#<0NSC`VL(D'O4Q'%\-VLDN_4&HJ0F--/?BH#C4X@]FE(G3 M,.Y[)`4]R7#0B&YX&1Q=\`?6F(CAN`Y0*;+4[/C,XM=/%>22;[2 M3:TK[9)23A8V+::'<0N+"?ZI4`&,NR#4M7]+?$.;!D&/N=E4-MX.#".T+SPB MV3_S9;IA62!2$,G=]Q^;^M'O>@HDAM!U(=JU.]X[:!Z_`K;Q M'TV6&:5R?]TH9)S\7!=]=>VDR6):DF["M(:@U/QQ32&TI6`\2,T1V[9_@&VW M]S]W9>-X]LAVQO.NNJZ%4[%KT_^=T&N>(:UKN?,$^D[T#%[6>VWH/W' MBSD\_N=*ZOA5DX[0)74I*"VI<1.-V7+=174M9*VV$%<>EI=8[R"?KW0V5%S) MJ:42Q.4J(OY:$'V%7`5JKV`.R%E2RR4(7_AY@DKE'#/\65[*\;UZ#B!=-D^J MV+C=DVK1`_IJ0U'VDP')K3CA1T,MW2G4<=>VEVWC`7M[KU^_.3S>WK^I&^5T M1^;0#Y=&W>192=1;-NZX`HA_XPPBO=,"X)#I+XLX;X4^QTUZ"LO&6,XF`WI) MCE]W)U$]$?)6E*D"P%YH!8`]UU:=M[7.7HL1+2`GA:)=7'6)Y_KOUD"I&O)<53@6 MR;D.>:5L7FTZGY;I/[KT5)@O?,4.,$].\A7U!4+X=R"_,%U.8,)4Y/,45!9A%YQ2"@<]3#M26@K&G)B[[CH+['TCZ3^H,V#-D$&OH(!C^5=?GW;.U MFN[:PP?&JP!\X/_1)4M=V?:4/JJ5K0!P8+E7:BA#O/@<];KH MEDWE#81?Q(7*Z97:'G1&X26,87<@R=K0UQ<.!'+/N_POO@7XOF+46/+??U]X MC\@D)83D@OOQOU<.R^.&KM0._T&.=S612--DU8. MJ]17*?DO$@J\^PC)LO.",^R\"#043J2R#IKZ`@YV(%1X,"9=W^J8%Y MX"=`S1J,.SI^_185-"?-$[X/?"7^5I0'"I)'6H'#5EY\5[R>L]*J&7I*+D%<[L`Q5BI7\+?"LPUUQ71A'AJCOI,`8-5V3(E%M$BG[4^R/D@>:5GEC3<% MMBY/MK2W=XXW47T9:!I?CN:IOAPJ&&%GOJ@IM+Q!2ZM!*S?KF4_1,C#.HQ:= MR"$S/-EX=>^+*3YU58P3";6=.*\\D?#K\.#82V&&1Q!PF#(V`;UV9.P!3^>] M!V@?C/ZRKUM@5OTU6?77*LN/U?):?0T6_L>9J[Z]J0[$CL.$C13AX4R_T<>Y MBNHAI$0U,&6/S4T/;OIL38FE%<9:7,O:M3/&=<:L:^):B")PQL09&J6P9L[( MA!-?(9+:JK:2(QPC6A'2[=1FN`@<7CPEK/6T%'J2@O:6V]QNL:33&N+%Y*B+ MQ@N1.\1%"75W.5GC"2>X8R.P2P:57D67X<=P5)*+R[-6C'9VNF<.,OBV"U$D MWI)*!!%/OGL*G3.UN\/66$QI81/'8:"=01E35,8P89\\@O71G$^7-$]5:TSP MR#00':5+>(6FK?=9!V4=@Z=$>\IF1,G^5C@8CU`[.!9+>Z-^G1*M$;TF(:FN M=F'%Y3Z2VP4+Y_W#`EI;'&'?45,)39>QUN5IKP5#SQ[FR6`:*K^1D;]]BD,[ M:&2NC#46.P1N0@[`V//7!%:ITU;[0]QKQ1>507A)+C7CJ\&X]0,2T5J#Q@QM(1'M(S"\>''!\44, M-F(,!R";P")U:0&*'"'-BL_4%5_B,"4:.RDF.6!42\7S`D!*'$ATE M4DG]:223)[0O>_[L;2Z147I>OY-%C,0RZ6G9QABII5_2R"]]'ZGVF^28?AF6 M:&8M^6:4'1-]"T

VGU7\75'_T65V]:_>^V!U2?KF5L`DY3,K:!E2HR_P!Z M>3US&S!.$W!1=;OH644UV6?U[AA,\^ZH`'8/Y>7<,YN'= M,;B3=T>S<3\D?E)F+7QKUXVNVT;*R&X;-QW1BN.PD7(X#X<2?A>UA"3IKC%P MG3QZ\?#/]9'H>$@,/`^)2?^(@>$1W?B('G&_$:SXC4*.O.4%P9 M!HXK0\^-8>"X,30N#`/'A:'COC!PW!>ZK@L#QS^@\0T8.+X!';^`@>,7T/@$ M#!S?AY[?P\#Q>^C[/`Q#?[G`\0QW-[]P@J/I?N&"F?S" M$1ATZ*C=.,(,;.RB'7;B^N&?+WN`E#K'.\[D@H0S.09JGQ.CN64F'K0L22'L9FJ3/JOA` MGX^FAHH!-:W1.9MBHV>0@7U5;\FTDRB/IW" MNB!9\HOD=0^7'7:_)Y7=TL^?E-*&U[F#*(X7UW_23_AGG(C%%^15D2(Y[#G\ MHWB@/VXI.V2_JTULH,[:V0'TS2R\XO>M"G2>")0]\;G$=X631[O@AO=R06W<"<7 MW-+]7>"ZD;/7/%XOW3[-N:EW\7PWOW5/(SY]E]6\IR.\<2 MPI37/`N'GAXK]3J/A- MC/A-C/C7B!'_@R5\J%6"TCVM1&*<+U*(E41(^H=:(;,)_Q!D;"'&&F"LX<4" M[B:A(&F\&#@:C(8B0%Q)(19P2I@BIHPN]$V"F)0@\J#5!856S8@B+4*UBA%% M:^1J[2(&((@6Q2*6/;HX_R;A^B;A^M\EX?I_3*[UVJ7^_PRQ%NK.S46D=0>I M5FUM=4:IUN.[2[5^\Y6`OTFTODFTODFTODFT_K^1:'T38GT38GT38GT38GT3 M8GT38LU?B.4]*$)IE7E.I#_D,9'^U%8XK9DC_#CA5TK\B$BGRN,A_:F?#NEO M>3AD/OG!D`N-GPSI#!^[)D@/A4C*1B^K=`@?4V'8OIYRQ&X)0=EO^PV17]W> MRI/S>LKK^+56GJ9;>/*[FVGEB1N\F]5BM\E^F]U&NZU.-MMO=Z+A?LO]IJ?: M;AOOMIZ:C_-3RQKY.9S\ENW8V5"6$2Q3*8HYCU\U#@6<\U;."6?)*67,BQS< MU6'=-`P;P,49Q+6?64;+_8AMZV.W(7'TGR40_2R220<'URR#7B89ZQE-AP5L MS2:XO^FPX/ZFPP+?ZDPPQ9A5D&',2I;ZFXV'!;/7'I]#H38M/( M]`XFQ((YF!";D51O:4+LUF2J38@%]S4A=MNAFG[[.)4;L1P(V1A+&/.T&\,\ M;)-)2PP#5%=L7-"`26E&3'N"\._[Y7KMXO0;Q>A =_ULN0N]B[N__S=O3WW0C_MZ;T_\+*!4[,[]E`0`` ` end -----BEGIN PGP SIGNATURE----- Version: 2.6.3ia Charset: ascii iQEVAwUBM6a9j5mk9GeOHh7BAQHXeAf+JindSKgCakwsZ/Yey9iqIo6ME+W0S9sq z8wEohkrLHpGevzZZiIOLRe7mioI8NPoRq3+IK3fPT+tuwQ3MBK553XNmeRwhqLc yqu8WWnqa95gyEGofCCLNccDDxaoirEBxtosZNdqRpV6SF/Qd7YO9G1Jab/CyahP vFqTzlcfml0nqnr8XHaDUj9FpD0Yu1AH7EgdiaAEPmx8SxcVzIPchDIOzA/8Ros7 OoZ25s74oTc4TPvQvhc63sMIhJOEJmS2s2CZZi1blEUdCGxV1jbfizfqfxsFRjFJ aCrm6uRGrW/mxTnLxRXGjjtWPbXBRr/CNe8cvuXYdm3dKXS/XJpNtw== =rtVs -----END PGP SIGNATURE-----