Path: utzoo!attcan!uunet!peregrine!zardoz!dhw68k!macintosh From: bytebug@dhw68k.cts.com (Roger L. Long) Newsgroups: comp.binaries.mac Subject: Macintosh Technical Notes - 208 Setting and Restoring A5 Message-ID: <24216@dhw68k.cts.com> Date: 27 Jun 89 22:00:26 GMT Sender: macintosh@dhw68k.cts.com Organization: Wolfskill & Dowling residence; Anaheim, CA (USA) Lines: 193 Approved: bytebug@dhw68k.cts.com (Roger L. Long) [Macintosh Technical Notes - 208 Setting and Restoring A5] Revised by: Jim Reekes June 1989 Written by: Andrew Shebanow August 1988 The routines SetupA5 and RestoreA5 do not work properly when used with some optimizing Pascal and C compilers. Two new routines, SetCurrentA5 and SetA5, are available in MPW 3.0, and they should work with any compiler. Changes since December 1988: Removed the sample code and expanded the explanation of these two routines. The sample code in Technical Note #180 reflects these new A5 routines. --- (This file must be converted with BinHex 4.0) :#941-M!i,R0TG!"6593K8dP8)3#3"#"R!*!%1)06593K!!%!!#"RFNaKG3%!N!J #(e41,M)`1#j6CA4dD@jR)'&ZC#"5CA0dEh*TEQFJ368!4$MF!!%!5D('!%E)c!" +#h)$FJ%$!#-!!3#3!dQKi&G28N40380"!!#JMc,jS,"SCJ#3"M,F!*!'(q%!!(` Z!*!'FNX!$!"i"#!!!!)!%[jEq)pI`B3bQ!#!0$(K$68!S'4-#--3!!3!"L3%J)6 N5!!#Y!P!m5rF2h%#mJN`-Z")!43$(!SB@E,Nb*3V(bBN-p*JJ+0&qb3d#J!(-K* 0NF%#0'+N!J!C!P!m#H5N9i0H`hS9#C9XdB3NB!(S#S!%&3!8!'!)J1ZI2!$dl!B 3jXq%3SB,K3S'%,JY2!!3PK*$D4H!LFCjjHhY1a,`2`"B4QBq#6B&&`5((3-C`+( ailZ4pjkm$$LK!!i$$*+3!2G$aV`(11D"HM"&`SNIC`cNH#!&3iNM`"m%QIFP3CF (-a)+"(!9VN*V!*)-m!@J3C-J4j)-J5)q3S"rEJ$%5*!!!)@G0fR)T!!aT3bG)$9 3['&$"Rq+(3QmS!))FT3a"ae[&!J#(!ADNFBEGF`"!Ri*U2"#!`d%P&!##9P38!- '69GGA!&NU#%!$#38Ph3*M3L!#rSd9dm3bpaJ$#MdP"2#!b2-md&Z$l$`3"2hD(% #2@IN3-'3!(J%SmSB(NkASR9ap3$2*`R38`3p0GMM65JR6&&2#IG)-FF(+0!6a`Y 3d-2QE-4J813,+Fcc5`,br+1#!rDmH3!JFbKh'jk[[!!20#Gb#)#(-,#hAhmeJ0! $IIEKKm)4pMe4Kacq!5JJ#(2B"`+#)%!Sai549RKKSKd#--59,mL$S`DJG#&!,)% 3m%8G*m3!L$hIe#()!f*!F-mG+maa+`*[Y!&"-C%Jm-%CpN3MJcc[%'SSSU`Z#N! 4X-VDCakh'Z$1+FD%+3mi$e"a#b!Ke(M2"h9!J-F$G33#5D"8F!",MM['--mM-'# VlD%X!U#SKdD%#dS4CFi"JCS[2(%2&I4m8%-"pSK`"Jk#3V'#'!rFJ3B#*35aE`0 &b&!!0#Y!m)iB9kU3!+H*dbd-J*@Ia!T+c28Bm%3Ep+KJcbp#hR(,-Rq@-dF)N!# 8F!!-'4I-,K@a')$)"fhBSm)p@-T6+-,GHLL%`a5hqHDkl@CpEVT6b(2[FP$B!SN p)8c!V"dC6%h0&#"d8I20#H[mJm2e,%%""'4!m-)G8+!4#,"L[*+(VVck'ZNLApc aJj!!4dL3!&FG6p!p4YKM)jTcUfIh,'[LH2`C-aX[e+%'!eqdSBi%GF!!XCN3M&b b(U$JcB!DSAcL`Z$ri,aKUbH`&mB4E,`K4KKX5!T##c%!b"jlRj,a"UM0PJ(#(3Q ZS5U'C3-!`T8*A,P(1%e3B3r-%$a0a$eHJ'$#)fZiacHFTl"@e3!HP8K&aQS`MeI dJ$HLdjJm#R'a"FVM%cZ3!&mJ3,"!!BJ-!Qjia`N!%33e#1S,I8$BkVb9L-4"i"T )!*8J0#@-hShX9JH3!!%&0#81c28U!2F)a$2U%!*!i-'$'qcJ"pfJ$Mk)S3irU!B J,(Je+&4#!1q+QIli"i,I5F`BURL%$K$QJB4-+5j%Q",$cJJ!,UJ4!&jJ)c(S-3& cS5Y-Il,HVN"3!JB%S9KMb1%1kp$$AI8+!IIJ!Lc3B)!(@-&06"!!'Sl'JJ)!!3c &m"+BTZ$$'(M3H-L$"$9bKi$F33!0pjM%-ST3JhYJS3$K-)+kUQL21)!JCN-N`J3 i+%&Ja)b*6ZcGX95"Vd!dd%35-+1+!'#+0k+#M9liJM5R5FeU@[1Df-bQ0VI*c@j +-d-L@QD*%XC'+BQc!CFaTh8DN!!%0p""$QmJ3ah'3)F(Z3'G*h+!38L%6h95)!! 4S!)Dc*F'0l5!$38ehaRB8!Ic`E-1pA5$J5K&KcV!!6mJ#)-Eb!!#+4J)33A#D"J 8p!Bcd+%-EJ""K-V!86(N!34MD"BFf'!IHa))3K%e%!Y!B!8K-'&8BCM$'ZD`8ie bY+!RPB-F,%S(%+$"U$59Ji6Z))Fdd1'N+5dS#)D3!0'0JJ!+34d$pNBe[M1%3DY K'--B$#3K8QNdSh#BD4V%@XmhZ+%D%PUSpFCUKj'Q)3aLS1NFA!!#%&6"$@C)8%A G%)D6XL%21kA$3%0e8iJQ9%)c$F0,c4$8TKS9"09l!fA[B&8dM'UJS+*$@YH`)2L iX`abF)'*bSLLC@VJM5&JS`RHq!)fM[0%C`b!*ja3KM[!GUGY5*!!qHE`"MLJ)3d (QQYM@EV6jYDc$@R33d(2!&1CTL'U%N*"'9a`"KIXY!P3Z-*@36!$&m"J2U4P3rC +LPA3PL%-GM#I'HVJ"RVD&!iM$8-El!0E#GReY-Y9l4KBQeCicN&#EDJ$'qSj8rh belm(&UYmL8UJ-L6A3@lJVQ600p)ce'(!lT43BNm9U[c+BDcll@pGh6$9dQB890Z P+3J+HU#PBYJ0K!@"3+',ic1i)3eQN!#Z1arEBAQZ98)a*F0bXdYLVjB"$f8BJf8 2I0db&,@T)`E"PH'!8XU@p-CcD!2fXLGJ#,Qc9'E)+"R)B&9lM[9!UeAT(-*`K[% @0JJ5#J11T5aQ-jJKbh5)l(-0$)IVCVHa0K9$JF)`9!46e+)LpDT($k4FM#kdSE) &!'f$+`Je"L!4`A@%U5rK@`)'&`P$PK!9XSb')fXB"%ji`dP")18jM+'UBTLSS!' FKP1GZD!(65J)2Ze3R&lfI-mGJfQIQPm3*&G"-IiapUck8XQqY6i9[@LN2VYTN!# @!6ml*DeNF@TY5QmhS`mqFD2Y'@JaX&[3-@d$(,i,@lbQ0Xp2h5K#3aaNJ4USfCD 9D+!9a+!h1%M+(!dUQP@ldC&b&-"bD1UC`iaHpB,9ef0Y,`bkbY'1VeIN#eSYRh@ kij5'1FQ#"F%6TP#&HV*KX(!JZFaTE[2"SQ'R"CS$QIfEhmH'HY6,$--EdF$'0Vc 4$UdQjcQPEKd''&cQr!("&63,cS6SdcUrp5F!4("eC!rFI&(@Ei)Z,Hlc"98('8T QEDe6J6GbJ)d*#%!hBM15[!Y$!#B![&J'Ij)#*%!+9*J#!3eAMaLmB!JA#i)-&RL P*Z6PN9p`!6fHN58*2S-'mRM%F[k3!))Vl3"P35K!+N+'KJEFB`SeK%%3(P%(8DM `HGl+HcF1dRF!Y!!!83L!$!)!#`%F`2M)2llbNkm`[BHNphi!!#d#i)$N@hrjf2m 3eIQjIHZi"E9Q9hED3E$LMRkddj'k`p[MVNbk[p%$H(GqG3ViqbJ!S!i!b!3!HJ' !F!5J!!'3!!)"d!3"%!I-Th[2pcbrT`8!J!hApi$CKi!LSB!!`)!1L(d3b(aKehl m&#)Fq#%li8r"a3CAeh#"j@%lePC2e96JKQQ43P2i09&KpLJJd&F-C6jRKP&FKPT iYQ"&T@RR&e,M&Qm$TS+0C@Npb&T`i&T*PB+Tp9hCBi2a%@4*%'GKeR"Rm'*Y-'# RJPeiYJBSa@3DGR2QafP#H$kPK9B`Y@BX"5Te)'R1*P'+CMiff&#RGB4%YS4aeBB PCB8mU'!-jP9Qf)CDK9(aP6h"YQ`MG6ep&Q42%'FaY5QK-SFJ)!eQ*3H-@!E6d&d 5eP,,96k5p@l**@8[jPJ[Y9,la3BlK9"JH'-&8P&bN!"5B6"R36GB'5)%(dJ"El3 "E%3$Ef3$E*3%Eb3&E04-VI)+`48!TMB!83GF#C%B'cKhLD%"9dGFGl"69+"VDrC 53r!'qk&eA*G2qk4pcJJA!@!09mGF$$9MC(9D4%CR2FC@lfD#008'6YK`$pH',M8 Uk!-#%R8(j(GK-bBK@X9akF9HlJ9DD5"TIX9bi$B%Qe)JlT4T(!9Zq&&`i#GPJKC Xcq99%I*Z)dCCG0#2$j96"0P@C58UB4B'FB93G'92rSCZ+IGJ1`CQim0F!pCb5E9 8M9CC1C9Zd@CDKkKRRjL6HR8p0rH$($9L+49djPD6l6L$9A8'"69@&ePB3P!'+fB qH3!KDjK5BdK4-YQ9G9!0mZ98-GL1e'Bq+pQ5dM9MrMCTfA193VCS6QJpUT93,I9 5BrKZ$aQ4+(8IipC8EQ"A,B"8X-@6B*B'!aCN5!"ECH"[D2!'!'P9S$+CRAJqk40 U$$KhF8%'E`3(E&3(Ek3(E#3-Ed3-`D8#TXB#`68%TSB%`8@D(4)!Ga"FPQ"USY# -BJF%PAGjp*!!HC[AH68J$mr3!U%hHU@(33TJ!IF3"USA-P1!!#E`$'ZJ'r4J"-# a*&G!2'0L$bH!!h(c!9eA30k5!c'5*C0`#*%`*$GA!SXJ$m"3$fA`#R93,BiN$pm 3!r,**9iL"RmJ"RSJ"rF!#I6`"h@3!!FD-!FBJ$"badB#`!!l%4F5`%BSN!!!6I! %9P!%,X!%l4%%0j!!!L[!!K5b!kf9Fc5SJiEfE`Y@RMV6!RShJ3Qa!4Q)J6CUI'a d!3PJ+[LK!j2bPdS9Q2La!i[A+LALJCi*!1S3DfYiPQ3Q"b[@"Qh9MpNfN!"8f&4 $f@GJKPSX+9F[D9Fa@3-lY@I9CTPUf&G9"9JdTC5J)LSB45TYkD@3!!DQ%P)p!$P JerC54iNp1`@436U40B#4*1D@AjT53`PJ0"PQ35GK'KGR3#U4JKQ9i2GD5X982TP 3S@B$(aJ%E`5Eb`5DV@)'E23)Ei3*E$3-Er3-[2Q"6q"0V[UUX2UUl#0f%d!2%#) %X3!%p4!#d4!%22!"Bm3Y8M+1ZLHM#P1Mb+TmcEGl-XSK#pL!bATpbfUX#4#Y0kU X#T!!!%U!AKrkALlD+X9k%Y9kVGEk)8Kk4NAU,6k3!!"TB'6+Y@Q-kU0LQ4q2dLN *X!G1U9bS)UNi1*991CFed!IIkLdP)K,q&!#)KeTK55S@'5P2'U961MkU*95$99K *J+93f+C0pDB5bk@db&DJ-R4)PJCYq&Q[Z#NZakAd9!GM0BYN8)XYKbT"PJ83BTE CXe+@PL$YqUrlkV)`5bTKfE$3KP+@KTL9fT-PU@a%"PMX4LTACP8BZE3rKSCRQDm +3TFAkfrB`e`hGJEHH&3DfBk6aP'c*Qff0PDjYQXM%!-i!!0!19HQ*@A*4@2[0&d U5'3RCECT%!GfU&95PTGX%'T1m)%-m%B4`%Bcm%Be`%DLf5Tb`%D0m%DNZNbJm%D P`%EYm%E[X+T*'SeXe#kSe8j*a9P24N"IahhP'"Ga8(D85VS69Ak2+U6MjP80@e6 9%f*S+&N)9QcG&D4#CeGdKVZ-@@%STPVX+(&cm)C*+e&05SE3"AF*JA6@-3&[p!& X4!*[P!+Y&S)IZ!!Qph%DjQVMk,R,*!)*B!49i!4$3!9*m!413&&q#UNBT3-J`!4 fG3DL5k6Yi`(XN341`!6q@`3J3!)b8!3i3!3l4F!JLJ-*$!-j!!-dS,mVj#(NDad YF,lTZllYqlj#L`,r1,reHlqL1ardDlmKPVrTkL(mQ`$q#m"1)-!%E!3dJ-!$$!- f6!-*,!2iB335M(X8l'V,C!!Q0`6Pb3$M#m6@%3)*J+LhGV[F&EZ!kKl`)4rkZlr XX3FJ!!0i8-!([&0DV--h`-"CM!F1$-%Jd!FpE*irh(hQbm4MjF6c#J)S!-FIA!2 cd3-$Um*A2-Bb)--dV-8f$-&H[-8lI-CTV$2KfRI@@U-IBV!I1+aJKm38m!q@!!! 5!'LKdJD"p9*-S&%QYR*&I-6G0`TAPeMb4CR[&P5C[-N(jFNXffFe@'!f4@6PYfj Q&QGN#@hM-e,Q8jK0pC'iLfrH&99V#'!R#'GS+A#Lb+KT8''D+3G(C9"R&j!!-NC [BcT2TL9a3``#-Z"H,Y$0NMbYiVV)edU1BLH"[IHX&dM1iUc)j2V1aZI$!$!$'+U K(1UK@[DRJNQL0C!!!#BD+KXE+D4LTpEQB3QLTp@$P#RFcKY#cK$S'2@mS4fD!2% VZrcXcaS,8i$jC[L4aqDDZL2"!JdEdIImS5%kSN(3+2qFPLFELh,fXQcPdI5FS4, YSHK'!bJ!SLQ!dB0B+PNR8LSQN!!fYDJ6YY!U30)6RG-RIG(rl+B#26k)'LSF9BG Pi0'*h0$`r-iI,AC(#Y*F(Fl+34mLLlDk9Y8*FlVQc)%#)!e0S&%[C9f-Q9h[PQr l"Pil99"M`&$"+f+SYFfI"EjM4GIm*PA)T9N,!P'@jV-JHfD#YUG4k&GUDMiSN!! ',M"H439D*8CL5QABDeFJ-3A0mi&8ZpaK9(NJX!8#`ED9)%#@Tl+`i`2&NETf$8Z &INKN6l@(0(EArC8JRYe8"A*S%[PNlFMDbjE3Bd8'M59SD[C5LGKR%P@+,&9`Zr` HmH'1Q!92*pJ'1jA,BT95G*D2UfdUhD9[0-@1bdY3lL5ar4JU'$GGPkT`p&XUc%X U!+e51@Hb3@Jq&#RIE$NqiT2B+a[B-PAH0S8qFV!'3HC4`0f1C9YVdT8pD@XqDpZ f1[Gbqf'RFae2bb9JcPaq@KT4I$fSFJUA%Q+)ck9MD*99P+UBlqeRGBP`*SRDC8$ 33jQ)BeLb6@@d,0jP1KGK"j*4CjQ)"FQ$!SCf'YkQCe#m*UTV!b8(T$@*)+!'mJC 8arcEN!$CAbaR-R",P+K59!T5)(aEE0'G)B1ET*jJa0C"#Q`N#frN#kIj4XF3A)a JDUUQ)J*![4dL!(9Rjm#J4J+!UZH%If*h!`P!h4a&"'r3MH4G8hBP"A&B"LJ!9R, 3"N,!"QX!"Hqd)'+`8c0A"%V9BFNlB5Q`d!0`V`YpeFHDeBaF`45J-k8ZX1NNcp' S-dVXaP%ia5$3"(QJk"8fBikHF'EG2V*!$cX`"V8%#)I!!a-6"-&!18XL-*q3!"Y L"!#lDJr9m*b3!"!cKU"*$*!!"4!`"T!!m!&iB!ijN!!"Y`*%MQ!+0K!Q,l-#'1! iN!$M44M!0PM$,,Vc,*%`0605)cF#-$cL)lN"!%'J$4b!!VF5#!2`!AF3-[+1,4N b*@JH&hHh60cJ3[)13Ibc3-*"(-B4"!Z8!&!3+IG!1Q[J!%83$NT3S2H`"a036*! !F#`V8%V1iJ8RB!rAF!qRN!!FNA-Mi%i2-*!!5GkJ"a6`##j!l8m!16&`$h$3m22 TH*!!4`@5Tr($d4X@"!b0ih"RB!THNcp$8Jm2F!A3J5d&!`cJ[J)IN!!(#&!,4I, b*&mbFJ!,Be#J3#rd$Tm3QTUN$I"'ZVK-'I"')X"'TGBUG@iGNe#U&RS&9A9941Y 51T!!!%'`838#N!"6-&$A8jKhi2KeB')r(J-jJ!-i8-6,p!-a1XkUAXiKi&%1)Y@ SR3H0V`5-DAjP!)CcS+hmC6kFM`-j%-iI3"ZfJ4X0P!#0*`*cB!p`!1kl+JK8-2a `3(R#QK!5F-3J)ACU("+QAMLYiJ$X!FIe@J1(E+3,hDUa'[lL,rlKM1VMkY$C&ha l"aE0a`MSVi(Kr1Vp*-pja`pmYb%"B!k%YrmM`8CfF!81*FXd#a5cP&C3H+X$S%, G5*Y5i@,iP6mU,LdZd%J)jR*J*-i5HM!,D8hjSr'KCK6IU6!C4dM+&*hQ8Va!44i `EIBSPkf88(21p!ll5hA[6eNYKF*9%'LJ-TS5K'F#')&0-@*1"3"i!HPThpN)(+% MrYd(Q!(-!A6iKZ4!"@M"VV!(Hq!"$)&km!A%4"'`"pMJpL5T(&!+&-9)`!(0J!" 8K39!&%4!rrZ#Z)!5J!!!m$)!!"U3!!3')8@N#"b`#i$!'J`!V!"&`-(DJJ'D!Lk J!bZJ)-!!!+!#pZ"*`!(%!!98K4(!#-C13QK`C`[#P683X,CQJ*J#!CMLUV`EJI* 3cS"T'3*9B!TN)bNerj,8mk!#,R!R(!!!X!Uh3!")"qB"&!!!35!,'8%S!!#9c!! 8J*m!!fkK*[J)ri!HM!30N!!3C#%Q-!KAB4@f`PFS%LK!KS!"+!!!f)!!)!X#!$b 3!)@C3"CHJPTi#h2K,R30[4!!r-,S0a,X$`!`KKN#!d4$$J!!()!#D'YM3,60JGD $$AdK-(3(jE!B!J"-S!)`3,ZJ0C%3ej5e1B!0Y@%h$!MI%#@%`h(B%%B#'p#(Q#$ ZV)"im!%f!"%S!b2`53NCJ2MJk)0&@8)CTb!#J%Z`#RH#!&L$2U#!q)!!N!!0C'% MF)QbF""F"Xj!!jI#"*J!04!(hX#F@"4Si!"S!+8Q483S3F!6Cf#+f)N"i!%m!*l i%aP!i0Z*c)J3X)qG5!!B30iMLNM4"LT&RPJL-X41A!S,B!%8K,$B%irL9+b*Be% X'X@3!0!!"S%0G!!1S#$!aB+`&D'L9C5+2$&#Q3LZ5"EASJ"SLhNaljA&Y%JB!d" IC)TYd3BUaU0B&fRJAcb+Lj%VfN#bD"M&)P+NM*3a-Pj'bjJCMb*QY)bD-63+4DI )&cQMD5b-Nr%d9NE8#"PE)eeFLMX4!9M&8J-8VH*JA)fV83!X!+ci'3YMEm50[c% iUNEKk"[9BPiNM9P4*dE'YCJFqCpcI)l3-6T+aqP)(DZMGEb1f$%lDNFF-!a333K S#c,!%4+'2*J3`#!$!!-!S!4-`rQ6)Yi#$XJ&+1!lbM%8-3RB(hTmMe4J$BS!BLJ #VJJ!`)RhF4H3!)"!+!,3!!"!!Iia4Fb"TM!-`%&9%!%8J3(8aj(`"jT#-i!!Dh! %D!3cU%`U*!l!"DcJ3I)!!-!#*Q5+@!40)4G`JDS3!Y!"!*!!!4-b)9`#"NN+-Q6 4ij!!Y@9'iJ"QJ!2@i!G3"I64)2L&8G!8GJ%1L)BK!#5!!ll6"j0"8f!'P#!DJS$ SS`JQJ6)*"dm5%1K(DP#"BL3!D!GqN!!@V%%3)""%J)RmNNf"'-#!UX!"ZS+%M)- !)"qN5%*3&3b!4(L6!1!"r*qQ`!%FC%$)$"L!%Z`%)aBAGL3[U*0`)%LQa`#`"ZN J%DL6I#!!d!#qBm5+`*0%!eAK!+J&20N$!S$pHBpd)&2bJJ!!$#KP!(!%$*)H9)8 %`!F8C3`)!,r`3d+$9BN)!S!D-*A,J%'Z51T`&r#N%EX'6a)E9!8&i!m8TCiF"bN 5$)c"Uf!""#@+#!"hJ3kZ53#`!0BJRJ34a4)4!S%ab!+D!UA8M8q5!e3&$@!( +Z!!-NKfX33VJ)84!$M!)#d!!S-XG14mM`)K%!Zq5@JS!-iJ$1!!f@)-ES&Xk-,! J!(j2[a56!)!$*"-c'3F,CTT%!P9K!h!"4GN!"%!1m)1BS#S`!"d!!(6!Yc3#$*) U!)!4)!I-T3#3!!*2%KfX33e!&0dP[$bC6D%$B%J!%!'8`B[-PbLK#ca*&!!`V`, $4"%#3'Hq4bC3&6,!a-56-d!!T)'Bb3#U3X@NKRbRqR!#2XN0US)$S!8SBJmBK1S $*$mN1V#D`#"V'S5PU%mq*"q`QXbJ,6M,&0%"!J!La!"@mc$JbDiJJ$iN+,#Dr%! !6%SiQ3EFjM#!"98K!Ja#2*N"lSrEC!DS)"!@!)jT#HiI!(!%IT-3@%YF-(E1*16 NMPmcBG)!45N@0B(IK!*933+B3CFj%NU"fp`&1`8!D!"58$RKT1RNMQbJ+Pb!4)N R6`!!L!9ZN`2!Jp!*"3)!#D#8$FKY%J-H8"8Q!"e3P)@6(,M0A"!m$S)`!!"i`(( f!lH*#fSNLUKN2c0&6-mGb3idT[l$N`XJ!15G$`N1!L%"m!Jm)&q'chq##$Q!q43 $E8&p"S!2i$Bl!0b%#kD!*1$-!+!#$LFj@*P[)A[b6qS*#DS#"F#(5$-!6--G'6[ KJMi)!+6!92E0(FN-US)&m!5+dSM9JF0j0aF&N!$%NhSb%2M0M,NSE)(UA*YD`@r #!3Z++!KR!1!%ba0L,JTZ!!!S`Id,!,@!HK)$DhNm"@J1IBmX3'0D5a-C!)+"m(b 8!1!#Y%S,-!N'C3"S"SH6'XK15F!j@H,b2*Y*&)1b!2QT2,NM'C!!R6B6"H4,)rB 1$ZIp[!#pFN+'chhJ0TG"ddbLf9*p#J!$N!!lb8&9`!#D5S`f622`)9@PA2!#'93 !Y-hh#$VP!ND!!%d8D0C0CN"#-B!Hi*`#S!Ei68j`4ch#&RfC31"`6NX-)!X1j"J 9!%[!EdT4ZD!0)1N91*aq%J2S[dZU,m@!hjb9@#'Ck0&rF!X%3"[)RF$J$M)J*JS R83)L&)0`)8*k53Re(NF19Z#B1&)1#S!2L3Z+C[6K!)Nd4@#!CCS,YL9@q)9iXJq 5J'@+#eBS9XLIVZ"-mJ"ULJ-dCVI%N`N"#5a6CX!(eZ!#+*DN8bbUdrG)"+,K!UK N4N"p!S!TX%b(!6*BQ@R6"qK6,l"-1F!1TCBH!3+-83#3!!E@+H!-#$L!FpkIJUS Z!F!'`!Jf3*m#JRk+#`#Q,"5Sm")!,!*ZbJX!TMF!!$4!ReS#ELSji3)$SJ!i%`# %JRkU"Z&#HXLH-R@G-S,3533b+!"S"GadGbE-Y`"#!8!ZS+EL-Q'L4`f`0J%!-ZL Rq)"02P)m@3B!!$8SU"8dB4U#!I!lLd)1k+IrNPV58!(k9AHN(k8,9E3),00QJ!# U`JF`S8*!IN+"Y6Sb!F!(`!IY-&pDJ!#`"IUTXM`)Je!'b%m$Y#-TUIZ)U!j!I[) "DSS)UJ))!*N-3(iHJRk+"4`VbQ5Pi9-58&-+%!J(J$hSQ2+c%e"630"C+5G)TCB "!"@X8bl3@4rTD3fIXk#ImS(11L*ID`$`"G`8(`4#!H!3J)$m6!E,Y!-JJ0fU#`" !A)@A!H#U[NFiX&YET@hp"[e8U)S!8C!!9j'V1PLR`1""UJ8-)$rV!68PRQ-('D! )1HT,F3%bU!S#!"IT!$ND,hFN-3L%!D"B%J%jDJ'S+3fS#J%J8DE2PaN#eLNr@)6 4*l%56"D`6*8"-eLA%69l#J!#baf**ST)S`CKQZ+!INS-&Q%R"33QdS-8e2q+&@K RKZ8#e,5bSSK5LNiP5A"e(rp4'*V*3@PLhb-#L)B6S*4UJ'JU!1J!0@8!Dh!#!)) Z56!h+Jj3"LU6CMU%C#S!I#`a'*!!0*-3!!!MB#@"T[[ENI!J%*+!FQN$-L`Q@+G i!,ik!`!!!f)Nra`*db%!')14!")#3Np0#'@@!848ef"'LQ9#3!L@M,E`(VJ`09Y %3XJ!"K,0hYP@b@C9jjK0'"XJck+%K-!"*)+HG4qEmmdQ""&3Cdr%#(!&)`(1NJ" "'aI6idQiHc+!'`5!&I!*T!%bd`!!!: ---