clewis@ecicrl.UUCP (Chris Lewis) (11/17/90)
Submitted-by: Chris Lewis <clewis@ecicrl.uucp> Archive-name: psroff2.0/Part02 #! /bin/sh # This is a shell archive. Remove anything before this line, then feed it # into a shell via "sh file" or similar. To overwrite existing files, # type "sh file -c". # The tool that generated this appeared in the comp.sources.unix newsgroup; # send mail to comp-sources-unix@uunet.uu.net if you want that tool. # Contents: fonts.lj/HI.10.pk.UU fonts.lj/S.36.pk.UU lj.c # Wrapped by clewis@ecicrl on Fri Nov 16 23:35:00 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH echo If this archive is complete, you will see the following message: echo ' "shar: End of archive 2 (of 16)."' if test -f 'fonts.lj/HI.10.pk.UU' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fonts.lj/HI.10.pk.UU'\" else echo shar: Extracting \"'fonts.lj/HI.10.pk.UU'\" \(6654 characters\) sed "s/^X//" >'fonts.lj/HI.10.pk.UU' <<'END_OF_FILE' Xtable X !"#$%&'()*+,-./0123456789:;<=>? X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ Xbegin 644 fonts.lj/HI.10.pk XM]UD``*``````````!":N``0FKM@.J0```!4(!_<<-C;S8V-CT!"H````%0H' XM\QQS8V-44V-C<-`1LP```!\*!_$<-C@3-D<SPH!HA````#0D=^QQN(^-3 XM;R;S;B)C;C)C8M@U\V#0%"(````5#`CZ'!XC4_$F(A<2)B(7$[!3(P```",@ XM)?T<Q_)RR#8\@G+(-CR"<L@V/()RR#8\CR<L@V/()RK0/2P"<L@V/(\G+(-C XMR/)RR#8[TCT*\G+(-CR"<L@V/()RR#8\@G+(-CR.(G+&T#HD````%10A_1[/ XM(!)[J3(B1C(E%C,E%>(T*N)#+%$LG)R=C2%;\C2^(D.O)#0E(S4T(C="(3FL XM8!+RP,!E)0```",;(?D>5-(E;1)(PS,THS-3DT-3@T-C@E-C<U-C8V-C4W-3 XM4X-34I-#4Y,T0ZE#QT/11B9-$U;#6*-3,Z)31(-#8W-38V-C8U-C8V)S8U-S XM8T.#4T.34S.S,T+(0]!E+21@P%$F````'QH?_1W038;6C4,SU"0]/S0],E/3 XM)#TS0],S/4,CU7UFUULG7"9<)GLD43HD0SDE-$@D-C<E-D4E-T0F.$(G.3$H XM.5HY1R%%A2.RI6=CX`PG````#`0(]QQW=F3(P"8H````$!`J_1[0/#P\/#P\ XM\\/////.(\XCSE/.8]'C/1\]'ST3T3C`)2D````0$"H`'H/1/1/1\]'C/1Z3 XMY,/.(\\\\\\\\\/#P\/#P\/0P"<J````%1$2^AZ?/1+1.#,S,D(R0E$A5:EJ XM>*51(5)2(E$S,SCB/1*0P",K````(!L<_!?3\ML]OC+;/;XRVSL"G0+;/;XR XMVSV^,ML]LM+@#"P````,!`C\`G[FS(C("2T````."P+^"=G0"BX````,!`/\ XM`A;QP$8O````%1@I`![9\M@]@M@]@M@]<]@M@]@M@]@M@]<]@M@]@M@]@M@] XM<]@M@]@M@]@M@]<]@M@]@M@]@M@]<]@M@]@M@]@MD-`M,````!42'?P;E;F+ XM9$1C8U.#\SDS*C\CHR.3+C.C'C.C+SDS\X-$8V0T>XBUH-`:,0```!4.'/P; XMT;.%:&(SOSKD.N,ZY#KD-?T0P#0R````%10<_ANFT)DU2"<W*$4Y/U*C4;/4 XM/333/333/3/3/3/3/2323232/3/3/3/232_30,`S,P```!43'?T;I;J$1&-S XM4X1"E%&4TCTDTCTDT%J+;0?33333/3XDT4/QM#*44G1C5(JVD,`Q-````!43 XM&_T:T%T4T1$]`A//(CLB.S(Z,SE#.30X-#@U-T4W-C8V-C<U1S7]6^0]+S?` XM*S4````5%!S]&FT6T'/3XST_/4,DNYQV-']&1C=-/C32]%&44I-C<X-$J<:P XMP#4V````%1(=_!NUN81!@]$]$]$](M(](D1S*%T$94-7,T@S.3)),N,Z,O.3 XM,X-2@F-C8T2(Q9#`*C<````5$AOZ&BTQT](]$]$]$]%-!-$]$]%-$]%-#TT/ XM30]-#B30XDT/31#0,3@````5%!W]&Z;*A%1O.#7SH_,Z-$@V-T9%2*QLJ35' XM-S8X->(Z,^(Z-3@V-S@T2:QJP#@Y````%1,=_1NER*1"@V-C@F*24Y-"H^(S XMHS.3,Z,TA$.$0W5$1FD3:"-U,],]+STCTC<7-S4YG%N`#CH````,!Q+\$4\S XM/=,_-(`2.P````P'%_P13S,]TS\U)/)?%J`:N`````T)'?T4;B/7XB8VXB;S XM;B)N(V)N,U-@P!`]````(!T,_0\]P]X-O>/<,,`@N0```!0/'?\4KB,$GB+. XM(L+#L[2DI*2^([21(V4=$K5UT"$_````%`\=^1Q':STC=!&C_#L[2DE92SL[ XM/"SC+"!9._/`P$5`````'!@=^QS0?2K-"69'639&E$6S1<,U1%(U1D%%-T$U XM.$$U.#'B-3DQ\U.#(U-T(U1C,V-$1%IC:'1EI-A85]*M#1>0P$!!````'!D= XM_QS4/8]=8A/5\B/4(SU"--(D31-$T25-`U30)DPV3"A*.$GSE(_4<[5BT$4] XM!$\]%#/20RTT(].-5,`Y0@```!P9'?P<;1O3E(5TI62T;B3$1-`U3$5+1DE7 XMU'TYU(1H=*54Q%XTT$--$T301$Q%2T9(9M2-*L`J0P```!L7'_H=T(S0E&1T XMH7353536/635]-7B35Z4USUTUST!9*-U9*S0><`U1````!X:'?P<;1S3I(6$ XMM'],1O301$T4XT32/C--)/)-)#]-%$301$T35-!%3$9*2$A8TZT<P!Q%```` XM&1@=_!QOU636Y$UN1-;]1_36Y$UN1-;]5L`<1@```!@7'?P<;]1DU>1-7D35 XM_3?TU>1-7D35]-;`-4<````<&!_Z'=!]'0I&5THG3!9-9-<]=-;TUN)-;B37 XM28-(A.--`T3#8\-DLW.S=*.%5;S1>L`?2````!T:'?P<;B3$Y%3$7D3$7]=O XM3$7D3$7D3$7TQ�%DD````,"AW\'&XDY%1>1%XT7D1>1%]&P!]*````%!,> XM_AS2XDY-%-'D31XTT>1-'B1A=')5;(JVH,!+2P```!T<'?P<9-%&30.$PX2T XME*2DE+2$Q'3$<]%&/21$TT--1"730GTD$Q32<ET61-!E305EQ(3$A;24I*2D XMI92TE+6$Q'301TT48+`63````!8/'?P<;B2N1*Y$KC2N1*Y$K2#`:4T````D XM(1W\'&]M)F;1=3$]$11O,3T"%&,4LB1C%*,D4R2B)&,DDR1C,Y(T8S.#-&,S XM@D130W,T8T1B1&-$4T1C1%)44U1#1&-40E1C8S-48V,R9&-C(G13<R)D;S<Q XM)T;S=813DX1CUT;0.4X````=&AW\'&XFLU,3HVXS(Y->(S1S8T-S8T1C7B-4 XM4V-C4UXC=#-O.#,U.3(V\Y038Z,38Z=?.V;`/T\````?&A_['=!]2]#1IE:% XME66T5<5$T4--)"330DU#\4U3%-2./5C]1!]--"320TT51,55I725AE:M'1O4 XM;0#`*U`````;&1W\'&T;TY2%?TM&XDQ$30-4Q%3#9+1DI&25?4C2I-?D37Y$ XMU_38P$-1````'QHC^QW0?4O0T:96A95EM%7%1-%#323R333B%-2./5C]1!]- XM-"1D5#1S141D-%1Y=&B&5JT='0TF%-E=GUV54-`U4@```!L9'?P<;<`2E(5T XMM&3#;B3$1--4Q%2T9*1TAF`3@!*=Q&._1TKB2$CB2D?TM%3$5-1`P#)3```` XM%Q4?_1VWRY-D8Y)RL6/4XCU/3534;3G0K*T)TUU%U/35\]3S,L-"PE.C9&.; XMQZ#(&E0````<&1WY'`);37Y$U^1-?C37Y$U^1-?TT]`F50```!T8'OH<3B33 XMY#33/D33/C33/C333TPU]+-SHX2#I%3*`2;0R#Y6````'!D=^1STU7U#%=,C XM32,_31-/30-4PW]*./23E(.D@L1CST4]!$/11"TD,],S+4,CU#(M4Q+6;678 XM33#(:E<````G)!WY'/3%Q\6S%+(3LQ2Q(Z,DHB.C)*(CDS22,Y,TDC.21()# XM@T2"0X)D8E-S9&)3<G134V-T4F-BA$-C4X1"<U*4,W-#E#*#0J0R@S.O0BDS XM*_02HR+#(;,AT2$L(2T?3032/1/1P$A8````'!T=_QQTTC==`Y3$E:2TE,2$ XMT49-)%340TUC)-=!/9;:7</<7:;9C70CUD--1%/31DTC=-$Y3#I+/$D]!731 XM1DTE1-1$R#E9````'!L=^1Q-5!730ETS1=$U70-ULX6DE)2E@\1ST%4])$/3 XM4CU4(]5!/7;879XTVCVN--H]KTU0P#-:````&1H=_AQ_UMA-A-A-A===A-A- XMA-A=====A-A-A-A===A-A-A-A===A-A-A-A=?]=@T"1;````#!`I_QZ.*(/2 XMWC/2WB/?+>(]+>,]+>,]+>(]+>,]+>*(T"-=````#!`I`AZ.*/T]+>,]+>,] XM+>(]+>,]+>,]+>(]+>,WXHC0%%X````5#@?X''*TDA-C,E-#,V,3@^`,8``` XM``P$"/<<$B9.[M`B80```!00$OT1=HE<0V-!D]/#IEL])6,C<R\X,D52`0/% XM4S/0*V(````5$1W]'&XCWD/>(P$#-6,83454\S@^,CDR.#(Y,CA"1D-%1,0Q XMA3-6T!EC````$@\2_!%V>5LT4R._.^4\.1)%0\279L`M9````!43'?P<T^(^ XM32/2XCA3-I$UT%544W1#DT.#3C.33S@U-T5$9I$V@3E#-M`=90```!(.$OP1 XM98A+,T0C<A."$"WBP[.1%%0L.690T!UF````#1$=_!RFF(ETT@$.(]XCK[GC XM/>0]Y#WS`0#`-&<````5%AL`$:4TG0C1<T.S5*-CGB-CLT/)R=`A31\]:[T( XMTF.44[-$LT/#1*14=7T9O0>@T"9H````%1$=_1QN(]Y#WB,!`S5C&$`0-50T XM<S.#)',^,X,N0X,O.#.0%6D````*"1W]'%XD1-KS7C->0UY#7S;0'6H````+ XM$24$'-XDQ`AO/>,]Y#WD/>,]\W)$>8BFH-`P:P```!01'?T<;B/>0]XC`0-D XM0U1#5%-$8S1S)',DB)F%$X0D9$-O-44V-39#.#,X0M`6;`````H)'?T<;B/D XM4UY#7C->0UY#7S;0*6T````B'A+]$4,V9F,9.4,;&S5F9#2$@S.3DR2$@SXS XMDY,N0Y.3+SDY,\`?;@```!41$OT10S5C&$T354-',S@R1S/C.#+D.#+S@S#0 XM(&\````5$A+]$8:I?%1D-(04HQ.VXL;[,3HR2$-%5-:J:,`L<````!43&O\1 XM8S6#&&T&5%4W13@^-#DT.#0Y-#A$1D5%1L8QAS-8\]+D/2/3T"MQ````%1$: XM_!%E,U<C3$1%-&0D=".#+C.3+S@S-T-%5)$T@393,!#SWD/38-`8<@````X- XM$OT10S-#%3,51G6$A)XSGD.?.M`<<P```!`/$OX19VL[-&(^(\>8B+7/,ADR XM-C/$IV;0&70````/#!C[%TXCCB-OL^,XY#CB.3,D^%5@P!UU````%1$2_!$_ XM.#XR.#+D.#+S@S-T,V4]$Y$U8S38)'8````3$1+\$4H_$Y,O.#,W-#<F-3;S XM0W\S.#(Z(BLA.R$L7$KH0W<````<&A+\$>`?`=P'P&<#<#G`W`QP=P<<&<&' XM#G#APYPP<<<<'''&!SAS@<X<P',',!W!V`-@=@#8#0`\`\`/`.``P"UX```` XM$Q42_Q$TE%.$<V2#5*,ST#$]%M--0]5-,A+2(CT"0[-#HV.#<W.34Z1`P#%Y XM````$Q4:`!%3H_4Y-O.#@V.?-3KS0\(ST",M$B/1\B+3$2U//5+5\M4M4]!] XM%M)=,,`B>@```!(2$O\17]!-#1/1/1/1/1/1/1/1/1/1/1/1/1T3_12P"_8` XM```5%0/^#!W/$-`2K````!4/!?@;-%,F-!T31B-4,-@,JP```!4,!/8<]$CS XM0=`0_@```"`;'/X:WL+`..K2P#C`5-(````@&QS^%Z?5)RT2LK'2&1U!<=01 XM%1U!,4'3%!,=,6$ATA<1'2&2T1HM`;+\'"L=`J'1*1TA$7'2$A8=,3%!TQ03 XM'4%1$=07'4&1TALK+1)RU7K`'WX````@&PG^#E73$XTA*]`114M86%M%01T+ XM(=*#'350P$S[````*B4<_A?:*BV$A-9(37.3UTA-9(362$USD]=(362$UDA- XM<Y/72$UO2$VDA-HY/:2$VDA-I(3:.3VDA-I(3:2$VCD]I(3:2$VBHLA,_0`` XM`"HE'/X7*BVDA-I(3:.3VDA-I(3:2$VCD]I(3:2$VDA-HY/:2$VO2$UDA-<Y XM/72$UDA-9(37.3UTA-9(362$USD]=(362$V"HMK0.[T````2"R7]'#5203-1 XM(F7U9A$Y*3DJ*3<B)#,C)#$U(>(U,24Q-",C-"(G.2HI.2DQ%F]58B%3,4)5 XM,)@)7P```!45`P#WU8@)?`````P"*?L>V1@*_````!D4%?X4#R#`*SP````@ XM&1C]%=D]=-9-9-9-9-9-9-9-9-9-;TVDVDVDVDVDVDVDVDVDVDVCR"L^```` XM(!D8_14]I-I-I-I-I-I-I-I-I-I-KTUDUDUDUDUDUDUDUDUDUDUSV<@L7``` XM`!40*?X>\M+B+2XBTN(M+B+2\M+B+2XBTN(M+RTN(M+B+2XBTN(M(M(0T!M[ XM````%0XI_1ZD@Z.ROL.RLY.$T]/"SL/"P\/4V!M]````%0XI_1Y-/3PL[#PL XM/#U(.CLK[#LK.3A*P#>[````(!D=_!S476)!TS8=$W'1*1PY'#<[-SPX'0\] X;CB/5O4XSV.,]1Z%9H4)%@5%70U$S.(1U@/7V X` Xend END_OF_FILE if test 6654 -ne `wc -c <'fonts.lj/HI.10.pk.UU'`; then echo shar: \"'fonts.lj/HI.10.pk.UU'\" unpacked with wrong size! fi # end of 'fonts.lj/HI.10.pk.UU' fi if test -f 'fonts.lj/S.36.pk.UU' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fonts.lj/S.36.pk.UU'\" else echo shar: Extracting \"'fonts.lj/S.36.pk.UU'\" \(23815 characters\) sed "s/^X//" >'fonts.lj/S.36.pk.UU' <<'END_OF_FILE' Xtable X !"#$%&'()*+,-./0123456789:;<=>? X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ Xbegin 644 fonts.lj/S.36.pk XM]UD``E``````````!":N``0FKG%6(0```'-JD_5NWCWO7<;<7<;<]=QMQ=QM XMQ=QMQ=QMQ=QMSUW&W%W&W%W&W%W&W/7<;<7<;<7<;<7<;<7<;<]=QMQ=QMQ= XMQMQ=QMQ=QMSUW&W%W&W%W&W%W&W/7<;<7<;<7<;<7<;<7<;<]=QMQ=QJ4:Y: XM4JUJ-:Q:-JMJ*`JEHH&J6@@ZEI\R@*A9\S@*=IXF@*99TW@*5IPX&`I%GA@H XM"C:I@*-:N`H6JX"A6M@*!:V`GVK8"?6O@)UJ^`G5L8";:Q@)M;*`FFL_@)E; XM6`EVM8"76W@)5K>`E5N("4:Y@)-;J`DFNX"16\@)!KR`D%OH"/6^@(YK^`C5 XMP(",;`@(Q<*`BFPH"*7$@(AL2`B%Q8"';&^`AER("$;(@(1<J`@FRH""7+@( XM%LR`@%S8!VSO@&7/@%;0@$71@#;2@"73@!;3@!75A=6$UX/7@MGX'9@-M]MM XMU=U+D)%K)````*211/="KZ/<HL6KTJN^L<RPNK7(M+>XQ+BSO,"[L;^]I:2@ XMKL.YHZN:NEBNMZ*OBIHJ:LLZ*RBGH:NJL:&V>FFOJ:^@N7I(LJFMH+MJ.+6I XMJIOFH8MZFHG`:@>YJ::<)9>[J:2<-H:]J*.<57:_J*&<=6;`J)G(56PJAYRE XM1<2H6<M47%J$C-0UQZ<YS5)<BG&<Y27)K]!"3+K=%!7+K=&@S*O2H,VIU(SZ XMC4C0I]2->XT:C2C2J-&-.GT8U*?0C4J,^-2IS:#2J\R@T:W+44T:W+0DT* XM_)4ESI&GR%)<V3I\=33-A*C%5%RY6HQ%1<J7J,)E7(F:C`9EQYH:B_9UQ9HZ XMB]:&PYI*F[>5PIIJFY>@;`FHJ;>*%KZ:JIM8HVNZ"MJ;**1[F@KZFOFF>VH; XM&JJZ&GBRHK.LIJ*IBOHK>NBEJYJZ.YPZZ@I*6]O[&[P+RSN,2XM[3(M;JPS+ XM&^J]*KQ:+<HZ\&!-)0```(!M7?=4GQT7++=LCWC&>L3B?,+B?L+B?,1ZQO>, XMAVRW+1$`DN_4$.#QU`"2X=%RRW;(]XQGK$XGS"XG["XGS$>L;WC(=LMRT1GP XMH2DF````?VQ$]T*\L`%+"YN-NTMKW6M[7!T;FSQ<V[LL?*M7&PR\>QO+)[G$ XML;VK2WP:OYN+:_J_B\M;V<%[^TNYP7P;2YC"?#M+>,-L6TM8PVQ[2SC$;(M+ XM&,1LJTJ,5<RTB,5LVSB,5<^S:,9="S2,9=*S-\==*S*,==.[R/35N<A=:WR5 XMU[;)38M<I-FTRDVK/*3;LLI-NSR4W+/(3=LLA-VSQTW;3&3=M<5=NVQ5V[?% XM]-JYQ$V;O#77@K/"77<[/#36A+/"74AK/!73B+/!72B+3`71BK3`7/BQM+]L XMV+.TOUS(M;2^;*BWM+YLB+FTOFQ9N[2]?#F]M;Q\"K^VNWOJP;>ZBYL<2YMY XMM;''O[&Q>URKVSQ,V\M,'1NK:]UK>XN-NUO+`!2PH.,J````?TY/Z$TD`80E XM`747`5M`$[8!&1G?DJW:.MNEK9IZUZFM6K"M.K*M&K2L^K:LVKBLNKJLFKRL XM>KZL6L"L.L*L&L2K^L:KVLBKNLJKFLRK>LZK6M"K.M*K&M2JK6J*V*:MJDK< XMHJWKD!"W`2M0%+,!:Q`8H!BQ`6LP%+4!*W`0N=ZBK<I*VJ:MBHK6JJU*L:TJ XMLZT*M:SJMZS*N:RJNZR*O:QJOZQ*P:PJPZP*Q:OJQZO*R:NJRZN*S:MJSZM* XMT:LJTZL*U:FM>GK9I:VZ.MVBG?D9`1M@$[0!5Q4!=30!A!!P#RT```!_8@?R XM*1_8$,[QV!"0D#P```!C3$7U1]\=]-Q]B@UJ'5HM2BTZ+4HM2BU*+3HM2BU* XM+4HM.BU*+4HM2BTZ+4HM2BU*+3HM2BU*+4HM.BU*+4HM2BTZ+4HM6AUYV:'8 XMHMBBV:+8HMBBV*+9HMBBV*+8HMFBV*+8HMBBV:+8HMBBV*+9HMBBV*+8HMFB XMV*+8HMBBV:+8HMBAV:#;?=0!`2"0D#T```!C3$7U1R$!!-U]N@V:'8HMBBV: XM+8HMBBV*+9HMBBV*+8HMFBV*+8HMBBV:+8HMBBV*+9HMBBV*+8HMFBV*+8HM XMBBV:+8HMBAV9UZ'5HM2BTZ+4HM2BU*+3HM2BU*+4HM.BU*+4HM2BTZ+4HM2B XMU*+3HM2BU*+4HM.BU*+4HM2BTZ+4HM6AUJ#8?<3?'?"(7D,```!F6&CZ9YB1 XMP$XMM-R6FZ:=F)BLF)F6KY::E;&4FI6SDIJ5M)&:E;60FI6VB:^5MXF?E;AY XMGBE;EIGY6Z69^5NFF.:5NUF..5O%[#EY70E\Z9RYZ\X[BNF)2:K@821$```` XMB'=L^&NB7:<-CW+6]TU/=M+WC0]ZSGS,]^RF%YR5)YR&-YQU1YQF5YQ59YQ& XM<'G#5R>,)G)YP5='C`9T>;[V=GF\]GAYNF>GFY5[>;AGQYMU?7FV9^>;57]Y XMM&@'FS6">+)H)YL5A'BP:$>:[VAGFL]HAYJFBGFI6+>:AHQYIUC7FF:.>:59 XM!XI&D'FC62>*)I)YH/:4>9[VEGF<:8>9M9EYFFFGF96;>9AIQYEUG7F6:>>9 XM5:!XE&H'F36B>))J)YD/:D>8[VIGF,:H>8M:EYBFJGF)6K>8AJQYAUKGB&:N XM>85;!XA&L'F"]K)Y@/:T>7YK9Y?5MWE\:X>7M;EY>FNGEY6[>7AKQY=UOGAV XM:^>75<!X=-9R_8</VE_</]X0_H$]2````']L;?=JMI7?H=:GT*W+EI.6QI6; XME<*3H9._DZ63NY.ID[B3JY.UDZ^3LI.QD["2M9*NDK>2JY.YDZB3NY.F^3O9 XM.DD[^3HI/!DZ"3PY.>E,.4G)3%E)N3QY.:E,>4F/E,F4EOE,N4E/E,V4DI7- XME9&4SY20^5SY6)31E'^5T959;1EDXI73E3EM.6+BEI!;=9"6+Y616W61E1Z2 XMEI'!D:7Y%;=9&6\9616W61E2EI!;=9"6+BEM.6/Y73E4EM&67BE=&5?BE<^5 XMD)3/E)&5S962E,V4DY7+E924RY26^4R928^4QY2:E,64G)/%DYZ3PY.?E,&4 XMH)/!DZ*3OY.DD[V3II.[DZB3N9.JD[>3K).UDZ^2LY*RDZ^3M).MD[>3J9.[ XMDZ63OI2AE,&5FY7%EY.7RJW0I]:AWY6V<1M+````<69L^VNI39;7XH#5XH+3 XMXH31XH;/XHC-^*R^*,R6&'R/4H?'8X?&]4A\5EA\16A\17AL-GA\)8"'PE@8 XM;!:!A\!8*'P%@X:_]82'O6A8>\]8:'NVAX>Z]8B'N6B8>X6*A[A8N&MVBX>V XM6,A[98V&M6C8>T6.A[18^&L_60A[%I&'L/62AZ]I.'KO64AZUI6'K/66AZMI XM>'JEF(>J69AJEIF'J%FH>H6;AJ=IN'IEG(>F6=AJ7UGH>C:?AZ+UH(>A:AAZ XM#UHH>?:CAYY:2'GEI8:=:EAYQ::'G%IX:;:GAYI:B'FEJ8:9]:J'E_:KAY5Z XMN'E7K(>3@*R'DH*KB)"#JXB/A:F*C(FFC(B/H)&!XYB5JX"&E8F"AH`V3@`` XM`&U>:/EG+I$!%(T8-]5RXVUV+F794`0PYUNUI^D<6GYUNU`%2>==N2Y-EA;7 XM8HTX+I$!,8@V4````'MN:/IGF(PX`!@).9N9FAE[F7I):YEJ;MZ5N96FE[>7 XMI)FUF:&=L9V3X[69QI.8F9B3F'$B4@```'9C:?=H'63BUTV$BJB56*KHYHFR XMBFBK.(>*M(:`BK6$@(JV@X&*MH*"BK:"@HFV@H**MH&#BK:`A(JU@(6)MGA8 XMJU>&BK5H>*M&AXJT>'BK1HB*LVB8FS:)BK-8J*LEBXJQ6,B;%8R*L%C8JP6- XMB;!8V*KUCHJN6/BLJ)RHK*BLKXK*BLJ*RHG*BLJ*RHK*B<J*RHK*^*RHG+B, XMR&S87/A-""TH#2@--]-]-]-]-]-]-]-]-[!99[%95[)92`LEDX"R:2@+-9-[ XM19)[59%[99![9H][=HY[AHU[AXQ[EXM[IHM[IXI[MXF`NH"(@+N`AX"[@8=[ XMN"AGO(*%>\@X1[R#A'O(2#>[AH)[J(@7N8J`>VCG>OEFU5UDUDXM==9`H))3 XM````/#U3^T+)MLR_Q<3`R;RSL+*YLKB;BKYK>L,;>M>=B-B=B-F-F-F-GXV8 XMV?C9C9G9^-F=GXV>2=GBK8L-?['6LM:RU;/4M=.VT;C0N-"YS[K.N\V\S+W+ XMOLN^RK_*O\J_RK[+OLN]S+O.NL^XT;?2M=2SUK'7^PV/K9G9C9G9^-GXS"L( XMS&:<VYS[;2L]>;ZPI50```!_;&OW:L60')TL4!3%S,K>RLG-VLW&T-C0P]/4 XMT\'5TM6]?0UZV,[8G:S-I_W,K<7"K&R,:L)+Q,3&Q,2SG)P\3#R9*,S!Q,', XM@GSL'"P<YR;0P,+`T&%M+`P,#2P-.\"].]6ZO5K6JJUJUKB]:M>HK743V*BM XM@][Z:@-_I*`Y^4D#OCDI`]X\8#_EQ`0>`9P@0<0#_&`[S`*N,!@!S'PL?0#! XM*E4```!V8VGW:-O6T-8"/C`F`QV@0M0$;2!([-`$;6`]`2`S`:`L`@`FU"T" XMU`(-)]!](!O1K0K1`7T-#0T-`!3-+0TL`1S4T-3-[-70U<V\U]#7S8S8T-C- XM;-G0V<U,VM#:S2T-K0VM#0T-O0V]"]#<T-S0G1W-#<T8T-W0W=!_T=W0W=%? XMT=[0WM$_TM[0WM(M'?T-_1'HTM_0W](='?T-_1+]+>T-[2/]'>T-[17]'=T- XMW1?0W=#=T(T=S0W-&=#<T-S0O0V]#;T-#0VM#:T-+-K0VLU,V=#9S6S8T-C- XMC-?0U\V\U=#5S>S4T-3`$<TM#2P!30T-#0T`%]&M"M$!O2?0?2`@U"T"U`)@ XM(`+`&@,P$@/=8$;LT`2-($;4!"V@,>,"8"/6T-;;<0=7````?VQI]VB4BX6+ XML>.KOX_0B=2'UN@X6IAIB%F888F6A9>;E866BABI2%E8IH>3A92'@X>2A9.' XMA8>1A9*'AX:1A9*&B?AI"%D8:+^&CX60AHWBA8^%D(6.^&CH6/AH_H2%CH6/ XMA9"&C86.AI'DA8V%CH63XH6,A8V%E82,A8R%EOA8N%C(67A(N%BX68A8J%BX XM69A(J%BH6:A8F%BH6;A(F%B86<A8B%B82>A8>%B(6?A(>%B(2AA(:%AX2BA8 XM6%AH2DA82%A82FA8.%A(2IA(*%@X2KA(&%@H2MA7A8"$L8585H6SACA3AK>C XMNY_`FL63SHG5Z$A=:'U(G0C[_CJ[&+A8N5"1.E@```!V9VOY:L&G`6L]R[U< XM'0J*&HRZ:KIL:EL:7#I+6DP*2YI+RDO:2YI+^DMZ3!I+2DQ:2QI,>DKZ3)I* XMVER:6KI<NEJ:7-I:?Z7/I:6ET:6CIM&FHJ73I:&FTZ:@I=6EGZ;5IGXZ;7IE XMI]>G3J"FV:9*?7IUXZ;7IGXJ;5III=6EH*;3IJ'BI=.EHZ71I:6DT:2FI<^E XMI_I,^DJ?I,VDJZ/-HZWZ/+HZ^CR:.QHLFBLZ')H;2BQZ*UH<>AM_H<6AN:#% XMH+OZ##H+V@P:"_G!G!C!C"F_G#B_C%>_>N6IB]BIH*I[UZI16IB[BI4O6J>[ XM>J4EJVNVJU):QKEJQ3]:MKEJM46L6Y6L5%K&MVK%1JQ;=:QE6L6W6L5FJUMU XMJV:*I+=*J&^WM;=^2VM;:+:UM:"UM;6@M+>T4&DD60```(AW;/AH#^\=X_W% XM_:</V'+6='C`5U>;YG9XOE=WF\9X>;M7EYNF>GFY5[>;AGQYMU?7FV9^]YM& XM@/>;)H)YL&A'BP6%>:YH9YK5AWFL:(>:M8EYJFBGFI6+>:AHSWFF:.]YI&D' XMFB:2>*)9-YH&E'B@65>9YI9YG5EWF<:8>9M9EYFFFGF96;>9AISWF6:>]YE& XMH'F2:B>)):-YD&I'B06E>8YJ9YC5IWF,:H>8M:EYBFJO>8AJSWF&:N>81K!X XMA%L7F":R>();-Y@&M'E_6U>7YK9Y?5MWE\:X>7M;EY>FNO>7AKSWEV:^>71L XM!X=%P7ER;">')<-Y<&Q'EEQ7E6QGE%QWDVR'DER7D6RO?LQ\SO>M#WC2]VU/ XM=-;W+8<-I:*A8%H```!65&_Y;,^R`8N@$<#<Q-FQFRU:MK#2B[K/B_K,?"K* XM?$K(?&K';(K%;*K#;,G#;,K!;.J_G,L+ZPRZOK'*L+RSRJO/L\JPNK3+JZM, XMNPN?L\RPN;+-L;FPS["ZG0L+Q=*P`>Y['P'++,LKBRR+FULL6_LK+"P[&RP+ XM2:JROK*UB+.]L+MGL[NPOF:SNK#`9;.XL<)5L[>PQ5.TMK#&4[.UL<A2L[2Q XMR5*SL['+N;*QS+FQLLVWL;+.M[#[+/MZLM&UJRTK6;/2M9LM.TG[/3M(L]2T XMBST[2+33M(^SU+.+33M(^SU+.+34LXM-.SFSU+.;/4LJL].SFTT[*K/4LJ^S XMT[*P^STK*QLM.QLOLM*QL[+1L;7['0L;:QS[&WL<^PN;'-L+JQS+"\L,NQO+ XM'*L+ZPR;#`K(L,&PQJQ+##L,:L*PR*P+#*J]L,VKJQT*MK'3LIL]?%V\'?O` XM%K/4<-)<````?V*"\F;533?1@LZ$S(;*A\F)QXC(B,B(R(C(B,B(R(C(B,B( XMR(C(B,B(R(C(B,B(R(C(B,B(R(C(B,B(R(C(B,B(R(C(B,B(R(C(B,B(R(C( XMB,B(R(C(B,B(R(C(B,B(R8?*ALR$SH;-A\N)S(C,B,R(S(C,B,R(S(C,B,R( XMS(C,B,R(S(C,B,R(S(C,B,R(S(C,B,R(S(C,B,R(S(C,B,R(S(C,B,R(S(C, XMB,R(S(C,B,R(S(C,B,R(S(?-ALZ$T(+2?54`F?UCV!#.\=@0<-%>````?V*" XM\F84UGTH+0A,Z&S8?+B<R(S(C,B,R(S(C,B,R(S(C,B,R(S(C,B,R(S(C,B, XMR(S(C,B,R(S(C,B,R(S(C,B,R(S(C,B,R(S(C,B,R(S(C,B,R(S(C,B,R(S( XMC,B,R'S8;.A,R&RH?)B<>(R(C(B,B(R(C(B,B(R(C(B,B(R(C(B,B(R(C(B, XMB(R(C(B,B(R(C(B,B(R(C(B,B(R(C(B,B(R(C(B,B(R(C(B,B(R(C(B,B(R( XMC(B,F'RH;,A,Z"T7TU`)^M8]@0SO'8%("E\```!+2P4`W@\@L1UA````:5M$ XM^4+9P`+L@"C.`CT0(,)\`!S`PJ`:O&H!:\FLQ,B\NLIL6\V\EL2\^\A<2]&L XMA<.]*\9L*]2\5L'`U+Q5P<#6O#;`P->\-KP-B\)KP=C`P6O`VKP5O!VKP&K! XMV\"VK!V\"FK!W,"FK!W;EJP=ZY:L'>N&K!W[AJP=^W:L+?MVK\$!"V:L(!"U XM:\(!"T;`P0$<`VP,$!'`)L'!`1P!;!P@$<`6P<$!+&POP0$L7#P0$L3$P0$L XM/%P0$L+&P`$\''_``3P,GBL!2\G``3O*L!'!RK`0PLJ]_#R[W<3+O;QLR]ER XMO!1ZUX.\!7O4AJP%B]&7JVFL^:J7J\JL"I;!K&O#IVP\"L+&E7QM3)Q\G/SL XM3,RM+!TL':BPH8YB````7%F*_&L!.Q`>N`&+T!3!`0L8L-Z;2=N;>=B;J=:+ XMV=1[^M&,&=!\.LY\2LU\:<Q\>LI\BLE\FLELJLALNL=LRL9LRPQ7S+#%;-L, XM1LZPPWSK##;.L<)L^QPFS[#";0L,)L^QP6T+#";/L<'VT+#"70L,)M"PPFS[ XM#";0K#;/L,-<^PQ%SK#$;-L,5KFT6L9;?%QUM<7(:TQ<EK1["RREM6L+3)6U XMQL=K;&QFM[HJQ5NK1ZQ%T+#";1K";1L,'UT["_;3L+]M2POO75L+WVU;&\]= XM:QN_;6L;M=>QNUUK*Z]M:RNO77LKGVUK.Y]=>RN?;6L[EM:RNEUK.Y]M:RNF XMU;.Z;5LKI]2SNHT[*[C3L;R-*RNYT;*\K0L;VL^RO:S[&]L<VQOK',L;]2;* XML<!3;(L<!C;'L<%D;%L<)6;#L,17;!L,1H>]L<5IBZL,=;";6RR%LK";/):S XMQ,MK6_SEN;G16]L=3V`H]0*/8"CU`H]@*/4"CV`H]0*/8"CU`H]@*/4"CV`H XM]0*C`J"`V&,```!456/^0J&2SIBP.<G:U9F@JVF*.I:6IJ=I:HIFE*ND:4K: XM-I.OH6D["A:2LI]I*8DI>?:1E9F5G6D9.?DYQI&1HY&;:1D*:1FFD)"HD)EI XM&*J)EI"*R)=I%ZYY=I!Z^)5I%K%Y5I%K)I1I%K-Y-I%K1I-9);5I)I);99)I XM,[=I!L=I!LA8;)9VR6=<IF;+5FR_56S/8VSE-<_U)L_U%M!171^2T>*1TN*0 XMT_C4XGU>)M9=;C;5XFU>-]3B?4^-3WU/C4]]3XU/?4^-3B?5]M5]5M==@JJQ XM%60```!(0FWY:]^P&,4!+*WLW<MZV*P8UIQ7U(R&TXRFT8RWSXS6SHSUS9SU XMS)T3S9`<^0'.*0'.2@'/L!O``:P0&<(!C#`7Q0%L4!7&`5QP%,<!3'`4QP%, XM@!3'`4QP%,<!3'`0R]W.VM'7P2Q=6VQ-.YQ-&[P\_`P</-O$PLR\;"RKR,') XMO*P,C`R[Q\#-O%P,Z\3`T*P\'1G#P-*<+!TIP?P=2,#!U8P,'6>_P==Z_!V' XMG"V&K\'8>?PMAYP=EJ_!V'G"V'GBP=AZ_!UWO!UVP,'6?`P-=\#`UGPKUGPO XMO5?#P--\6]-\6])\:]%\B]!\B\]\J\U\RLQ\ZLI\^\B-"L>-*\1]:L&-C`>M XMO-W\H!+&`8O6L'1E````0C5#^$'7Q=/+S\[-T,K2RL37PMG"VL':P=O!V\#< XMP-S`W,#<P=O!V_P=O!V\+;P=O"V\';_"V]^>,!&,';PMOFP=SBP-[[WN+`WO XMO?^]^M^]^@$*W[TSF]!IK/>KRYP*R*PKP[QL",')TLW.TLC9P,60U68```!( XM18OY:\$=E-;D75;5XEU_764Z7$L,&QP;&^H*)[RBH8N[6Z@JRZA*JYB:2[C2 XMC2?2C2C2C2C2C2C2C3?3?3C2C2C2^-*-*-+XTHTOC2^-+XTHTITHTITOC2^- XM*=+XTITOC2^=+XTN.=+XTN:=+CH-'Z'1H-'Z'0HL^CSZ/.I,ZDS:7,ILRGRZ XMC)J\>NQ+#"LL"TO[6]M[RWN[B[M[VUO[/!L<.NQJS(J<RFS:3/HM#Z'1^@TO XMG2XHTOB\2I>]:FB]>DC`>AC"H&C%J\>HRZ70BQ#`^&<```!23&/[0M"`$<V] XM#:UM;3U]K3UM/>T'2M&HNV>KG0JEFI?4J&FG?6MFNE?8IFND?9M&RR?;I&RQ XM;=I%T-7=HVT-3>LFT-/?LET=(!"_%M#2`1L5T=$!*Q71T`$]30T0$M70T`$[ XM'UT<`4LCT<`4S6P!3-;[`5O6_`%,UOL!6];\`4S6^P%;UOP!3-;[`5O6_`%, XMUOL!6];\`4S6^P%;UOP!3-;[`5O6_`%,UOL!6];\`4S6^P%;UOP!3-;[`5O7 XML!3->@%<V(`6O:4!BP,_P#/[`S_`,_L#/\`S^P,_P#/[`S_`,_L#/\`S^P,_ XMP#/[`TH#:`.5V;$E:````$Q";?EKWI`:P@%L8!+*WK6=R:C:FYUZP8UJPXU* XMQ)TJQHT:QYSZR)SJR:S+RIS*RYRZS)RKS*R+S:R*SJQ[SJQKS[Q,#/O$O0O# XMP-"\.]&\+`T;_!P-*_P,#3N\'3N\#4NL'4NL'3P/G!U,"<#5P/C!U<#B?!U< XM%L+5P6P=;!;!U<%L+5P6_!UL%?PM7"7!UL%@(%\"%?`@7\+5PE_!UL%L'5PE XMPM7!;!UL%L'5PFXL'5P7XL#5P7_!U,&,#5P)P-3!G`U,"L#3P:_`T\"_P-+` XMP+TL#"K2P,+ZT<##K0P,2M"\6L_`Q:S[QYSKR*S;R*S+R:R[RYRZS)RJS9R; XMSIR*SYQZT8QJTIQ*U(PZU9P9V(P)VHFMR5K?R@$L8!7#`:G=L']I````.BM$ XM]T+&79C5K5O3_`T_O3_`T_O3_`T_O3_`T[T_P-/[T_P-/[T_P-.]/\#3O3_` XMT[T_P-.]/\#3O3P-/`RT2\MBP,MBP,M3O+8L#+8L#*8[RV+`RF.\MCO*9+R7 XM2\AUK(=JQW>L9XK%>IQ'NL&,&:G$EKQLO)R,W$T:S+#Z:@```%Y01/="QE`N XMC9C-K5P<R]+$RL#0Q\G`SLG)O.RLF\R"PLC`RW3"R,#)=L+(O)=\')O'><'( XMP,9ZP,G`Q6P9R[Q6Q%S;PW`2P,)P$\#!8!6\!P%KMP%L"F`8P(<!FX<!JV<! XMO`2`',`H`>L9`?QP(-`!C7`1VM[=VL"<O8P,/'UKR,35O*P]/`S,+2P,[!T; XMT,#1O0P<_\#1P,^].\^].\5%_`T[Q&]+U+Q%3\#3P,-DO4O$5;U+PV3`U+PV XM3`U+PU6]6\)EO5O"5<#5O!9<#6K!5KUZP&:]>K9L#8FV;`V*EGO:F&B]N5>; XMW,>JW\3`@!'!PU`6C#"1`FL```!?3VSW:JF=NDUZ;6I]BDV:38I-BCV*38H] XMBDV/H]GZ/9XJ/9XJ/9^CV>*CV>*CV?H]GBH]GBH]GZ/9XJ/9XJ/9^CV>*CV> XM*CV?H]GBH]>EU:;4J-*IT:K0@:/.@J/-@Z/,A:/)H%H\B@>CQJ"*/%H)H\2@ XMH:/"H**CP:"CH\"@I:.^H*:CO:"HH[N@J:.ZH:FCN:&KH[>AK*.VH:VCM:&O XMH[*BL*.QHK*CKZ*SHZZBM*.MHK:CJZ.VHZJCMZ.IH[FCIZ.ZHZ:CO*.DH[VC XMHZ.^HZ*CP*.@H\&CFCPJ-Z3$HUI<2C6DQJ,Z3'HSH\BD*BRJ,J',HQH,VD&- XM"B)M*@&Q"FP```!B6&/[0LY0-HVEUZV(UKUJU/P-6]3[UKT_P-7`T_O6O3_` XMU<#3^]:]/\#5P-/[UKT_P-7`T_O6O3_`U<#3^]:]/\#5P-/[UKT_P-7`T_O6 XMO3_`U<#3^]:]/\#5P-.]:]2]:\),'\#5P,%L#`U;PEP;UKPEP/P-7`P6P,#4 XMP,)<'`T\'"7`P=/!P6P,'2PL%<'"T,/!7!PL_#P6P,/.Q,%<'$S<3`;!Q,MQ XMNVP<7)<ZIL'&R'2J;!Q\6&J&PLG!B*=L/,>JI7PL`L["Q\/`/,Q,3%M\;)P< XM:[O/C'_``P^P,/P`,/L##\`##[`P_``P^P,/P`,/L##\`##[`P_``P^P,:`S XM@#90-+#7;0```%!,0_A"R'W5P,;<A<O:I,S:OSS-G`/+VKP<+:O#_`V<##O: XMO$O9P,/`V<##P-F\2]G`Q+V;Q/P-C`Q/O8P,3\#7P,6]?`QKU[QL#6P,;`UK XMQ[UL#'O5P,?`U;R,#4P,B]6\F]2\G`T[RL#2P,J].\N]*\O`T;S,#0O-O0O. XMO/O.P,^L_`SJT+SJT;S:T<#,K2P,NM.\J]2\F]3`R*UL#'K7O'K8O%K9P,2M XMK`PJW+PJW;P*WL"J`0P(L!&WL!.TP`%,`L`!;+`9R0&\8!W$`@P0)(`GD.IN XM````2$.+_&N_'734Y%TVT^)=7UU%&GPK"\M+BXM::C>SJ:&+&D&NL:0ZRPI& XMJK"DH*2RH\NCRJ3*^DRJ3*I,KZ3*^DROI,NCR_I,OIH\WBH\VCS:+-HWI[6C XM*MM+VTN[6GHVMZ2C>UNK2ZLY.NM(FGMHSYSYSXT(T)SYT(T(T(T)T(T/C0^- XM#XT)T/C0YIT/H,^ASOHLVDS*3+I<JGR:G'JL6MPZ_!L;^SOK.]M;RVNKBYN; XMFXNK:[MKRTOK+`K\.MQ*O'J,JES:+.H<_Z#0^=#XN$JHN6J(N8I8O(HHOJ%X XMP:W$J<BFS9K`L,=O````3T5$^4+9P`&,@!+.W=+9PGP-;!P;T[QJT+R:SKRZ XMR\#-K)O/O'O1K&O2O$O4O"P-2\'`U;P,#7NL#8N<'8N<#9P'P=G`]L':P/7! XMV\#TP=S`\\'<P2PMS!\L'=P?'"W,+QP=W!+!W,(<+<PAP=W!+!W,(OP=S!/\ XM';P4_`V\%<#:P7O:P7O9P8O9P)P-?`N];!N];`P+U<#"O3P,.]+`Q;T,#'K/ XMP,B\V\N\N\VLF]"\7`TZPL#6P(P=K1WLT!+(`9P-@*#3<````%Y80_Q!N@%K XMD!JV`=M`'K(""Q`AL`(;`"*@(J`AL+*S6V7&L+9;9<6K=K5L6+EK5L2+I;9L XM.+IK9<.+MK5L-[QK5L)[QK9L)KUK9L%KYK5\%KU[5L-+YK9@$&MFWWMFWWM7 XMWVMGWN)[9]U[=]U[:-SXMHW'MXV_BWC:FWC:^+B-F;B-F+BM?YN*UJN*UIN: XMU:N:U?JYL-.KJPTZN[#1L+NPT:O+#0^PO+'.L+VQSK"]LLRQOK',L+^RROL; XM^RROL,&QRK#"L,JL.LR,6,Y<A<"Q#W$```!42V/[0@$[`@Q@&\H!?.`3P&L! XM"\"=ZL.MJL:MBL>M>LFM6LNM.LRM*LV]"L^L^M"\VM&\R]&\N]+`RKT[R;U+ XM_(O4P/Q[U<#&P-7`QKUL#%P-;`Q;U\#%O6P<3`UL'\2]?!_#P-;"_#O7P</\ XM#6PL.]?!Q+UL+#_`UL'$O6PL2];!Q,#6P<3`U<'%O6P<6]7!Q<#5P,;`U,'& XMO5P,?`T\#'P=+`R,'2O)PM#`R<+/P,G$S<#*Q,S`R\7*O-L6R+S<`7QKSL`G XMP[T+1\#`T;67P-+`?,U,",G6N\78O"K;_``C^P(_P`(_L"/\`"/[`C_``C^P XM(_P`(_L"/\`"/[`C_``C^P)*`F@"E0)PL,5R````7E5#^4'6`5U0&=$!W.`? XMS`(<H"/)`CR`)<<"7&`EQ\><7;Q,3#V</(P=C"R\'6P<[`U<'0O5P-'`T\#3 XMO2P-2]'`U;T<#6O/P->\[\#8O-_`V;S/P-J\R]N\O`V[R[W+RL#;P,K`V[R_ XMO<O*_`V\#*O<O+^]O`R[V[S+VL#,^MN\WZVKSOK9O/K8O0K7O2K6O2K5O3K4 XMO5G3O6K2K8G1K9K.O;G-O=G+H!"<F@$IQJ`5K!P`&+?!`;T`'\P"/'`JL!N0 XM<W,```!)3T/\0:O.JM*GU:76H]BBV:'9H=J@VJ#9H:.G;`H:IK^@K&OXK7OH XMKGO8KVO8KWO7L'O'L7O&LGN_:R>]2S?=^-U]WCC<XHW/G<C<XIVZ#;XIV_H- XMN=OBH-JAVN*@VN*AV>*AV?HMGBH=J@W(WFQPL.5T````65!$^T+%@!%<?"W) XMQ,3:O!R-?`P(6=7"IWK4PI:IU,*&NM/#9L"M/#5\"M/#5L&]+#1L*]/"1L*] XM3!-L.]7`-</`UK\FP[V)+VP\#9@EP\#:@6P\#;<6P[W&+UP\#<8SQ+W6R<#= XM;)P-U<G`WER<#=;)O>;(_`WER;WFR,#>;(P-Y<F]YLC`WFR,#=;)O>;)O>7) XMP-ULG`W5RKW6RKW5R[W&R_O;;,O:;-K;;-K:;.^]AL^]=M"]9M*M5M.]-].] XM)]6]!]>L]]B\U]J\M]R\AP$+Q(`2PID!;1`9S0'<D"3!UL%K=0```&%5BOAJ XM`N0$/B4$+V!"]00O8$+U!"]@0O4$+V!"]00O8$+U!"]@0O4$+V!"]00O8$+U XM!"]@0O4#W2`TW`*P$P)0&`(=,F/1`=T69\`9RENP%<Q="@$LT&T:`0O2;3G= XMO475G;O576G9K6;6K6O7;7K4O879K2O979K1O9;:K+VFVJN]M=NYS;7<J;VV XMW*B]QMRGS<7=M<W5W;6]UMVTS=;=M+WEWK/-Y=ZSO>;>LLWFWK+-Y=^RO?7? XMOQS>;>SQO?7?LOO>;>P<WEWL*]]=["O>;>L[WFW<.]Y=ZUK>7=Q:W6W;:MUM XMRWK=7<Q[W%W+FMMMNZK;;:N[VEVKT*VEV;T:V6V+TZV&U[U9V%U[UJUUUKV* XMU6U;VJU&T[W:TUT[WZTET;`2O&S`%;IIT`&,A7T0'-%%+4`@`8`E`3`LW`,] XM(#WV!"]00O8$+U!"]@0O4$+V!"]00O8$+U!"]@0O4$+V!"XE!#0"L(%'=@`` XM`&9:8OM"E)'4E\,Y&;OU>>O6:$E;IU=Y6X=7D)6V=FDI6T=FDY:RAFE)6R=U XMEI6P>026E:]Z65K7II6L>HE*MZF5J7JY2H>LE:9ZZ4I7KY6C>QE*)[*5H'M) XM2?>UE)Y[>4G(MY2<>XE)M[J4F7NY28>]E)9[Z4E7OY24?!E))\*4D7Q).0?% XME'?&E&?(DU?)E#?*E"?,DQC,F\V:SYC0E]&6T^*4U>*4TY;1E]"8SYK-F\R! XMD\QRE,ISE,EUD\AVE,9WE,5Y"3Q'D93">2E,%Y24OWE92^>6E+UYB4NWF92Z XM>;E+AYR4MXG)2W>>E+5Y^4M'H)6R>BE+%Z.5KWI92N>FE:QZB4JWJ96I>KE* XMAZR5IGK96E>OE99)!["5EE=[*5E&:+*6DV9[25DF9[:5D'5[B5=U>ZE4AFO9 XMYUOYN1/#E]21E+&C=P```&MBBOMJ`J,$)00/8$#U!`]@0/4$#V!`]00/8$#U XM!`]@0/4$#V!`]00/8$#U!`]@0/4$#V!`]00/8!:-9<Q<?"TURIQ,31;)O!R, XM]LC`P(6<Y<C"IWK-7(PI:IS&R,*&NLMLC#9L"LM<G#5\"LM<G#5L&\ELG#1L XM*\ELK"1L*\E<S!-L.\E<W`-</`R&SK)L.\EL^3;#O)70DFP\#)71@FP\#(;1 XM@EP\#);1@6P\#)73<6P[RETV+UP\#);38SQ+REU&R<#*74;)P,EM1<G`RFU% XMR<#*74;)O+74;(P,IM1<G`RFTVR;RUU&R,#+747)P,IM-LF\MM-LC\#+73;) XM^\MM)LG\#+72;*O+;1;+O+;0?+O+71;,O+70;-O*;/?-O*;.?.O*7/;/O*7. XM;0O);-;2O(;,?2O(7,?3O(7+?5O&;*?6O&;(?9O%7(?;O$7'?<P,)L6-[`P6 XMPX`2O`7#@!3!E<"0&,)6J@&L46;``>V@(]4"C/`QQ0./4$#V!`]00/8$#U!` XM]@0/4$#V!`]00/8$#U!`]@0/4$#V!`4$)`'@L0!X````9E]$_4(#E<HP(YQU XM`AO%8"#`Q'`?PL)P(,+"8"'"P7`AP[<"+#M@(\.F`DPZ8"7"E@)\&'`HP(8" XMJ_=@+)?V`NAF`OAF`P=E`Q9FV$V69M=]=F77C796UIUV5M:==676K75?;6K6 XM9?76O65?;6K696UJU69=:M9F76K5=EUJU6==:=5V;6G59VUIU'=M:-5W;6C4 XM>'U(U(A]2-.)?4?4B7TXTXJ-&M&:C0O0FYSL#/G!C-PLR\&<O#R[PJR,;)O# XMO&R,;!P\#"S,+#Q<*-&<7&V1VL?9+8R=<]?*UDULS4;4S=*-//T*T-+.P,[4 XMR\/+V,?'Q]S#RL0!"M"=<-`.>0```"0%D_%N$Q`"UQ,0L%MZ````0"N3]F[8 XM?4O2C5?6?7?7;8;8;8?7]]?B?7[??7XGU_?7?8;8;8;8;7?7;6?2O4?8O:?; XM;:?:;:;:;:;9?9]]GB?9[??9XGV??9?9;:;:;:?9?:?:C9O8<+A;>P```$`K XMD_9N?8O9C:?:?9?:;:;:;9?9]]GB?9[??9XGV??9?9;:;:;:;:?:;;?:O8?4 XMO2?6;7?7;8;8;8;8?7]]?B?7[??7XGU_?7?8;8;8;7?7?6?5C2O4?8"0I'P` XM``!_;$CW2:R@WRJJ?:.HJ]=:6PU%H[/36BMM%:"ZSUF\SEB_S%?!RF>EH*G) XM9J.GILAEHJNFQ6:@KZ7$9:"RI,)UBVI,!EBXI+YU>[H[R$B\H[MU>^I+B%;` XMI+:%?"I+*@5L2EKZ!FQ::KHE;(IJ>C9LFIH*5VRL%US+^%SKR5S[J@71MJ)= XM.SHUU+"E77JZ@]JGJRWJ``P:`N,#`0`0KQ`P$&`A?0```']L2?=*'],0W1TS XMT0"I3],0W?'3`*E-$],0W?'3$*"M?@```$`QD_EN$]+B71;1]=%M'UT6T?71 XM;1XET6T?71;1]=%M'UT6T?71;1XET6T?71;1]=%M'UT6T>)=%M'UT6T?71;1 XM]=%M'UT6T>)=%M'UT6T?71;1]=%M'B71;1]=%M'UT6T?71;1XET6T?71;1]= XM%M'UT6T?71;1XET6T?71;1]=%M'UT6T>)=%M'UT6T?71;1]=%M'UT6T>)=%M XM'UT6T?71;1]=%N+172,0L51_````@&UP]VS*O?O<Q]?'ULS1S-+0S=#.U,G4 XMR];'ULG9P]G'PIQ,'$G"Q<#$P;P<3`P[R,"<#(O"G,M[S)P9SK6\Z;G1E9T9 XMJ-.3G3B8U9&=6(C6@8UH?XV,/8A8VL':A(V[VX1]R]QSC<O<@HW9W8+WWIWG XM)]]]]Q^-]]_#`14!'"`20!'"Z`0\/P08\7!!<O@#^#<#]T^`/85P/7;X`[A_ XM@#F)@#>*D#6;@#6,&`,XPI`QG#@#&,6`+XQI`MG'D"N<GY`IG+D"><V0)9SY XM`CG1D"&=*@'ZTZ`=K5H!NM>@&:V:`7K;H!6MV@$ZWZ`1H!&M^@$ZW:`5K;H! XM>MF@&;U;`;O3L!V]&P'[S[`AO-L".\NP)JR:`IK'H"NL6@+:PZ`OK!H#&KH# XM.;D#69D#>7D#F'@#N%@#R3D#V#@#^!@$#%!!PP0_P01?L$?Y!)]P2_4!@*!? XMH0```%([B?5JP3W/7:]]CYUK#4^RTK30MLZXS+K*<7%\AR<GQH)RC$@W.,*$ XM=(P'9V>]AW>+J(>(MYEYFSFP>PFJL7L:6PLWL[`;"T>TN;9[:UN'N'%+I[I, XM#@/GVSP00&JB````I)$W]T&]37]1UU#7]1UU'64M91UU'64M91UU'64M92UE XM+64M92UE+64M93U5/55-544]9-L0`;X];15-%4TE/34]-2U%+44M12U%+44M XM12U5'54=52U5'54=52U5'5]1UE#6]1UT9J!?HP```%([B?5JP3V^`^?`2Z>Z XM07N'N+6V>VN;1[2P&PLWL[!:L7L:J;![";.9>9MXAXBZAW>+UV=GP(1TC"@W XM.,2"<HQG)R?(<7%\JZS+C.MM"TTOLM2PUOG8]]KUW#P00&JD````I)$W]T%F XM37]1UE#6]1U5'54M51U5'54M51U5'54M12U%+44M12U%+44M-3TU/25-%4T= XM9``;TMI-935-54U5/54]92UE+64M92UE+64M92UE'74=92UE'74=92UE'7]1 XMUU#7]1UTO9#[I@```%))4_Q/)-IMB=:AU*+3I-&FSZC-J<RKRG&ER'.EQG6D XMQ7>DPWBEP7H*6_>BI+YZ2DO'I:6Z>GI+EZFDMWJZ2U>LI;-ZZDLGL*2P>QI: XMY[.EK'M:2K>WI*E[BEIWNJ6E>\I*1[ZDHGOZ6@?!I8?#I'?%I%?&I3?(I1?* XMHQ?,J<VHS*G*HQ?(I1?&I3?%I%?#I'?!I8>_I:![ZDHGO*2D>ZI:5[BEIWMZ XM2I>UI*M[.EK'L:6N>PI+!ZZDLGK*6S>KI+5ZFDMWIZ2Y>EI;IZ2DO'HJ2^>@ XMI;]XI<%WI,-UI,5SI<9QI<BKRJG,J,VFSZ31HM.AU)UVVDV0D/NH````4DE3 XM_$_:39;7G4H=.BT:3/ILVHS*G*J\BE%\:E-\6D5\.D=\&EA[^EH'OJ2B>\I* XM1[JEI7N*6G>WI*E[6DJWLZ6L>RI*Y["DL'KJ2R>LI;-ZNDM7J:2W>GI;AZ6E XMNGI*2\>BI+YZ"EOWBEP7>DPW6DQ7.EQG*DR'&CRJG,J,VIS'&CRG*DR'.EQG XM6DQ7>DPWBEP7H*6_>BI+YZ2DO'I:6Z>GI;AZFDMWJZ2U>LI;-ZZDLGL*2P>R XMI*Y[.EK'M:2K>WI*E[BEIWNJ6E>\I*1[ZDHGOZ6@?!I8?#I'?%I%?&I3?(I1 XM?*J\RIS:C/IM&DTZ+4H=:=AMM!!("K````!+2P4`<`\@D&2U````;5I>]ULD XM`50E`44>U'`2I?`0@7`0<GWX*-Z"C>=/C<A8VH:=B7G6F9U)H*#2H*&ASJ&C XMH<RAI:+(HJ>BQJ*IH\*CJZ6\I:ZEN*6QJ+"HM*RDK+?.NLJ_Q,3`R;K0LMJF XMNY!DM@```&U:7O=;NZ;:LM"ZR<#$Q+_*NLZWK*2LM*BPJ+&EN*6NI;REJZ/" XMHZFBQJ*GHLBBI:',H:.ASJ&AH-*@H)U)F=:7G8EHVH7XW(1]Z"C>@HWW)P$' XM'X`0I>U`$G%0%%-`%4&0E[<```!M4&'R5L"[O,"YQ+7'LLJPRZ_-KJK0I]2E XMU:37H]BBV:+9H=JAVJ#;H-N@W)W)W)W8W8W9W8W?C=^-WXWGWOC>?>^-[B?> XM^-[WW_`5$`$%\???^-_B??^-]]_XWWW_C?^-_XWXWIWHWXWIWIWIW:#=H-V@ XMW:'<H=RBVZ+;H]JDVJ78I]>JT\VQR[/*M<>XQ+O`P;L0<)VZ````?V)A\E:B XMKYZTF[B7NY2^DK^1P9",Q(G(A\F&RX7,A,V$S8/.@\Z"SX+/@M"!T('0@=&` XMT8#1@=&`T?@-'X#1^`TGTO@-)]+X#2XGTO@-+H)]/X#3XGT_@--]/X#3?3^` XMT_@-/X#3@-*!TH#3@-*!TH'2@=&"T8+1@M&#T(/0A,^$SX7.ALZ'S(G+C,?! XMD[^5OI>[FKB=M*.O$'"=NP```']B8?)6*NH[2=N)J[E[Z5OY3`QXS+B<R'SH XM;.A<^$SX30@]"#T8+1@M&"T8'2@=*!TH#3@-*!TH#3^`T_@-/X#3?3^`TWT_ XM@-/B?3^`Z"TW_2@.+2?2^`TGTO@-)]+X#1^`T?@-&`T8'1@-&`T8'0@="!T( XM+/@L^"SH/.@\V$S83,A<N&R8?(B<2,D<"1OY*^E+N7N)NTGZZB!PI[X```!_ XM8H+R9J*OGK2;N)>[E+Z2OY'!D(S$B<B'R8;+A<R$S83-@\Z#SH+/@L^"T('0 XM@="!T8#1@-&!T8#1^`T?@-'X#2?2^`TGTO@-+B?2^`TN@GT_@-/B?3^`TWT_ XM@--]/X#3^`T_@-.`TH'2@-.`TH'2@=*!T8+1@M&"T8/0@]"$SX3/A<Z&SH?, XMB<N,Q\&3OY6^E[N:N)VTHZ\`FBU%U4XM=-5M07"GOP```']B@O)F*NH[2=N) XMJ[E[Z5OY3`QXS+B<R'SH;.A<^$SX30@]"#T8+1@M&"T8'2@=*!TH#3@-*!TH XM#3^`T_@-/X#3?3^`TWT_@-/B?3^`Z"TW_2@.+2?2^`TGTO@-)]+X#1^`T?@- XM&`T8'1@-&`T8'0@="!T(+/@L^"SH/.@\V$S83,A<N&R8?(B<2,D<"1OY*^E+ XMN7N)NTGZX`G'U&U4XM=-5=10<!7(````;5HJ]S8?T!"V\='IC+?,7/$PD%?, XM````4C\_]T6PH<:IOZ^ZL[:WL[FPO:V_J\&IPZ?%I<>C_)H<N?S7_/7BT3XM XM,0`OGB'3/BT5_/?\V<NA_)H\>EQ:?#J<&KOZV]L+FSM[:SNJ^_J<:AL`D7O- XM````I)&-]VS5J0/K4#2]`MPP)\D"'/`<TP%Z^GKP$JNSJ]^HNZC<I\&GV*;' XMIM6ERZ72I-&DSZ/5H\VCUZ/*H]NCQZ+?HL6B`1HL.A`5H<&A`7H;^A`9H;V@ XM`=H+N@`?H+F@`AH+>@`CH+:0)9M9`GFSD"F;&0*YL(`MBOD"V:V0+YK(`QBK XM@#.*F0,YJ(`UBG^`-XI?@#F*/X`[BA^`/8GX`_B'!!=_@$&&<$-U^`0X3W!% XM<_@$6"XW!'<?@$>EZD!)I?!'CC%P1W+X!%@_<$5T^`0X5P0W;X!!AW!!>/@# XM^)^`/8H?@#N*/X`YBE^`-XIX`UBHD#.:F`,XJX`QBLD"^:V0+9KX`MBPD"N; XM&0*9LY`GFUD"6;:@`CH+>@`AH+F@`?H+N@`=H+VA`9H;^A`7H<&A`5H<.B`1 XMHL6BWZ+'H]NCRJ/7H\VCU://I-&DTJ7+I=6FQZ;8I\&GW*B[J-^KLZL!*OIZ XM\!?3`<SP(<D"?#`MO0-+4#ZIU:!(S@```$HWC/=KOEUGU)TNL+#2YYU.9];F XM7!BS6SA;.5FS.X55N!#H&X55N#LY6;-8LULXP>)=;E?4Y9TNR+#2ZXG4ZR?6 XMY5V#OZ![SP```$HWB_=KOEUGU)TNFPTN:=3D?6XUP8LULX6SE9LSN%5;@0Z! XMN%5;@[.5FS6+-;.,'C76Y'U.:=+IL-*=1]90/EUGU)TNFPTN:=3D?6XUP8LU XMLX6SE9LSN%5;@0Z!N%5;@[.5FS6+-;.,'C76Y'U.:=+IL-*=1]9;X*"IU0`` XM`$1#C?=LUXWK':M=>WU85].'?1B6T7F,^'K.A['-AK+BS(>RRY>R_+B++*F; XM#+FIS)L5SHW^6=[DG>XJWOG>Y*W?L-WCK=Y+#=K=Y;#<L=SDL-S['<Y+#<^Q XMW.2PW+'<Y;#=K=Y+#=XZW?L-WDK>^=[BK>Y)WN6=^,Y;&<R:G+L)G*^RB,NR XM><OBLGC,LFC-L7C.IXSXE]%IC1=XTW6-6WU[7:L=Z->Q9M@```!208'X=0%D XM`@4!_W`=^`'7`=^-JX?8Q5?5RQC3UM&YP]&</`T(QZSIR9S9RJS(RZRXS+R8 XMS,''C-PL9\["Q8S<3#C.@8PHSG*,&,]SC`^,Z#BYSG2:C.A8F<Z%F)SG:8G- XMAI><Z'EISGB6^<V(E:S7FD^LR)I/K,>J/ZS(NBK,?`HOK+C`HJRWP:+ZRHP: XM&\I\+*_)C"RLE\/*_(C#ROR'Q,K\>,3*QWQ<K\:,7*QGQLK\6,;*Q7Q\K\2, XM?*_$?(ROPXR,K#?)ROPHR<K"?*RL&,JQK!C*HJP7RZ+ZP(RZ*L!\RB^ZC+LK XMI\RSJGS*3ZF,RDJ7S:2HC-I9B,V6IWS::FC-IY:,V8EGSIB5C.F92,V:E'SI XMJ3C.FX.,Z,"2?.G!@GSHPL7-G#Q,V,3#S9Q<+-C'P<R,F\R,J\N<NLJ<V<F< XMZ\6L_!P:T<.;T=;3@<O5=,?7>+VO@!UP'?@!WW`?]0%0@>79````@'&'^6BY XME`%I[>I-BJTZ[/EI26RY.>D\>2I)+$D:B1P9&LD;Z0L)"\BTBYD+:0MHNHM( XMO(LHOHL'PGKGQ'K'QGJGR'J'RGIVS&IFSFI&T&HO;2:@;4:>;6:=786<;8:; XM7:6:;::8;<:77>66;>:54!!91@$&D_4!)9)@$FD5`460:UD*UH6SEJM86Q:% XMJ5=J]95*=F6N:8.G5EK5G"IE9:Q9XJ55:K6@*D9%JUHBI%1:IJ(J146I:D*C XM4VJ5IAHV):EJ8J-26H:G*C4EJ&J"HE):=J5J)26G:D>B46IGHXHI*G>CBCD? XMIGI(HY&F>E:DD:6*9*61I8R)'Z5\F1Z*2,F2HXR&XA6CC(4EI'R%):2,=2:C XMC&8UHXQE3UI'QE1J.,1E6D?$5EI'JBGU9:5ZDI]6:D>H*?9UI6J"GUA:5Z8Y XM]8:E:F*?:06E>D.?61:E>C*?:26F:B.?636G:@.@63:G:>.@:46H:<.A65:H XM>82A:66J:56B67:K>&HVF&K)BD::6OD:A9MMAIQ=A9UM9IYM1J#VTFHFT&I& XMSFIFS&IWRGJ'R'JGQGK'Q'KGPGL(OHLHO(M(NHMI"VD+F+2+R0L)"^D:R1P9 XM&HD<22I)+'DYZ3RY:4EL^NTZK8I-Z>`6E+F0$MH```!./T#Y/QTQ#'[+RPQQ XMTQ!8#>````!R)I//;0`=/MUQ6`[A````<B:3SV_MUI<0`<2P9.(```!R*I// XM;=E==]:-6=.]*]*]*]*]*]*]*]*]*]*]+`T<#2O2P-'`T?P-'`T<'1P-'`T< XM'1P-'\'0_!T/P=#\'0PM#\'0PM#!T.+"S^+"S\//XL+/XL//_"S^7#S\+/X# XM?#SPL(CC````<BJ5ZF_/[<P\_"S^+#S\+/_#S\+/P\_"S\//PL_"S\//PL_" XMS\+0P=#!T,'0P=#!T,#1P-#!T,#1P-#`T,#1O1O1O3G5;8G5O5O5O4P-3`U, XM#3P-/!T\#3P-/!TL'2P=+!TL'1PM'"T<+0P]#"T<+0P]#"T,/0PM#\/0PM#B XMP]#"T.W,,+ABY````'(JD\]OX#?#T,+0Y</0_"T.+#T.+"T,/0XL+1XL+1P= XM'"T?P='"T?P=+\'2_!TOP=+`TL'2P-/`TL'2P-/\#3P-/`T[T\#3P-.]2]2] XM2]2]2]2]2]2]2]2]6=:-=]E06`[P````<B:3YFT`'$[=<6E0#?$```!R)I/F XM;W'MT`'3N&+R````<BJ3ZFU=E]>-:=6]2]2]2]2]2]2]2]2]2]2]/`T\#3O3 XMP-/`T_P-/`TL'2P-/`TL'2P-+\'2_!TOP=+\'1PM'\'1PM'!T>+"T>+"T,/0 XMXL+0XL/0_"T.7#T,+0X#?#"XB/,```!R*I7/;^W,/0PM#BP]#"T/P]#"T,/0 XMPM##T,+1PM##T,+1PM'"T<'2P=+!TL'2P=/`T\#3P=/`T\#4P-3`U+U;U;U9 XMV&U9T[T;T;T<#0P-#`T<#0P=#`T<#0P=#!T,'0P=#!T,+/PL_"S\//PL_"S\ XM//PL_#S\+/_#S\+/XL//PL_MS#SPL&3T````<BJ3ZF_/X#?#S\+/Y<//_"S^ XM+#S^+"S\//XL+/XL+0P=#"T/P=#"T/P=#\'0_!T/P='`T<'1P-'`T<'1P-'\ XM#1P-'`TKTL#1P-*]*]*]*]*]*]*]*]*]*]*].=6-9]==D-@+]0```'(/E<]O XM`(O0V`OV````I*,$`"H`*.!`K_L```"DD5GW4H%0UE+4]3T_4]/U/34]-4TU XM/34]-4TU/34]-4TE325-+U325-)4TE325-*U<+EMNVN\:KUHOV>_9U705L]7 XMSU;/5\Y7S5G,6<M:RES(7<=>R/7,Q=S%W.6\]:SUG16-%8T5?25M-6TE;35M XM)6T[YJOFJ];+MMNFZX<+5S5-14U%345-14U%/54]14U%344]53U%344]53U% XM344]7U/5]3U?4]52UE"AV`O\````3C]`^3\`_"!`K_T```"DD5GW4J%0UE+5 XM]3U?4]7U/54]14U%/54]14U%/54]14U%345-3U345-14U%345'.U<+EMNVR\ XM:[UJOVF_TU735M)7TE;25])7T5G06=!:SES-7<Q>S/7,E=R%W(6\I:S%G,6, XMU8SE?/5L]6T%;/5M!69[YHOFF]:KMLNFZX<;725-)4TE325-)4TU/34]-4TE XM334]-3TU334]-3TU334]/U/3]3T_4]12UE"!8"#^````?VQM]VJ=30;/Z9<) X2S],0W?'3G>E'"<_3$-WQTQ#U X` Xend END_OF_FILE if test 23815 -ne `wc -c <'fonts.lj/S.36.pk.UU'`; then echo shar: \"'fonts.lj/S.36.pk.UU'\" unpacked with wrong size! fi # end of 'fonts.lj/S.36.pk.UU' fi if test -f 'lj.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'lj.c'\" else echo shar: Extracting \"'lj.c'\" \(21773 characters\) sed "s/^X//" >'lj.c' <<'END_OF_FILE' X/* Copyright 1985, 1986, 1987, 1988 Chris Lewis X All Rights Reserved X X Permission to copy and further distribute is freely given provided X this copyright notice remains intact and that this software is not X sold for profit. X X Project: Generic Troff drivers X Module: lj.c X Author: Chris Lewis X Specs: LaserJet driver, hacked from ps.c and lcat.c X X Without font downloading, this is LJ compatible. X Font downloading will require a LJ+, LJ500+ or X LJ II. X X*/ X X#include "defs.h" X X#ifdef LJ X#include "lj.h" X X#ifndef LJF Xchar *LJF; X#endif X X#ifdef PK X#include "pk.h" X#endif X X#if defined(PARTIAL) X#include "pkc.h" X#endif X X#ifndef lint Xstatic char SCCSid[] = X "@(#)lj.c: 2.1 Copyright 90/07/18 16:51:32 Chris Lewis"; X#endif X Xstruct troff2befont ljStdFont[108] = { X X/* Note on X-shift, Y-shift and point scale factor: X The first two are shifts in the baseline position of the X character, and the third is a multiplier of the point size. X If they are zero, nothing happens. If they are non-zero, X they are first multiplied by .01, then (in the case of the X shifts), multiplied by the current points to get a shift X value in TROFF2LJ[XY] coordinates. In the case of point scale X factor, it is multiplied by <currentpointsize> * .01 and becomes X the pointsize of the sequence to be emitted. X */ X/* +-------------------------------- Troff character number X | X | +--------------------------- N: standard fonts X | | S: symbol font X | | D: draw macro X | | n: new font X | | X | | +------------------------ X-shift: scale by deci-point*100 X | | | X | | | +--------------------- Y-shift: scale by deci-point*100 X | | | | X | | | | +------------------ Point-scale X | | | | | X | | | | | +-------------- Sequence X | | | | | | X v v v v v v */ X /* 0*/ {N, 0, 0, 0, "h"}, X /* 1*/ {N, 0, 0, 0, "t"}, X /* 2*/ {N, 0, 0, 0, "n"}, X /* 3*/ {N, 0, 0, 0, "m"}, X /* 4*/ {N, 0, 0, 0, "l"}, X /* 5*/ {N, 0, 0, 0, "i"}, X /* 6*/ {N, 0, 0, 0, "z"}, X /* 7*/ {N, 0, 0, 0, "s"}, X /* 8*/ {N, 0, 0, 0, "d"}, X /* 9*/ {N, 0, 0, 0, "b"}, X /* 10*/ {N, 0, 0, 0, "x"}, X /* 11*/ {N, 0, 0, 0, "f"}, X /* 12*/ {N, 0, 0, 0, "j"}, X /* 13*/ {N, 0, 0, 0, "u"}, X /* 14*/ {N, 0, 0, 0, "k"}, X /* 15*/ {N, 0, 0, 0, NOC}, X /* 16*/ {N, 0, 0, 0, "p"}, X /* 17*/ {S, 0, 0, 0, "\366"}, X /* 18*/ {N, 0, 0, 0, ";"}, X /* 19*/ {N, 0, 0, 0, NOC}, X /* 20*/ {N, 0, 0, 0, "a"}, X /* 21*/ {N, 0, -200, 0, "_"}, X /* 22*/ {N, 0, 0, 0, "c"}, X /* 23*/ {N, 0, 0, 0, "`"}, X /* 24*/ {N, 0, 0, 0, "e"}, X /* 25*/ {N, 0, 0, 0, "'"}, X /* 26*/ {N, 0, 0, 0, "o"}, X /* 27*/ {N, 0, 0, 0, "\367"}, X /* 28*/ {N, 0, 0, 0, "r"}, X /* 29*/ {N, 0, 0, 0, "\370"}, X /* 30*/ {N, 0, 0, 0, "v"}, X /* 31*/ {N, 0, 0, 0, "-"}, X /* 32*/ {N, 0, 0, 0, "w"}, X /* 33*/ {N, 0, 0, 0, "q"}, X /* 34*/ {N, 0, 0, 0, "/"}, X /* 35*/ {N, 0, 0, 0, "."}, X /* 36*/ {N, 0, 0, 0, "g"}, X /* 37*/ {N, 0, 0, 0, "3/4"}, X /* 38*/ {N, 0, 0, 0, ","}, X /* 39*/ {N, 0, 0, 0, "&"}, X /* 40*/ {N, 0, 0, 0, "y"}, X /* 41*/ {N, 0, 0, 0, NOC}, X /* 42*/ {N, 0, 0, 0, "%"}, X /* 43*/ {N, 0, 0, 0, NOC}, X /* 44*/ {N, 0, 0, 0, "Q"}, X /* 45*/ {N, 0, 0, 0, "T"}, X /* 46*/ {N, 0, 0, 0, "O"}, X /* 47*/ {N, 0, 0, 0, "H"}, X /* 48*/ {N, 0, 0, 0, "N"}, X /* 49*/ {N, 0, 0, 0, "M"}, X /* 50*/ {N, 0, 0, 0, "L"}, X /* 51*/ {N, 0, 0, 0, "R"}, X /* 52*/ {N, 0, 0, 0, "G"}, X /* 53*/ {N, 0, 0, 0, "I"}, X /* 54*/ {N, 0, 0, 0, "P"}, X /* 55*/ {N, 0, 0, 0, "C"}, X /* 56*/ {N, 0, 0, 0, "V"}, X /* 57*/ {N, 0, 0, 0, "E"}, X /* 58*/ {N, 0, 0, 0, "Z"}, X /* 59*/ {N, 0, 0, 0, "D"}, X /* 60*/ {N, 0, 0, 0, "B"}, X /* 61*/ {N, 0, 0, 0, "S"}, X /* 62*/ {N, 0, 0, 0, "Y"}, X /*from here on are actually code 1-45, upper half of font */ X /* 63*/ {N, 0, 0, 0, "F"}, X /* 64*/ {N, 0, 0, 0, "X"}, X /* 65*/ {N, 0, 0, 0, "A"}, X /* 66*/ {N, 0, 0, 0, "W"}, X /* 67*/ {N, 0, 0, 0, "J"}, X /* 68*/ {N, 0, 0, 0, "U"}, X /* 69*/ {N, 0, 0, 0, "K"}, X /* 70*/ {N, 0, 0, 0, "0"}, X /* 71*/ {N, 0, 0, 0, "1"}, X /* 72*/ {N, 0, 0, 0, "2"}, X /* 73*/ {N, 0, 0, 0, "3"}, X /* 74*/ {N, 0, 0, 0, "4"}, X /* 75*/ {N, 0, 0, 0, "5"}, X /* 76*/ {N, 0, 0, 0, "6"}, X /* 77*/ {N, 0, 0, 0, "7"}, X /* 78*/ {N, 0, 0, 0, "8"}, X /* 79*/ {N, 0, 0, 0, "9"}, X /* 80*/ {N, 0, 0, 0, "*"}, X /* 81*/ {N, 0, 0, 0, "\366"}, X /* 82*/ {N, 0, 0, 0, "fi"}, X /* 83*/ {N, 0, 0, 0, "fl"}, X /* 84*/ {N, 0, 0, 0, "ff"}, X /* 85*/ {N, 0, 0, 0, "\277"}, X /* 86*/ {N, 0, 0, 0, "ffl"}, X /* 87*/ {N, 0, 0, 0, "ffi"}, X /* 88*/ {N, 0, 0, 0, "("}, X /* 89*/ {N, 0, 0, 0, ")"}, X /* 90*/ {N, 0, 0, 0, "["}, X /* 91*/ {N, 0, 0, 0, "]"}, X /* 92*/ {N, 0, 0, 0, "\263"}, X /* 93*/ {S, 0, 0, 0, "\316"}, X /* 94*/ {N, 0, 0, 0, "="}, X /* 95*/ {N, 0, 0, 0, "O\br"}, X /* 96*/ {N, 0, 0, 0, ":"}, X /* 97*/ {N, 0, 0, 0, "+"}, X /* 98*/ {N, 0, 0, 0, NOC}, X /* 99*/ {N, 0, 0, 0, "!"}, X /*100*/ {S, 0, 0, 0, "\314"}, X /*101*/ {N, 0, 0, 0, "?"}, X /*102*/ {N, 0, 0, 0, "\250"}, X /*103*/ {N, 0, 0, 0, "|"}, X /*104*/ {N, 0, 0, 0, NOC}, X /*105*/ {S, 0, 0, 0, "\331"}, X /*106*/ {S, 0, 0, 0, "\332"}, X /*107*/ {N, 0, 0, 0, "$"} X}; X Xstruct troff2befont ljSymFont[] = { X/* +-------------------------------- Troff character number X | X | +--------------------------- N: standard fonts X | | S: symbol font X | | D: draw macro X | | n: new font X | | X | | +------------------------ X-shift: scale by deci-point*100 X | | | X | | | +--------------------- Y-shift: scale by deci-point*100 X | | | | X | | | | +------------------ Point-scale (scaled by 100) X | | | | | X | | | | | +-------------- Sequence X | | | | | | X v v v v v v */ X /* 0*/ {S, 0, 0, 0, "\167"}, X /* 1*/ {S, 0, 0, 0, "\150"}, X /* 2*/ {S, 0, 0, 0, "\155"}, X /* 3*/ {S, 0, 0, 0, "\154"}, X /* 4*/ {S, 0, 0, 0, "\153"}, X /* 5*/ {S, 0, 0, 0, "\151"}, X /* 6*/ {S, 0, 0, 0, "\146"}, X /* 7*/ {S, 0, 0, 0, "\162"}, X /* 8*/ {S, 0, 0, 0, "\144"}, X /* 9*/ {S, 0, 0, 0, "\142"}, X /* 10*/ {S, 0, 0, 0, "\156"}, X /* 11*/ {S, 0, 0, 0, "\147"}, X /* 12*/ {S, 0, 0, 0, "\165"}, X /* 13*/ {S, 0, 0, 0, "\164"}, X /* 14*/ {S, 0, 0, 0, "\152"}, X /* 15*/ {S, 0, 0, 0, NOC}, X /* 16*/ {S, 0, 0, 0, "\160"}, X /* 17*/ {N, 0, 0, 0, "@"}, X /* 18*/ {S, 0, 0, 0, "\243"}, X /* 19*/ {S, 0, 0, 0, NOC}, X /* 20*/ {S, 0, 0, 0, "\141"}, X /* 21*/ {N, 0, 0, 0, "|"}, X /* 22*/ {S, 0, 0, 0, "\166"}, X /* 23*/ {N, 0, 0, 0, "\042"}, X /* 24*/ {S, 0, 0, 0, "\145"}, X /* 25*/ {N, 0, 0, 0, "="}, X /* 26*/ {S, 0, 0, 0, "o"}, X /* 27*/ {S, 0, 0, 0, "\244"}, X /* 28*/ {S, 0, 0, 0, "\161"}, X /* 29*/ {S, 0, 0, 0, "\241"}, X /* 30*/ {S, 0, 0, 0, "\163"}, X /* 31*/ {N, 0, 0, 0, "_"}, X /* 32*/ {N, 0, 0, 0, "\\"}, X /* 33*/ {S, 0, 0, 0, "\127"}, X /* 34*/ {S, 0, 0, 0, "\177"}, X /* 35*/ {S, 0, 0, 0, "\044"}, X /* 36*/ {S, 0, 0, 0, "\143"}, X /* 37*/ {S, 0, 0, 0, "\277"}, X /* 38*/ {S, 0, 0, 0, "\046"}, X /* 39*/ {S, 0, 0, 0, "\375"}, X /* 40*/ {S, 0, 0, 0, "\170"}, X /* 41*/ {S, 0, 0, 0, NOC}, X /* 42*/ {S, 0, 0, 0, "\131"}, X /* 43*/ {S, 0, 0, 0, NOC}, X /* 44*/ {S, 0, 0, 0, "\125"}, X /* 45*/ {S, 0, 0, 0, "\110"}, X /* 46*/ {S, 0, 0, 0, "\130"}, X /* 47*/ {S, 0, 0, 0, "\265"}, X /* 48*/ {S, 0, 0, 0, "\260"}, X /* 49*/ {S, 0, 0, 0, "\123"}, X /* 50*/ {S, 0, 0, 0, "\113"}, X /* 51*/ {N, 0, 0, 0, "\366"}, X /* 52*/ {S, 0, 0, 0, "\103"}, X /* 53*/ {S, 0, 0, 0, "\325"}, X /* 54*/ {S, 0, 0, 0, "\120"}, X /* 55*/ {S, 0, 0, 0, "\272"}, X /* 56*/ {S, 0, 0, 0, "\273"}, X /* 57*/ {N, 0, 0, 0, "~"}, X /* 58*/ {S, 0, 0, 0, "\132"}, X /* 59*/ {S, 0, 0, 0, "\104"}, X /* 60*/ {S, 0, 0, 0, "\041"}, X /* 61*/ {S, 0, 0, 0, "\122"}, X /* 62*/ {S, 0, 0, 0, "\174"}, X /* 63*/ {N, 0, 0, 0, ">"}, X /* 64*/ {S, 0, 0, 0, "\116"}, X /* 65*/ {N, 0, 0, 0, "<"}, X /* 66*/ {N, 0, 0, 0, "/"}, X /* 67*/ {S, 0, 0, 0, "\266"}, X /* 68*/ {S, 0, 0, 0, "\124"}, X /* 69*/ {S, 0, 0, 0, "\310"}, X /* 70*/ {S, 0, 0, 0, "\360"}, X /* 71*/ {S, 0, 0, 0, "\342"}, X /* 72*/ {S, 0, 0, 0, "\365"}, X /* 73*/ {S, 0, 0, 0, "\343"}, X /* 74*/ {S, 0, 0, 0, "\344"}, X /* 75*/ {S, 0, 0, 0, "\362"}, X /* 76*/ {S, 0, 0, 0, "\363"}, X /* 77*/ {S, 0, 0, 0, "\364"}, X /* 78*/ {S, 0, 0, 0, "\361"}, X /* 79*/ {S, 0, 0, 0, "\341"}, X /* 80*/ {S, 0, 0, 0, "\340"}, X /* 81*/ {S, 0, 0, 0, "\052"}, X /* 82*/ {S, 0, 0, 0, "\045"}, X /* 83*/ {S, 0, 0, 0, "\376"}, X /* 84*/ {S, 0, 0, 0, "\134"}, X /* 85*/ {S, 0, 0, 0, "\136"}, X /* 86*/ {S, 0, 0, 0, "\175"}, X /* 87*/ {N, 0, 0, 0, "=\b/"}, X /* 88*/ {N, 0, 0, 0, "{"}, X /* 89*/ {N, 0, 0, 0, "}"}, X /* 90*/ {N, 0, 0, 0, "\250"}, X /* 91*/ {N, 0, 0, 0, "\251"}, X /* 92*/ {N, 0, 0, 0, "^"}, X /* 93*/ {N, 0, 0, 0, "#"}, X /* 94*/ {S, 0, 0, 0, "\373"}, X /* 95*/ {S, 0, 0, 0, "\267"}, X /* 96*/ {N, 0, 0, 0, "~"}, X /* 97*/ {N, 0, 0, 0, "\322"}, X /* 98*/ {N, 0, 0, 0, NOC}, X /* 99*/ {S, 0, 0, 0, "\317"}, X /*100*/ {N, -220, 0, 0, "|"}, X /*101*/ {N, 0, 2, 0, "*"}, X /*102*/ {S, 0, 0, 0, "\276"}, X /*103*/ {S, 0, 0, 0, "\315"}, X /*104*/ {S, 0, 0, 0, NOC}, X /*105*/ {N, 0, 0, 0, "+"}, X /*106*/ {S, 0, 0, 0, "\242"}, X /*107*/ {N, 0, 0, 0, "\275"} X}; X Xint fontCount = 0; X XljPage() { X printf("\033&l0H"); X pagePending = 1; X} X Xstatic XdoPageStart() { X currentPage++; X fontCount = 0; X pagePending = 0; X} X Xstatic Xputoct(s) Xchar *s; { X int d; X if (strlen(s) < 3) { X fprintf(stderr, "%s: octal sequence in fonts.l[kj] bad\n", progname); X exit(1); X } X d = (*s - '0') * 64 + (*(s+1) - '0') * 8 + *(s+2) - '0'; X putchar(d); X} X Xstatic Xint Xptcvt(points) Xint points; { X register int r; X switch (points) { X case 6: r = 0; break; X case 7: r = 1; break; X case 8: r = 2; break; X case 9: r = 3; break; X case 10: r = 4; break; X case 11: r = 5; break; X case 12: r = 6; break; X case 14: r = 7; break; X case 16: r = 8; break; X case 18: r = 9; break; X case 20: r = 10; break; X case 22: r = 11; break; X case 24: r = 12; break; X case 28: r = 13; break; X case 36: r = 14; break; X default: r = 15; break; X } X return(r); X} X X/* This function originally from Ronald Florence (ron@mlfarm), X but extensively modified for new fontFlags mechanisms. X X We'll go at most 4 points up or down. If this fails, X we'll let the printer decide... You may want to tweak X these arrays. X X We go up first for requested pointsizes > 10, and down X first for requested pointsizes < 10. Seems to work best X with EQN. X */ X Xstatic int Xbestmatch(font, points) Xint font, points; { X X static int smalltry[ ] = { 0, -1, 1, -2, 2, -3, 3, -4, 4, 100 }, X bigtry[ ] = { 0, 1, 2, -1, -2, 3, 4, -4, 100 }; X X register char *p; X register int *ip; X X ip = (points < 10) ? smalltry : bigtry; X p = fonttable[font].fontFlags; X X for ( ; *ip < 100; ip++) X if (p[ptcvt(points + *ip)] != 'n') X return(points + *ip); X X return (points); X} X X#ifdef INCR Xdumpseq(font, pointidx, seq) Xint font, pointidx; Xregister char *seq; { X int fn = (font << 4) + pointidx; X static int lastftid = -1; X register int c; X register struct pkc *pc = (struct pkc *) NULL; X X DBP((D_FONT, "dumpseq font: %d, idx: %d, seq: %s\n", font, X pointidx, seq)); X X for (;c = (*seq)&0xff; seq++) { X if (!downchar(font, c, pointidx)) { X X for (pc = fonttable[font].map->pkfont[pointidx]->pkp_chars; X pc; pc = pc->pkc_next) X if (pc->pkc_char == c) X break; X X setdown(font, c, pointidx); X X if (!pc) X continue; X X if (lastftid != fn) { X DBP((D_FONT,"Emitting download font select (%d)\n", fn)); X printf("\033*c%dD", fn); X lastftid = fn; X } X X DBP((D_FONT,"Downloading %02x\n", pc->pkc_char)); X epkc_desc(pc, stdout); X } else X DBP((D_FONT,"Already downloaded %02x\n", c)); X } X} X#endif X XljSetFont(font, selpoints, fontcode, sequence) Xint font, selpoints, fontcode; Xchar *sequence; { X int points, pointidx; X register char *pf, *p; X register struct pkp *pk; X#if !defined(INCR) && defined(PK) X register struct pkc *pc; X#endif X char buf[BUFSIZ]; X#ifndef PARTIAL X FILE *fontfile; X#endif X int count; X int ftid; X X#ifdef COMPRESS X int compressed = 0; X#endif X X X#ifndef INCR X if (lastPoints == selpoints && font == lastFont) X return; X#endif X X points = bestmatch(font, selpoints); X pointidx = ptcvt(points); X X pf = &fonttable[font].fontFlags[pointidx]; X ftid = (font << 4) + pointidx; X X#ifdef INCR X#ifdef SFP X if (*pf == 'S' || *pf == 'P') { X#else X if (*pf == 'P') { X#endif X /* header downloaded, check and download individual characters */ X dumpseq(font, pointidx, sequence); X X if (lastPoints != points || font != lastFont) { X DBP((D_FONT, "Selecting font %d\n", ftid)); X lastPoints = points; X lastFont = font; X printf("\033(%dX", ftid); X } X X return; X X } X X if (lastPoints == selpoints && font == lastFont) X return; X#endif X X lastPoints = selpoints; X lastFont = font; X X switch(*pf) { X#ifdef PK X case 'p': X#ifdef PARTIAL X case 's': X#endif X sprintf(buf, "%s/%s.%d.%s", LJF, X fonttable[font].troffName, points, X (*pf == 's') ? "sfp":"pk"); X X fontCount++; X if (fontCount >= MAXDLFONTS) { X#ifdef INCR X pkflush(font, pointidx); X#else X fprintf(stderr, "Too many fonts (page %d), simplify!\n", X currentPage); X#endif X } X DBP((D_FONT,"FONTLOAD PK font (ftid: %d) %s.%d via '%s'\n", X ftid, fonttable[font].troffName, X points, buf)); X X /* Read the PK file in-core */ X pk = pk_read(buf,fontcode); X X /* Set the fontid we'll use */ X printf("\033*c%dd4F", ftid); X X /* Emit the SFP header */ X epk_desc(pk, stdout); X X#ifndef INCR X /* Emit each character */ X for (pc = pk->pkp_chars; pc; pc = pc->pkc_next) { X DBP((D_FONT,"Downloading ch %02x\n", pc->pkc_char); X epkc_desc(pc, stdout)); X } X X /* Clobber in-core PK */ X pk_destroy(pk); X#else X fonttable[font].map->pkfont[pointidx] = pk; X dumpseq(font, pointidx, sequence); X#endif X X *pf = toupper(*pf); X X /* buf */ X goto setdownloaded; X#else X case 'p': X fprintf(stderr, X "%s: Font %s, size: %d is a PK - PK not defined in defs.h\n", X progname, fonttable[font].troffName, selpoints); X goto setbuiltin; X#endif X X#ifndef PARTIAL X case 's': X sprintf(buf, "%s/lj/%s.%d.sfp", LIBDIR, fonttable[font].troffName, X points); X X fontfile = fopen(buf, "r"); X X#ifdef COMPRESS X if (!fontfile) { X sprintf(buf, "%s %s/lj/%s.%d.sfp.Z", X COMPRESS, LIBDIR, fonttable[font].troffName, points); X fontfile = popen(buf, "r"); X compressed = 1; X } X#endif X X if (!fontfile) { X fprintf(stderr, "%s: cannot open fontfile\n(%s)\n", progname, X buf); X goto setbuiltin; X } X X fontCount++; X if (fontCount >= MAXDLFONTS) { X#ifdef INCR X pkflush(font, pointidx); X#else X fprintf(stderr, "Too many fonts (page %d), simplify!\n", X currentPage); X#endif X } X X DBP((D_FONT,"Loading font (ftid: %d) %s.%d via '%s'\n", X ftid, fonttable[font].troffName, X points, buf)); X X printf("\033*c%dd4F", ftid); X X while(0 < (count = fread(buf, sizeof(char), sizeof(buf), fontfile))) X fwrite(buf, sizeof(char), count, stdout); X X#ifdef COMPRESS X if (compressed) { X if (!pclose(fontfile)) { X fprintf(stderr, "%s: compress failed!\n", progname); X exit(1); X } X } else X#endif X fclose(fontfile); X X *pf = toupper(*pf); X#endif X /* Fall Thru */ X X case 'S': case 'P': X /* Select primary font by font id */ X setdownloaded: X DBP((D_FONT, "Selecting font2 %d\n", ftid)); X printf("\033(%dX", ftid); X break; X X default: X setbuiltin: X *pf = 'b'; X X case 'b': X /* if builtin font, select it by characteristic */ X for (p = fonttable[font].fontSeq; *p; p++) { X if (*p == '\\') { X putoct(p+1); X p+=3; X } else X putchar(*p); X } X printf("\033(s%dV", points); X break; X } X} X XljChar(x, y, font, points, troffChar, sequence) Xint x, y; Xint font, points, troffChar; Xchar *sequence; { X register int nx = TROFF2LJX(x), ny = TROFF2LJY(y); X register struct troff2befont *rp; X X#ifndef OPT X sequence = (char *) NULL; X#endif X X if (pagePending) { X resetState(); X doPageStart(); X } X X DBP((D_BEND,"BEFORE (troffChar,x,y,font,points) = (%d,%d,%d,%d,%d)\n", X troffChar, x, y, font, points)); X X if (font == 3) { X rp = &be->besymfont[troffChar]; X } else { X rp = &be->bestdfont[troffChar]; X } X X switch(rp->t2b_font) { X /* Only fonts with "N" are subject to font translation */ X case N: X if (font == 3) X font = 0; /* Special chars are Roman */ X else { X DBP((D_BEND,"ljSetChar %d->%s (%s)\n", font, X xlatetable[font]->troffName, X xlatetable[font]->fontName)); X font = xlatetable[font] - fonttable; X } X break; X case S: X font = 3; X break; X case D: X break; X default: X /* Typically used when the R and S fonts don't have the X character desired, so select the font via the index X in the fonts.?? file */ X font = rp->t2b_font; X break; X } X X if (!sequence) X sequence = rp->t2b_charseq; X X if (!sequence) { X fprintf(stderr, "%s: No coding for char %d in %d font\n", X progname, troffChar, font); X return; X } X X /* We're committed now - the "if" statements avoid floating X arithmetic on slow machines */ X X if (rp->t2b_scale) points *= (.01 * rp->t2b_scale); X if (rp->t2b_xc) nx += points * (.01 * rp->t2b_xc); X if (rp->t2b_yc) ny += points * (.01 * rp->t2b_yc); X X ljSetFont(font, points, rp->t2b_font, sequence); X X DBP((D_BEND,"AFTER (sequence,x,y,font,points) = (%s,%d,%d,%d,%d)\n", X sequence, nx, ny, font, points)); X X/* Egads, I discovered that 42% of the time in troff2ps was spent X doing these damn conversions! */ X X#define XYS "\033&a%dh%dV%s" X#define XS "\033&a%dH%s" X X if (lastYPos != ny) { X printf(XYS, nx, ny, sequence); X lastYPos = ny; X } else X printf(XS, nx, sequence); X} X XljProlog() { X extern char *ctime(); X FILE *library; X int c; X register char *p; X X#ifndef LJF X LJF = mustmalloc(strlen(LIBDIR) + 5, "ljprolog"); X sprintf(LJF, "%s/lj", LIBDIR); X#endif X X /* to ensure that the strings are long enough for indexing and X are sufficiently initialized */ X X for (c = 0; fonttable[c].troffName; c++) { X register int i; X p = mustmalloc(20, "ljfontflags"); X strncpy(p, fonttable[c].fontFlags, 16); X p[16] = '\0'; X free(fonttable[c].fontFlags); X for (i = strlen(p); i < 16; i++) X p[i] = 'n'; X fonttable[c].fontFlags = p; X } X X#if defined(INCR) X /* create empty downloaded-yet arrays */ X for (c = 0; fonttable[c].troffName; c++) { X register int i; X for (i = 0, p = fonttable[c].fontFlags; *p; p++, i++) X#ifdef SFP X if (*p == 'p' || *p == 's') { X#else X if (*p == 'p') { X#endif X DBP((D_FONT, "Allocating font %d, size %d\n", X c, i)); X if (!fonttable[c].map) { X fonttable[c].map = (struct downmaps *) X mustmalloc(sizeof(struct downmaps), "downmaps"); X } X fonttable[c].map->nm[i] = (ETYP *) mustmalloc(ELEN * X sizeof(ETYP), "Nmaps"); X fonttable[c].map->lastpage[i] = 0; X } X } X X#ifdef DEBUG X dumpmaps(1); X#endif X X#endif X X#if defined(PARTIAL) X /* create need-arrays */ X for (c = 0; c < 108; c++) X if (ljStdFont[c].t2b_charseq != NOC) X for (p = ljStdFont[c].t2b_charseq; *p; p++) X addneedchar(ljStdFont[c].t2b_font, *p); X X for (c = 0; c < 108; c++) X if (ljSymFont[c].t2b_charseq != NOC) X for (p = ljSymFont[c].t2b_charseq; *p; p++) X addneedchar(ljSymFont[c].t2b_font, *p); X#endif X X#if defined(DEBUG) && defined(PARTIAL) X dumpmaps(0); X#endif X X currentPage = 0; X pagePending = 1; X X library = libopen(printer, "lib"); X X ljXlate(library); X fclose(library); X doprologs(); X} X XljEpilog() { X#if defined(INCR) X register struct fonttable *fp; X register int i; X /* delete fonts still active that we downloaded */ X for (fp = fonttable; fp->troffName; fp++) X if (fp->map) X for (i = 0; i < 14; i++) X if (fp->map->pkfont[i]) X printf("\033*c%dd2F", ((fp - fonttable) << 4) + i); X#endif X X#if defined(DEBUG) && defined(INCR) X dumpmaps(1); X#endif X} X X/* Copy the library file to the standard output, stripping X %line\n X %%%<something> is a metadirective X and converting \nnn and \xnn as you go. X Strip out line termination. X*/ X XljXlate(library) XFILE *library; { X char buf[4]; X int c, i; X c = getc(library); X while(!feof(library)) { X X nextchar: X X switch(c) { X case '%': X /* strip from percent sign to end of line */ X /* If line is %%%<something> pass onto interp */ X if (((c = getc(library)) == '%') && X ((c = getc(library)) == '%')) { X char buf2[4]; X sprintf(buf2, ".%s", be->bename); X fgets(buf, strlen(buf), library); X interp(buf, ljXlate, buf2); X break; X } X while ((c = getc(library)) != EOF && c != '\n'); X break; X case '\n': /* throw away real newlines. */ X break; X case '\\': X c = getc(library); X if (c == 'x' || c == 'X') { X i = 0; X while(1) { X c = getc(library); X X if (c == EOF || !((c >= '0' && c <= '9') || X (c >= 'A' && c <= 'F') || X (c >= 'a' && c <= 'f'))) X goto nextchar; X X buf[i++] = c; X if (i == 2) { X buf[i] = '\0'; X sscanf(buf, "%x", &i); X putchar(i); X i = 0; X } X } X } else { X buf[0] = c; X i = 1; X while(1) { X c = getc(library); X if (c == EOF || c < '0' || c > '7') X goto nextchar; X buf[i++] = c; X if (i == 3) { X buf[i] = '\0'; X sscanf(buf, "%o", &i); X putchar(i); X i = 0; X } X } X } X /* NOTREACHED */ X X case ' ': case '\t': X break; X X case EOF: X fprintf(stderr, "%s: Unexpected eof on ljlib\n", progname); X break; X X default: X putchar(c); X } X c = getc(library); X } X} X#endif END_OF_FILE if test 21773 -ne `wc -c <'lj.c'`; then echo shar: \"'lj.c'\" unpacked with wrong size! fi # end of 'lj.c' fi echo shar: End of archive 2 \(of 16\). cp /dev/null ark2isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 16 archives. echo "Read the README to get started with psroff installation" rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still must unpack the following archives: echo " " ${MISSING} fi exit 0 -- Chris Lewis, Phone: TBA UUCP: uunet!utai!lsuc!ecicrl!clewis Moderator of the Ferret Mailing List (ferret-request@eci386) Psroff mailing list (psroff-request@eci386)