[comp.os.minix] Keyboard driver with user-loadable key mapping

hp@vmars.tuwien.ac.at (Peter Holzer) (02/28/91)

Hi folks!

As promised, here is my new version of the keyboard driver for
PC-Minix. Its main features are:

*  All ASCII codes can be used. 0x80 .. 0x85 are no longer reserved
   for shift-type keys.

*  A minor device 128 has been implemented which is used to read
   the current keymapping and to modify it. Usually you would do
   this in the /etc/rc with `cp /etc/mykeymap /dev/keymap'.

Have fun,
	Peter.

----------------------------------------------------------------
table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 keyboard.tar.Z
M'YV-0Z0,F0.@H,&#"!,J7,BPH<.'$!'"F&B#!@T0 "9.C!$#H\:),SQ^U"@Cz
MQ@T0,&C<L#$#AHT8,ERBA+&R1LB,$7/JW,FS)X Z<^B$D6,0C1HX/AG.R4,Py
MJ=.G4*-*G4HUYXR7-FR  "%C1@P<'=_(27/FQ9HR><2\&4K&Q1@%-F_ J+$Ux
M9@X<.4"<3;M63MNW,7*HE+%UALT8=,62?4&'3AZW"F;0R%&#+HBK, DW?OQVw
MAHP;,;>"H('WI.*R<.2\H?/&!1H%,3S?%5TC9<?4JUN_KLJ[M^_?P(,+'TX<v
MN)0B08@T*5*\>4Z-%2]FU,A1I,:;(S?6N!$RY<J6H&74N @C!LB..)VKUPE4u
M*-&"1I%27=ITO?W[^'U305-F3AD0<(1!QQC\S0$":WJAI19;;H$0AAMD'.A8t
M@W.\P88=_]'!'X"JB<%&&6V \(89!V[81!INI(%'@GRQI0 98V$H1XD"@A#$s
M%$,DD00(8[Q!1G\HQ00#""X4&>1<#LKQ'U!E1&B&6"7^-P<::9A!1PN.P?'?r
M7@8^2(8"8SSHQFH@B/%?&'/,098;31[XAH-NY,&B"R!,\>819<C1QH,LU'E'q
MDVE,"6>$1BCIAJ!,RF$@"EZ*J&&><Z0 YH,.T@$"&VA:BD88&$:9QHQN")C&p
M&Z&RP>*"?LU!9Q)N.$@&&6G0,6JK"&H8* AFE"%@'4J"@,(=5!*HP!UH.LB&o
MDF&0(6<:;<#Q81MEN$%'FRB"T(:<9GP:%( "$@@D@GNA^A>NJH7HQ!MV@) #n
M#"DXJ, <6HZ11ABF9OLA""_\:(=9:.T)AZ]MH BEOB# A$.[FQIH9K0@,.LLm
MB-%.&R&P:1#8L(%,1L@:F)NZ<4:&&^YE;1APP('B&2XHH( 2[8$@1QVT;HABl
M4/2:.L<88\%A*8(D.ROGH]P.6&"?2HI11QIL:!QRGFRRT6<9 Z:LP!+]DHPKk
MTD .]1]N=J3QHY-0 IV$$$VT ,40I_85X:_!HG&QL14V[,88;-3QM0+5AJMVj
M@V+(^:,98=3!!ATI] GT$VRD@6%C:8#0A P7Z<U6GXT"7<44?1)1A]"#*H"Gi
MGI26@<>T$+8I>:I2)T'BH[W>&NT;=9SA-HK3*KGMCG<@;>H=8TWK((=OG"%'h
M&"%J6",=PQ^*Z;0&[N6O O8"2?N;:-2Q9ZO(DA&&A_\]J>>@('0]QG\RSA&&g
MFPYZ#0+OL9[,HK]7?ZBJ NRZ"V\9\M(;_W_YEK&O\U9#0<#&-"."&0QAQ5I8f
MJQSVK(BUB6(6NU7&W,2Q!WTL2BP:6<E.)C66;>ME,?O/S(3"!IOAC R;(U +e
M1$<'%_@K/\V!CD6L4Q[TC 0[V3'/1%"B$I:XY 8PT4H-QS.D],#PB#^AV7L d
M$)^JT >)4(RB%!6R 9A(I@8VN %>8/ "?" @ 7'XDQP<<[0W($4%#1 $FLA@c
M!MFI80UL6,$)@  ('N@!#V.P@QC<T 86N* %@5#!($! B(84 @"WP$4N$D&+b
M&MB"$;&0Q2P \(>"=.$%SME "$0P A*4P 1?0$$*3O #/WPQ"E<H@A2HD(4Ja
M).$)4/ "'])X(R(8X0A(4,(2F! / %0 $#[0 A:&8 4A.*$).]!!#P(YR$(Rz
MY)!:S$$B:(!%1E@1!BPHR!8PJ9Y^ ( 5JP  )_;0!P!P02>"<(@J  $ 5[QBy
M(8$ P"  X,R%'/(AE00 'Z9H$$#X\Y\ -8@  $I0@P0   3UIT$!,   $* Ax
M!@  $"8J48I.]*+V^1CHW+#"T;F09/SLC0RE\Y'J3.<Z-*2.1GCXG1\&$24<w
MD0MAC!A2Y[1G*$4YBA.94M.>^K0X5>P*-;.XQ7"<X(MAS!,=]%!&. 1B!6E<v
M8QN- D=*$,(+@!A!'O"H1S[Z$9"")*0A$:E(1CH2DI*D9$%XP$V@;K("GC3!u
M"T39@Q^ X92I7*467 E+3:!1$+6\92YWF0E'X ,0)\C",(MYS&1^@9EB?28 t
MHCG-:EXSFP#P05N;TP]^&&0/6^A"'\Y9$" TQ \ 2&=#UMG.=QK$' :)YSSKs
MJ9![.B2?^PQI0@L*@('N]I\ ..AN%]K0AS(DHAA-[D5-NYX1UNRGOQDI#4UZr
MPY1NQ#LL]:%,:2!$\]B$+C2%;G!NNL0FSH>GXDVO>IV"/S2\:0AFS(/[SB*'q
MI@7-6P8J4LK&\*_3C>L%0)'#"^8@AS'PJ[YE8 .8^JN@O06(<P F\( +?."Fp
M*:"][XVO^ZY7!_WI5P%M6 .L9A1A 5_O!=>C 8A%_"E\!1C%#WI!F.B@8OZ^o
MCV0NN$B)8>P&'M. 7WGP5XX7?&,XN*5&.S[QC'\,0".K&,,@@"\<Y.NQM+%%n
M@P::'KZ@-@8B%8G(*OCHOU[ Y0L3Z$U!*!D;J'R&^Q;(R_N-T(X);&#Z6OC!m
M%N.!E?WB CR_!LI2*(/1D :K*MLYP7 &<1C.8F;W1AE9LJIR__Y7-3BL>$QRl
MUA>0X=?EBQBLT6\20:"3]1@0L,H_8_Q=XM@$ BZ<P,8\R /L9@0X.\PZ5EMJk
M\)7]Y0-\:;K)KA8!J$$@ @3)FE=;'M +"@R^HKUA-2X0]MZZ/&<*'UK!-O9Oj
MG[OEMFK7F6D)'K:4V3PR-W385!\.\8A=+.$3IWC%ZTYRC)=,Y";GF-TFCG&*i
M-XWC&C,XR#B>,;YY+&,!,;G20X;RN.>K:[]@66X((O. $FWC,,-/XF^!<II]h
MYCX_ ^G#8Y#SB^E<X7#[&01ZUK:?AQWH02>-X0A&]Y?WQ&B%0]I]D^:WI4.,g
M:5_[3^<\&DW!9("#88M:5\I:U:&4JFH4_<?5L#XVK3EU:]_Y5X.]SGF3M3V&f
M]49%NB>M84IQ^)':W. &=/&.#VV0DAH0IH:9\8C7@4/>G,IG*D^<N][WKI 7e
MJ  $5&N1PV&DN#SA"DIG.T&7(&0C*BB>3BIX@<I&@"*ZV>T_(KBV:X1-^;G5d
M[4<HG\,9-N,:'RB@\Y8'/0_4=(92E?[TE?_\?W@P0!45O(1ND,/K42][E-<>c
M#S)^0QMV'_O+$QLW8]@\[#UO_&)/" W"5H#?ZR04"%VY44&@PI[;LA440&$*b
M+R!,$X80A(8U*W% RGZ)5!,[]V[.!>V*_.G_YG3 %R$+0B!" A(  SRP/0'3a
MEP0O\ 0 (A:6XCW;!P+:(Q0@('_2]W?JIVU;T01OL"TC$B7^$3[T4@=9TRNDz
MLF8@,$$(Z&RKP4$-*'DC0'^LM@1"\ 5#\ 1-T 1!X 3ZUW\5 8!_)X $" <&y
M>'@STB-M<#UD8""DTG@G.']ED"TKV()'D'U%\ 5!$!/\AP<P( ,X6":Q(C<Bx
MLCEPL#D%F&H($BW;<R]1."2K]A_REX))6'\L^ 504 5,, 5/^ 150 5O2 53w
M: 0P<(5B@";= R5 *(0&@B!=R 89"#MTT(66PH.IEH8J^!]M>!QRB(?]5QY\v
MF(75@HB*^(4[\R:V S51]H9'J(9*"(DM. 54D'V7,X4W&( #R(D^" (T0P= u
M(2*MHGX..'W?%W[6XB.(UA+;!WDH^(@@\'U?T(:HJ(I3,(6@<84Z"(L(.(NUt
M6(1P, >\B (_D(WQ-XQKR&K&N 3WEW^LB /.^(J,>( #(R#G0XW62!BY"(':s
MURB[2!AMX(NF HS^I2JC2(QM& 1#L 3[UW]&$ 17>'5A, 9KX#+]P8-+MX_=r
M:(I?( 27DP4!2856.'W2J#!9Z!^6 BP, X[X1P2PF#URXH@/"0),4 1$X()/q
M0 1%,(4J>86!6#EO<G4(PI$HJ9(&8I*EZ#A!@ 7'V(+^N 1?<!Q4( 5)4 13p
M@!)XH$-[.'U[LB(C("O0,HAO0BQ9B(!K( 8.@I .V9,R")1M*)%3D 5%601'o
MF91+V7].>851"0)3R2S?\B9L\&S_0C'WLI5E A0E*7D/:",EM'WZR)-L* 1)n
M@(=3B -/^7=BD(43Q#->22!#<9"U8Y4)^(YU$B:MTB,_8B# 4H%G,@:R4H2Wm
M,B:6 H0/,RT@&"8ZPRMMTC=8)HQ(V),NR01?@",SF !;@0,S<(6U&8M,HH5#l
M<)1,T )!P 14T *_28*60IBLII3D!P5/^((N"9.+629E< 8HDB)5=H']P9I2k
M4@9QP(%S@X;<V)-&$ /[MQ4UD -7: 8P(YJSDD'IV2>KP1^*<G@E] 9W\)7Uj
M9P16J)L@P':S^9^]*: O4:"L9@0TL)X#*@,*^A]&4 ,.RA(1"@)&0(X(:@,7i
M:@3NB: WT*'F4:%%1XKUUP1)X 27\P5$4 53:!A7> (M< *V" *:PSDL%"U?h
M<RH1XIS_H:)-<)M,<"-(P*(NVG_;<87F!BUCT65[$2 1,@>8(BA%>*,6DZ.Eg
M$R%ZZ:-U0IU%H)X""D17B 3"]Q]%N*1Y4C'<TJ/G67\XTI)%$*"[J9ZZ> 9$f
MT"IG:CUIVF50ZI^L1@6P5)1/< 4.&@,-.GV<"21F4I?]:2M=TBM34B42TS De
M,IQ2P 1'>*%.( 6W27Y.P)(NN8S]IYA7Z 368R8S<H$W0RF).@<*L'_K"8&Bd
M>6X@^(%R8H-YH34AZ!\14H1CTP2"R0*O"JL-N)>6,JI#<BM $Y7,8CT%F"9Ic
MP#T@L*2H.JRQ*B(DLJISXXN+%R%92'- DCTOP#[3\@5K\#RPJIM_IR;G9WB-b
M4C/\B3%J4F6YDR=:VG!#Z"MS4 ?"DJ[%6BQ $P1M$!3#$R%G@Q@PH7CMDCL:a
M@H@*B9I(<S+6JJX8I'D3FZG3=R(WDV"8PB:P,YAMRFJ6:IO+**!><87:RB.^z
M&(L?TAB&MY0H@( !007%.07;>*$OZ 13\ 0IZ: H<85G.*VG:G@(V".'8B'Fy
M>:'+,7Y(4 3_"(5$( 6BT7^#<87) B/]89E!84;6 B)B(2?>XI5A8"6&QYQ^x
M^A]+.P1-^[0R> 1;P99"Y99AH)U=1JV&=Y.L\2_04H]R +;\X94.:**LMI5?w
M<+5R@ )ND ()@ (F0+AG. =;D+,[FY)=H+C35WEBH22B"8)K(A;_T2I<VH9Cv
M4P5&, 5)H 4O61@7N:YIH =F2B)7AR*;:#1FD"LS$KC$Z(]4\$I.4)$T<85!u
M()]%N"=SD)#1&"_S8BJA=;8@X 1/( 4RR 2^>YW!.YJ' F?,.P5(D 1&@)B5t
M& ,X^P1.<)0\Z[L0*KC_<9S>2X4S@+-!\'U,\ 3_.(4I<:':R[TT*[\ 68DUs
MH*E5T 3Q.[_TRZ'H"WA? *0!O+]X0 /7&7@*"2^DDJ\(LJ27\@: &[*0Z(+Or
M.P4)G)@-C!8/S) 2_":L:2!U><$J P5(:05."''&0@<[L'_31R^6(C*SF+0Jq
MG 0L3 5%X,(E?,)K$,,R23(F;,$):<-"X3ORE\,[W,.T P+?*<33]YTD(R6:p
MJ;*@]R/3(II-\@-'R,0M_,1&BSP6(L5_-\:J82I(+" XO,)A+"T\0L1?,")Fo
M8,8% P(],*UBL2>FPH-J8KU],B1Y_".ID;5MLL1NS,,N'"Y?D"5E8,>.C*T)n
M*"!"X2ULJ@!@K,A//$! \06)BL>.DZ(KVJ([,+'3AZ9-:BTH,HVM@J4[>G6(m
MK,-O;"E+"L1V;+<S L09=,-?G,A.#,=+.L>U:\<=D<<$Q,?/VCZD$LB@3,BVl
MPZN]+,N:#,S6\P52BB9ND\= *J1$:J2EG*ZGK*>I?,U4VBHHA*.CHZ.F@Z_1k
MW,0N'*E6L@-;@9%48B6[G,1M+,V_;"GP3 >V/,_K6L^6HLMKK,1^F<D]+)DSj
MTF0&L@4TT 5;L*F=.H.@JI1= ,H*L <*  (:_;8L  ,S, ,L< (Q< (C+0,Fi
M?0(SD-(TD-(UD-(V8-*B,=,@D  G< ,IC0,IG0,I#0,I/:,CW0,IS05B,-1Th
M8-(;#0(G$ <I?0<I708I+0<I?=0CG0<I70<IG08R3=,V_08I#0<IO04IW04Fg
M71XU\-$Q(0,C'08I/0=(O14G0 8I;08I?08IC08IK08IO08IS08IO0-;/=/\f
MIQ(?;:C85(434=B2,=)ZD-)XD-)CD-)V\-9*7=0C[08IW08I/=(C[0(I_0)Ee
M'1,Q,-(J$-A;P7\Q(=(T&MHI@=8T,-I52 -J'=LB'=LTX-IGG=2Q;0.N?0-Hd
M71N_#=OB,=LQ<=95:!YHG45]4M-5*!=H#41HS1')?=M5: /&+0-9$=VWK=O8c
M+=PV0-PL,=(^7=AG]]'F?=@L$)#GO=[HC4VZS=[P#0,;W0?"RM'O#=*J'0(Ib
M#00I/0(I30(I70(I[06F+=@G8 (I7=HCC0(I/4HC_04I+4<C3=1&3=DG$ 4Ia
M?04I700I+04I[7@CG04I704IG00%7M,G\ 0I#04IO0<IW0=EC1AH784C'00Iz
M/0463@0I;00I?00IC00IK00IO00IS00IK0,G/MAJ?0)^P-K8= )\D-):D-)8y
MD-)#D-)68.%"D-).D-)-D-(\D-(^D-(_P-JC?0(*+MBH#=(CK=0S3MTR4!)Hx
M'>=S7MMQ#N?B4=]!@MUS[MM5V!)H[16!3MRM?=RJC=/+;=,Z/=(\'=UGWM(Cw
M_=(C'=/:/=(EK><G@-(CO=+BG=*>'=_IK=[M#>KW#>J'/=_UW=$H@>H;K>JCv
M_NKFG:ZP#NNZC0>*^=&V?MBYCNNWCJR\KNN]ONL>_.OP/=N[[NNU'NS*#NS,u
M3NR^CDVBS@*P[>S'7NVWGNS-_NSK/>VP6MLL0-VD[M&PSMNZSL"A7I'F3K7Mt
MO<#EWN[GS>YZKNZXGN[P+N^P#JNS#M^EGN_R#0)]H !]4,I_.057W*KH<R,Ys
MLB,("#/]O,Y,T<XMK-#%RO#97&0-#0-=(/#31_"LRJT'CR,Z$HL-?Z\/'\ONr
M+/$!#<H,#0);$ ,9KS(;7_ >CR ('_((2,,LLI.2A] \LBFW^\*>K/*5UM Rq
M\/)_N;'YH\8@+&0@4 0'Z381T[<J>RB!0@=$N#IHH"3=DP8)-H0ZL-%_1YGSp
MB0*-:?4H@;TRD )?7ZQG[\"E22;GT\\'D@=:,B=@OQ4=,04"??=<$66D0L8*o
MQO8A$02#P_<7,01$W ),8,1\3Q=Z+ZF*S_ALKQ6FV@:1CY!W7\M&["ME/Z"2n
MPO9#$GB*U[4/XCYD\ 9 (ID>(T(DHOE>>2MBCR$IP_8=(?H& BVE7V6G#R2Fm
MV?,6Q/I"VP:Z#/OR*?MW_\.;3_99> .?_W=MCQ:CC_O<V6:[;R"J?T%5$L?5l
M./Q=4OQE,/O.7_O0?_NZ,OT*B/H&TOO7#_S(__K=+RO&WX!W+P2Q8B AH5\@k
M0!>ZVOMY (H9LRHDXMBLCP=A*:Z6,BL5LDB@S3TM<?>X!!3# P&"\0 -L5>$j
MLD77HU33"G]DK:$@)][5JZA@"*D%^ >JYQBN1M=S5<7*#)0+$$ E9 ?Z8%18i
MR.S%C4<!MJ:4VV!8;F,""J]680&3AH,P86SL[A4+/Z8FN ?XNWOGPG<8#TNQh
M(V!%A.A]L"(HG(RC(2C,!!WX$PSC0]BS1C$69 <_$VB48W#4M[#'>-"8A<AYg
M1Q#B*3*4)XN0E_[(8RMO"\P H\?S)-[-\$5?P%\LKQZ0U%P<D.L3)\#& <(Lf
M!PAQ'"#4<8#0QP'"*P<(09Q2$W& <,L!0A(7\%3&7PH\XD(6(0]^18N41)^Xe
M#8;':%6(#R&;"!8GU MBP)K9MZVPR02&'!!B;LD5!C]4)<D<U:6H/V3/#Z&$d
MFY744%ZTJ@-U#%9A)/=@*2Z0[/)"M,MV':&MX MIEXZR8SI*DAU#2Y$,#8_\c
M888^KP&E 9WQ"H7AWV$3HX-<E $IP8,L1;68AGNI=EE#OX0-AT+#H%TQ8 N(b
M+HE4NDY7#UL!!2/C7:$8L"W08364 WWB#'08AU,CHN$U]'TSXA>: 1D@#UO0a
MZ*J'J L$X$.7%\.FCPQ@//X0&"K#F 4EY@"QV" >XV950DSFRS3ARQ!-J% 5z
M.BZG [DDFN0R>D;@>5V!(" %1-(3(UP':0V(DE(6$Z7 3*R)BRP58B4ZL!,5y
M0$_\B381CFDK<X6OBN)1I(DBR=:H#X[T!3[$$"J*#Z@':,6MR!6[HE?\BF Qx
M+(K%L1@650#82U?^Q5_--+/8@,BB6WR+<#$N=L4E5@6$ !-( FA#*I(\<2%*w
M,MI?*C^Q2UKDB9>A,UA@L;!@8X!7* GN4XQ4P_A($PVCA60J5@C'$E6?"&))v
M34EHIZ!@>$PA2B1<.VDK"3R AJ&X3 [<$ J-,A&M%0@TKH[/(P/$HE>\*X0Tu
M)NZ 5<1^DO$@?K(\MA3]"U8DC4O@\UP0!%0$TEF6$DRS;RO\G?U@IKH@BM ?t
MGVR,A0&G$R'.!QC(?BB D44RK6BCZI#:^@)%  M0@5'" O/$]TMJQ2H(#**Es
M(7@T!MT3(>F/+I$*C:(7:J,;Z!,[0DG4(PRA- (%G4"/?X<(H+\2<2O %9SPr
M&U7"=D6+\1&++H=@^@$ 4O*P0A*! KY3NU!UI4J<J2ERYC:T$X8P$"G+X/6?q
M(C D^H]AD$VG#3ONQCS&R>: )_-%[6(W!C]K9@-+V6G[3J!L(,6A(F C_1T4p
M,T3_ 4/BR#R& E9DT\--TJFBI8 >V0<2@,H@C<S1U)"-!$0[!F,=T!F#*'<Po
M2"VQT-""?2I/ZX,_F+,R4,C21)/XD@S2([D! *F0/H0?8HQ& &G4CBVT,S;$n
M\J@=?:)SC84J4S.,%0;I9UCB/:)!-ADE 64D<X R( ?T"=G6)\9#H^1M^0\'m
M4 [&8P/R0AMH&68">#Q&:';,:L9CB)#H,:DEI#SVR5K D8 !=LS@]1K$-B2Dl
M7P91$FXR QU$[)B05N6%3&K3!S""L(2!G1@&K-05O I%8D 4@ +N1])C>6O@k
MHID &S&<>%>[X([."WH=I\]7TY1$)W0#=NST8;;3U"<W0R-#$SKQ9FV%/O Cj
M,Y!&NT)#X&\EI)LT#C%@:N1B"=% C*P6@#G0Q];Z%YKH_=0)J!%IV@P>H&.Oi
MJECQC#AA*[H3ZZ 1K6)>+J7<$9AZ7Z;48OAC4N&G,M GC$9'TAT!DS']!XC)h
MQ2+$\L@3>3*$** 8D2?HA(T  1^#30P/4\%^(DV&>!,<LP#&B8P) OYE[4*(g
MJG%&3,SU 3M\8*9$38ECQK2)>94FS90; $&;HE,\"IH9(E?6Q.P3O2]@@;P=f
M\2YK1\I05Y(G 6#'$( "O*5GI .12WQ-KB+0!5R MZQ'H&=92H$@< 7:A0DPe
M 0%3-)A!4_$VL=A_X(XCZS:!@+<9-[>"U]R$HBELZBR>13;-IF/X C:31'!'d
M+/ $C( 1<$%(@";>ROWS-T\BV)1<A+-L>DL4027*7IO(8Z@(ED@G(O#-$H"Uc
MY!78\E7]NW'Y)/'%WT%\@>E'&(TSH%&\&*,P$+I"#H"@(3@\Y%.8<!IZS!RVb
M"BK 2L)DQ7 ;>T).9,KJ$1*7X; TDNEI2-1-,I *14?5BQ2KL*91SR\@AKA'a
MA,AC1ZD*\,BDE@"H9U%DG;CR[TP!UM K@$;5-#S58F]]+5GT)H"&4"A><:Q5z
M?(P": X'&AO3/<Y3+\'!5&BX4$ +<(EB<TDF-16PE5J #]B&R .4):H>22O%y
M@ .%H#,BY5C0!^H,(<2M/&U ;"=Z0^"QQ;Z@UH@0=F HS MI)7\2@+?T'Q'#x
M0*R /%8$K$ 1&%]?@ H@ 4F$!'@6Z427YZ\_;$N4.1 )8+L4$,)'3;50F!%"w
M%6@"6 $KH($^4&[()--GTP.2D3&(SH$AFBTLA:F,@F'"X<0*V?3O8)X*D(MHv
M-(VJ4;:H M!B*LP>Z4I *4>PIT;KJ!T=BW31+N+%H/@%LH< <845$QBBB!$3u
M,>V3MBP#@_131$Q)T0H)2"E#>2J =B52S07#% ##6Q-M N7Y"%*!2"&$(A5-t
MI4RC;;R/6+'86494AXHB("H.]P$T+$2O8C4(@GAF =F4&;-3U0N%V5 %*,0>s
MJ1EOZ8SXFBDQ-(H!"@K,LL=H1(4JCX"^BL,U0,2" E6.FY1-3-*(F2./DQRBr
MH!12BF)0/$8D%6(RO:"T*P6TB]-97U!"CXRD@M234E)0MDN36A/MD;D'Z7S3q
M*1I!364[]9N'$X9*"P/1 HQ9]BA6-?2&4H$<ND.54@]E J0SJ6%';\H=M2D\p
ME!1:DW;-4X4H WID@O$/KXJAHD)P"@QC0(]TJ, P&N8Q;XH/YR'I,EVHZZ-No
MT&TZ4FE7CV2B1NQ\;E0."@S9J4NMI==R6AE3@&<)_<X=_:E =2NRT735LFK'n
MB_P1:E$TL-&@RE3M:!Z]BVCCB175/'%4RT"Q3%2,5"E.T!':-$&/"A0^&:1,m
MZCR_.'W@BQN0$?Q,YG4F<@%649F:>E+)X@7R2T@!G#)0M:!B=<\_Q &0U3KOl
M8-K,8_WG!A@!>39]U$#+0!"9<E_UBEE)(8NE&U1>?K4,*$L#AL#TE]M<EL52k
M ?(!/@ "0H#K6P/B]%61TU816?,@R=@"D14$F,HWY9(H(DY%G>:4IYK1IDI;j
MT>A0A57@Z@N( 62Q!I+J'&V+M36XNL6GND<WV:(I [J5MQ9)-" I)!Z!@(48i
M2:V^K@QB6+>%9TQ(4.)7OLDC)$J7(Y4P$"VS_ERQCD$&\A*^6H\UHDK* <)8h
M#(^FG"A"(L.99:U9,09_X/K@6/8U']$(X5D[V&N-BJ]D\IG-IT8A,K2K?P!_g
M& I*)*%L(2\69!XP'#)#,*[7*VDIPBNKL1>5B4[VHFU18!,,L.P/X(\=^K ^f
M :[ZQ 1MG6557<:B>:F^E%,18 *3TEN1B"<!,\@ T1 TSZ9._@?4M#E*)@C8e
M#[?B#O3,+Z%4L1-V<ED%A)-J(=_8+JI%F,A LO1M,,\S\#3P")D\37\OC76.d
M(HOS=!5.JA9 HP6ZC0^!(4Q%HDJ.SE-%9MDS6#=Q7MVT&-RQ-DTT)S!.<>QJc
M$*%EE3@9)^3D8C&5 V*&$M1M+,OR<';LF)AM 6+A1\R(SH>3X"L(,[!):RL8b
M2")I,0:MD  !7FQ(Z(""L23W89AD& !6K)[)LZ<F7Z6'W:Y_]GFN+-[X6%G>a
M&)BLNLM99L^:1L\DU0+,-0]/OEQ "GB]U)_/RYEC530D (\8*RQ&D821]DV.z
MQK$,=+^ZU]JK:<-6 ;+(XUHZ^YDN ZS5%FI4Q2:Q*)QH MBMNB*(N<X#F0!My
MK<AHH3/MR?Z'G$6^F,#7VS]S$Y2!*WDVK,#MHB&L9!!LK5FEUY?0XVE+M[I0x
M?3U;82O8<-ZT/0OTEJL)-GLK;F=8G'AA&>0@$ERYJ0NC$P?37^]6:U)( _EFw
MY1@=^Z#"5H;]G2@XAL[$YO!<6J)&%"TB!@(3DL2%M@F@_8W*.V8J96Z//&W[v
MARI:Q3D@4Z'MZL2Y)4R8*4Z:.S(0+GK</PP7WVJ_(H;"E*VZK1/;JWLEL$T[u
M?1!0P\I GVD PK$L)'%SKD"[M@7CYN9<;;MS>R[2Y:U*5^[I,G1+<3-09?U't
M W?_8$>.NRR#V<>=M3!W^I!<:14XV">9U!7H"%0XJ[4K(4-N OBL6R&/=013s
M^5EO+LS5N=S6[": GPMM[>[-5+RJM>@^LJ/[;='NN*5@A)=\KD[3"350IP&-r
M 0HTJ9'+BQHD7]7T>0)^X3E*O;V0)UW ]PN>Y=9*F-A]&P;IP-.(&IE*X_H*q
M&C8Y8^ZJ!7IC8 N\VF^V>K'HN12^CA5_)"]7.UF)DL5-8,77^((>(HD"0D#Np
MM13<T?O*W';AQ2@>]04!FU90*-_*53J;KUVED,9R^J[?O4E9_Q?V3;;P]O@2o
M2[FW63OK9R6_(>A0H('YFWX'\*OUMNZW]<(J&9E9;6W_M;:;K_\>6VFA9=\Ln
MROFQ@4H*#"J("JN\V)0@P 'X Q_@]JLZ7]4G,P%Y3 AD 1[VS=0L!;80,7)Em
MH6"4, -N0 NFD"$ 7,7@[:M:/>JX[;"Q,FF1WFMY;'_$,_5WLC4K"M<E7!;/l
M(JR"O$/(M\H_X,J$JS!7-'DM3"_*(K(;>25%=]V7.C8G$0$B)#)+6,L%'Z!Wk
M\SG 5"M5N6V?6$!AX N<HSZ1D>2P 3JF6Q,.C('"92GJ9@BH1G7V6E;$OW,Vj
M7H!XU*)#-&G^AY0TAIWGS@5EB,MZZ#(>H&=0+PC@K$62B$UB/9/V!C$4VU:@i
MAQ''P+&J4"DD($ZV<-@.IYH\]HW"44(=MDFLDYTC4/:-3E$JH@*7@TF62P6<h
MBF=Q'@-)^>>;U6%?#'ALL3*JHJ)2*$Y'HCB,#5"GO4)#,1;]0RC6+$J@\T1$g
MNC4/3 L4T(L-4)]@Q$I2GI'&0A8@>H5->A,':7P41E&<0NL&D#B(.!$A<6-Uf
MI(H)AQV+QC?/*]D.AI2!)F-*'(K%,A:[R'/TC*<//H82TQA$Z PY<8TW1S;>e
MQMUXC/2)G=MIIX^'Q+69D!UOH'=<>..Q3HS(]ECD#L"L!"5R8@@C%?U8_I11d
M)6R%K?!MW3^$:RC&T;5(1UNR2]YY)?$F*N-8$9!WQ4!VQGA#*0KD>AQ*_](5c
M6,8!6%:8"O>Y;S]$O%1(I$:>C580X+I4 P:TA50)2" B6DH9*RS4& O]X9A:b
M2[!L(/)86 I*$6DBG:6TI)0D8MA-:GCI/QC0%C"6N9Z!" & =6\N2Q3QD*UJa
M,QXC;K,8I^6R!%&AZ]^)QC!#*>->H[$4G.=H10%UN3\4Y&](*JKRF\A^).D(z
MK62?:I.K\$M. !YY)BO5FMR9ES 6GF8UC(#*8Y"<52T%2"[*T^<H.R9I@310y
M876DC?SI-@*)*85E@Y"7D,JEMYQ:YJO\70^$7")"^I(-P['(/ ?$\E>VRZ#Lx
M+/>CIV64D%);GH@],B[[BA9 EY\SD,#+9Z]N\N6^ 9'I,4'NK+]8*/VCPCQ"w
M#_*,,,D'\3$SY\FLQ]S <,Y^)EES(5+^J)EG:VEFPI^9<*&(6"&:1S,5_L_!v
ME;CFQ3>@/@1TBB"*S50.M&95YDC):@YZT,FK=8$,C*PV1F;A :"IMI=RQE\*u
M.%.S*F2@P[1U"M"46$ C=.HEC8&F1SB<"#T+?2P\WJ TFD6ZPF.Z\?S?OT"'t
MXZD,<"!AJ4VYX425J .4HYH!CYJ,E;1(G:D*L2.45(=(#U'J^-P*13J")FF:s
MNJ1YM/H$10-:5NB/=LR!^"HS]+B7]RUO!<L[=)ET4H/"//<97Z&<2L>"GRZSr
MBOZX-S9%^GPO6^Z59*LA0@NR!AF1\\C867">W?-#?(%/$0=0 #!^ E#Q"R0!q
M*1 %*O*Z&EN?BS]!,1FAC:E$E0G3&9I7>5^5W%//*((6KI\9/LT-II@'I/!2p
M/=4)>N?51:CJPE3U'MX+R[6Y9L/GRE6E:RPZ'[;:>D5<R?.%@:R!0#Y-PC4=o
MB.%1C7!%?!+6#A !R<[8H9WX9!G<MP""5_@Q$.N/5:3;T#/IZ1)S5HO1:Z)Gn
M(#:].E(.66K<.VM @!IX UR)L?H*.)O'TE.[@ -?@ PT"SS[=U+#$T/6D%$Hm
ML-#"ZZVY*89*>QHD7^_K=>VOX9C\E'KP0UXO5X-M!&9 NV -M%-1WXPTQ@;Xl
MM6'T"[&1?.BC"F$E0K8LPAD68M6TF<"5_8) D )'4L )O%C80R)"@/.2V52@k
M%,_K;%:O:4"[8!-T8%$_:(\=:%H J*87@6)#0S'6 ;3CF,-)0SJJ2NCLB<T=j
M)U2[(!XH9&%[8LW1+&Q$/1(T<2^)5;V*P5='0-0F$;GR9:L2F>UG16S!KMHXi
M0"]//<#7+EB/0F-<E9,3"LZQV07ZA.DZ BEJ/&+3G4VQ\\*;W;=UFRS<;1.0h
MMP,GYJ1<?CL)'($ED 28 !,XPH\Y?!8!!;J9336L;JJ?64^W1]_ZJC\W4SW-g
M^^QD/PA6S1>]\%\R J81@[Q/6L,:V6,F?(TF>S:N@=JHFR,C5_9AOHB86HIVf
MC(=-,?8\ES)R/&MCJ]J*0]*ZWI]_TE=K)1!V78]0 FC'[-0-]&44@*O6=4[De
MW4T"-VJA:S&B1T4M(A8E+VMB8_)L57%5G\#>7H IF8=UC:L2X) ULN+I:*0+d
M! $%GM= %0+6>WTO;^[M?Q2E!F(#ZYIQ2JVZ] ;6@(&X&E.BWU[O-R@WMK<-c
ML@'K&EBD5P-QP;U8"Q7@V_B"OV_]L2S] %MB%YXXL!(&!%2+;],M=I"W(EM$b
MJG7XJD!X^_8_D!)[<]83[D1M. '/;@><_IKPIH3"5>\N3K;)6WNS;T?MBI\Wa
M* (:7?4/S8C62+T!I\O-FMA[I"KQ =Z_5TE$6M<$"UXK[7/<E=8E:LREZMLAz
M+_$N_K]'N*G@K"SH,(%Q,I8I@4;G$[,!7(US<?\=D=SXNJZ-)E&,9U$8>!!_y
M[E0^L9W;=(-N)[Q_F%.!GL*>6Y'_5 4=/AATA&!.??$+MYP<BT'V!(%P.K][x
M%JFI.A #;$ C&QET*SH7 :;EM(A2VSJF[S2I00TT8,T2D0@5R7UZEH,;2R% w
MPH#R7!)N@$UL2@[("TGC^N1:AND)+*6'_3/Z0VXLO'  #3"%%SEE(K&_0 &Rv
MM$^@@*XA!_HR]C0!>X)NT6$-?8'"><4H''W35T3S:<Z^L6?:6EM$*3E( 6V^u
MSEUD.T_<KJN<SZUS/KA1 &XHH4TB#R+;<SE]-GD)^M3QD0*O4OUA)L)$< (:t
MR7PIF:U/=BNJ!;)0,!0+;9X)";@SWYXL>A#_ 7VCCZF,("YZ+P(]18CHQ+3Ys
M@34SJBG>PP*B^$Z?*I"! I;VN3ISTRF/]/[PQ#<$P*X0NF=8%:LH689N(:NYr
M%6>A,"9J:K&9=*$MI.BX4T8(];\#0@#U R0=.XJ9QUCLY- S4(6 %B/CD[,)q
M5W6M>D;N1!^$1VEN",!QJ(LZ'A\A\O0"P<#J2@>FNH,@6S/B$_G>2X%T6"DZp
M7B E)#OI#S.RLI 'CMD*QGHOG0&[7B ]ER0['[B!>X2([ <TV'KZ"@T5O54Po
M"<J19>KZM1*R@B-"9$K*;KL[M%Z_K[U"!&5776$J-/K5;.DP>2<316_KP]O0n
M"XI!,X@(""MBU8;>T([\ G3(#M6A2^PK*I$1$.*.F@DY(2@4&N!X"Y)$:$F<m
M.M$$C'\;-ATP RA !)R+ ?@S/)&=/4 K\)]'S#:AT6N4+?3DGAKS3/=7I9VQl
MN100GQSXEETE7[[3>P2A)NUG0BUT"L"!-((M$K:BK (JMW9?U"<,:[/PZQCDk
MM!NNK/4VSL"SB1"OH_T(2[U>%!.Y) >JGYEW?/='7KHOO%.5U7IT0:L/#:\6j
M[JSKCLU(^>85:M5P%B"LK_SNG?SI@?*M(""'**Q\KPM$PK+7NT>(5$/7 #U4i
MG"D8:HHIBRH/R*CH\HI6@:V:T2;&UIP\'S@#F]771D$$HQ4(,A/>0X3H> K[h
MJ+1\^T#:KJLM@#T1*Z+GY!/35B?6G<;4(QPP2D@:R-<)QI>C *=$GP-$<%+Qg
M_L%H:8S+W'H<.Q#^L,Y3=+=N.V:2'\1[]8'H\"!:=^PN JB H#3T&:2D?W<Nf
M( >X@!L0 4<8S1]?0:\V//9XLLOC XZ1:;D\)(K0V9C(F<)NUJCLDP(.8ER^e
MJJN;R1IL36^$7Y5AKF!<*S'79C;1GY[4,Q,1[_GA0EK'_-TK?*GV\).<D2< d
M<H5<SQ7)(-VD&=FO41!/J[6P'+@#Y@I^"! YC#P@:E4R'Q?D[[0!;O\*+?19c
M3.P6=L>:$>A\/GA] O(7)J/*?-40<3X2A:;,6N O 43)J^,ONGP(%FBC=N3Ub
M7CK\6.F$TQ,6#4AK6C^4[#7,XYXWL@:C3"SO(N8Q0NQ&2VKUW)N71T\8)3A^a
MCTC,/9*;:WP_UB.__=SZ#TK"9^3!K"6\-:%/MI%3NVON3&-F/0+(N.>&#E2%z
MR:\#-L^M!;EWH,DA:BFE>GGSD8<#?4%58'R)4X-=/SJ:DB(3U<+>PXN#5 82y
MP$$DO2K_V[N XP %7+@R F5/2 @D!Z@5M7ID G#P"$()!8HJR@QA!QQCD3_?x
M!R#]\=4C_9B\C?O]VW3M+O'5S^V^#\AC-0 F@%R4U:P^9M-KG%:_\"8 NT\Jw
MW3[XC:WC\HAC1[N/#S\^'/O[^4_P9\\KI"U/0 '<3_W)WDOZN,JW0 :E"/+]v
M/O%O-..;F%5K'GM6;MGR>]',7U%5;U*+^3,_!&E[Y%.XEJFO*$O): HL@<)Au
MH[2YR+_G%L\M^['=FYB7/G=L^JO_]9J1.>!] P_\Z'U@%ER./CC<!JD^G1@Ut
M)41.3(DAFXC-NAL( :M_&2[^TM=ELKOUMQKI-;"? ?VQX-,$I;?T(J!/.*\#s
M]K^.\,^=/D6 4Q?,-M/ Z82 C(RJ?RL06\ZQ[7&^#QCWC@SD/EU9>I:2P[-=r
M_-+<1?:(*>,KGF;')_*R_PAWWG#;(Y^N+/T"5P I\;!GN_BEN8OL$5/&5[ .q
M(O\T55;S-_M)-ZG]C< Q.)[M^D\1[5\$O/\?+?^AH_ 10INV!)"!^W_I26S<p
M'_>.S/_7TJR/[[F^U\?%2ZGQ@_R+K_;GP+.=/E0 OY:N,%DC-D7)B!9-0O5Oo
MA92_9E9^FG AC4Q0@L\;092X/A/( KR43*Z9E9\FMGX1Z/HZ?PCP_+N/\WV n
MSA\"/+^?]V1:5):W,(38]CC?!XS["L$KQD>?, $I?\VL_#2Q],'S$QC^KVK1m
M9_?[GWNPO;/_%Q\_:=AX,@F"$$3IHA/KTR=OVA) !N[_I:?# IESXPTZ )KQl
MU;81&GQ')X"=DF)#/@+9^0C<88:HG9;P$@Q#B8PI643N\)VJ4'?@@TXY+_6!k
M[_"=O:,"5,#?.0TOX)_KA@1P!=H$[.9*GX$KQ  =(!ETP&0H&#D@!X O[FPJj
M_[ENT/<<J#1R)>S&%6: #L B.L K%(P<D / EPI0 2I !:@ %: "5( *4 $Ji
M0 6H !5@%E6 "O@[H^TBJ  5H +,(G<VE:/M)'!G[FQ%C<"SGD__?#6\1[Z*h
M#RF/&2@=),(-:6! Q4JDDP+ AR- :S(?U?,@U,3KP8=FVY.:@=M/&HD'ZNM#g
M#>(@:F'B03N^9?$JBBI !:@ %: "5( *4 $J0 6H !6@ E2 650!*N#O" 86f
MD /R@@I0 2K +')G4YD#?)MYN C<F3LK5(=]7)-KN)6IUK[8'V$M3.)S;%'$e
MAVY( P,J5B*=?(6U1SK9GF1H<Y,?[GT^-U1<"A0?NB$-#*A8B73R%5J8V6=[d
MDJ'-37ZX]_G<4'$=82L*1Z)5F%D1!U$+-Z8*%!N*H@I0 7_G-#"&"3$&$L 5c
M:!.PFRM]!JX0 W2 8= !6*1@Y( < +ZXLZDD/6,@ 5R!-@&[N=)G@"DZ0+;Ib
M@,!0,') #@!?*D %J  5H )4@ I0 2I !:@ %: "5(!95 $JX.]\!1;0%1J0a
M"E !9I$[F\JOP (^@VKESBV 3<+[@/\F\B7CJ#*S&T3R*[=1+()6KABU?0@Az
M37T&V2@6E:G0&FP2>52,-? I1S,^'.K%.7K #>_>(UJ/AKY]LE!?5 P@H43Zy
M9:48.I+2>%H,7?68WH "P(?%ZGIL0\'!QDHIP&G65A<UHF2D52Q3 )V(DC_=x
M?5R@[/$%F+T"P(?%2DD$Z:!@(*QN@8"/Y^^HMPJNHP#PX116CC]V0[1C]6'Rw
M/T:W\A0SHAP3#ZA!5[7&P&6+RE$T1,Z:**G'UZ:=:?E24R20<;B9A$]J:A-0v
M AWRRJ% ,K^$"E !*D %J  5H )4@ I0 2I !:@ %6 658 *^#MLAP5DD0:Du
M E0 6X1+Q"A0*(JN( .Z)AQH%]VG:\*!=H'Y1=/A+* (5&>%UJU@19O 05(-t
M!@(!F?,NLQF,^N<:6HI"-GG? E;U',,90@%GJ%T0RTO:>II$NT !9ZA=Z!D$s
MJK/<LD23 E/@"]Q%F6VS%(#WM:)-X""I!@.!@,QYE]D,)I$3*FL>I%[--%PBr
M1D9@4J.B'%H\BZ2W+*#L@EH6L!NZDJ)L]Q%-A[. (E"=Y98EFA28 E_@+LILq
MFR4IN+.IK @L0(NH5N[< I): 0L4BJ(KR("N"0?:1??IFG"@76!^T70X"R@"p
MU5FA=2M8T29PD%2#@4! YKS+; :C_KF&EJ*03=ZW@!F!28V*OH ,@@)#I^AXo
MWP)6]1S#&4(!9ZA=$,M+VGJ:1+M  6>H7>@9!*JSW+)$DP)3X O<19EMLQ2 n
M]RU@@<)?G"$4<(;:!;$\0^T"\QN!28V*OH ,@@)R&P6<H78!KB<U*OH",@@*m
MN&4$JK,DA??-E08"@>JLMS':8CS*=A#Z7=V'=G>-*4-Z[R =ON(,/<MZ/:E1l
MT1>005 @97C?8E7C/7\ 5K0T@_%H<$N!0'76V_ >DS(/H&\ZL=U_E=E &ZA)k
M5$BK6Q%0I8 "\+[%RL$C>$7<B]IGQ[ACHA!I;74$=)]"H?!11'35%D:/#,AMj
M%8#W%9AOXF=VC(]1'>,$^DX9WO<(>5\08$6;P$%2#08" 9GS+K,93"(G5-8\i
M2+V::;A$C(S I$9%.;1X%DEO64#9!;4L8#=T)479[B.:#F<!1: ZRRU+-"DPh
M!;[ 7939-DM2J  5H )4@ I0 2I !:@ %: "5( *4 %F406H@+]C'GS;2U$!g
M*D %L$71L#F']A'>"NU=<P]^_5QX4, ,R@)]@G$?SF^O0+TO] T!5<\QG*&Nf
M>3BUOBS] G=19B]]C>9]*>?AU/KC?COV8$_L/1CD8(02\L?[4L[#J?5EZ1>Xe
MBS(;E*%*E$4]V(+)IAW6CU) ;PW!?ER@_/&^DU<!>%\7^B_RF+<LH&<3W\O2d
M+W 79;8"];[#EF$1B*YY.+7^N'=DM]+[.EU=&#EKHJ0>7SJ@?+X!H3W;86'2c
M50#>U^GJ0EEZEI*##BB?;Z"/(IVN"0?Z!.,^G-_^&2==!>!]G:XNE*5?X H@b
M)1ZF \KG&_@"S+YKPH$^P;@/Y[?OM$E7 7A?IZL+9:FDEE\T2P>4SS>PJ"V8a
M/^N:<*!/,.[#^>T[;=)5 -[7Z>I"67J;T!(4. )2  ILVJUP^JP9U( #P@,.z
M=$TXT"<8]^'\]ITVZ2H [^MT*^X,&@(O5@>4SS?@R1[$^.C8B:A/,.[#^>T[y
M;=)5 -Y7V?Z-P#$X= #E/)PI?\U@\QM!E+@^$\@"AN-P:OUQ7R%XQ?@05MY7x
M-)]-?*_SAP#/[Q-%($6QL,MM]BDO$F:=W-E4<@1)::CH G?FSOYV<P[M([P5w
MVKOF'OSZN?"@@!F4!?H$XSZ<WUZ!>E_H&RC\1=#JFH=3Z\O2+W 79?;2UVC>v
M-^<R+ +1-0^GUA_WCNQ6>E^?M6S_@RP]2\GAZWE?G[5L_X,L_0)7 "GQ,!U@u
M.K&]L_\7>/MP?OMGG'05@/?U60HH"06.P:$#*.?A3/EK!IO?"*+$]9E %C <t
MAU/KC_L*P2O&A[#ROG%40)U-?*_SAP#/[Q-%($6QL,M=RKSO_OEWWG?R2GX*s
M6?4<PQGJFH=3Z\O2+W 79?;2UVC>EW+^BSSF+0OHV<3WLO0+W$69K4"];\YEr
M6 2B:QY.K3_N'=FM]+X^:]G^A\A9$R7U^-(!Y?,-".W9#@N3K@+POCYKV?X'q
M67J6DH,.*)]OH(\BG:X)!_H$XSZ<W_X9)UT%X'U]UK+]#[+T"UP!I,3#=$#Yp
M? -?@-EW33C0)QCWX?SVG3;I*@#OZ[.6[7^0I9):?M$L'5 ^W\"BMF#^K&O"o
M@3[!N _GM^^T25<!>%^?M6S_@RR]36@)"AP!*0 %-NU6.'W6#&K  >$!![HFn
M'.@3C/MP?OM.FW05@/?U6<MVW<Z@(?!B=4#Y? .>[$&,CXZ=B/H$XSZ<W[[3m
M)ET%X'U]E@)*0H%C<.@ RGDX4_Z:P>8W@BAQ?2:0!0S'X=3ZX[Y"\(KQ(:R\l
M;QP54&<3W^O\(<#S^T012%$L['*7,N^[?YHDL0(!"L#[3MXCKM&\K[+UEBE_k
MS6#S&T&4N#X3R *&XW!J_7%?(7C%^!!6WM=GB8:SB>]U_A#@^7VB"*0H%G:Yj
MS3[E1<*L\^R&VU+F?7W6LOT/LO0L)0<=4#[?0!]%.ET3#O0)QGTXO_TS3KH*i
MP/OZK&7['V3I%[@"2(F'Z8#R^0:^ +/OFG"@3S#NP_GM.VW250#>UV<MV_\@h
M2R6U_*)9.J!\OH%%;<'\6=>$ WV"<1_.;]]IDZX"\+X^:]G^!UEZF] 2%#@"g
M4@ *;-JM</JL&=2  \(##G1-.- G&/?A_/:=-NDJ ._KLY;MNIU!0^#%ZH#Rf
M^08\V8,8'QT[$?4)QGTXO_V2M#<T@.\X!;!34FS(1R ['Z$&KX3LTA*RB$DHe
MD=Y%,L@=OE,5Z@Y\T"GGI3[P';ZS=UP %Q !H!GA4*@<$ -:0!5J 40G <0'd
M!> "=*C]R0(R" H('1& HIQ $L "=:+5QDGYX3@>Q+D1 <3&"D"*^10#7  ,c
M$ '$A@NH !1 !(* L'$!VJMYN>PB('U^3:5I-:82$W9H>"^Q7(#VLE'0"2E!b
M@;WO!!1 E-0ZE09GSDE]43'@(YR .'D"<#!(!+'^2FE[U"#Q?K%;7=2(DI'6a
MJL"R5"\H7+W#@VQ6W@6*^.T<BCV]E.$"H  44 !/0&3^*K.!-H)\)L04QZ8Cz
M%0MV]3 V[9 @%O'14F2,3U@D:D#1$2-*NU,NY??([+LD4VB4.:!(V("X+4:4y
M=K">3PZP453*(L&;AH5YQ"!NU< D1D4!):"4TH%B3Z],Z+(@[YG,8XU>C'S=x
M2BB DDX6T,!>SUOH0RTT!N&3,EP %( ""N )W*+D!#Z:@!'0$2U OWYU7.OOw
M/:)9KXZ,!UB7@?[D[CFI9S*/"N!J-0DZ007>A(&$H7VK8+:9TJ^RSD_%8&,Vv
M%H.X>TYJ()P@[H7>O/Y=:":#9S%WE15[$ :/7F3FJ)^!$-!],CP.\%WUBD(Vu
M/NX&;(I[K3:*@X]R+*;#ORQ2C&Y_1\$FN6<@&X7<8[A@@EO1"2& /P+'(<)Zt
MRHH_+/E@3B8R)9I@/6PB0M0\JNGQ+M"C:#'\R0VD#!< !:"  HB2V4)1U+!*s
MHX >TGI,7U/3;AJ(A2> )97#FP,N?@OK>1^D * XP"=Y<V"KVT\JX7!NWN 0r
M@0"?Y.FC* D]9HV&4$"O@WFT0>E+_W=@MP(>7%)6:&42H2LLQE[X>@<?ZE%@q
M?4OU@L+56S_ML@=Z/07@ MR &5  +B )0(&N)*R5G]D;$O@O[7T]%P OZ ?@p
M 6%OKP!^WUMK]_+>WB,,9A7P10; 5-</7^);?)C/\0FTR[<&% #ELQZ7;PTHo
M !>0!*" G4Y^G0^#*P 7 "_H!^ 9?Z3/_%4_W[?Z,"#B)7[P[SR*/ZM&_G(?n
M]1N0OO;W84#$2_S@WWET 4D "BQ=7:;\+ 7S4P N %[0#\ S_DB?^:M^OF_Um
MN4M-O/F('_P[C^+/JI&_W$?]!J2O_7WN4A-O/N('_\ZC"\@6"L %0 $HH #Hl
MG]F[?T9"__4*_N?_@J6I"8"P0^L6P%=Q /6'W'-D"L !BHX(J#1"D[#N@3(Vk
M PYSJ><!/:81$X'1XH]A"ZZ7-%S5O&>!9"$'RL?^5/9 9/WD#S40FZV/6'$:j
M0Y.P[H'5$0A."P4P!"M0$22%"L %0 $HH "2H.EG@@I(?4#!L>TQJ*#;L()8i
ML%4(ZF9#%M# %Y14 U\!-(IXRR52A@NX'$'@"!0!!1 ELT3%T!_!Z0)IG4KSh
M-A!$CY@ROZ.0/2*2!S\0!"8*(=*'RRR;+A,]GH8+0!D@0 &X@-VJ %R 6B@8g
M1 ;CO "-<CTZ2@NY.+^FTB@ %[!;%8 +T%XVH@[U4"F@ %R &S #F QJ&!XEf
M0"?(%!NHR@H #< !(& ']H2B,)MUH%ZY 1=PD%R @%  +B!;J PA8&]F#-_Qe
M"6"GI-B0CT!VR@Y,( \]I"5D$9-0(CD"3  O,(#O\(:Z Q]TRGFI#WR'[^P=d
MD"2#H("O\-DT;::A*">0!+! G6BU<5)^.(X'<6YH&DT#23(("O@*GVT)%8 3c
M<-D]# 3X6Y]#:0#.OS"5F+!#PWOWH3)"54!( E!@[SN!K>!O?^R&\#F4!N#\b
M"YPY)Q60_Z@8\!%.0)P\ 3@8)()8?_ZVE+9'#1+OVXS518TH&6F9S"2 9:E>a
M4'C@%^CP\ I_F_PO4,1OYU#LZ9G,UBD:GD"KP"!2LFR<#;^Y(1+0I?#E#HM8z
M@$@&4@8V[9 @%O&QKM.TC/$)BT0-B-MB1&EWRJ7\'IE]EV0*C3('% D;$+?%y
MB-+VM\YZ;D!KM-"M!E0.*!*\";4K;;=J8!*CHH 2:\ID;@56X6^AV-/;"AYBx
M\V&0G+<5Q,A_J-&+D:_;LY).%M# 7L];%(2FJ87&('Q,9NL4#4_@%B4G\-$$w
MC(".: 'Z]:OC6G_O$<UZA  ?OP-7E($[X&\S8'_BI ]<C/P'5_$U3"85>!,&v
M$H;VK8+99DJ_RCH_%8.-V5A_BT'</2<U$$X0]T)O=Z^Z03&0\).[ZC^H;E#<u
M'_RML<C,6NC.0XG[9'@<X+OJ%85L?.PHV!3W'JN_5=V;:651^:$@IL._+%*,t
M;G]'P2:Y9R#!Q_?UMV6"M]I-?;05A #^"!R'".LI*_ZPY(,YF<B4:(+UL(D(s
M4?.2@+^UFU?/4Z2J.^ &3&;K% U1,ELHBAI6:1300UJ/Z6MJVDT#L? $L*1Rr
M>'.@3_A;#+*%]?Q60$ 8Y/NVB9RWW!H%!B&0#F<K> ]_^\)$(, G>?I(-$3)q
MP\,K-(0">AW,HPU*7_J_ [N5OP4>7%)6:&42H2LLQE[8M <?ZE%@?4OU@L+5p
M6S_ML@=Z/1#0.D4#K^5\]>_LX;^TMVE%0^ND:5,+\("PMU< O^^MM7LTC:;Eo
MO;U'TV@:83"K@,_?TK3+ )CJ.DVC:8<O\2T^S$?3:)KC$VB7;PWX6YHVH)J7n
M];A\:Z!UB@;$J_PL!0:G:2"@==*TJ05XQA_I,W_5S_>M/@R(>(D?_#N/-(VFm
MB3^K1OYR'_4;D+[V]V% Q$O\X-]Y]+=+5Y<I/TO!_&@:"&B=-&UJ 9[Q1_K,l
M7_7S?:O/76KBS4?\X-]YI&DT3?Q9-?*7^ZC?@/2UO\]=:N+-1_S@WWGTMR" k
M_IF]^V<D  )Y]+<U0(214P:$FS=T0.0ID[#.G#)D7(  D<2,PC=U0-P)XR9Aj
M&#)DTM!)\\9-&#8@YJ!)8R:A@HDPZ>2!4W!-F3QS0)3! X<C&1!TT!04.&9Di
MR8EFTI1A\Q,$RXENRHPI,V?.P#P3?68%^1(F"#9OQJQI\=#-')%8DRXED].,h
MG#=M0*P\@P;HFZ]O[H 0(S+GG+M!;X(8PR:,2HTBZW:-*92H43<@U#(5F+,Pg
MG8*&0<!Y4S6-&#9E)()0L'BB$X1#@X9)2'%BR*8'68><,]+-F3II#N]E>*=,f
M&<B@6PIT\U-.&KIT2J=<V9*%0#9TG ]O.J8DG;<H0=C$*7HBE<839<)),^8De
M3(=#0;PQH_P%F3)V7FQO$P;.Q-SA[PY^ P>KP(EP$/1>4E']-%]]=CF54!J0d
M!=8>0V.\(,<8D:4!FG.AG2&:<F/8IQ,=%)Y1AAST0;930O1Y^)X=VMV4XD0-c
M>#68?2] ^(*()'+4PHDNO.@>?/*YB"!II%DQXEE'Q> "##(V.1$,,NA 0PPZb
MU,"D#"_(@,,+.<3@Y)=@QD#:$D5DT4004("  @TI@-E$$DXD@04(4] T1AKFa
M&6$A52 TP5$=YH%)IIEHJLDFD4%400423T@QD7)0,#0B"$I(A,0;;.@QHG)Hz
MP &$'?3),8<+=-1QAU)NN!#&&*HF1^2KL,8JZZRTUAJKD:*2!)F23(()$Y12y
M4FDE"%AJR:67OB8[D0RDC5=>=B"@!]-Z[:T89!XO.I53@OOUEQ6  I9!($0Mx
M8HL@'7>)Y%2#0CT(HH04)G6A3BYH^*B,'4X$(0@XEJ@3'B@B",**Y68;HU?Yw
MUOANOSKRZ*.U!]KW*JY([KJDLB  .V655V:Y99<8)RNF H.>F>::;7[Y9IQSv
MUBD5GBCI"5I.?KH!*+1.EEPHRH@JRJBCH\D8Z65R4&HIIIK*P:FGH XT:JFGu
M_J8JJZO9:O75L;8A PT]U@? UV"'+?;89)=M]MEHIZWVUS"T;0,--(  0-MMt
MQ^#EW'3#,(/<>=,= ]T9TW"##3/ 8,,-,<A@0\9_RS!#0'.O+?GDE%=N.0 .s
MT3$0V&BH <?E9L^!$^BDEV[ZZ:BGKCKE&R0^ PTU'(Y##C"TX 4""<31FQPRr
MX<8?$%LT((AA9)A!EQIKL+&##ET PH4>>(QAAQANM,&""R\$HL(@(! 2BBBCq
MD%***:>@DHHJ$R!R"RZY)$)++;8P$HLLL\ @$0.*-$"+++;@HL$B('C!*EC1p
M"E>\HA&.>,3I-A "$8R !"4PP0E0D((O], /N(O"%8H@!2IDH0I)> (4P+ 'o
MX05A"D0PPA&0H(0E,&$%*N@#(/B@!2P,P0I"<$(3>."#'VB/>X2(A"0F08E*n
M6.(2F,B$)G Q@1O,+A&PLP$C7'>(/^2" ;IH  (4P  /:& 7O'C!)CC1"4]\m
MHA>^^,7JULC&-KI1;8"(HQSG"#8!S/&.8 L  .X8QSP"8   (,#9#   (!BRl
MD(<TI"+?>#:'[ A@7?L<(R=9.;J]+6YXJ]O=^K:W3.;M;VT+W. *=[C$+0X&k
M=C,<DR)'R5::+G.;^UKG))DZT<W!E;C,I2YW638PN"Z*3J1="WJ .]V-J'<Dj
M@<,6NB \XAFO<\G;P0DVX#SH28]ZUL/>#T$@B.^%;WSE.U\AU,<^]\%/?O2#i
MP1]X"0 & N&!)?"""51 P2^L((,;[. '0PB%/?3!A"A4(0M=J ,1^&&&-;QAh
M#G?8PVT*0HA$-"(2E4B(1003BK&;HN/LQ\Z.>O2C7^,C';]F1Y$"PH\B]2,@g
M!6DV0B[RI8H$ B\=$DF0LM.2<..;WS:9MT[VK6Z @X'@"&<XQ"F.<5"R@0SXf
M9E.;PE(.G//<ZFS9U*I:]:I@:YWC@#F[VA$S=[M#)G^6V<PY%.]XT3P!&*H9e
MO>E5[WK9VU[WO"D^\IE/%>-<7_O>%[_YU6^=O'0G/.5)SPK>,P$:Y* '02A"d
M?P(TA2ML(1,*>E :VA"'.N2A#^4:Q"$6\8A)U$1%+QI%C1;.!5A-K6HO9](^c
GDK2U*.6C2@,Y2$3*%*:+7*UN=\O;WOKVM\ -KG"'2]SB&O>XR+4<b
 a
end
----------------------------------------------------------------
--
|    _  | Peter J. Holzer                       | Think of it   |
| |_|_) | Technical University Vienna           | as evolution  |
| | |   | Dept. for Real-Time Systems           | in action!    |
| __/   | hp@vmars.tuwien.ac.at                 |     Tony Rand |