[comp.binaries.mac] XCMDs with global data and multiple segments

brad@gobi.jpl.nasa.GOV (Brad Pickering) (09/16/90)

[XCMDs with global data and multiple segments]

The following is the source (for MPW) of an XCMD which handles the
interface between HyperCard and specially written applications allowing
the application to act like an XCMD.  The application can use globals
and have multiple segments, which is impossible for a regular XCMD.
There is not enough documentation for this to be used by people who are
new to the Mac, but it can be very interesting and useful to those who
have run into some of the limitations of HyperCard XCMDS.  I have used
this interface to implement a XCMD version of CLIPS (an expert systems
shell).

Brad Pickering.

---
(This file must be converted with BinHex 4.0)

:#9KB3de%,R0TG!"6593K8dP8)3#3"$(2!*!%m,T6593K!!F!!$(2FNaKG3%!N!F
#!Ja)HA"PFPKB3feN,QKM!%ZHLJ",RT`!5jkX!2m!!`#3#66V"J!b%L!!095b!l)
"$J!E!!%!N!-dkb"849K869"6)!%!SD`8`U+Q3`F!!!&q!*!$`!!!!3X!N!15C*Q
SfJ#3"R1p!!!%##L3!!P"J`&Ph+!%!3)!83d"U'Nii"mN#!3!3-(SEf1"!"j"3Q#
!*!qF-R+`B"R5KS`,0#d%%+45"!Z9*P#QJ"JB-!#3!)!dEH,8b92J6`"GC"*FbK4
!+&B8K"%%eY-2[!rrrPh0ZP8V9UpF[hBG+lCXf,0Jdj*&#irJJ5"3S"JX#Z#!R$P
baJ"3'[##"5PPjK3KNiB1##XSjk4ji`C%$"FaK-aS3*!!`S3QBI3'4!)J342'QGm
!Q$-Rc*Nb,%#-H92($CdG$4+`BA`'K1)cX!%B!%"!J!B!"36S#q$20h$Ka%@C'R+
!i"AR5iY+4`L!ZJ`!0F*3)m#!)!F!e`%-P8*3`B"f@CRDi)3*FqM)U61'$JJX@)D
d)51%cCXaDd$XDC!!B!kD0h)-YLNcCdkB-f9BJ"McTSiE1MXS1R4c"X5F0'G5*PM
CdNdC2(6JM*'CF#%8J5$JK*%6TXe215RlT'a!*`qF-Q6+Q(%TN!#J3B3+'6U%H,#
ReSGV8MCp'R8UeS80`B*3FCE-8C%Uf(T&%XB0'6BKemCY5pFZhU-l!!)#$%KjF'9
b@&K$E@3ZF%3!!++J!$8B`J#3"3'ReJ!e'-*!J'9%!$8B`J![UN`!-K%!!#rKf!"
*SQiJ"!![!#p849K869"6)!%!SD`'+D+Q3ai!!!He!!!"3`!!"1J!N!2FAc'IdJ#
3"Z&-!!!%#!MJJ)'!"Ji'I"@`3#8!43B3R$La`"J#8+3m1C)(K*%hE-L8BB!N$j`
bFV"J'G+'M!Xi,333T&)%#j8Q8+D!'%J3@%#D0R(Uj"R3*i!Z-LNU$4L+PB%8!3-
-#ALJ&J%!S+jKNY48!,Z*,ZBXT@Ja)!%5!XF53*&f,%%'""dDS&0Q$TfABj)#!(S
cjmk*J#T#QNKJ58!%&!2i-3XJ9#P*Zd+P-M&[U4efNEL`q9&1"J`!9r85$+8X#KR
5TTX1U!*J3)FFD3X)G+"b5"-L)+$)HD1Qc"JkZN!,N41'M-!B!%LD4&Qlj8X!)YL
8S3-#$jia,8(-#@1RM(BkBHL#%$2p6TNbEN#-#F1'M9LP5!!ND2,'6CJaE`#`*#1
%cCXaDi$3!`K5&$(%%e)3d3!)$$B)!J!(AE9-!#i)---!E3!`BB8AYL'++80i3"!
[)dj%9!$H!,$(213%FJ!$3*KaAaNmbI$2MIm!`---i*J)B@)#T8M3Kd`839!,r2"
KaBY%-*&%6J-&S!+192i6T304cR%M4924!%B'R`4aiaYVe!%(P6cjN5C"%!`dJ"d
%X3%!#&'dF`516Y64(TS"LF+6+'bk+CCH0-L`"T9NQXQ61M`CdkL2Ei)'J*`JS-!
(!pIFQ1HH9Gki++3p)RB0!%BX-BNi42cbMaYN*!0!TjdQ*BfED53(`"4X!T!!aN#
H"L5$!A2`T)@`9!,J"Kp+ZT!!kN4m"Q"'Xe*%1FD@%ce$d&9bm'UP3#S-!-@9FbD
j*%RGp5&#P+,!ZQd!MN5C"V8%YA-Y!-'qZUiC!q`4T43!P#&Z!J``)4eGkMDV6*3
e`#X3A)bPe@X!SJ`34T51%#3"XPDmm!)L1Ycc`L9E!2*ab*'m%&9!4`!JJ3#q%*%
%&8`!--%!SM44K"1X%8#!*0L4N9m6!,a!!KC"Qk!&!"f)3SF0cbL!4"C3&#&&EEI
4%r634+!4p!,-#'5#$flaB)8A!6NKC"9'%+634&933a!29f$M9J#Ke1-)"JNm(IA
8YK&"K09#Bj(eePd(m(ABBjGpGYS)+GAffh'leCMG%#"!48!#a"F!$UKmdJ`rDLM
00)a8#P'!!N5e0G&",Q5M$J!Za#1L!90F(X!&8i#(14#HJdjN%D6MD$VU2P*dd!f
AJ(f$+h)!)"[Ff1!1(UYKb%&'EQ(-X4iE)%b44aYLJ$6(heF,V[8,A(X0pPKLN`f
!f3'KV6B!0i6$#[hM+!,!"Vml$EA89#0#I1Th2`!`!`4$@dS4A'!$aF@2F6qLb12
'8S3A`'*ZGEYEh[l(YpX)N!"qpJ[)!41SP!8fm(f,Qjm%h8C"#dSZJj@M`K1Hi#3
R8-%)IKYJ#!f)3++9N!#"$J5!r"Uh3VG8m)*Zb@"#RM#&*0M3#$I-)3J,1%)I8X5
%34aL"0R'3J@k-)Pf%d!#SP#&*!aK#853!%)3V[""!SU`K`S%)JSIU%)Z'[',B`N
&23,K$`6BV!P8q0m8f+K$+X,aKbH%Ra!KZ$D#60#,5#5+34#b0SEB)"1F-!!3#-)
"!#a'!(9`3aVSd"S!D!"!D6"13*3J&(i&a!UP9!""M%%4Q9!!FkJ`(Y)`jiZPU#!
J!a!'43,MPJ'd!ejkQ%J#G--Ehp$K$A*)J2I!4i8`L%%k#)$#IGB`c6N`)!PZ'!-
EkL!5)k4"1R-`!",+8"b8!&@F*+%#!NNH1'ANB-%bT!fC(3dDJ!#4a!Q9)P+-""P
5*1,%L9@Q&*P5m'"#KJiK5[a)*3Z8MKmr,Qa)4JLE0f2@J1J"3NU4)8qN%&NCFf+
E-R2QK$P6KJ@)-@rUZ+'M!d5DU@@BbS&Bp11F0'HUhR4cjLSGL!N5Z#Q$K`kF-@,
IN!!ebl8V#$KKj)4T!i@1R+SSbI6G5V4S%5G%kXDFkA$`6K"H'0HmQ91ac-")`VJ
K`kE-imL""eZH+$RcjXk1HB+QDCTc'C86Nc5"`U4)Nm08JP"*mX4*a-0%A$3!!J)
)E@&VC@CTE'9YC#j`4!!!SU!!04M#!*!&!DI@!$8B`N#!C83!04M#!#qU6!!b%3!
!,q(i!%QLEL!8!#m!,e4&@&408&-J!3#JejL5SV$NS3!!!L%!!!*h!!!"6!!!!AT
UQA-[!*!'DPm!!!3)+$!D3B-"S4J!X,!K`iF1$35)#,%LJMCKeT3aNiC0Q4B##&)
TJS9+%bK63!`Nb&)N5C-S9EB-k',1c*X!3&h$*#QJJ$Xq3e!F@T'SdD*)MdDFQ03
L!!3!%JL3!,L`3&1L9JmmI6M!DF5T,!-phH6T4cNC-!!3!0#eC5K@%HkmMIYf3"@
f(A))h#[!!4BX3jS3!3&&cKXeCFE3dD9@L*``C!6+H)T4)dH2,'0!*J1LFKN3DGc
-S51RMZ)dEd5$-20'$SJa)0L%FA1Q6TJcRqQ8'3d#MZ%cMpZ`4"+e5HS`Bpi!#!(
JAi!3!jm,##,p5!!@!Dp(eEj3!3!c!%B%f#D!brI`imZ,JN8Z&%%4leQZh*XG)3$
l8!$8#%10!!1#(!"JK%"MV*&'C!&*F0)88K$N!3#!i"63!1hmm`p"K3"J!bFd*&$
BBBR4d4SM%V3*XkD-Q64XbS!`mdB1#$TS&',"-U3*%4!8,6BBXE&"JiN9L53JPJ#
N44G`A,aTN!#!54ShDc"Q*)*5*BJ@E8!8F8*&5KBS6j,`[#Q($XD3!$eXh*ac4LE
5*Q&HJV$&-S')25l&b!NM*dfC1Ae%*(&$Ti`F-f('P,&*0B&9V'QdF[8+9J552($
-BXR+YZT9+&QhG[dD&NUB1AcI6+hD3V(*Lbf-bTNMCma0be+Q&#(LmA(00b0,cN3
*iQjH15$EN!""bG,`R$&Kf$Jp#HHQip%T9cE!JfH-kLpc)V*Kif+-bY#mIC-",Tb
iCG0k+DTfJBEP%"$*I`F[-lbiEHbpY6F[VY*Mf6Pd3TqR3ejapZAEZaYIfI*Pc-B
2[aTGhhkafkZ"c8@B@'5CKCCDIIfhaa!"$PEA%'19G9CDDbR@ePX-aL8BA@%0)88
GC+A44SAqBGJJKb*-33FC'BU4i&XR$JJGDSQ9q"jch$PAAJ2mcDHHIX9CPapkhZ(
ABhN#!JC548&%689XC@eN,QK%!!#LS!!e'-)!N!8"TpB!04M#3)"P4!!e'-)!,kT
-!$)4!!![iG3!5D*Z)"3!,`![9%9B9%e38b!"!++,fi#LX18i!!!"IJ!!"QN!!!%
h!!!%-5FED(%!N!B*b`!!"!JSN!!*3B-"C5!jp`qHN!!M3I3&F#!#`jZ!`&4J-%0
!4300J8`8@3J1f)X&"U38#8+N5C%@!JK5+B+&5K-S8d!-*!L)))!+X`,1V(Ncjmk
!23&dLHQcU8p4LlBP0C!!*Q!!2h`%10%&3!b#3J!HR#%3VT!!"Ja$jQ%"3#)*!J)
!#Tc4`#,!9J"''!3")1#-J6B)YNN#3f+E&$!JYNN!`i&")))bbN"i!8!R+"FJ2N3
,0LdB'!-5X%9*pSrI@`!'aTTSF%e5&'6rc$$jpZ#INcTk!)!KfqKX&'Irp0fQ8rP
,CK&IcU#3!*&!`0k!5!!ND2,'6CJa&jeUEmT'Z`%!F2GD#%!XJ$N!iXQE&`@V()k
!91&A$4MTU(f%!2$,!&!M$$8#b"$%!3$l!9#8&!3T-%!lrrc6P!fFi!"BX!aT3J3
%LM*Bk*54ibB-'a!##DB!N@B1L$"Z)!iXH!G0QM&S3+!T``D146T[3,baXh$-QcC
P30!C#B*0QMCTk)5KNqD0QcN0hTJ"iHD0R$B104+Fi`)%##G'N6k-5-6L')a&kBJ
-`a,%'6C[a#3PXc2-46GN3,5T-dHVQ*KXbX`"1K-ML"NbPS!3NdHK4E"ZcM5&509
V'6S@`mKj8`HYc*&ci0l-ZE2Rclej,SlK'IJL8,YTh#L8BbE-Q*K[kG`T8bBMNMa
`&Jj4R"CMfMQaak4ab#Ec(6Nj&@B-!`H1cDXmI6)&d5$*6i9KdJVG@bEdQCTK'S-
XNjE[ijK06)0i-SA&Gk*PlK$HQ&J1h$I4Z9-8rDE"kpKbCXXKBl'eR65,Z3'6D'H
PG8BD,'8d8h9bU(4(4L+%83-)GaM&"KNLZ0"!!e63C%BDFB'!"ajMY%('&h1-a!B
E,S`K8aKVb!A#9HkT0&3EEl4PihPNT'('Kf28`3C2-JV93'LMPDCEChIN&0*pXY%
f@"-jDN@FF4p9TKb&)$kN"PYDSF&96#K4#*a#$5`S8i8J,&B(Cc+1@1+*SH@%`N5
fL8LLL9rdL0Y1)0eCi(FCfH6''Pc1e)#FI+C)%SYMZ2$'B)c5kBDG%e8d)frbqG5
E5QkF4Z&)#Y)8d%B8!I@K($U#&4mCP1jjSTp`!)U'S*UUk5DFMqd%3SU-A3J#'5R
T@SC$$F#af'Pc@DFKKb29U'P4`li4j)!k*6HF9M0T#XFE5!l@)@TbD68(Bh+)1Pe
SCN5PT4Y(RN66ZA@N'j0,C*3a'"4aK4'C6(*N9UCld9&%af"*$*8(BeYe&8FGj9T
QdF*e0("94T%j"K-)CE5!&)L$"@&4%Qh+pDeMCH*BBjiUar4`a&Z5h15+!1H4CNS
ZV9M'CZGK0-GUV-jATPNYrdU(((9X9Upma&lEfX&1GDJT[M&9e%"@)14aQ&V(%PM
Q@b#`*CphDL)ePecQH5U`KqQ0QP)BBTc,aTXNCHB'Df6FE*L9EMVQ8dc63CNIE5I
m09Qf%Mml,JLVkYKYC`1A!9-EEc@BUjK@6KK#$b!-8DplSJ94JhRRYXNBR2,Ze%#
qXINph)3Si0M@Te(8mG%D4-J4KRTj#UjI@V1Y+0BBDm`adF`2B9fK('XdJ%*MFFf
90F14d9%(("G0k*)FlQh@@`UacSQLLT!![KLM9BS"2P6eR*f4*Ne"F[rdX!$ZM&,
!-K9,8irGhjrCG'U+(qM-T42LN5iPEHP4IC!!9l+#jHNh1BR*Kk,(Z-@di39PkTC
&q'FrSq6K@3d3JZl5!SAE,F3k$4$$#)&`KV#N`39U-)i,'M+(-,LJKAEBN!"l(PD
r1HLJ!6i!JHpS!i)BZ#!'314FDaKcKT!!6-k$q42*'i3ea2f!B!9RbFbT#$+p1Qa
U44Vb!HHD!)8Vh-8&-!!#!JCdCA0d,Q0B3feN,QK%!!#LS!!e'-)!N!8"TpB!04M
#3)"P4!!e'-)!,kT-!$)4!!![iJ!!5D*Z)"3!,`![9%9B9%e38b!"!++P43DLTNm
F!!!"IJ!!!Rm!!!%Y!!!"[IkiI)F!N!C[,!!!"!JSN!!*3B-"C36*3@3(L!C``X`
C%iB0#$Y[dT!!!6'P$*dLEZM)b90P6TJcC9!BS&0Q$KdABeS))%LP#"BU6D"-!6%
3!#!!3!J#U$!RB-fE1AIfr"N83*HC3U-+&9@UL)'!![i%$1!R43-3B%(d!!%$6j!
!K88F3T4)d5*'M5#'8!NM4JD8LKjCST!!5aG*'$GNf*3"-8I1',jL@0`96)HPAm#
#3C!!FENiEaN@Fp#mN81(X1'5*bpr$CYjFqI#BkLm%5cRljJbAX1#))J%3))QEpb
%'I-'3)-p$4)3+51QcKQ8FP#Nf"&F6XXkE$Vh!(#9!!!l!&3&1$G!`rAXflZ,-[@
%!eDY!,)5a096)-%!#!(%P`'J4KKU""J30%mI3&)T"#N`3$[rr"19$CV`!5p8J+#
$*XdF%'A`K'N$KddC%&L`$'P#")5F-R6Ub(&cN!$J`c&[h)`*3bH0'j*T3S*iB`C
%'MS(iB54Xa"M'6N(9EaSd'#%b6&XkT!!HFL$5KiiCHDi311MjmqJ3d(`Q%1($*X
dBTBfp5N5+P'UFNbHdFU6+XSa)-DJQ3P#aF8jGGM3fF%6$jiaEFKm-IN543UHHaS
NH"ZA$SJH)*a8BF+%EKqHDYQUX)YA,aQ$-ZQS46(cc"J@)$VEq@[5F1FaG#2,DDY
#00d'J418GJRD$Gd%UPR$L3&D"4`CY`8("'('**Q"EqL%B32#SCXc"&Hfl&bR64N
hKX'+2BL#6-J6KTm+I4KaBX@6eP1dhCR!c*[9+0)F"X%EK*[j-%$[RLpk4B`G,NN
9QKbH!CM'#L[8"X)+L)(P(!UqaB"J#ZS&*eY,+"!Q&`JK)+BBBqUCF9%C'5C9@!U
hD@JBBQdXamBEBk$JKRmS#ZD@L4XL"S1&`i%N%NNJD2GF4fqFJ4%D0kdRQ([`bBG
BIEr0Tk*q-I"(S"hq'5MJD3BL#&U3!(6)-3BFHD$`@fqlTD#I$!Xf'1D$%8jBS@#
#AC644KEK1&F$I3!#!JGB@%004#j`3feN,QK%!!#LS!!e'-)!N!8"TpB!04M#3)"
P4!!e'-)!,kT-!$)4!!![iK`!5D*Z)"3!,`![9%9B9%e38b!"!+$L&0LLX2Aj!!!
(&`!!*1`!!!8R!!!2Fc&ZYE)!N!B9[3!!"!J)`%#FJ!81"M59))B0&'&XT'!4"ND
$"(2UL(("*X')'#c)@'6cjJfF"'hHf$Q!"FZ3!#C%A-!43*!!5K%X9*T!Q3*L)%%
J"!&8!"E3*NkG2(d'"!UJ#mfJ8)1#%NF"@d!5l!)HZ0$JBKNhC-!)q!!"9)SA$&#
0XZ%#!)-h#Pj)q0(@`Bm"U!U"8+)%M`"(D`a!q!"+M9J)Rj5da@$'%aK(!3@%94$
3b*)L@3!-#1M%5Mm'5-lpi`IRK*!!-e'3!)eQJ1I([lpQ-!JjT5U&L5mQTTKB!m"
#EJDm"i)`)p$El"F28N%3m895))*af085!qY(14N`!"!!m$4S+&B,%(d2rhe!&Fd
GFJM8,Y""bjG%3%#4mdC0Q6&dG'NA)LF-'B%a!-#55c$*&*3)+C'4KKPjJ%"JI(5
m!8)GFj3"!K*j`&''(1qe3FD%EU4"4e"iD%B3%J#J5*!!!0S)J-)riI`MMJ$j#'$
%!%F8J-)!r("hBST"XHMLHJ(p&p"!!54*8!!R2,#H8P%&#8!'!8!#&904CUNP3CS
!N!#1&r%miYSrrk#$"#"NNZQ6$9N1C!#@4(C*N!!STT!!B3)!I!!!`6q[!'#%!)R
NBB)L2mM3eTjT*TVSNB)-4!#52UNK3&X-N!#T*3&,6#)1%Ermii3ZNP#Lk+MrE!D
!0!24e)!aPRD(!(F4m')LN@%-piBFDc3J4aPc[&'(('0BD-DYDa"!dKL"eH('X@X
NS1#Zq0fD"`&QT-&''3SmBFH'GmJKSS8-N!!4"Kfe$SXV#'qB!F'Z[IiDV+hRTPY
!5YZ5BF!B*U94"KN%0+&5'3N383FFE+3aaVKP''"Z'q-DX+fh$#U3!%D)G+344X&
kP&&"&@k%)FDe)%5)VSCZJ#"##A1)i%)$(K3K"hebJ)!b#'6m1[%C)1!,4i2TQSb
bbJfFF(,+),Ma"Kff+[[Ka#'()FFCC5$pl(d4bY%JbLX,rA244bF0&JK-paUC)jm
d`imDG*+a!J05*+T%!3K!Z54""`"`!bEQf!f,"YbjJ6-G&da",PK1I`K&'(-Fc!B
)8q64KKK[X$&(ih2388BE)"J414NEJS!#&%e-!88+,S$34eFJT+lkkUcE23i9VVZ
MAGSQ&%"%&8ddN38-HJ!34!aF")4d3!3J-rH4VSY3M$-%CGG$3+$B%!!LGJ2!JYf
Zm"d%'F3&9-3,4'a**a0&+)"%&P!8)F9l-!82`2$D'BmmmMH-Sccc!6N2[I68hf!
ppYVM(N'q&lifKD)HMX"!!XkA[[A"K`MZJeraMVHHqYf[H3"i(J#L0lhUAHm'fI1
G!,d([LdGd"%33!!9R[!%*L6"#93`!K%J+$`3%%pq4+UJrCD(33ebX(rr!f%!Z`F
!!TS3J3B``"1Qm-)BaR#'%E4Kr#Ji%![b-(mCh&m(rII"%'k2L%E8dJN&N!#!+&3
K#80B!K'N%)3Vd2"p8TcJr(4i35ckN!"r(J5J#-&B3M(5)a$q3%!6LY!%+U#[#&0
`Ba4[5-ANA4%!qYXJ(VQSabm1X)p!5S#r1SB[!26(@l`#!18Xe`BGk13+1Q"#'X6
`b638K$el!)!(!M!2!FJ#!,'FC5eP)3TBe#-I"2P"-)1L&+8B"#%+!B!T!&#$-&$
$!$d+#!F!i!IZ+%Y%2Y)!XY*J*!$i!#P5@)m56%5CJ-3$+JB!!!@1p)JSK5!bNi!
+),Bd!(GB+L"e#-S!fR(2!T3!!$E34%IQ8aqUh5S"MAXF&6af,3BN`3eMB%-G1'F
%Dr(+!%JSJhmf"(XDB-%bT!N4%#e!K(%$JU""%'EHb!%KTiiE0fRFR!&4"JqG-R,
FK'(6X##413dDL-N$3SbF-'4!`%NcCJh)M'FDp%QjKi5F&MXE9('5K!S)-RADY-Q
c)b8)%%QF8#NLa8L3!#&&R$i&8@9+N5NJQT4T3b82R$*c@)#)8SIQ'M)[lkKp-L@
*'cTQe&*jmiD0AEaUNCJ&5E!0QF#$j3`FBVKTJkdJS%KjJT9)&5P&3"5j+bF2P$F
CkD#!%qCP'bKdj1JSD4LeR"51RbCT!S9*N5C&T!DKNZ5*%ke2*9-ZBKPc3iG%4TF
1FcVekX*NA--'[YA)%bPAJNJK%RZVm-UA-fp1l4RdAH@QA6pR($hep-GEpi#JJUD
-CXlP3i0S8fF1RCEfd9%I4'R)iCp-DC3aKRe[Q!(#''q3!'&I4L!)D"pb,N"&"hb
3!-f44KY`X-(5'#1a-8H&!mVa4KedC"3J'Q(m4mBED+&SAaYK8!L(LJ[1iD&',R!
)3P#3!$dP4"&(4#8NC)XCK"jcdM99T'C1F%IGGm5&TaNH#V*B"JTKe+!@('1XaXB
E'SAf(Q6b&F(P'&lDH*a*)*b4KKeP-*3'(5HHFDBB)mPNhNF6,466MQqFBGU$+pi
&8T!!8cl9aKYiZN!5##M-!8F++l!3"Jb3!1dJdaK,EM9TTCGQZQQRBF33UN)eP#S
TT@0CUT!!$#f%q3)CZ**a!`XYU*U#V2[4DUY#-AJDDk3JU$((4'$#-#bcTpC+NV#
XiUSVVbhi+L5448E&4&5CN5!$$$8BSCDj-U5l,Jdi&2%V##6-B-3-3k`V3a!dj2"
Z%6R!m1i34+K,,lj'$0&GF*1"Ceb6bC'@RR1XYIID`PY4N388@6'Va&6iJG!$#*J
0F4d4a$iPaa0Qj!A#'f4'@-CUSC9a"NK5-JZ#(529-6-)CkCj9ml-jQDPae5i*M)
)AR`mAQFB2f@&GX5LX4S5KV*4"Y&&iL&5'f@ST3BGAiGGSAqUJ6"&DZh@`$9NBkr
fX@Y[Ei8('6''m4ad@,Y"KYCe2i8(((ZcerIICG"0(F2$&CFC%fr!"((8@jRXa"4
8T,aI'(K)8H2)l9)Z0G8kJf!e#)F$VRND0$YkXab"Ec@(cDYT*d83@B#`43`ZZ)"
MjfKe!F)64N5@@Zb#idf(hR-DP[V@QJpHZ20C*hlmiYieR+9aN!$$0)A0FiLqeG4
5D#ki'@PSV4EV)06mZ[L-1raij'38)BFF+,3aaaQVV5e(ffXU(3M)ClkYX-pp1#[
J8dlh22KYj8K*qSd#35#I)@KY)5#S!a`8iMH1i'&2'3+A!%&J`6I-cR0c-%,k[S3
(p'PY1L0mLR@Nd$i3k'"NVU,#%cB(["-4i3N6P%haCRH',D4"H$c`!3L)`S6j)#%
h))#JNQ*B*$6BF'5HJa#Hj2#m60R-L&f!)4@h3S3dD-U%A85$'+PS01395@*35Sd
AA##(-Y#K$L'a3XrXFm2)K'%1Hp%#50l`T1E)35hk1m-D"GL42D%!BSXX@T8FL#A
($HmXETJFpUC%3#UDB3aL@%h#K!!&)@64M4eDhKhRX"Ukf!pf%f4Jp9#jP6$!S@c
pBeX0h,E*)NP4JP58$a8kmc*-iN41GCc$LZ5`)!*TVAd-X4!)jX!Fqj!!S8!+SS0
%@2*(1F(TIRRkMhr#8*-3pR*+Ra5$#p,`KL'm!84DDa'DVVM%*$#"PNp*jcVIi)4
U+Uf26-3R4%#j6bYicJa15!SpB5"3IE,cS!PY!cf(J%F8UP"eRL3S1dGT&c,JBD%
#(HFUk9R+)pL4Sfk)#!U!N!"1YCKK*,1,T-k5-%49pQGTERM$+jfBQb##S)8VT#F
5RS"*Lki3"3jp`bJ0@JD%*X@P'PAU%%KCQL3335eHUkC,jb#&k)#N$6*P&Nda*G+
E*K%%1AeP#SC(3a5Jm*85!F&CdhUrY9,KL8k))T+8j&0K%K0QH6UQ0*1jc'DkF%,
4("!e`AB8E)j"Qm6XTQ$1)SFKP)B-j[4T8Yd*6cZbNb%!YDG!maR9IS,YRb-,U'D
MbP5R5V52$2@T5HN3"$M!!3UPd4qBEUR9JDVcS8f0U&V81&VIlK1P(J@T6mYkSMk
@p+46YBY+@3T+Pm+d$''GD8eMG014dA8LGqhT'1ef@+%508p'e4T5SlT8L$l9Z"Z
G+QlPB&@XPQfVABA#9l-VeZ*PbUBRQUY1kmT@6,heIR%9X&TjQYGIRP0RIQ8*B$'
L%@5LTE$f+5q&T$Q&22KR,#!`3PmN"#dS0'%+8%K"CXGl[U$fmEaZU)TqjG!'&'3
9E'S4'%5ikP8DmeHl*%-,A#HLi2Xa@+m4p#PNi'M)1GEaMRRF)dRr'-K"&Y)eDS'
3!"Y)**S68'8b8PJ0LGa`JK2mCm)8Z6!H$4[8%pLhYbG``3P5m12509)dN!!XlP2
Dq1!TmCQ0Nb`JRc9A55ej6R,)FH"60-Da#ET63NJS!db@9V+6q63-BU#9@X43KM2
*T9Pdd*SEa+E0PTN*6ABDQNm(2F*1aM!0kb0$kclb[PKHECB6$%NeFrQrA3T8$R3
Bc'T3@*Dc#*4`3%0eD!3+)3QYjY&PL$4-&)eN[JB6"0f,LD6(B-9QfiH)B,[,LQ-
i`aVf-BFlG+G&k"!$&'*i$LJiJFQ)8)3jJq#(e3EQ'1@6lIE4BGa8Y')ICaZ$MVT
lc9q5pa2SlHEfe6PFa6Z`LSLXa1mb@-RBTYmVirhPkiKj)@Aq6adRlHdd+a2KFJl
JYBG3RjUJ+%B@2MNc*a36-k,e$Ir4jKY-PiBcS!(J-C`Y#U9,5$6%@Lh!(Jc5brC
`b)`e$6&4iZp3H(%@Ca`Q'rHb&-!XCTQC(-0S63UR*f*cRI2FjbQR0TY)f2)eJ1!
1pE(34!4Nml)25!e*fH$ba2"-F)IcCB9+maRU`)E5600QiIlhN!$k$2(fa@4NS!T
[JrHUlr(+*`KX1"1Al@-SCj*%QRJ(8B8`V6@J8e%)QPp$%fL&!M4i35fZ@DQh8k!
@$qQK$!e#!E5P63BkkpPiq0X82Ce3KM[%hYXZ`$5Y3,!#4NR)"CcfG0-E,jBf$&Q
Z&4m`H2'+mDGN1qXG$r2,@23b"i&Y8Te*1mE(4XqjT@Bdc(Gq'D$Ik6IF)Il)(eZ
$c$"pb+$q$6@aHRL#!V%A0+NQ'Ukh9XeRHlKR"VSR-la(Cl$hIQ0$Hr,R!Q-MD[f
h&Cjc35HNCM2AHLSA3dDcDNcJ&IR'H&-L(dC34bp5"XVJGhI"36'4H[jf&2ER"UB
A3d4J4q5%"JFAJX5&F3)BE8L3!!BLq(Y)!$NeNB3B4d4'4!E#ddHZThCEm@FN''J
Ma'Skif!&*"pfX5GT-"*TF(YbSMaKX)06`RkKG8m&9'jT3%rSaN08pd-6")9(0(b
LaAMb!@0b!M%d''56YQ%$8R)bb#GU@#3`TNNMG'KNS%PIb(B+iRB#!R1$"B*XpNa
hd%d8BNXK3K-amPN3)4%iNR2e`4"MF%%-S8'*k(6&`hkTC8p9&d2IGcmFYh8Hpb!
JCfB%dN%P4eJ)"`)`S(iM9%)IQ%*("93[j%"F1#@&CK`UK!FIid#-eM%#p$eR`(Z
89J3QXad6K$i'3JFXic*PS'jh-@XfNd#!GM6AD$1mTc3Mi`ABb(X1j'UP!f[0JSk
e0N*c`([piik5CM'd0$E)jRk`4'MDBdP0%!BfN@eP3!BS3$l0-K9b!c,N)5T%Y"T
4`RL@JcN6T!DL0c)N3!0&B!3j3'eHH'hIFdGkGhGj0hTmCarK4%ahX#G@*%dCJ6C
em&LLU%h0mT)q+8d3!Nk244%VdL*Z-(q,0d&A8"4)-*'CJ@m10Pi`8h*p"**`8&`
m``Bq3dm''"THT%Maai#j0im"UB$**M5LX6)Y-hh0U$0[158T+8$bXC)D*#HKThH
N*j1FN5!R%K%6X@e@T#)XiL+M'*JrH(KRN!"iV9JGef&Z1$3I1c4e0@+(9$4@H)K
%5X4%4cD9Bp52!8P2CJN6XCHC'dL3!1fA01rhPHG4J@2*Hh-%M[iaMKYBEQSJKj)
j6E$T!ZAB+2mKPC4(K!aC"Ji*N36jHSS*4K[i&+MC4`D*!U`T'J5*PQ6TJ%k$(lk
hDPUBK9DL1A(j3-'T1I,KL(q)(0"8)6YhIYX8L,2$NRJ*P([CQ0Q'MH'M1G%iM3p
@PhD834X8"LeKJ`eb&(Q$RM,a4bF5P!-#L0dN6EAeL9`QL[096B3b"iej0`2D4iY
"2AkMAX4h"ee8RBm%(IpA%h6fBf09IGGAC0X(4CjC1R#)QcT%Kj8*4*Fj4&q8KfI
&QC+AJZ-PF&LN),6#4G86PXTCA'9d4[diT%1iMV6%C+lKC(D%4fkJ4ec*4b1$@i$
d"S+N)PH@'QUKG9`hIQGQIQ1a6F6)5"q%CmMaBeM),%ej9cq&KPlJ"IHf3bfU-f$
M)f&`-mSe3K#bERdU3"kb%Ae%!MK`!cC3!c3`!c)3!k*5PcdR%P$fE6YALDCi)HB
jCKA5D55a*bG`)MRe(jaf6"A"%'DJ)K)P6HMM0iqbH#18P"j"*PkTE+e*"fJT!im
k(`1#)cUL)SV#(01d2-"f)M8T)()LQrq4Pc$j6$1C"qC81QdD+I)4*[6%IJR"U++
bUL3'64&"6p6DI$&J!kkU-i0$6aP+"Xp6J,3URED+%#$!U2%AVMmf1(6D4aDk21,
cRA1jJT,SFTCkV!9b)%aQ4b$42JFk)'96IZ9T%SNi9NiU4bl!C1Ei(j!!ejR"@6S
2+`G3#Q96+QA14@9DDQ8CqkAKYaSGF4D2pC!!D&90#JZ)2YN4AI)4CmSXGaDL*T&
GhrN8&G4flH-JdJ5)0MF5)dF',(%Q-2'3!)QiT@q`&eMDTBG8S"1MX4'l(2Uc1ef
!R$H'AE%c0JRE4eV'C6CfAb"`!Q-cCl(MSb!`@dI`*b2KY+6'G,%c9Ufh0%bd9Rb
!+Dj(YrCNYhJlTdXM,4DEC+8c9PD8Sl)SH39dT(#!4NSkJ[cDEcq,)8YC1YN'LD9
6Pf'!*`SK+$8cGcZh*bHLV([h6"3b@5"K@A+!@C1V-j!!Sa&li6pZQjB(L!)9U"C
miKjZK,CB@Q9F1V*RJlZDXj*Vq`D!`JDabl@pYD3kSlL-Zk&I-S6%8S*&Fi+CXDr
5QVElkCq,flN%'VNQmDNr+AUMQf'SLMU*JEUU+d+4SV4-qdHakhUfLcBraVa*kVa
1@$TX1$,2k6pldETR%,ZhqaU1Hi@"4LaYmLCaiVd'NBMPLU&m8chUUTDdfklA+J2
aDJ2CGDrqDDp`i!@aSm&c1V945dmC'cYZ%V0I%Td6[&B9M&9b1NH`5JGN-X#$CM4
"!T!$$AKiBfeNAh0SC@aX,Q-!!++J!$8B`J#3"3'ReJ!e'-*!J'9%!$8B`J![UN`
!-K%!!#rL*!"*SQiJ&!![!#p849K869"6)!%!SQfTiD+`kZJ!!!&q!!!+f`!!!4i
!!!CiHUf1Y`#3"P6S!!!%##L3!!P"J`&PU&M)X+($Ka!E0X#$Cd`E-PrQS#R$KSf
,-3))8LQ#K8S6+&0!$!3!+!#3!)!M5jj-ZE,P5`"G3K,Fb41!U$DT`J98X#eJ!$p
kbT!!!8(R$BJfEq58!6''cCXj(2-d50!Q$*daD%#)51*Q6KSb8jZ%'C2'6910)N"
)090'UTXa8m@mHE0Q$SJ`ETD+Q3T9+Y8hCG2-S31BcPBcFYkd!F%'m*NkBFj-E8V
C-QE0,VCZ*8ZRVTQeCIbDL8S3#B!%64#[I32!"B!#Y39)#9$Z0QrGIqS"8K!m1%%
$!!M8pMe+`"3!IJ+d#M"[`$j4X05K'`U0qmk9!JN'3!L![!`!0F*3)m#!)!F!j`(
-P%*3`B"frrlaY*'*!b25Z"R$TJkC-L"i8-N$Tm`F&fKm0!JiX1$"K%h+Y(NM*`p
%L43*'N6)imQ8+R65X(NBFD*!N4Gj6#PcKXQE-'3qZU`i-U%8KfrUb"RM8'G)Lb5
0U#cDmQK2(NJBPT'$C8LER%eI)J8K)QT$UP@[3K64B#G-NR2SN!"KNdD-8De2dj)
jD1BYcjKTj3JmSh-LAB%)LdK*XJ3%$$`dDY53!%%M"`dKCG1'56N'a"`d(1Q!'#2
dLab(Aqk3!0R43$*P%!)eKj&cCJaTdfNUMd'c'S5+e@IXE)PKS`[T"Qh##%54SZb
H"JQQd*%M3c')-(#FK'P6KR5#bjQI`rPTaNQG0YD4K('c&L&d++ZR@jq54Jp#0(2
D9dH1*5`C+-Y"i#%c1Bcee2VK-FC9Ama4"Kee`%'FGGM*SCNGEl$a@`)[U!"#F'X
J0)G3#0&"QfBHQJF(('b0-9NDElL"fK`JL&('ATZ&`3BECC!!d@)H)03h4"0%f2B
#FXJGF@!3)k)R4aYcS!#GG05a!))*d((RA4Y13JQ(NG1PB"emmS(3!`K#dL%HH65
bjjk59kEAKTE)lGHIPb#JS109q-Q4JQhRUIQI'A'L`+9lARiCRhY[Q#'RI8+`mFB
BDk4`T`NQ)!I#T('k58FB,IK!h4acK(%'3Mem#F1MN5D3!!!+PQ,U`aK"ZD&CU)D
4LYbTU@BDhaQ"'SB($MIB8!-0-mJ3Jk-J('IUV"4DL+&j-eT@KaJ'aP&('Dl'1#1
,NMN)`KeTH"MJJ'38H'##a2Q),,+eqZ"''AM3!8GPAq)K))%')JL(GFHDQUaP"i)
3iQC#I9BY'@Pm0JBG(1%iaa[qIJL#'8Zab'fc,MlFUSd#23I#C`Zl%BBB0)*!BKK
%QDX[Z[1'qbNGSC'a),*K@K%K#QkS9#@%E,#Tldadb-`'c6B$,)GRS)QQFlkQ9QJ
Y'`dM*&#hDFMBhSNTEKa85ZZDM(3#mS,laG0d[,ccJ6i$cBD61"qG!,*+Nm(`[fj
`&"c6F-LaU%2aZB'V#MqHV'rAp)kVS-jp0&"i!i#VI'$,a"Q(R"&$#!'&%$p9CXB
BBPKh"4'69llYD-LC9)3FFPKQ(A*+Mr(CC1CYbp%D-"*X--)G@9ck[l+AFA$#)"6
DY0!#DmCa8%-K"$'0,U#Q)YqS@qM99%1XCZ1rR*&1VI"!#9Abm3K0c(6&e!Gm[@@
A-TSmmfXRF,PE+!la4KXN(SLLLPr@,#&bklZ!)T0Pe!QRrGE*(iUX)+A[`!N'!F5
FrYj3`$E!D3K#qFNFP%)MX3R`$C!!%d)5b)1(!qkT6bckdZ6#P-%0QZ%0+$$"qTa
N"KNCL&L`LY[Sl&5X@BPQJHk$(ie58VAkU34I0pcIG2UA(arHce4"I!-"bp!G!hl
TJKPFBK2"Bm1FS'Kc8,$E'*,3Sbm*KM"!Y1)E0NH%JR%46P#-R*'iL+mdm!N&+!J
K##EhK)DiBA-T&!d,A9J''0E[$61mNl&-96fLcD&PF%UL&+H%Vck!S!`V3FJJ%e"
)ML&59)e%ML-KDD!D%V)cPK50"c9jXX-P6PcfDP`$M+8FjMKR580N%'Dd&58Q6JP
Y%3V2H-UM(5a4#34SX)jpr!F(0GA*1V1TM3VJi#39R**JFbJQ(@BM0J#PB8*+UaF
)%[5lBXTKL(5B#SX3pMXGmFKN34T5N9D$*$6aVdUeR#)mdr6009R(Qp2ahjIJ1+I
l,1G1Yk&RPM+&ccBF%cQiJCI)M,NFJUV*IA9`93!j%UFdH"!e#AN1Deb$QK@X3*!
!Xd+#64L&JS,@bD(eR--@dY#&Sq&'0bb&N`T+bP!jS(3k+Q8TiB#d,feb-hc@'eM
"G%Fl(+%[R6fEQIeZ&L'GmDaX5a@D)9ZQXqBYVCYDa"Z-l&B(V#(NU!Q!!jbHQBC
S6SDD#AA55kZk,i+8B6cE&#YBRkV8S+9YSU9$J88aL9%HD,3e1qMS4cfC!$I'kD8
Vl3))3[!P*e5"#8`!UEk3!&!&0bL+T#CYU!m+QY1@CM)"K8YI0[[e8c3Jj$-)NS1
+l##MDD'cX'm8+f0"i&M)5KDfFDS6&Gi`*TFamdPSF&*HD15'NYjT"5!B9UjN5,V
EKV@QQ8+Y80aJKGD##TL0I'3N#4Y@1)P!-&*iJK4dd,ZZpSj2e0P)4e`J!RcK&J@
kjHdZ5eUPi**2$X3e,JL3!+[F'!+bZGapEMe2kJ2TUVDk"EPZ-*%9@Y"U%NKp!%I
a!!!:
---