[comp.binaries.mac] generic serial printer driver, experimental test version

earleh@dartvax.UUCP (Earle R. Horton) (10/06/87)

[generic serial printer driver, experimental test version]

Daisy: Device Independent Printing

This is a standard Macintosh Printer Driver, as far as I can tell from
the limited documentation supplied by Apple.  It prints in draft mode,
at ten different baud rates, with options for CTS or XOn/XOff flow
control.  Strings which control printer action are set by a dialog box
which is accessed from the Chooser desk accessory.  It is essential to
have the Chooser in order to set the baud rate and other parameters. 

As sent, this driver will send a CRLF pair at the end of every line, and
a form feed at the end of the page.  These can be changed through the
Chooser interface.  Also available are special strings to initialize the
printer, end a file, or begin a page.  Control characters are denoted
thusly in the Chooser dialog: control-M = '^M', escape = '^[', and so
forth. 

I have tested this driver extensively with the WriteNow word processor,
and casually with MacWrite, MacTerminal, LightspeedC, and the MockWrite
desk accessory.  I am sending out this test copy in the hopes of getting
some fairly detailed bug reports/reviews prior to making the program
public.  I don't want to have to buy ten different word processors, just
to test my printer driver.

Because the driver is written to work with a large variety of printers,
there are some limitations when compared to device-specific drivers such
as ImageWriter and LaserWriter.  It assumes that all text is mono-spaced
and of the same height, and communicates this information to QuickDraw
and the Font Manager.  For this reason, best results are obtained from
word processors when the text on the screen is in Monaco 9, 11 pixels
high, 6 lines per inch.  Perhaps other mono-spaced fonts will give
acceptable results.  Attempts to print justified text may not produce
the expected results.

Daisy tells the application that a page is 8 1/2" wide by 11" high, and
that there are 65 lines out of 66 that it will print on the page.  The
missing line is to allow for the edge of the paper.  Daisy does not
impose left or right margins, allowing the word processor to handle
this.  In the "Page Setup..." dialog there are options for 10, 12, or 15
characters per inch horizontally, and Daisy will give the application a
different "resolution" for each choice.  Daisy can print 132 characters
on a line, and 66 lines on a page.  Attempts to exceed this will result
in an array-out-of-bounds condition and possible system error.  This
will not normally happen unless someone tinkers with the 'PREC'
resources using a resource editor.  More flexibility is planned for the
final offering. 

This driver was written with rather strict adherance to the guidelines
provided for Macintosh printer drivers, so it should be able to produce
reasonable output with any properly written Macintosh application.  It
can even handle "Print Catalog" from the Finder, although you don't get
pictures, of course.  This is, however, to be considered strictly an
experimental copy, for testing only.  I will not send out any copies of
this revision after November 15.  After December 25, 1987, I do not want
to get any mail refering to this revision of the program.  The sole
purpose of this copy is to get feedback from other users on its
performance.  I am adopting this approach in the hopes of getting a few
good reports on its performance.  Any problems encountered should be
described in as great detail as is possible.  Vague or incomplete bug
reports are of little or no help.  Perhaps if I receive enough feedback
on this program, I will be inspired to come out with an improved version
of it.

I am hoping for some well thought out reports on this program, so take
your time in replying.  Of course, "emergency" reports such as "it
completely fails on an SE" should be sent to me as soon as possible.  I
have developed and tested this so far on a 1 Megabyte 512ke, using
System 4.1, and have not tested it to date on ANY other configuration.
There are no restrictions on what you do with this product, or who you
give it to, but I absolutely do not want to hear about the "Pumpkin"
version of Daisy after December 25, 1987.
-- 
*********************************************************************
*Earle R. Horton, H.B. 8000, Dartmouth College, Hanover, NH 03755   *
*********************************************************************

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

:"84KDA0j!&"549*%BA0C!*!)1ULVCJ#3"!%!N!-i!*!$0`#3!`+S"`%(!3F""`%
(!38""J%(!3J"#!%)!3J"#3%+!3S"#`%&4'&TFhN#!*!$8&*&8N4KFeN"!*!%3!#
3"4)!N!438N954'&c@3%!N!4!!!"m+!#3$3+GDPiN!*!'1UJ(!3F""!%%!3F"#3%
)!3m!#J#3"JQNN!!"!*!$f3!'!!$rp`!'!!X$%J!*!!)!N!-c!*!bSJ"08S!!N!m
"`!#3#3%!N!9rrrrq3!!!!N!!!!*!!$J#3!"&JN!"aN*!!N4#3!3S3N!#(i*!!rj
#3!3p3N!#A)*!!C4#3!#53N!!Ni*!1()#3$a-!N!FJ!*!!i!#3!(!!N!#m!*!"(!
#3!K`!N!)!!*$rm!#3J"!!N(rJ!*!J3!#3%)!!Rrrrri!N!KrrrrqIrrrrRrrrrj
rrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrj
rrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrj
rrrrqIrrrrRrrrri!N!F(8&*&8J#3"K%39Q9bFfP[EL!`,M#3"6%!N!-F4'&c@3#
3!`&*3diM!*!&J%C548B!N!@!!*!$#J!"!!J!#!!"!*!&"`C6CA4eF-N!N!-5%9"
XC@&cC5"$EfjQD@GeFQA*!!!",!!0!*!&#!&"!"`"I33#6dX!N!8*!BX!(3(("!C
$B@jMC@`!N!8*!!B!'3%aL#"%B@PcH6SJ8(*P,A*PE'9KFf8JG'9cG#"fCA*cD@p
Z,J#3"4i!"3!Z!&Q)#e"KCf8J8Q&ZCf8kJ!#3"4i!A3!Y!)S'!d&XE-!!N!8H!)`
!,J$)"J9'FQpY1[m!N!8H!-d!,J$YN!!!N!BH!2)!,J%1L!08EcS!N!BH!4!!,J%
`N!!!N!Bh!!8!4`"CL!G$Eh"TCA-k!*!'0`"I!%F!Ij!!!6%5!*!&0`#4!%F!b)J
&4Q9PC$S!N!Bh!-d!4J%["JT$EfjdD@jeEh9c!*!&0`%a!%F"U3B+8fKPCA3J4Q9
PC!!!!FJ!&!#3"H!!C`$`!+d%"&0KGQ8!N!@9!!F!T3"i#!j#Eh4dEfdJEfBJF'&
RC3#3"3B!@`!A!0Z)%P"bD@jdCA)J8'pbG#"6CA4eF!#3"4i!"J!Z!$1)"9"[FR3
k!*!'(J!j!#i!R3B+6@pNC@dJ8'pbG!#3"4i!T3!Z!3N'$&"bD@jdCA)J8'pbG!#
3"6N!"J"*!&')#N*KG@3J8Q&dC6S!N!8j!&i!53#5"!#3"MS!S!"*!5Q)%LK)DA3
JE@8JCQpb)'e[FQA*+3#3"9-!"3"M!(U)$daTEQ8J9'9bE@PZBA4[FQ3!N!96!)!
!B`&!%!#3"QN!J!"j!8!3!*!'I`#!!)m"3"!!N!D9!)!!T3&!%!#3"UX!J!#l!8!
3!*!'D3!'!(N!HiJ+5@jTG'PKE'PkC3#3"Am!"`#2!(b)#e4[F#"[CL"`B@GP!*!
'U`!)!,X!H3J,4@jN)'pQ)'CTE'8!N!E&!!J!e3"j"J0$9&-!N!E&!+8!e3%*"JK
B6fi[@%pQCJ#3"H!!Y`$`!2d%"N0KEQ0PE!#3!jJ!"3#3"3S"2`!H!AX%!Np,!*!
&#J''!"i"`J3'3f&ZBf9X!*!&#J!&!"i"0)JR4'&TFhNk)0*3G@e`DfPZdb"@CA*
cD@pZ)*!%1#ie)L"LH5!a-5)!N!BS!!8!2!"N"JBa-#"MF'N!N!8S!(J!2!#d"JB
a-L"MF'N!N!8S!-J!2!%%"JBa05"MF'N!N!01!!)!N!8H!$`!,J#-"!4%EfjP!*!
&(J#J!#i!m!3&3@*[FR3!N!B)!!J!'!%N#"K%B@PcH6SJ5@jcCA*d)%jPH(3J8fK
PCA3!N!-B!$)!&!#)!Hd!!3#3"`(J!30+Ef)!N!-Z!#J!8!%S!DJ!!3#3#2!3'90
PFQPKE#"3Eh*d)%0[EQCTCh9bBA4TEfi!N!-B!"m!&!"N!HJ!!3#3"`(J!!06G'`
!N!-H!$!!-`"N!5`!!Irr!*!'hrm*6Q9iG#"3B@GP!!!%-Nlk!""1qJ&L6[S"VNl
k!Fj1G8j@rr4CMdKj8%4&4N*RUD!JAbe)rr3JE[rdS#P1ZJ-k,8$rq%U!CJC`!'!
!!4C+VJ!-CLK1ZJ-#,8$rr%U!CK![,[ri6VS$-PL2F!"J!!$d)'lrr(!"%8!!X'!
1,@i!$2rm)'lrr%)S!,!JE[rm)@lrq!#X)'i!%#"33LJ!4#mZrrbSEb"Zrra)D!"
XU1T"qJ&S)Qlrr#0)!'a"qJ(U)Qlrr#0)!*3JE[rm3HJ!E#*Zrr`M5!"S)'i!%#"
3)Qlrr$+S!!)JEJ!3)&!LE[rm3qN!%&#))YJLf#"Zrra#D!!1)'lrr%*S!!`JE[r
m3QJ!#L"Zrra#D!!),blrr+Kc)'i!%#"32bJ!!UKb)'i!%#*Z!"!J8$mS!!iJ86m
S!!bSGN+R,bi!%%Kj8f9dF%kk!TC2l`!-,blrq%kk!DjBMb!Zrra1AL"I6qm!$#k
!6Y"0@9"56e"&6Nj@rrJJEJ!),bJ!V%kk!K4BMbmZ!!LSI5"Z!!K++!#`C`S[,J!
)6VS"qPL23UG#TdKj3fa[Fdkk!MC2l`!-6PiJAdr[!!41d%eC8&*$6%p66PB!!#"
Z!!`[+!#X6VS"0&L26PiJAdr[!!K1d%eC8&*28%916PB!!%+R)'i!##mS!+a)H9"
bER41ZJ(N6qm!$%jH)&p2l`!%6Y"0@9"53da28dj@rqa)E[riU(3JE[ri,@J!V2r
d5'lrr+LD-'lrrL!)JI`!"Me!rqi`E[rm)!L"r!!,28$rl$!Zrqc"r!#'d+lrp$"
Zrql3L$mZ!"48J#m!,bi!%%kk!8"2l`!+-#lrl-(m!)E3V[rd)%!`[2rr-#i!&-(
m!!Br!%*RU*41AL"I6qm!$Nl369P69%4849K19J!!)'i!#(!*-)!JEJ!)F!)a3!!
#)'i!#%*S!!BJEJ!)F!Ba3!!%)'i!$(!"-)!JEJ!--8!!!L"Z!"!`J#"Z!"!a3!!
#-#i!'-(m!!C1AL"I6qm!%Mk!6Y"0@9084&4&@%j@rrT`3Me!rriJEJ!)-,`!!#"
Z!!K8L#e)rrSJE[rk-$`!)#)m)*!&`9()rra6E[rq5QlrrQF+"Ui!N!1'!!KJaNj
H6R90@80-48&58%j@rr`J2!#3!l+K(Le)rr`J,[rm6Pj1G9"28P4"6%a26PErr#!
m!!!LM+%H,8Mrr#!Zrra1ANje3P9'4N9538a19J!!)'i!#+!I6Pj1G8C5488JN!4
19J!!)'i!##*Z!!a#J$!Z!"#J,NjH6R9#3dp3@5#3!dj@!!!JEJ!)S!41ANje69P
33N026P419[r%5RJ*4'BXF2dp32rF3Ulrd("M28$rhLeZ!!Mri#eZ!!crj#eZ!"$
rk%KZrm41Z[qi@)p1ANje4&**9N953df!!!3k!!!"!!#3!2ri)'lrr$!S!'a1V3!
k!!X!!!3b6[S!%%lk!@*1qJ'Z6[S"cNje6PErp&Q25(P34%9'3QHTS#"I,8Mrp#"
Zrr5J+8kk!cSY32ri5S"Q"R!!B!!"&NUZ!!aQ+%kk!`)Y32rm5S"Q%#mZrrK1ZJ-
b@)p`!'!!!23JE[rmF!%43!#`B!iYEJ!-rr`JE[rm3LJ!X#"Zrr`KE[ri!+`JEJ!
3)&"#+!"%,blrr+K[)'lrr%KS!'bSkN(k!@JLE[rm)dJ!E%(k!HSLE[rm)dJ!P#"
Zrra"k!"X)Qlrr#0)!'JJEJ!3)&!LE[rm-UJ!!L"Z!"!J8#*Zrra$k3!38)JLf#,
B)'lrr%*S!!iJE[rm3QJ!$#"Zrra#D!!+)'lrr%*S!!J[,[rmU(-JEJ!3)&!r+!!
#U()JEJ!3)Qi!%#"32bJ!$L"42bJ!$+Kf3UF[,J!35(P6CA4`6VS#PNr[!!`[,[r
i6VS"VPL2)#lrr%jH)&p2l`!-,S"1d%eC8&*28%916PErq#"Z!!J[+!#X6VS#&&L
2,bi!#+Kp)'i!#%SS!,"R#LmZ!!K1ZJ(k@)p#Td+R5(P$E'pc6VS#0Nr[!!a1AL"
I6qm!"%l369P38N0-6e019J!!)'i!$#mS!+a1ZJ%d@)p1AL"I6qm!#%l369P38Np
348j19J!!3UFJEJ!),bJ!V%Kj8(*ZG%kk!H42l`!-6PiJAdr[!!41d%eC8&*$6%p
66PErl%KZrrLSG#"ZrrJYD!#Xrr4)E[rmU*S`E[rq)!L"r!!'28$rlM"Zrr`J#)(
m!!Xp32rX-#lrl-(m!)E3V[rd-'lrlY#)2bi!&&5!,`![,J!36VS"3%r[!!S`,[r
X`I`!KY#Zrr3J3$#mrrm`,J!8`I`!"Mm!3QHSP%jH)&p2l`!16Y"0@9084&4&@%j
@!!!JEJ!)F!N`J#"Z!!K`!M&!!!)JEJ!)3QJ!"L"Z!!K`"M&!!!3JEJ!-F!%`J#"
Z!!`a3!!#)'i!%$#!)'i!%$&!!!)`,J!B`I`!"NjH)&p2l`!52S"1d%eC8e4%9%9
B6PErqR"#28$rrL"Z!!J`[!!!)'i!#&5),8MrqL"ZrrS`2!!J)M`JN!A"8FMrr&0
Zrrj+E[rqC`S'VJ#3!iB!#'$'6Pj1G8eC3da&39*36PErr#!m!*!$XU%H,8Mrr#!
Zrra1ANje8%p59%&-6%p19[rm)$`!!#+-S4iY52rm)#lrr%jH6R9#98C'49*"6%j
@!!!JEJ!)S"p1ANje4P*&45#3"%j@!!!JEJ!))Qi!$%+!-#i!%+!Z6Pj1G8*$6e"
C)*!$6PB!!#"Z!!LJ"%jH6R90@9"#3dp19%j@rm4+H!P%CLa`r6e!rpa#V[r3F'-
p32rH,@i!#2rJ,@i!$2rN,@i!%2rS5'lra%kkrlKBMdjH6R9%8NP@49*$6B!!"$S
!!!%!!*!!rrJJE[rm-#J!E%kY!$S!#`!!$V41qJ!J6[S!M%lk!,"1qJ$86[S"RNl
k![a1qJ2N6[S%@%je6PErr&Q25(P38N9$3QHTS#"I,8Mrr%UZrraQ$#mZ!!K1ZJY
`@)pJ0LmZrrbTSP@2,blrr%kk!kB3(dS!C``[,[rmUDS[,[rmUE!JEJ!))Qlrr#*
4)&"`(5$C8FMrr%jH)&p2l`!%6Y"0@9"558j84%j@!!"9MbmZ!!K)HJ"%6VS#F"!
I6PiJAdr[!!3HJ%l369P38P086%419J!!9Bm[,J!)5(S!kNkk!NJ3(djH)&p2l`!
%(S"1d%eC8&*+6d*%6PErr%kk#2iY32rm@Bmr21!!,blrr%KirrqTI#"I)'i!##"
3$'Mp!3!#CKSr2!!'2c`!"$mm!!3[,[rm6VS)mNr[!!TJ6L"Z!!JJ8!aSr3)!!QB
D2c`!"Mmm!!3r2!!&,blrr%kk#-T2l`!+B#BJEJ!))&!-D2d$!!*Q'$mm!!Br2!!
%2c`!"LmZrra1ZJLL6qm!#N(k!kSLE[rm)dJ!UN(k!q3LE[rm)dJ!VL"Zrr`KEJ!
)!,)J,[rm6PiJAdr[!!3ZJ%l369P38P086%P19[r+6VS)-#e!rraCMcmmi!%[,[r
m5(MrrkPm)&mr2!!'2c`!"6mm!!8[,[rm6VS)-Nr[!!SJEJ!))&"++!!ICKSr2!!
12c`!$6mm!!i[,[rm6VS)$Nr[!!TJ'$mm!!ir2!!02c`!$5mZrra1ZJId6qm!#Lm
Zrr`r2!!(5'lrqNKZrrC)E[rZUBdJEJ!))&!pD!!qrrS`E[rk5'lrbLm)6VS)+&#
2,blrpNKZrmUTMbmZrr`r2!!*5'lrqNKZrrC)E[rZUBdJEJ!))&!pD!"!rrS`E[r
k5'lrbLm)6VS(l&#2,blrpNKZrmUTMbmZrr`r2!!,5'lrqNKZrrC)E[rZUBdJEJ!
))&!pD!"#rrS`E[rk5'lrbLm)6VS(X&#2,blrpNKZrmUTMd(k!NJLE[rm)dJ!UN(
k"-!LE[rm)dJ!VL"Zrr`KEJ!)!,)J,[rm6PiJAdr[!!3ZJ%l369P38NT23NP19[r
N@Bm[,J!-)'i!#%k3!#eIrr`JE[rm,@J!V[rN)'lrr%)S!,FJE[rm3LJ!YNKZrrL
SG#mZrrbSFbmZrrbT&5mZrr`r2!!"5'lrpNKZrr")E[rSUBdr2!!$2c`!!kLE5'l
rk$mmrr`r22rmU+P)E[rS2c`!%$mm!"#SX'!F)'lrr#mS!+T)E[rdUC%[,[rm2bl
rp#"Zrq41N!!JE[rm5LJ!YfID,blrq+Kc,blrr+Q#,blrr%kk"pCBMb"Zrra++!#
fC`a9MbmZ!!a1ZJ!J%"mJE[rm%#J!YNjH)&p2l`!)(S"1d%eC8&*%6%G06PErr#m
Z!!K1ZJD`@)p+!'F%F!"J6PQ25(P38N9$3QHTS#"I,8Mrr#mZrrbTSNUZrraR$Lm
Zrra1ZJD!@)p+!'B-,bi!#%kk"fjBMf!8)'i!##*Zrr`L85"3F"dJf9()rra`!8j
H)&p2l`!%(S"1d%eC8&*@38a*6PB!!#"Z!!JLEJ!-)P%J8$&T!!)!!L"Z!!JLEJ!
-)P%J8%(S!$j$k3!qF!3Jf9()rr`JEJ!))Qi!$#*4)&""k!!Z3qN!,L$C)0NJf5$
C)'i!##*Z!!`L85"33HJ!%%2T!"!Jf5$C)'i!##*Z!!`L85"39)K8L5$C)0NJf6$
C)'i!##*Z!!`L85"33HJ!)%2T!#!Jf5$C)0N`f8jH)&p2l`!)6Y"0@9"55Np#68j
@!!!JEJ!-$&!!!fBL)'i!$#!m!*!$rm#S!!)-J!#3!`eQ$#"Z!!K`!6#!F!&J!R!
!6PiJAdr[!!`HJ%l369P'58a849*19[rb$'i!"!!)E53-EJ!'!!KZ($mm!!Br2!!
%2bi!##mZ!!T1ZJ5%6qm!#Q!!!Ii-EJ!"!!KQ!!(D,bi!#Mmm!!4)E[rq5'lrqNK
Zrr+TM9@2,blrqUPJ-"m-3!!"CR!JEJ!+)'J!XL"3-Acp!3!#)'i!#L"S!,)J8(!
m-8!!"L"Z!!SJD!#b)&!aI!)%!!iJEJ!+)'J!XL*Z!!SLD3#b)P%J8%(S!#"8L5$
C)0NJf6$C)'i!#L"S!,)J8%*S!")JEJ!+)'J!XL"3-A`#"!!@,bi!#Mmm!!9)E[r
q5'lrqNKZrr+TM9@2,blrqUPJ-"m-3!!"CR!JEJ!+)'J!XL"3-Acp!J!#)'i!#L"
S!,)J8(")-8!!"L"Z!!SJD!#b)&!aI!*N!!iJEJ!+)'J!XL*Z!!SLD3#b)P%J8%(
S!#"8L5$C)0NJf6$C)'i!#L"S!,)J8%*S!")JEJ!+)'J!XL"3-A`#C!!@,bi!#Mm
m!!C)E[rq5'lrqNKZrr+TM9@2,blrqUPJ-"m-3!!"CR!JEJ!+)'J!XL"3-Acp!`!
#)'i!#L"S!,)J8("D-8!!"L"Z!!SJD!#b)&!aI!*N!!iJEJ!+)'J!XL*Z!!SLD3#
b)P%J8%(S!#"8L5$C)0NJf6$C)'i!#L"S!,)J8%*S!")JEJ!+)'J!XL"3-A`#C!!
@)'i!#R!"%8!!Yb"Z!!T`!4&!!,CJ'JaZ!!)!#'B5)'i!#R!"%8!!Yb"Z!!T#+!#
f6PiJAdr[!!C1d%K"6N4-49086PErbJaZ!!%!#'B!!@BJEJ!+F!%43!#h)'i!#R!
"%8!!YLmZ!!Sr2!!&5'lrrNKZrrC)E[rZUBe9MbmZrrDTB$!I$%!!!@BN)'i!#L"
S!,)J8(!"-8!!2L"Z!!SJD!#b)&!aI#F2!%"J!!"q,bi!#Mmm!!G)E[rq5'lrpNK
ZrqkTM5mZrrC)E[r+UC!!5'lrqNKZrmT1ZJ*F8)mJEJ!+)'J!XL"3-@lrr!!q,bi
!#Mmm!!P)E[rq5'lrpNKZrqkTM5mZrrC)E[r+UC!!5'lrqNKZrmT1ZJ)H8)mJEJ!
+)'J!XL"3-@lrr!"!,bi!#Mmm!!Y)E[rq5'lrpNKZrqkTM5mZrrC)E[r+UC!!5'l
rqNKZrmT1ZJ(J8)mJEJ!+)'J!XL"3-@lrr!"#,bi!#Mmm!!j)E[rq5'lrpNKZrqk
TM9@2,blrpUPJ-"m-3!!"CK)JEJ!+)'J!XL"33LJ!(f!!!0)JEJ!+)'J!XL"3F!%
43!!IB!!![JaZ!!)!#'B1)'i!#R!"%8!!Yf!!!+J-EJ!1!!KQ+Mmm!!ir2!!02c`
!$LmZ!!T1ZJ$+6qm!#L"Z!!SJD!#b)&"#+!!IB!!!GJaZ!!d!#'BU2c`!$Mmm!!d
r2!!0,bi!#Nkk!*K2l`!+)'i!#L"S!,)J8(!"%8!!(f"#$'i!"3!)CKSr2!!'2c`
!"6mm!!8[,J!+6VS!CNr[!!TJ)!aZ!!B!#'BB2c`!"Mmm!!8r2!!',bi!#Nkk!%4
2l`!+6PiJAdr[!!C1d%K"6N4-48T26PErr#!m!*!$i+%H,8Mrr%UZrraQ"M!m!"Q
Tb5!Zrra1ANje9&"38N4-4d&19[r`5Qi!$QG5-#i!$P0!28$rr'!d,bi!#$mZrra
)E[rq5'lrq%KZrr#TM6!Zrrb`EJ!-CJ`[,[ri2c`!!DPMB!J[,[ri3QHTBc!Zrra
5E[rm-Li!%**!5N&QZNjH6R93990)8N&%58j@!!!JEJ!-)#i!#$mm!!#TlNjH6R9
198e86e088Nj@!!!JEJ!)2c`!!DRZ)'i!$##!6Pj1G9088NP14e426PB!!#"Z!!J
J8!a3!!0Q!!$%)'i!##"3$'Mp!J!#CaiJEJ!))&!-D2d"!!*R%#"Z!!JJ8!aSr3-
!!QB!!*JJEJ!))&!-D!"#!!4Q!!#))'i!##"3$'J!2!!'CaiJEJ!))&!-D!")!!C
R%#"Z!!JJ8!aS!&S!"QB!!&`JEJ!))&"+D!!)CNiJEJ!))&"+D!!+CN)JEJ!))&!
-D!-U!!jZ0#"Z!!JJ8!aS!YB!$'iQ)'i!##"35LJ!(fF1)'i!##"3$#J!!3!ICJ`
JEJ!))&"++!"%C`4`!'!#F!&1ANje9N&-583JN!019J!!)'i!#+!I6Pj1G8C5488
JN!419[rN)'i!##"3F!-`J#"Z!!JJ8$&mr3)!!L"Z!!JJ8("#-8!!"#"Z!!JJ8("
)-8!!"L"Z!!JJ8%*S!!JJEJ!))&"#D!!+)'i!##"3-A`#C!!1)'i!##"33QJ!%L"
Z!!JJ8$&m!Q3!&L"Z!!JJ8$&m!YB!&#"Z!!JJ8$&m!XX!$#"Z!!JJ8%*S!"!JEJ!
))&!aI!)!!"JJEJ!))&!aI!8S!"SJEJ!)2A`!H2rq5'lrrNKZrr!r2#!1UHY)E[r
`5'lrqMmm%"#Tkd2k!K)Y@IrQ,9RrkMeCrqj)E[rk5'lrjMmm%!5TkdKZrqBr2!!
@UHY)E[rQ5'lrj$mm)"#Tkb"3-@lrj!!F)'i!##"33LJ!(L"Z!!JJ8(!"%8!!(b"
Z!!JLEJ!))P%J8%(S!#"8L5$C)0NJf6$C)'i!##"33QJ!,L"Z!!JJ8%*S!$!JEJ!
))&"#D!!b)'i!##"33QJ!0#"Z!!JJ8%*S!$BJEJ!))&"#+!!i)'i!##"33LJ!15"
Z!!JJ8%)S!$SJEJ!))&"#+!!l)'i!##"3F!)43!!m)'i!##"33LJ!25"Z!!JJ8(!
"-8!!2L"Z!!JJ8$&m*`m!3#"Z!!JJ8(!"-8!!3L"Z!!JJ8%)S!%3JEJ!))&"`!4&
!!%8JEJ!))&"#U!"')'i!##"33UJ!5L"Z!!JJ8%*S!%iJEJ!))&"#+!"3)'i!##"
33LJ!85"Z!!JJ8%*S!&)JEJ!))&"#D!"8)'i!##"33QJ!9L"Z!!JJ8%*S!&JJEJ!
))&"#D!"D)'i!##"33QJ!A#"Z!!JJ8%*S!&iJEJ!))&"#D!"J)'i!##"33QJ!BL"
Z!!JJ8%*S!'3JEJ!))&"#D!"Q)'i!##"33QJ!D#"Z!!JJ8%*S!'SJEJ!))&"#D!"
X)'i!##"33QJ!EL"Z!!JJ8%*S!(!JEJ!))&"#D!"b)'i!##"33QJ!G#"Z!!JJ8%*
S!(C1ANje68Y%48C"98a!!SJ!N!H!!!km!*!$r%UV!""R(L"V!"!-D!!#!'aQ%J#
3!cC1qJ!%6R919J!!6PiJAdr[!"41d%eC8&*3580'!*!$&!!!'))!N!3(,PK3FQP
ZG)!!')B!N!30k!`!N!K@!(!!JJ#8!+B(,PK3FQPZG!#3''!!![41qJ&@6[S"CNl
k!AC1qJ'16[S"`%lk!Ga1qJ(k6[S#&Nkk!(*1ZJ$36VS""(!!6VS!FQX!!4"1qJ#
i6VS!@%kk!1j`!8kk!&a1qJ"X6VS!4Nkk!0a`!Nkk!%T1qJ"D6VS!0%kk!-T`!dk
k!$K1qJ")6VS!)Nkk!,K`"%kk!#B-32rSC`!!-Ja!!!&Q!!#iF!"1qJ"H)"p)j`!
i*%JQ55"!6Y!r!#m,,`T1Z[p56qm!#M9!!""1G3a!!!&R&JJU!!%!"QB3)%SL5dc
I(!![1!Mm6R9`!#m!)%ZP+#*E#"X!"QB-S#S)%`!'C`3J5D!U)"p-ha`!6R9+U`!
8CM!J2!!!J!#J3$!V!"K'31Y)!%$!!&$i#PjCMbmm4%&836m!UD!J(bG!!"4R"#m
!UC*1G5!V!"4R$L"!+&#J+8ja6R&1F8ja6R8r!#!V!"4R#%+V!"3J3+!M-"pJQ#"
I-KJd',"B9mRrqNT#Crj1m#$m)&mb'$3BX*KAbIrk5N*RrNl`)2SJAc)B0"L`3Qi
+N!""E3E33%(`!!)`%'Iq6[!!!#![!!3[33!%)Lm!##pI!!4)jc`!*!!Q!8K#a--
S!#S"5%A)aG4%5%+3!m$"d)*-h`!m)Kp1G5![!!3[33!%)Lm!##pI!!4)jc%!6VS
!R%cI!)`L(dje)#m!"#p"!!3L,`!),em!"%MR-3"1ZJ"m)!&-h`#-)Kp1G5![!!3
[33!%)Lm!##pI!!4)jc%!6VS!,%cI!)`L(dje)#m!"#p"!!3L,`!),em!"%MR-3"
1ZJ!-)!&-h`#-)Kp1G8U!DKa+J@S-4)"%J8kk!#"%J8je4)"1ZJ!@4)"%J8je5S&
U#N5"6VS!"N5!6R8Z2!!!rrqbJ'-')J"`!%jeX)GL$)$"5%!b!%*!5%"1GE+(BKS
Z!%*!5%#!`8K!5%Fq!%K(MX%`"dK(-JG1G53!*J(LL1+*XSGLq)$"`)Fb!m,!,J0
)4ml!5%I5Kf8)NS*L"%5"6R963'$N!*!%6PErpL"Z!!a+U!!8CQ*1ZJPL$%$rrfB
H9BqTVc!I-F!*4#"Z!!`r+!!B6VS*)P52F2pJ!!)f@Bp)H9"548-r21!!UD!JAb*
Z!!`M5!!8)'i!$#mS!"5TSL"Z!!`[+!!8UC)JEJ!-,bJ!&%kk#+"BMb"Z!!`[+!!
86VS)[PL2)'i!$#eS!"6rqL"ZrrSS8#"Z!!a+U!!8C`!"d$!Z!""1Z[af!*!$"!(
#!!S"[J"b!6!"Q%UX!(KQ@PQ25(P6G'jR2ccJ!+QJ)&mT5!"iX2`!!'F@@Bp)H90
88L-r22!3UD!JAl$m!!"Q&#"Z!!`r+!!B6VS)A&52F!"J!!&`,b`!H+QL,b`!H%k
k#!4BMbmX!(LTNNkk!Z*1ZJ&HB!!"6#"Z!!J`+!!D6VVljJ!'!6`!"!!@!!8"0!!
'!#`!"`!k!!J!HJ"M!53JEJ!)+@J!(!#F)'i!##PS!#!!S%(X!(bJ!f!!!3BJEJ!
),bJ!(%kk!iTBMf!!!23JEJ!),@J!(2rf)'lrpR!%-)!JE[rfF!Na3!!#)'lrpN)
S!!3JE[rf3LJ!"5"ZrrBKE!+S!!JJE[rf)@`#U!!-B!!!X#"Z!!J[+!!N)'i!##m
S!#!JEJ!),bJ!(%kk"#C2l`!-B!!!M#"Z!!J`+!!D6VVl,J!)!!J!HJ!#)'i!##"
S!"a$l!+'F!BJf9()rra9Mb"Z!!J[+!!JU'S`(`*!!2p63$e!rrj+E[rqE83-EJ!
$rrjX2#"Z!!J`,[rq5-$3J%2X!U,6`#"S!"`a83!#B#![,!"i6VS'e&L23U`!H#m
ZrrT1ZJE'@)mJEJ!-3UJ!&(!!6Pj1G8e"58iJN!419[rk3H`!I#e)rr`JE!"i)&!
`%%kkqSS!N!-"!%!!"!!J5Q`!c'B35'`%+Nkk!5jBMh!"18!!c($j18!!d'!F5Q`
!cQB35'`%-%kk!4"BMh!"18!!cR$h18!!d#"Zrr`aE!$3!"JJE[rm3UJ!$#"Zrra
`#$&!!"SpI1`!rrSJE!"i)&!`+!!#`I`!$%(X!!$4`$!3d@lrqL"Zrr`aE[rk!"`
JE[rmS!3JE[rm3LJ!)#"Zrra#+!!K)'lrr%)S!#-JE[rm3LJ!)L"X!(JJ8%TS!!C
R+#"Zrra`!4&!!"`JE[rm3LJ!(5"Zrra`%4&!!"iJE[rmF"-43!!IB")JE[rm3LJ
!(#"Zrra`!4&!!"dJE[rmF!Sa3!!D)'lrr+!%)'lrr%TS!""R%L"Zrra#+!!F)'l
rr(!"%8!!(5"ZrrbJ"#"Zrra#D!!X)'lrr%+S!#j1ANje8e"28%91)#"19J!!+@i
!#!#13U`!L%)X!*G"l!"mS!"1ANje8&**6NP8)#"19[ri@Bp)H9088L-r22!3UD!
JAbe)rrK+V[riC`!!YLmZrrLTSL"ZrrJJ8&5),8Mrr%KX!G)[,[rm6VS!T&#2)'l
rr(!!%""53%K!3N")30'Zrra)E!$5,blrr%kk!)*3Mb"Zrra`!"!38N")3%*!5%$
4V[rm5'`"pLmZrra1ZJ"J8)mJE[rmF!!3%&*!5%"#3%K!dDlrr%KX!KS[,[rm6VS
!2P#2)'lrr(!!%""53%K!3N")30'Zrra)E!)q,blrr%kk!"a3Mb"X!(JJ8"PS!!8
#BNjH6R96494$6dj88Nj@!!"#J#"Z!!JLEJ!-%"!5f&()rra1ANje3dp3@9088L"
19J!!)#i!#%kkq"!!"3!J!!%!N!-Q!!)!N!-X!!-!N!-Q!!2rr`!J!!2rrJ!d5'`
!dNkk!$KBMf!Q5'`#'Nkk!#aBMf!D5'`"dNkk!#"BMdSX!Q*R#NKX!Q*1ZJ!3@)p
1ANje4%9@580&3dp19[rm,`G#V[rmIJ"J!!"8F!!`"p#Z!!JJ3(!!%""1Z[H5!&i
!AJ!N!!*"l!+XdHlrr&*(F!!`"p#Z!!JL3(!!%"%#3!!I%)"J&%(X!Uc4l[rmF!!
`"p#Z!!JL3"#48Ulrr$!(8NFJEJ!)FJ!5%**!5N&QR%(X!U`T5!#F+@lrr!#J3H`
!I+!$,Kp1ANje8&**6P469&*19[rm51F$%#!Z!!K1Z[F+!!-!&&0PG(!!a&"bER3
"j%0XEh-"p%Kj!!%!!%kkrY"BMh!"18!%+#"Z!!`J8%2X!l"`(5,B8FMrr%UX!rC
Q#%(k!GBT5!2f@Bp)H9"548-r2!!"UD!JAbe)rra+V[rmCb3[,[rmUD)JE[rm)&"
$l!1`F"dJf9()rr`[,[rmUDS[,[rmUD-`,!1mN!"X!lK)`)(m!!Xj3!1Z-#`$`%4
!5-#"r!!,18!$V$!X!m*%3%M!JI`!"KP!!Q*`!"!X!Q*+3'3!!8C#,!*LB!!"2M!
X"#L`E!2ZE!K5E!3SB!!",$!X"#K5E!3SX'`$m'mJ-I`!J!P%5'`#2NkkrQ*BMb"
X!(JJ8"PS!!8#BQ!!!2j+,!22CJT1ZJ&55N"R!!$3*Qi!$(!!%#`"pNT!CKjq!'!
+5'`"dNkkrLCBMc!(8NFb,!1XNN"+3@ESB!T)E!(f6VVq$&L2IJ"J!!"m)'`$pNk
3!!ai!)!*4'F!!+)`"m(m!)E3Lb"!-&#`r!!!CJj)H3!$!!"1Z[eX@)pJ5$`m!)3
`"m(m!)E3Le0'-%E3L#"!F!!3+!!#$%!!)'IN8NB`"m(m!)E3Le5!+8!!R$"'+8J
!S%(X!(bJ!dKj!!-!!%kkr5*BMe*(-#`$VT!!4dT!CJ$rI%KX!KT1Z[ef@)pJ(M(
m!)!*4'!@5'`#2Nkkr@*BMb"X!(JJ8"PS!!8#BNcI#-"1ANje5%&14%a&8%&19[r
Z9Bmr2!!)5'lrm+P`%"p+!'FX)$`!N!2r`+lrmP@2,`#SDc!I$%!!,QB8##i!!2r
qC`a"l!"mS!Bar!#!#841ANje3dK&3dY"3Np19[rS@Bmr20rr3UG)H2rrUA`JAbe
)rrb`r!!!CJC`!'!!!'kS8#mZrr`r2!!"5'lrp%KZrr")E[rSUBe)E[riU(3[,[r
mU(-r2!!$2c`!!kLE5'lrk$mmrr`r22rmU+P)E[rS2c`!%$mm!"#SX%+R5'lrpUQ
4,blrr+Q$,blrq+Kc$'i!![rfCJ4`!'!#F!&1ANje9d&*9%j&@&419J!!)'i!#+"
+6Pj1G8K16e"98NG&6PB!!#"Z!!LJ58jH6R9)8&954d8J)%j@!!!JEJ!)S#P1ANj
e5%a23dXJN!019[q`3HlrX$&Z!!J!'%+S!!bJ!6!S!""1ANje3da28d9%8NP19[j
%@Bp)H9088L!r21!!UD!JAbe)rNS[,[j+UD)[,[j+6VVrGPL2,blq5NkkrjKBMdT
i!rC[G%)ZrNj#V[pD3HlrJU)82@lrC2rq2@lrJ2rm3UlrMN(ZrNiY52q82AJ#%2q
B3QlrRN(Zri+L"beZrpcrIMei!K$rC%+Zrf""l[p1SK99Mb"ZrNS[%+QA-"mp32j
)-'lrr#e)rhipE[rqrf4"l[p1SK9J!!"i3HlrJLe)rN3JE[j%3UJ!$#"ZrN5J&%K
ZrNiJE[j%,bJ!%NkkqT43Mb"ZrN3pD!!@rriJE[j%3UJ!%L"ZrN3aH!)3!"BJE[j
%S"99Mb"ZrNS[%+QA-"mp32j)3Hlq6L*ZrN3M5!!5)'lq4$&Zrri!&L"ZrN5J&5m
ZrNT1Z[k)@)m-E[rrrNKQ#P@2UDm`(c(!#83`,[j)6Pj1G8p348j38NP1!!!'A'!
1!!"3380,m!!!!33!i!""q[rZ)FJ*cQ!!!Ea1qJ!H6[S!,Nlk!$j1qJ"@6[S!L%l
k!+41qJ$#6[S!hL"I-KJd',"B9mRrqNT#Crj1m#$m)&mb'$3BX*KAbIrk5N*RrNl
`)2SJAc)B0"L`3Qi+N!""E3E33%(`!!)`%'Iq6[!!!#![!!3[33!%)Lm!##pI!!4
)jc`!*!!Q!8K#a--S!#S"5%A)aG4%5%+3!m$"d)*-h`!m)Kp1G5![!!3[33!%)Lm
!##pI!!4)jc%!6VS!R%cI!)`L(dje)#m!"#p"!!3L,`!),em!"%MR-3"1ZJ"m)!&
-h`#-)Kp1G5![!!3[33!%)Lm!##pI!!4)jc%!6VS!,%cI!)`L(dje)#m!"#p"!!3
L,`!),em!"%MR-3"1ZJ!-)!&-h`#-)Kp1G8U!DKa+J@S-4)"%J8kk!#"%J8je4)"
1ZJ!@4)"%J8je5S&U#N5"6VS!"N5!6R8Z2!!!rrqbJ'-')J"`!%jeX)GL$)$"5%!
b!%*!5%"1GE+(BKSZ!%*!5%#!`8K!5%Fq!%K(MX%`"dK(-JG1G53!*J(LL1+*XSG
Lq)$"`)Fb!m,!,J0)4ml!5%I5Kf8)NS*L"%5"6R963'$N!*!%6PB!!!aZ!"-!'QB
%6VS!J(!!6PiJAdr[!"3qJ%l368&*6L#3"%j@rr"+EJ!1Ce)`,J!18d!p32rmB$3
[,J!)2blrr%KZrrj)E[ri5'lrm+Q0-#lrr,"Z!!aQ$#mZrrJr2!!"U@0J##mZrrK
#CkPM-#lrr&*Zrr`b,J!3NN"+3@Dk6Pj1G9"98dK5384*6PEqVPQ25(P38N9$2cc
J!+QJ)&mY52kf5UlqYQF!!kKCMdKj8h4ZCcmmi!#TS#"I,8MqXV$m!!"R!!1-@Bp
)H9088L-r22!3UD!JAbe)rUk`r!!!C`!$F#"ZrV)J8%TS!!*Y$L"ZrV)J8!aS!!N
!!Qm+)'lqXL"33QJ!!PQ22cc`%%+R5(MrrkPm)&mY52rmX2`!!'F!!c![,[rm2c`
!#%KZrr*)E[rU5'lrfUQ0,blrr$mm!!&)E[rZ5'lrjNKZrp+TM5"ZrV)J8#*ZrVB
`+!!#`I`!$0#4,blrkP5!,`#TAb"ZrUiJ8&5),8MqaR!+28$rp'!d,blrr$mZrr4
)E[r`5'lriNKZrmUTM5mZrq)[,[l'UBmJE[l'F!!3%&*!5%"#3%K!dDlqaM!Zrr4
5E[rdFJq53%T"CVa)E[riU(3[,[rmU(-[,[rmU48r2!!%2c`!"+LE5'lrdMmmrrX
r22rlU+P)E[r52c`!%$mm!"#SX$mm!!)r2!!#U*Y)E[rD2ccrr6mmrrfSU8KZrpS
r2!!-2c`!$+L`)'lqXL"32c`!"Mmm!!8`%&T!2`![,[rm6VVpjNr[!!SJE[kb)&!
r2!!82c`!%c!S!!B'3!!62`![,[rm6VVp`Nr[!!T#E[rfB!!!d%+R5'lrpUQ4-#l
rpNkkqmB!"J!D!!8!&J!'!$`!#!"d!"-!F!!8!*J!&3#N)'lqXM!ZrrCE3#"3-)!
r2!!'2c`!"6mZrrB[,[rm6VVpD%r[!!TJ!!"k)'lqXL"38QJ!!JaS!!S!!QB+)'l
qXL"33QJ!!L"ZrV)J8#*ZrVB`+!!#`I`!$0#4,blrkP5!,`#TAf!m)'lqXM!ZrrB
'32rY)&!a3!!'2c`!&$mm!"-r,[rf,blrr%kkr2j2l`!+B"![,[rmUB-[,[riU(0
J!!%@$'i!!IrfCJ$r+R!D,8$q`R!+28$rp'!U,blrr$mZrr4)E[r`5'lriNKZrmU
TM5mZrq*)E[l+UC!!F!!3,[l+dDlq`M!Zrr45E[rdFJq53%T"CXBJE[kZS#SJE[k
Z)#lq`U!N)'lqVU!P,8$q[L!ZrVk`V[l#Ca)[,[rmUB-[,[riU(0`!'!!!)iJE[k
ZS%SJE[kZS#NJE[kZ)&"8L#e)rXC`#Me!rr4J0#mZrr`r,[rd5'lrm%KZrq*)E[r
+UBd[,[rL,blqaUQ3!#"ZrXC`!"!38N")3%*!5%$4V[l'-#lrp&*Zrr4b$j*!5N&
Q[#mZrrbTJbmZrrLSFbmZrV+TULmZrUkTULmZrV+TX#mZrUkTX%kk!!j1ANje8&*
649498#"19[rN3Hlrj$&mrrd!'%+S!!bJ!8(Zrq5J!%jH6R9548p348iJ)!#3!hJ
!!rd#!%)!5!#3"!,,!Q3!N!3#eJ*N!J!&+!2m!!(p!J"#!%J!N!3#b`*N!*!1!J!
!!5F2!!%!!3#30AJ!!rd#!%)!5!#3"!,,!Q3!N!3#eJ*N!J!&+!2m!!$p!J"#!%J
!N!3#b`*N!*!1!J!!!Arr!!%!!3!#-+i!N$!%0J&m!c-`-!#3"ld$0M!`!*!(AJ3
a-M!`!*!'2J3a1$!`!*!',J3b0$!`!*!'(J3c0M!`!*!'&J3d1$!`!*!'$J3h-M!
`!*!'#J3j0M!`!*!'"!8a16)`-!#3r`#3lb-JN#-!3J")!!)#!3J#!*!$"3%#"3)
%!!$q!!!#!3-#!$`!5!"D!!%!!3#3r`#3I`8Z38peG!8Z3NpeG!#3!`X+8(*TER3
J4QPXC3#3!b!!"34H69j+!!!#AN`!6!#3"9S!!9'L"84KDA0j!*!$6!#3#!%!N!-
i!*!$0`#3!`+S!!'kr!,b!*!$(!'q!!a*3diM!*!$DNC548B!N!0f4'&c@3#3!i*
#6N4-!*!$MP088L-!N!1D8h4ZC`#3!kC69&)J!!)!XN4*9%`!!`$@4%a24`!$!3C
34%9'!!-"0N459P)!!!&Q8%&$5`!!!A*38N9$!!)"IJ#!!*!,J2rr!!!""!#3"[r
r!!!"$`#3"B$rr`!!!53!N!6`%!!&!!!fe!!"A#cJ!!!G!!!"4!#3"2!%!#i!!!&
5!*!%m!8!1`!!!9d!N!6J!Irr!!!fa3#3"1!"rrm!!!&c!!'jR2!3!%B!!!+M!*!
%i!$rr`!!"'m!N!6Ir`"H!!!&#`!"ZEcJ!Irr!!!&A3!"A#M`%!"a!!!&H3#3"1!
!rrm!!!@V!*!%hrm!K!!!"FF!!EQi!*!$NM!!"HN!!9d%!!%!TM!!#Km!N!8%!,S
`!!j9!!'k!!!&!-B!!"d0!*!%i!!!e5!!(8F!N!6`!!$G)!!V-`#3"[rr!!!aN`#
3"3(rr`!!-Jm!!ERii!$rr`!!-SX!N!3%5801)aG3FQPZG'9b)'0[ER4bEf`JFh4
bD@jRFa"3FQPZG'9b)&0PG(4TEQGc$&*TCfKd)%*eG(4[EJT-DA0d)'aKBQ9X&e"
bD@jdCA)J4'PKE'pR)&4PEA"XBA4P%NjPH(3J8'&RC5"8C@e`E'&dC4*3FQPZG'9
b)%0[EQCTCb"#EhJ06Q9iG#"3B@GP)%*[H"0%FQ&QG#"3FQPZG'PZCb"$Ef4P%e0
`EfpX)&"bD@jdD@jR)%0[C'8,4'PKE'pR)%0[C'818(*3D@0'D@aP)(0dG@)(,PK
3FQPZG!a%B@PcH5"$EfjQD@FYK3:
---