bl@infovax.UUCP (Bj|rn Larsson) (08/27/87)
# This is a shar archive. # Remove everything above this line. # Run the file through sh, not csh. # (type `sh pccurses.sh.3') echo extracting - make.uu sed 's/^X//' > make.uu << 'FRIDAY_NIGHT' Xbegin 444 make.exe XM35H! "L @ /T!__](!8 %2L0 L%'@ $ XM XM XM XM XM XM XM XM XM XM XM $ "Q58OL@^P*5U:A'B'K'(M>_/]W!/]W K@V XM %"X&@50Z/D;@\0(BU[\BP>)1OP+P'7=N!H%4+@* %#H%AR#Q 2+-B AZ<L XM]D0*$'0(_W0"N#\ ZP;_= *X10!0N!H%4.BY&X/$!CDVM!YU#KA* %"X&@50 XMZ*4;@\0$BT0$ZWFX&@50N#H 4.C)&X/$!(M>_HM_ NL6BUT"_W<"N%< 4+@: XM!5#H=AN#Q :+/0O_=>:X&@50N H 4.B9&X/$!(M>_HM'!.L9BU[Z_W<"N%L XM4+@:!5#H1AN#Q :+7OJ+!XE&^@O =>"X&@50N H 4.AC&X/$!(M>_HL'B4;^ XM"\!T ^E]_[@:!5"X"@!0Z$8;@\0$BS0+]G0#Z2[_7E^+Y5W#58OL@^P$5U:+ XM7@3V1PH!= W_=P*X80!0Z $+@\0$BUX$@$\* 8M_!.L6BW4"ZPO_= +HR_^# XMQ *+- OV=?&+/0O_=>:+7@2 9PK^7E^+Y5W#58OL@^P"5HLV("'K"5;HGO^# XMQ *+- OV=?->B^5=PU6+[(/L!E=6N'\ 4.@Q (/$ HO8B5[\]D<*!'0=BW\$ XM"_]T%HMU NL)BUP"@$\*"(LT"_9U\XL]Z^9>7XOE7<-5B^R#[ 975HLV("&_ XM("'K%/]T O]V!.@O'H/$! O =&V+-(L]"_9UZ+@, %#HWQJ#Q *+\ OV=0JX XMB@!0Z"P*@\0"B37'! _W8$Z%0>@\0"0%#HN!J#Q *)1OX+P'4*N)T 4.@$ XM"H/$ O]V!/]V_N@*'H/$!(M&_HE$ L=$! *\")1 B)1 ;&1 H B\9>7XOE XM7<-5B^R#[ 175K@$ %#H:AJ#Q *+\ OV=0JXL !0Z+<)@\0"QP0 (M&!(E$ XM H-^!@!U!(O&ZQ&+?@;K HL]@ST =?F)-8M&!EY?B^5=PU6+[(/L!E=6N H XM4/]V!.CQ'8/$!(E&_@O = J+V,8' .L#_T8$BUX$B@>8B]CVA\,&"'7NBUX$ XM@#\ =&VX! !0Z.@9@\0"B_ +]G4*N,@ 4.@U"8/$ L<$ #_=@3H7QV#Q ) XM4.C#&8/$ HE&_@O =0JXW@!0Z \)@\0"_W8$_W;^Z!4=@\0$BT;^B40"@WX& XM '4$B\;K$8M^!NL"BSV#/0!U^8DUBT8&7E^+Y5W#58OL@^P(5U;&1OX BUX$ XMBU\"@#\N=3*#?@8 =2R#?@@ =2:+7@2+=P3K"XL\5N@]&8/$ HOW"_9U\8M> XM!,='! @&<*^^GE (M>!(MW!"O_ZPZ#? 0 = 3&1OX!B_Z+- OV=>Z ?OX XM=#R#?@@ =#:+7@3V1PH0=2V+7P* /RYU%8-^!@!U#XM>!(M?!(M&"(E'!.F7 XM (M>!/]W KCT %#HQ@V#Q 2+7@3V1PH$=#6#?@H =06X 0#K BO BUX$B4;X XM]D<*$'4%N $ ZP(KP#M&^'00BUX$_W<"N!D!4.B(#8/$!+@& %#HD!B#Q *+ XM\ OV=0JX.@%0Z-T'@\0"QP0 (M&!HE$ HM&"(E$! O_= 2)->L&BUX$B7<$ XMBUX$@$\*!(-^"@!T!(!/"A!>7XOE7<-5B^R#[!)6_W8$N+064.B"#8/$! O XM= /I0@* /K06"74*N$T!4.@-#8/$ L=&^K06ZP/_1OJ+7OJ*!YB+V/:'PP8( XM=>ZX/0!0_W;ZZ D;@\0$B4;V"\!U%(-^]@!U ^F= (M>]O]&]L8' .LJBT;V XM.4;Z=.2+V(!__UQUW(OP3HE&^HM>]O]&]HH'B 1&"L!TL^OO_T;VBU[VB@>8 XMB]CVA\,&"'7NN H 4/]V]NAO&X/$!(E&^@O = 6+V,8' ,=&^K06C4;Z4.BA XM#8/$ HOP"_9U"KAD 5#H6PR#Q +_=O96Z,\!@\0$_W8$N+064.BA#(/$! O XM=0/I'__I7@&XM!90Z'P#@\0"QT;ZM!:X.@!0_W;ZZ$ :@\0$B4;V"\!U*H-^ XM]@!U"KAR 5#H!PR#Q *+7O;_1O;&!P"+7O: /SIU,,9&] '_1O;K*XM&]CE& XM^G3.B]B ?_]<=<:+\$Z)1OJ+7O;_1O:*!X@$1@K =)WK[\9&] #'1O@ .L9 XM_W;ZZ+7[@\0"B4;\_W;X4.@^_(/$!(E&^(U&]E#HS@R#Q *)1OH+P'76N+06 XM4.@M&H/$ HOPN[06B5[VQD ! ,=&_@ _W8$N+0:4.C&"X/$! O =5Z /K0: XM"757_W;^N+0:4.@W_(/$!(E&_O]V!+BT&E#HG@N#Q 0+P'38ZS10Z#?[@\0" XMB4;\BD;T*N10_W;^_W;X_W;\Z++\@\0(@SZT'@!U#HM>^H _+G0&BT;\H[0> XMC4;V4.@S#(/$ HE&^@O =;N+7@3V1P80=1&XM!I0N+064.A@&8/$!.F^_5Z+ XMY5W#58OL@^P"5HLV'B'K%O]T O]V!.@*&8/$! O =02+QNL(BS0+]G7F*\!> XMB^5=PU6+[(/L O]V!.C&_X/$ HE&_@O = >+V(M'!.L#N(8!B^5=PU6+[(/L XM!%=6BS8>(>L=_W0"_W8$Z+<8@\0$"\!U"_]T!.AB%8/$ NL&BS0+]G7?"_9U XM5;@( %#H6A6#Q *+\ OV=0JXAP%0Z*<$@\0"H1XAB02)-AXAQD0& /]V!.C( XM&(/$ D!0Z"P5@\0"B_@+_W4*N)L!4.AY!(/$ O]V!%?H@1B#Q 2)? +_=@;H XMFAB#Q ) 4.C^%(/$ HOX"_]U"KBO 5#H2P2#Q +_=@97Z%,8@\0$B7P$B\9> XM7XOE7<-5B^R#[ A75HMV!HM>!(L_Z>< @#PD= RLB 5'BUX(_P_IQ "+1@J) XM1OI&@#Q[=1=&@#P =$. /'UT/HM>^O]&^HH$B ?KZ8 \*'471H \ '0G@#PI XM="*+7OK_1OJ*!(@'Z^F / !U!\8%)$?IDP"+7OK_1OJ*!(@'BU[ZQ@< @#P XM= %&_W8*Z&7^@\0"B4;^"\!U$+C# 5#_=@KHH_Z#Q 2)1OZ+7OZ ?P8 = W_ XM=P*XQ %0Z'L#@\0$BU[^QD<& 8M>!(D__W8*_W8(BU[^_W<$_W8$Z"?_@\0( XMBUX$BS^+7O[&1P8 BUX(@S\ ?PJXX@%0Z,T(@\0"@#P = /I$?_&!0"+7@2) XM/UY?B^5=PU6+[(/L!(M&!(E&_,=&_O\#4+AV"E#H'!>#Q 2X=@Y0C4;^4+AV XM"E"-1OQ0Z,'^B^5=PU6+[(/L"%=6QT;Z "+1@3_3@0] 0!]!;CZ >L)BUX& XM@T8& HL'HQPAQP8<(?\!Z< BUX&BQ^ /RUT ^F\ /].!(M>!H-&!@*+-^F; XM (H$F"UA #T3 '=C \"3+O^G&@K&!J4" >F $: / !U%HM&!/].! O ?P/H XM5 *+7@:#1@8"BS>)-K 4ZV?&!J8" .M7Q@:G @'K4,8&J (!ZTG&!JD" >M" XMQ@:J @#K.\8&JP(!ZS3&!JP" >LMZ!$"ZRBZ"14*%0H5"A4*P@D5"A4*ZPD5 XM"A4*%0H5"N0)%0KY"0X* KR"0<*1H \ '0#Z5S_@WX$ 'X#Z3?_N 0"4/\V XML!3HQQ6#Q 0+P'4(QP:R%@H%ZWV#/K 4 '53N 8"4+@( E#HA!&#Q 2CLA8+ XMP'49@SZ2!@)T$O\VD@:X$0)0N!H"4.BI 8/$!H,^LA8 =4&X-P)0N#D"4.A/ XM$8/$!*.R%@O =2RX0@)0N$L"ZQRX7 )0_S:P%.@Q$8/$!*.R%@O =0[_-K 4 XMN%X"4.AA 8/$!.@U"KAO E"X<0)0Z%_\@\0$ZSBX/0!0BUX&_S?H\A2#Q 2+ XM\ OV="F*!(A&^,8$ (U$ 5"+7@;_-^@Q_(/$!(I&^(@$@T8& O].!(-^! !U XMPO\VLA;H8?F#Q +_-K(6Z+P/@\0"QP8:'P @#ZI @!T ^BP]+AS E#H=O:# XMQ *+^/9%"@1T!<8&J (!N'L"4.A?]H/$ HOX]D4*!'0%Q@:G @'H#/:#/K0> XM '4*N(,"4.BJ (/$ NC9]8-^! !U62O 4/\VM![H> .#Q 2)1OKK48 ^J0( XM=22 /J@" '4=N)8"4(M>!O\WZ$\4@\0$"\!U"KB; E#H31&#Q (KP%"+7@:# XM1@8"_S?HYO6#Q )0Z"\#@\0$"4;ZBT8$_TX$"\!UKX ^K ( = 7_=OKK RO XM4.A^#H/$ EY?B^5=PU6+[/\V'"&XK0)0N!H%4.CO#X/$!K@! %#H60Z+Y5W# XM58OL_S8<(;CT E"X&@50Z,\/@\0&_W80_W8._W8,_W8*_W8(_W8&_W8$N!H% XM4.BP#X/$$+@:!5"X"@!0Z-D/@\0$N $ 4.@,#HOE7<-5B^R#[ +_=@3H/PJ+ XMY5W#58OL@^P.5U:X^@)0Z'_Z@\0"B]B)7O* /P!T ^F3 8M>!HM'!(E&^@O XM=0/I@P&+V/]W KBT%E#H>A.#Q 2XM!90Z#O\@\0"OK06H*@"B$;\H*<"B$;^ XM@#Q = 6 /"UU$H \0'4&QD;\ >L$QD;^ 4;KY( ^I@( =03&1OP B_[K3( ] XM"G4<@'T! '06Q@4@@'[\ '4WN!(%4+@ U#H1 _K)X!^_ !U)/\.% 5X$(H% XMBQX2!?\&$@6(!RKDZPZX$@50B@684.BJ"H/$!$> /0!UKX!^_ !U)/\.% 5X XM$+ *BQX2!?\&$@6(!RKDZPZX$@50N H 4.AZ"H/$!( ^I@( =0/IHP#_=O)6 XMZ.+^@\0$B4;T"\!U ^F/ #W__W4/_W;RN ,#4.AY_H/$!.M[_W;T_S8<(;@: XM U#H3P^#Q : ?OX = VX$@50N"P#4.B4#NO7_PX4!7@0L J+'A(%_P82!8@' XM*N3K#K@2!5"X"@!0Z *@\0$BUX$]D<*"'4A_W<"Z"D4@\0""\!U%(M>!/]W XM O\V'"&X. -0Z.X.@\0&_W;TZ%$,@\0"BU[ZBP?I<_Y>7XOE7<-5B^R#[ )6 XMBUX$BW<$ZPQ6_W8$Z#+^@\0$BS0+]G7P7HOE7<-5B^R#[""-1N!0BUX$_W<" XMZ*(/@\0$"\!]*(,^D@8"=!3_-I(&BUX$_W<"N$L#4.B5_8/$!HM>!"O B4<( XMB4<&ZP^+7@2+1O:+5OB)1P:)5PB+Y5W#58OL@^P$@#ZF @!T!X ^J ( =1"+ XM7@3_=P*X9@-0Z#H.@\0$@#ZF @!T)RO 4(M>!/]W NA4$X/$! O ?12+7@3_ XM=P+_-APAN'<#4.@,#H/$!HOE7<-5B^R#[!!75L=&^ $ QT;Z #&1OP BUX$ XM]D<* G0%*\#IW &+7@2+1P8+1PAU!U/H(O^#Q * /JH" '0@BUX$BW\$"_]T XM"8-]! !U ^F= O_=0G_=@3H 02#Q *+7@3V1PH$=16+1P8+1PAU#?]W KB- XM U#HI/R#Q 3'1O0 (M>!(M_! O_=0/IQ0"+=0(+]G1QBT8&0%#_= +H8?^# XMQ 2+7 *+1P:+5PB+7@0Y5PA\#G\%.4<&<@> /J4" '0/_W;T_W0"Z'SR@\0$ XMB4;TBUP"BT;XBU;Z.5<(?Q1\!3E'!G,-BT;XBU;ZZPZ+/>E1_XM< HM'!HM7 XM"(E&^(E6^HLTZXN /JP" '5!BUX$]D<*$'0X@#ZE @!U$HM&^(M6^CE7"'\F XM? 4Y1P9S'_]V]%?_=@3HS@"#Q ;'1O@! ,=&^@ QT;T #^1OR+/>DT_XM> XM!(!/"@* /JP" '0UBT<&BU<(B4;PB5;RB\,%!@!0Z%P1@\0"BT;XBU;Z.5;R XM?@/IF?Y\"#E&\'(#Z8_^N $ ZVN+7@2+1OB+5OHY5PA\#G\%.4<&<@> /J4" XM '0FBUX$]D<*$'4=_W;T*\!04^A" (/$!HM&! 4& %#H !&#Q +I2/Z#?@8 XM= /I/_Z ?OP = /I-OZ+7@3_=P+_-APAN*H#4.@+#(/$!ND?_EY?B^5=PU6+ XM[(/L E=6BW8(@#ZK @!T"?]V!.B,_>F# +C" U"XM!90Z (/@\0$ZS6XM!90 XMZ!L/@\0""\!T#KC# U"XM!90Z%0.@\0$BUT"_W<"N+064.A$#H/$!(LU5^A. XM"X/$ HO^"_]UQ;BT%E"XQ0-0Z+3U@\0$BUX$_W<"N,<#4.BD]8/$!(-^!@!T XM#O]V!O]V!.C@^H/$!.L)_W8$Z(W\@\0"7E^+Y5W#58OL_S8<(;C* U"X&@50 XMZ#X*@\0&_W8*_W8(_W8&_W8$N!H%4.@H"H/$"H,^&A\ =!+_-AH?N,\#4+@: XM!5#H#PJ#Q :X&@50N H 4.@X"H/$!+@! %#H:PB+Y5W#58OL@^P(5U;'1OH XM /]V!K@ !"M&^E"+1OH#1@10Z%0)@\0&"\!U!K@! .FE /\&&A^X"@!0BT;Z XM T8$4.B%#8/$!(OP"_9U"KC= U#H4_^#Q * ?/]<=0[&1/\*B\8K1@2)1OKK XMIHMV!+@C %!6Z%,-@\0$B4;\"\!U%8-^_ !T"HM>_,8'"L9' 0"+=@3K+3EV XM_'3FBU[\@'__7'7=B\-(B4;XB_.+7OC_1OB+?OS_1OR*!8@'"L!TK^OJ1HH$ XMF(O8]H?#!@AU\PK =0/I-_\KP%Y?B^5=PU6+[(/L!%=6ZP6+7@3_!XM>!(L? XMB@>8B]CVA\,&"'7JBUX$BQ^ /P!U!"O ZS.+7@2+-^L2BD;\F(O8]H?#!@AU XM$XM>!/\'BUX$BQ^*!XA&_ K =>"+7@2+/_\'Q@4 B\9>7XOE7<-5B^RX+@!0 XM_W8$Z#\-B^5=PU6+[(/L%%=6OK06BUX$BW\"5^C:_X/$ HE&[@O =0LKP.EQ XM 8H%1X@$1CE^[G?UQ@0 N+064+CL U#HD_.#Q 2+V(M'!(E&]KCN U#H!NZ# XMQ *+V(E>\/9'"@1TPHM'!(E&_@O =+B+V(M' ND4 8M>^HM? HM' HE&\E#H XM>0R#Q +_=NZ)1NSH;0R#Q (#1NQ /0 $? JX^ -0Z"/X@\0"OK06BW[RB@5' XMB 1&"L!U]DZ+?NZ*!4>(!$8*P'7VN+064.B/[8/$ HE&\(O8]D<*!'4#Z:< XMOK06BW[V_W;RZ!4,@\0"5XE&[.@+#(/$ @-&[$ ] 1\"K@-!%#HP?>#Q ** XM!4>(!$8*P'7V3HM^\HH%1X@$1@K =?:XM!90Z#/M@\0"B4;XB]B+1P8+1PAU XM!U/HQ/F#Q *+7OB+1P8+1PAT.BO 4%/HH.V#Q 2)1OHKP%"+7O"+7P3_=P3_ XM=OK_=@3H@NZ#Q B+7OC_=P*X) 10Z%KR@\0$N $ ZQ>+7OJ+!XE&^@O = /I XMXOZ+7OZ+!^G+_EY?B^5=PU6+[(/L!K@F!%"X+@10Z"3R@\0$*\!0N#8$4.A_ XM[8/$!(E&_+A+!%#HC^R#Q *)1OXKP%#_=OQ0_W;^Z _N@\0(N%0$4+A9!%#H XMZ?&#Q 2X7 10N%T$4.C;\8/$!"O 4+AD!%#H-NV#Q 2)1ORX@ 10Z$;L@\0" XMB4;^*\!0_W;\4/]V_NC&[8/$"+B)!%"XC 10Z*#Q@\0$N(\$4+B3!%#HDO&# XMQ 0KP%"XF@10Z.WL@\0$B4;\N+ $4.C]ZX/$ HE&_BO 4/]V_%#_=O[H?>V# XMQ BXMP10N+P$4.A7\8/$!+B_!%"XP 10Z$GQ@\0$*\!0N,@$4.BD[(/$!(E& XM_+C@!%#HM.N#Q *)1OXKP%#_=OQ0_W;^Z#3M@\0(N.D$4.B7ZX/$ HE&_BO XM4/]V_N@>[(/$!(E&^KCN!%#H>^N#Q *)1O[_=OI0Z 3L@\0$B4;ZN/,$4.AA XMZX/$ HE&_O]V^E#HZNN#Q 2)1OJX^ 10Z$?K@\0"B4;^_W;Z4.C0ZX/$!(E& XM^KC]!%#H+>N#Q *)1O[_=OI0Z+;K@\0$B4;ZN %4.@3ZX/$ HE&_BO 4%#_ XM=OK_=O[HD^R+Y5W#58OL@^P*QT;\=A*X )0_W8$N'824.BA"8/$!NL0BD;V XMF(O8]H?#!@AT#_]&_(M>_(H'B$;V"L!UY,=&^ BU[\@#\ =%B+7OC1XXM& XM_(F'MAZ+7OR*!XA&]@K ="68B]CVA\,&"'4;_T;\BT;\B4;ZZ]^*1O:8B]CV XMA\,&"'0/_T;\BU[\B@>(1O8*P'7DBU[ZQ@< _T;X@W[X,7R@@W[X,7P%N/__ XMZS>+7OC1X\>'MAX +BV'E#_-K8>*\!0Z,0%@\0&B4;^0'0%BT;^ZQ"#/I(& XM G7T_W8$Z < @\0"B^5=PU6+[(/L!%=6Z"8 B_"X+P!0Z"\ @\0"_W8$Z L) XM@\0"B_A6Z!T @\0"B\=>7XOE7<-5B^Q75K@ -\TABL(RY%Y?7<-5B^Q75K@! XM-XI6!,TA7E]=PU6+[(/L!%=6BW8&]D0&@W0&]D0&0'0*@$P&(+C__^D$ ?9$ XM!@%U\(!,!@* 9 ;O*\")1 *+^(E^_O9$!@AU$XI$!YB+V-'C ]C1X_:'J@4! XM=$"+/"M\!(M$!$")!(I$!YB+V-'C ]C1XXN'K 5(B40""_]^$E?_= 2*1 >8 XM4.C'(H/$!HE&_HM<!(I&!(@'Z88 ]D0&!'5J@?X2!75#BD0'F%#H512#Q (+ XMP'51_P;R!\=$!+(4BD0'F(O8T>,#V-'CQH>J!0''!+,4F(O8T>,#V-'CQX>L XM!0 "QT0"_P'KIK@ E#HZ@.#Q *)1 0+P'0,@$P&"$")!(I$!^O-@$P&!+\! XM %>-1@10BD0'F%#H-B*#Q :)1OXY?OYT ^GW_HI&!"KD7E^+Y5W#M##-(3P" XM<PZX! !0Z%T4DK0)S2'-(+^*!(LV @ K]X'^ !!R [X $/J.UX'$+B'[<PLS XMP%#H9!2X_TS-(8'D_O\VB28H!C:))B8&B\:Q!-/@2#:C) 8#]XDV @",PRO> XM]]NT2LTA-HP>F 86!_R_=@JY,"$KSS/ \ZH6'^@K !8?Z*$=Z( @,^W_-K8& XM_S:T!O\VL@;H?.]0Z+T N , 4.CY$[C_ %#HQ@"T,,TAHYH&NP0 N !$S2%R XM"O;"@'0%@(^>!D!+>>RX #7-(8D>A@:,!H@&#A^X "6ZX1G-(18?BPY@">,G XMC@:8!B:+-BP Q09B"8S:,]LV_QY>"3;%!F8)C-J[ P V_QY>"18?C@:8!B:+ XM#BP XS2.P3/_)H ] '0JN0P OGH&\Z9T"[G_?S/ \JYU%^OE!AX''XOWOYX& XMK)B1K/[ = %(JN+W%A^^:@F_:@GH70##58OLOK 4O[ 4Z% OFH)OVP)Z$< XMZP-5B^R^; F_; GH.0#H;PZY% SV_:'G@8!= 2T/LTA0^+RZ < BT8$M$S- XM(8L.8 GC![L" /\>7@D>Q1:&!K@ )<TA'\,[]W,*3T^+#>/V_]'K\L-5B^R# XM[!)75HMV!+____9$!H-U ^F /9$!D!U>E;HAP^#Q *+^(I$!YB+V-'C ]C1 XMXXN'K@6)1NY6Z- (@\0"BD0'F%#H_@V#Q (+P'T%O___ZT.#?NX =#NXQ =0 XMC4;P4.CM!(/$!+C)!U"-1O!0Z$\$@\0$N H 4(U&]5#_=N[HJA&#Q :-1O!0 XMZ+X&@\0"B_CK BO_QD0& (O'7E^+Y5W#58OL@^P$5U:+=@B+?@2#?@8 =00K XMP.LZ_TX&="'_3 )X"HL<_P2*!RKDZP=6Z%@'@\0"B4;^0'4-.7X$=-;&!0"+ XM1@3K#(I&_H@%1SP*=<CK[%Y?B^5=PU6+[(/L E;H]AZ+\ OV= ]6_W8&_W8$ XMZ"<(@\0&ZP(KP%Z+Y5W#58OL@^P$5U;_=@3H$ F#Q *+\(U&"%#_=@;_=@3H XM$1.#Q :+^/]V!%;HD0F#Q 2+QUY?B^5=PU6+[%=6BW8$BWX&_TT"> R+QHL= XM_P6(!RKDZPA75NB8^X/$!%Y?B^5=PU6+[(/L!E=6_W8$Z.<#@\0"B_C_=@;H XMI B#Q *+\/]V!E>X 0!0_W8$Z&(.@\0(B4;\_W8&5N@C"8/$!#E^_'4)BUX$ XMBD'_F.L#N/__7E^+Y5W#58OLBUX$@$_^ 8OE7<-5B^Q65[O,!X,_ '4I'@>X XM!0#HK IU!3/ F>LD0"3^H\P'H\X'EL<$ 0"#Q@3'1/[^_XDVT@>+3@2,V([ XMZ$0)7UZ+Y5W#58OL@^P&5U:^$@56Z <(@\0"B_B-1@90_W8$5N@*$H/$!HE& XM^E97Z(L(@\0$BT;Z7E^+Y5W#58OL,\#HK0O_-K8&_W8(_W8&_W8$Z,\:B^5= XMPU6+[(/L!E=6BD8$*N2)1OJ+?@: ?0$Z=0.#QP* /5QT!8 ]+W4&@'T! '0+ XM]D;Z$'4%@#T =06X0$#K [@ @(OP]D;Z!70%N !ZP.X@ $+\+@N %#_=@;H XMY *#Q 2+^ O_=#&XU@=05^C"'(/$! O =!ZXV0=05^BS'(/$! O = ^XW =0 XM5^BD'(/$! O =02!SD B\8EP &Q ]/H"_"+QB7 ;$&T^@+\(O&7E^+Y5W# XM58OL@^Q,5U:+=@2+?@:XWP=05NCN'(/$! O = S'!I(& @"X___I90&-1L90 XMN!H 4.AA"8/$!,9&MT['1KHW (EVO(U&\E"-1K90Z$D.@\0$@W[^ '1L@#Q< XM= 6 /"]U!H!\ 0!T'H!\ 3IUMH!\ @!T$H!\ P!UJH!\ EQT!H!\ B]UGKA XM % KP%#H-PV#Q 2)1L16Z*$*@\0"0'1)_W;$Z)4*@\0"_W;$Z/G]@\0"QD;; XM$"O B4;BB4;@B4;<B4;>*\")10*)10J)10B ? $Z=2B*!)B)1K2+V/:'PP8! XM=!$%( #K#_]VQ.BY_8/$ NDO_XM&M"UA .L7QD:W&8U&\E"-1K90Z(P-@\0$ XMBD;R*N2)!8E%#%:*1MN84.@L_H/$!(E%!,=%!@$ BT;@BU;BB44.B540BT;< XM)1\ T>!0BT;<L073Z"4_ %"+1MRQ"]/H)1\ 4(M&WB4? %"+1MZQ!=/H)0\ XM4(M&WK$)T^@E?P!0Z(@9@\0,B44:B54<B446B548B442B544*\!>7XOE7<-5 XMB^Q65QX'BWX$B]<SP+G___*N3XOWBWX&B]^Y___RKD'WV8O^B_/SI(O"7UZ+ XMY5W#58OL5XM^!!X'B]\SP+G___*N0??9BD8&B_ORKD\X!70",_^+QU^+Y5W# XM58OL5U:+=@2+?@8>!XO?,\"Y___RKD'WV8O[\Z:*1/\SR3I%_W($= 1)2??1 XMB\%>7XOE7<-5B^Q75AX'BWX&B_<SP+G___*N0??9BWX$B]?SI(O"7E^+Y5W# XM58OL5QX'BWX$,\"Y___RKHO!0$#WV%^+Y5W#58OL5U8>!XM^!(MV!HO?BTX( XMXPRL"L!T ZKB^#+ \ZJ+PUY?B^5=PU6+[%<>!XM^!#/ N?__\JY!]]E/BD8& XM_?*N1S@%= 0SP.L"B\?\7XOE7<-5B^RX# #H)@C_=@3H@_^#Q (%" !0Z.7[ XM@\0"B4;\"\!U"<<&D@8, .G8 +CB!U#_=@2XY =0_W;\Z##_@\0$4.B9_H/$ XM!%#HDOZ#Q 2)1OCK _]&^(M>^( _ '7U_T[XBU[X@#\@=/6#1O@"BU[X_T;X XMQ@<-BU[XQ@< _W;\Z!#_@\0"2$B)1O0]@ !^",<&D@8' .LTBU[\BD;TB ?' XM!I(& "XZ@=0Z.0*@\0"B4;^*\!04(U&]E"-1OI0_S:V!N@K!H/$"D!U"_]V XM_.@?^X/$ NLN_W;V_W;\_W;^*\!0Z+4'@\0(B4;T_W;ZZ/_Z@\0"_W;\Z/;Z XM@\0"@SZ2!@)U!;C__^L#BT;TB^5=PU6+[(/L K0JS2&+VHE._K0LS2$RY(K& XM4(K!4(K%4%"T*LTA.]I8= D\%W4%B].+3OXRY(K"4(K&4(O!+;P'4.CV%H/$ XM#(-^! !T"(M>!(E7 HD'B^5=PU6+[(M6!+1!S2'I!PA5B^R#[!I75BO_B7[\ XMN & 4/]V!.B1"X/$!(E&ZHE&]@O ?0:X___IH@"#?@8 =0R-1OA0Z&7_@\0" XMZP^+7@:+1P2+5P:)1OB)5OJ-1OA0Z)X*@\0"B_"+1 HM4 E?P"Q"=/@"_B+ XM1 A )0\ L073X OXBT0&)1\ "_B+1 0E'P"Q"]/@"4;\BT0")3\ L073X E& XM_(L$F2O"T?@E'P )1OR+1OR)1NR)?N[&1N@!QD;I5XU&Z%"-1NA0Z*X)@\0$ XM_W;VZ"8&@\0"*\!>7XOE7<-5B^Q75HMV!/9$!H-T!O9$!D!T!KC__^G" /9$ XM!@)T!H!,!B#K[H!,!@'V1 8,=2V*1 >8B]C1XP/8T>/VAZH% 74:N "4.AN XM^8/$ HE$! O = 2P".L"L 0(1 ;V1 8(=!**1 >8B]C1XP/8T>/'AZP% *# XM? 0 =1J*1 >8B\C1X /!T>"+^ 6K!8E$!,>%K 4! (M$!(D$BD0'F(O8T>,# XMV-'C_[>L!?]T!)A0Z/X;@\0&B40""\!_%0O = 2P(.L"L! (1 ;'1 ( .E# XM__], HL<_P2*!RKD7E^+Y5W#58OL5HMV!/9$!H-T'?9$!@AT%_]T!.BO^(/$ XM H!D!O<KP(D$B40$B40"7HOE7<-5B^R#[ A75HMV"(M>!HH'F#UA '1$/7( XM= H]=P!T,RO Z=@ QT;^ 0#_1@:+7@: /RMU!X!._@C_1@:+1OXE!P ] 0!T XM&CT" '0S/00 =#/K$,=&_@( Z]#'1OX$ .O)*__V1OX(= B!SP( @>?^_XM> XM!H _='40@<\ 0.L6OP$#Z]^_"0'KVHM>!H _8G4$@<\ @+BD 5!7_W8$Z"4) XM@\0&B4;Z"\!] ^ES__9&_@AT!L9$!H#K$/9&_@9T!L9$!@+K!,9$!@'_!O(' XMBT;ZB\C1X /!T>")1O@JP(M>^(B'J@68B40"QX>N!0 *\")!(E$!(I&^HA$ XM!XO&7E^+Y5W#58OL5U:+=@3_!O('@?X2!74Y]D0&#'4SBD0'F(O(T> #P='@ XMB_CVA:H% 74>QT0$LA3&A:H% <>%K 4 L=$ @ "QP2R%+@! .M.@?X:!70& XM@?XJ!75 ]D0&"'4ZBD0'F(O(T> #P='@B_CVA:H% 74E@3X6!;(4=!W'1 2R XM%(I$!IBC>!3&A:H% <>%K 4 H!D!OOKIBO 7E^+Y5W#58OL5U:+=@:#?@0 XM=1.A%@4Y1 1U"U;HL 2#Q (KP.M?@WX$ '19@?X2!748BD0'F%#H^0:#Q (+ XMP'0)5NB*!(/$ NL;@?X:!70&@?XJ!74O5NAU!(/$ J!X%"0$"$0&BD0'F(O( XMT> #P='@B_C&A:H% ,>%K 4 "O B02)1 1>7XOE7</IS "#^>YS^$& X?Z+ XM=P+\K8O^J %T0D@[P7,5B] #\*VH 70T \(% @"+]XE$_NOFB_YT# /YB4S^ XM*\%(B07K!0/Y_DS^B\:,VHS1.]%T!2:,'O@'B7\"PR;&!OP' CW^_W0EB_X# XM\*VH 73RB_Y(.\%SO8O0 _"MJ %TX@/"!0( B_>)1/[KYHM'" O = 2.V.L4 XM)OX._ =T$8S8C-<[QW0%)HX>] >+-^N\BW<&,\#H:@ [QG0-) % 0)CH7@!T XM#?Y-_N@< '0%EDY.ZYF,V(S1.\%T!":C^ >+!XE' C/ F<-1BT7^J %T RO( XM24%!NO]_)CL6^@=V!-'J=?6+P0/&<A4#PG(-]](CPBO&Z P =0CWTM'J=>4S XMP%G#4E'H'0!T&%>+_HOP _+'1/[^_XEW!HO6*]=*B57^6%E:PU-0,](>4E)0 XMN $ 4 8?Z'X4@\0(@_K_'UI;= (+TL-5B^R*9@2+5@:*1@C-(8OE7<-5B^RX XM#@#H-@%75H-^! !U!J&V!HE&!(MV!,=&]@ ZQ"#Q@+_=/[H>/B#Q ) 4;V XM@SP =>N+1O9 B4;XQT;\$P"+7OR OYX& '4)_T[\@W[\_W_M@W[\ 'P3N/X' XM4.A ^(/$ @-&_ 4# %&^(M&^ 4/ %#HEO2#Q *)1OJ+7@:)!PO =2J#?@H XM= G_=@KH;?2#Q +'!I(&# #'!IP&" #_=OKH6/2#Q *X___IB "+1OH%#P D XM\(OXBUX(B3^+=@3K&2O 4/\T5^BO]X/$!%#H2?>#Q 1 B_B#Q@*#/ !UXH-^ XM_ !\2BO 4+@+"%!7Z(GW@\0$4.@C]X/$!(OXBD;\_L"(!4?'1O8 (M>]H"_ XMG@8 = :*AYX&ZP*P_X@%1_]&]HM&_/]._ O ==[&!0!'Q@4 BT;X7E^+Y5W# XM68O<*]AR"CL>& AR!(OC_^$SP.FQ\%8S]KDV #+D_*PRX.+[@/15= >X 0!0 XMZ)0$7L-5B^R+7@2T/LTA<@7&AYX& .D& 56+[+0YZPQ5B^RT.NL%58OLM#N+ XM5@3-(>GK;2FR L L%6+[(-^! %T$X-^! !T#<<&D@86 +C___CIS0!65XS8 XMBUX*L033ZP/#HQH(BT8(HQP(C!X>"!X'BS8<"$:_* BX 2G-(;@!*;\X",TA XM508>@#Z:!@-](2Z,%H I+HDF?BF_+@"+-2Z)-H(IBW4"+HDVA"DNC!Z&*;L: XM"(-^! !T!K $,\GK C+ ^%"T"\TA6,<&N 8! (M6!K1+S2%0GU"T,,TA/ -8 XM6WTA+HX6@"DNBR9^*;\N "Z.'H8I+HLVA"F)=0(NBS:"*8DUGI,?QP:X!@ XM!UU?7G($M$W-(>D( '((,\"+Y5W#<P;H#0"X__^+Y5W#,N3H 0##HIP&"N1U XM(X ^F@8#<@T\(G,-/"!R!; %ZP>0/!-V K 3NT@(UYBCD@;#BL3K]U6+[(/L XM!%=6BW8$*_^*1 8D SP"=4#V1 8(=1.*1 >8B]C1XP/8T>/VAZH% 70GBP0K XM1 2)1OP+P'X;4/]T!(I$!YA0Z&H0@\0&.T;\= > 3 8@O___BT0$B03'1 ( XM (O'7E^+Y5W#58OL@^P&5U:+=@2+?@J+1@;W9@B)1OJ)1OR#?@8 = :#?@@ XM=04KP.FS /9%!@AU$XI%!YB+V-'C ]C1X_:'J@4!='6#?OP =0/IA@"+1OPY XM10)R&5!6_S7H'12#Q :+1OPI10(!!<=&_ Z]:#?0( =!W_=0)6_S7H_!.# XMQ :+10(!!2E&_ /PQT4" #KL_]- G@,B@2+'?\%B <JY.L+5XH$F%#H5^R# XMQ 3V108@=2!&_T[\ZXO_=OQ6BD4'F%#HA ^#Q :)1OX]__]T RE&_(M&^BM& XM_"O2]W8&7E^+Y5W#58OL@^Q"5U:+=@:+?@0+_W485NC9\(/$ HOX"_]U",<& XMD@8, .M4B7X$*\!0C4:^4.A5$8/$!(U&OE#H1?2#Q (% P [QGP*QP:2!B( XM*\#K*2O 4%"X&0!0Z'+[@\0&!$&(!4?&!3I'Q@5<1XU&OE!7Z.GS@\0$BT8$ XM7E^+Y5W#58OL@^P$5U:+-K8&"_9T.(-^! !T,O]V!.CF\X/$ HOXZR"+'( Y XM/7465_]V!%/HG!6#Q 8+P'4'BQR-00'K"H/& H,\ '7;*\!>7XOE7<-5B^Q6 XM5XM^!(L%BUT"BTT$BU4&BW4(BWT*S2%7BWX&B06)70*)302)50:)=0B/10IR XM!#/VZPCH=OV^ 0"+!8EU#%]>B^5=PU6+[(M>!(/[%'T1@_L ? SVAYX&0'0% XMN $ ZP(SP(OE7<-5B^Q65[,!BTX(BT8$,]*#^0IU 9F+?@;IW!95B^R#[ 96 XMZ"H5BUX$BP>+5P(K!@()&Q8$"8E&_(E6_HU&_%#H5A"#Q *+\(,^!@D ="56 XMZ+,5@\0""\!T&H%&_! .@U;^ (U&_%#H+Q"#Q *+\,=$$ $ B\9>B^5=PU6+ XM[%97N(H$CM@>!XM6!+YV":T[PG000)9T#)<SP+G___*NB_?KZY9?7HOE7<(" XM %6+[%?_=@3HQO\+P'04DHOZ,\"Y___RKO?12;L" +1 S2%?B^5=P@( 58OL XM,O^(/H@(BT8&,NVI" !T K4@B"Z'""4# #T# '4%@78& 0"Z7 BT<AN3< XMBU8$M$[-(7,#Z9L BT8&B\@E 4] 5U![@ $?GI%_S&!HD( 9&I )T"XM6 XM!+@ 0\TAZ9P J0, =%>I (!U4O8&20F =4NP @H&B B+5@2T/<TA<L>3N !$ XMS2'VPH!U+;G__XO1N )"S2'WV;I<"+0_S2$+P'06@#Y<"!IU#_?9B]&X D+- XM(3/)M$#-(;0^S2&*1@8D PH&B B+5@2T/<TA<C?I.P[W1@8 74#Z6O_Q@:) XM" "+3@CH?0Z)3@@R[?8&B C_=0?W1@8" '4#@.'^BU8$M#S-(7,#Z5G[]@:( XM"/]U!_=&!@( =3*3M#[-(8I&!B0#"@:("(M6!+0]S2%RV/8&B0@!=13W1@@! XM '0-@,D!DXM6!+@!0\TAD^G!#56+[+AB >BY^5=6BW8&C8:B_J.(%(M&"*.$ XM%(M&!*-^%,<&EA0 ,<&E!0 .DY H \)70#Z<@!QP:.% $ *\"CC!2C>A2C XMD!2C@A2CAA2C?!2C@!2CFA2CG!3'!HH4( " ? $P=3M&QP:*%# ZS* /"UU XM!O\&G!3K)X \*W4,_P:,%,<&?!0 .L6@#P@=0V#/HP4 '4*_P9\%.L$_P:: XM%$:*!)A0Z#T'@\0""\!UOU:XDA10Z,,&@\0$B_" /"YU$O\&AA1&5KB.%%#H XMK :#Q 2+\(H$F#U& '0Y/4X =#P]: !T)SUL '0'/7 ="7K!L<&@A0" (,^ XM@A0 = : /'!T 4: / !U&^EC <<&@A0! .OCQP:"%! Z]O'!H(4" #KTXH$ XMF(F&GOX]10!T"CU' '0%/5@ =0G_!GH4@X:>_B"+AI[^+6, /14 =@/IH@ # XMP),N_Z=?,8L>A!2+'Z&4%(D'Z<8 _P:0%,<&FA0 +@* %#H%0&#Q +IKP"X XM" #K\?\&@!3'!HX4! #_!GH4_P:&%(,^@A0"= >#/H(4$'4UQP:"% @P:$ XM% *X$ !0Z-@ @\0"N#H 4.B' X/$ H,NA!0$N! 4.B_ (/$ H,&A!0"ZU6X XM$ #KERO 4.C? >N3N $ Z_7_MI[^Z+4"ZX6#/H(4 '0#B\9.B_[K3D,QR3!( XM,4@Q2#%1,<DP43%1,5$Q43&W,-PPX3!1,5$Q.S%1,<4P43%1,38Q@SZ6% !T XM$X,^E!0 =4F+'GX4]D<&('4ZZSU&ZQR /25T!D> /0!U]8O'*\90B\8>4.B3 XM X/$!HOW@#P = /IO_V#/I04 '4/BQY^%/9'!B!T!;C__^L#H9047E^+Y5W# XM58OLN!@ Z"GW5U:#?@0*= 3_!I 4@SZ"% )T!X,^@A00=1:+'H04BP>+5P*) XM1OB)5OJ#!H04!.LI@SZ0% !T$(L>A!2+!XE&^,=&^@ ZPV+'H04BP>9B4;X XMB5;Z@P:$% *#/IH4 '0-BT;X"T;Z= 6+1@3K BO HY@4BS:(%(,^D!0 =2J# XM?OH ?22#?@0*=1?&!"U&BT;XBU;Z]]B#T@#WVHE&^(E6^L=&]@$ ZP7'1O8 XM (O]@^\8_W8$5_]V^O]V^.AF$8/$"(,^AA0 ="!7Z,#M@\0"BPZ.%"O(B4[^ XMZP3&!#!&BT;^_T[^"\!_\HH%B 2#/GH4 '0'/&%\ X L($9'@'W_ '7F@SZ0 XM% !U%*&,% L&?!1T"X-^]@!U!;@! .L"*\!0Z*8"@\0"7E^+Y5W#58OLN! XMZ/3U5U;'!HH4( "#?@0 =!2^ 0"AA!2)1O2,7O:#!H04 NF$ (,^@A00=1:+ XM'H04BP>+5P*)1O2)5O:#!H04!.L4BQZ$%(L'B4;XB4;TC%[V@P:$% *#/H(4 XM$'4-BT;T"T;V=12XB@CK"8-^^ !U";B1"(E&](Q>]HM&](M6]HE&_(E6_BOV XMZP3_1OQ&Q%[\)H _ '7S@SZ&% !T#(O&.P:.%'8$BS:.%(L^DA0K_H,^G!0 XM=0=7Z T!@\0"5O]V]O]V].AE 8/$!H,^G!0 = =7Z/( @\0"7E^+Y5W#58OL XMN ( Z!#UH804B4;^@SZ&% !U!L<&CA0& /\V>A3_-HX4_W8$_S:(%/]V_NAF XM"8/$"H-^!&=T!H-^!$=U&(,^FA0 =1&#/HX4 '0*_S:(%.A""8/$ H,^FA0 XM=!&#/HX4 '4*_S:(%.@J"8/$ H,&A!0(QP:8% H8P4"P9\%'02_W;^Z T) XM@\0""\!T!;@! .L"*\!0Z!T!B^5=PU6+[#/ Z''T5H,^EA0 =32+'GX4_T\" XM>!&*1@2+'GX4BS?_!X@$*N3K#?\V?A3_=@3H0N.#Q 1 =0;_!I84ZP3_!I04 XM7HOE7<-5B^RX @#H)_175H,^EA0 =4V+=@0+]GY&ZR^+'GX4_T\">!&@BA2+ XM'GX4BS__!X@%*N3K#O\V?A3_-HH4Z.WB@\0$0'4$_P:6%(O&3@O ?\J#/I84 XM '4'BT8$ 0:4%%Y?B^5=PU6+[+@" .C"\U=6BW8(@SZ6% !U4.LYBQY^%/]/ XM G@4Q%X$)HH'BQY^%(L__P>(!2KDZQ+_-GX4Q%X$)HH'F%#HA>*#Q 1 =03_ XM!I84_T8$B\9."\!UP(,^EA0 =0>+1@@!!I047E^+Y5W#58OLN H Z%?S5U:+ XM-H@4*\")1OR)1OB+/I(45NBDZH/$ HE&^BOX*WX$@SZ<% !U&( \+743@SZ* XM%#!U#*R84.BD_H/$ O].^H,^BA0P= L+_WX'@SZ<% !T&8-^! !T!O]&^.AA XM (,^F!0 = ;_1OSH<P"#/IP4 '4F5^BQ_H/$ H-^! !T"8-^^ !U ^@W (,^ XMF!0 = F#?OP =0/H1@#_=OJ+QAY0Z.K^@\0&@SZ<% !T#<<&BA0@ %?H<?Z# XMQ )>7XOE7<-5B^PSP.B0\H,^C!0 = 6X*P#K [@@ %#H!/Z+Y5W#58OL,\#H XM<?*X, !0Z/']@\0"@SZ8%!!U%H,^>A0 = 6X6 #K [AX %#HU/V#Q *+Y5W# XM58OLN ( Z#WR5U:+=@: /"IU$8L>A!2*!YB+^(,&A!0"1NLZ*_^ /#!\,X \ XM.7\N.3Z&%'4+@#PP=0;'!HH4, "LF(O/T>'1X0//T>$#R(/I,(OY@#PP? 6 XM/#E^XXM>!(D_B\9>7XOE7<-5B^RX @#HTO%6OI@(ZPV*!#A&!'4%N $ ZPA& XM@#P =>XKP%Z+Y5W#CP:>"(X>F 86![Z *R8)H ^F@8#<D50C@8L #/ B\CW XMT8OX\JXF. 5U^8/' XO(]]%7\JY>@\$"]]E;B\,#P04# "7^_RO@B_P>!A\6 XM!_.DL""JB\L?OH$ ZPZ+R 0$)/XKX(O\N$,@J_.DB\&JB_06'U"+W(O^K K XM="#H-P!T]$Y6_P:R!JSH,@"J"L!T#.@C '7RQD7_ .O:JHOT2TL[\W,(K8<' XMB43^Z_*+W(DFM ;_)IX(/ ET CP@PSQ<=0B /")U ZSK&CPB=1:L/ UT$3PB XM=0> ?/Y<=01/JNOMK.O:PU6+[+C8 .C%\%=6B_V#[U+_=@K_=@C_=@;_=@3H XM/ B#Q B)1OY =2J#/I(& G4CBUX&B@<\7'0:"L!T!H!_ 3IT$+B@"%#HYO.# XMQ *+\ OV=0:+1O[IB0"X?P!05HV&+/]0Z.?G@\0&B_#&1JL B_6![M0 =-SK XM"8 \.W0)K(@%1X \ '7RQ@4 B_V#[U)7Z)_G@\0"B]B >?]<= NXI0A05^C7 XMYH/$!/]V!E?HS>:#Q 3_=@K_=@A7_W8$Z)P'@\0(B4;^0'6*@SZ2!@)U@X \ XM '4#Z7O_B\9&"\!UH^EQ_UY?B^5=PU6+[(/L(%=6BW8$N(!1N@$ 4E"-1 .9 XM,\(KPKD" -/X,\(KPIE24.@^#HE&Z(E6ZHM>!M'CB[_""(O&F;D$ /?Y"])U XM!X-^!@)^ 4>X/ "94E"+1@R94E#H#0ZY$ XKVU-1B\B+1@J+VIE24(E.Y(E> XMYNCS#;F 4;L! %-1B\BX;0&+VO?NB]"+1@@#P@/'F5)0B4[@B5[BZ,T- T;@ XM$U;B T;D$U;FB\B+1@Z+VID#R!/:@<$ IH'3SA(!3N@17NJ+1@@#QXE&^NB$ XM"*$""8L6! D!1N@15NJ-1%")1O:+1@9(B4;TBT8*B4;P@SX&"0!T%XU&[%#H XM# F#Q (+P'0)@6[H$ Z#7NH BT;HBU;J7E^+Y5W#58OL58X>F 8SR8O!B^F+ XM^4F+-BP "_9T"([&\JY%KG7Z19= )/Z+_='E \46'U>_"0#H1P=?B\^+_0/X XMB2ZV!AX'CMXS]DGC$X$\.T-T!8E^ $5%K*H*P'7ZXNV)3@ 6'UV+Y5W#58OL XM5U:+=@2+?@8>![=!LUJU((HDB@4*Y'0@"L!T'$9'.N=R!CKC=P("Y3K'<@8Z XMPW<" L4ZX'4(Z]@SR3K@= FY !R DE)]]&+P5Y?B^5=PU6+[(/L E:^"@7V XM1 :#=14KP(E$ HA$!HE$!(D$QD0'_XO&ZPV+QH/&"#L&(@9UVBO 7HOE7<-5 XMB^Q75AX'BW8&Z,(&BW8$,\"L.L1T"NC<!CK@=/2+QDA>7XOE7<-5B^R+7@3V XMAYX&('0.N )",\F+T<TA<P/I].[VAYX&@'4#Z8$ BTX(BU8&'@<SP/Q75HOP XMB_KC9;@*0/*N=3)1B\\KRDGC$,TAG /PG7,$M GK20O ="]&N0( NJ@(M$#- XM(7,$M GK- O =!I9B]?KQ5&+SRO*S2&< _"=<P2T">L:"\!U%O:'G@9 = N+ XM7@: /QIU _CK!/FX !Q9<@*+QEY?Z6GNBTX("\EU!8O!Z5WNBU8&M$#-(7,$ XMM GKY O =>#VAYX&0'0*B]J /QIU _CKS_FX !SKR56+[%97!H-^" !U.+\H XM!HM6!HM&!$AU!^A3 '(GZTB+-G@&2'01._=T#8M$ HE&#%;H.@!><S"#Q@2! XM_G@&<P0+TG4&N/__F>L=B]J#PP_1V[$#T^NT2,TA<NF2B02)5 *)-G@&,\ ' XM7UZ+Y5W#BTX,B_<Y3 )T#(/&!('^> 9U\OGK/XO: QQR.8O3CL$[]W4&.1XD XM!G,F@\,/T=O1Z]'KT>L[]W4) ]FAF 8KV([ M$K-(7(-._=U!(D6) :2AP2+ XMT<-5B^S&!H<( (M.!NAE (E.!HM6!#+MM#S-(7)4B]B+5@2X $/-(??! 0!U XM!#+)ZP*Q$/=&!@! =0[W1@8 @'4*]@9)"8!U X#)@ H.APBX $3-(7,%N 4 XMZQ: R0&+P_;"@'0#@,E B(^>!H"GG@;]Z?[LH90&]] CP8'A ,"H@'4#@,D! XMPU6+[(O>BU8&BW8$M$?-(8OSB^5=P^CN"%6+[(/L!%=6O@H%*__K%/9$!H-T XM"U;H^NR#Q ) = %'@\8(.38B!G/FB\=>7XOE7<-5B^R#[ Q75HM>!(%_ LX2 XM?S1\!H$_ *9S+,<&J!10 ,<&I!0! "O HZX4HZP4HZ84HYX4HZ 4HZ(4QP:J XM% ( N)X4Z7<!N( SNN$!4E"+7@3_=P+_-^C3"*.H%+B 4;H! %)0H:@40)DS XMPBO"N0( T_@SPBO"B_B94E#H40FY@#.[X0%348M>!/]W O\WB4;TB5;VZ&0) XM*T;T&U;VB4;XB5;Z@W[Z 'TH@4;X@#.!5OKA :&H%$"9N00 ]_D+TG4*@4;X XM@%OH!3_\.J!3KTH$&J!2R!Z&H%)FY! #W^0O2=1^AJ!29N60 ]_D+TG4- XMH:@4F;F0 ??Y"])U!;ZJ".L#OL0(@2ZH%&P'N(!1N@$ 4E#_=OK_=OCH#PBC XMK!2X@%&Z 0!24(U&^%#H<@G'!J84 0#K!/\&IA2+'J84T>.AK!0Y 'SO_PZF XM%(L>IA31XRL HZ04N! .F5)0_W;Z_W;XZ,8'HZ(4N! .F5)0C4;X4.@K";@\ XM )E24/]V^O]V^.BG!Z.@%+@\ )E24/]V^O]V^.AD"*.>%+AM ?<NJ!0#!JP4 XM \<MRF.9N0< ]_F)%JH4QP:N% Z8/^7E^+Y5W#58OL5U8>!XM^!(MV!HO7 XMBTX(XS4[_G84B\8#P3OX<PP#\0/Y3D_]\Z3\ZQV+QPO&T>AS"HO',\;1Z'+K XMI$G1Z?.E<P6*!":(!8O"_%Y?B^5=PU6+[(M>!/:'G@8"= 4SP.E[ZHM."(M6 XM!K0_S2%S!+0)ZR_VAYX&@'0H5E?\B_*+^HO(XQNT#:PZQ'0=/!IU!X"/G@8" XMZP6(!4?BZXO'*\)?7NDYZHOE7<.#^0%T!X \"G3GZ^+VAYX&0'09N !$S2'W XMPB =0J-%MX(M#_-(7+/L KK+\8&W@@ C1;>"+0_S2%RO O =!J#?@@!=""Y XM__^+T;@!0LTAN0$ @#[>" IT![ -BU8&ZXZ+5@;KC( ^W@@*==GKNE6+[+B* XM .AJZ%=6BW8&@WX$ G40_W8*_W8(5NC*!8/$!NGT "O 4(V&>/]0C4;X4(U& XM_E#_=@K_=@CHFP.#Q Q =0:X___ISP"X7 !05NC(WX/$!(OX"_]U HO^N"X XM4%?H[MZ#Q 0+P'08_W;XC89X_U!6_W8$Z&3H@\0(B4;ZZ8D 5NA/WX/$ @4% XM %#HL=N#Q *+^ O_=0O_=O[HE-N#Q +KGKC@"%!65^@#WX/$!%#H;-Z#Q 3' XM!I(& #_=OB-AGC_4%?_=@3H$>B#Q B)1OJ#/I(& G4KN.4(4+@N %!7Z#/? XM@\0$4.C$WH/$!/]V^(V&>/]05_]V!.C?YX/$"(E&^E?H*]N#Q +_=O[H(MN# XMQ *+1OI>7XOE7<.+T ,&* 9R-3D&) 9S)04/ %#1V+$#T^B,V8L>F 8KRP/! XMCL.+V+1*S2%8<A D\$BC) :5BRXH!@$6* ;#B\?IVM>_Z@B+W[D0 #/ \ZJL XM"L!T%8OXL0/3[P/[L@&*R(#A!]+B"!7KYL-1B_BQ ]/O _NR 8K(@.$'TN)9 XM,\"$%70!0,-5B^Q75AX'BTX(XR:+V8M^!(OW,\#RKO?9 \N+_HMV!O.FBD3_ XM,\DZ1?]W!'0$24GWT8O!7E^+Y5W#58OL@^P$5U:X2@E0Z.GI@\0"B_ +]G4# XMZ94 @#P =0/IC0"X P!05O\V" GHYMV#Q :X$ Z94E"#Q@-6Z+H!@\0"4E#H XMT02C @F)%@0)*_^+WP/>@#\ =!^+WP/>B@>8B]CVA\,&!'4)B]\#WH _+74& XM1X/_ WS8B]\#WH _ '05N , 4(O' \90_S8*">B$W8/$!NL'BQX*"<8' (L> XM"@F /P!T!;@! .L"*\"C!@E>7XOE7<-5B^R#[ 975HMV!(-\" -\!H-\" E^ XM!2O Z;H @WP( WX)@WP("7T#Z:@ BWP*@<=L!XM<"-'CBX?&"$")1OZ+QYFY XM! #W^0O2=1N+QYFY9 #W^0O2=0R+QYFYD 'W^0O2=0/_1OZ+? J#[T:X;0'W XM[XO(C44!B]F9,\(KPKD" -/X,\(KP@-&_@/#!00 F;D' /?YBT;^*\*)1OJ# XM? @#=1@Y1 Y_+#E$#G0#Z6C_@WP$ GT#Z5__ZQF+1OHY1 Y\$3E$#G0#Z4W_ XM@WP$ 7P#Z43_N $ 7E^+Y5W#58OL5E>S .D (M."HM&!(M6!HM^"%<>!_R3 XM"L!T$X/Y"G4."])Y"K MJO?;@]( ]]J+]Y(ST@O = +W\9/W\9*'TP0P/#EV XM @0GJHO""\-UXH@%3ZR&!8A$_T\[]W+U6%]>B^5=P^DD E6+[+@2 .B2Y%=6 XM*_8Y=@9U!J&V!HE&!H-^!@!T(HM&!HE&\.L2BU[P@T;P O\WZ,S;@\0"0 /P XMBU[P@S\ =>;'1O@4 (M>^("_G08 =07_3OAU\8-^^ !T"(M&^ 4. /P@WX. XM '00BUX$_S?HCMN#Q (% P #\$:)=O:+-OH'QP;Z!Q BT;V!0\ 4.C:UX/$ XM HE&_@O =2F+1O8%#P!0Z,;7@\0"B_@+_W49QP:2!@P QP:<!@@ B3;Z![C_ XM_^E! 8M^_HDV^@>+7@B)?O*)/XM&\@4/ "3PB4;RBUX*B_B)/X-^!@!T+8M& XM!HE&\.L=*\!0BU[P_S=7Z-O:@\0$4.AUVH/$!$"+^(-&\ *+7O"#/P!UVX-^ XM^ !T.RO 4+A."5!7Z+':@\0$4.A+VH/$!(OXBD;XB 5'*_: O)X& '0&BH2> XM!NL"L/^(!4=&_T[X=>C&!0!'Q@4 @WX. '0/@\<#BUX$_S=7Z&S:@\0$*_:+ XM?@Q'BUX$.3=T>CEW G0%Q@4@1T:+1@0% @")1O#K6?]V[NAFVH/$ HE&_ /& XM/7T ?AK'!I(&!P#'!IP&"@"+7@C_-^BCUH/$ NG^_@-V_"O 4(M>\/\W5^@+ XMVH/$!%#HI=F#Q 2+^(-&\ *+7O"#/P!T!<8%($=&BU[PBP>)1NX+P'6;Q@4- XMBUX,B\:(!XM&]EY?B^5=P[@" .E2TXL.; GC O_AN/__QP:2!A8 Z<OC58OL XM5E>+=@3\,\"9B]JL/"!T^SP)=/<\+9QT!#PK=0&L/#EW'RPP<AO1X]'2B\N+ XM^M'CT=+1X]'2 ]D3UP/8@]( Z]R3G74']]B#T@#WVE]>B^5=PU6+[%=64S/_ XMBT8&"\!]$O?7BU8$]]CWVAT (E&!HE6!(M&"@O ?1+WUXM6"/?8]]H= ") XM1@J)5@@+P'46BTX(BT8&,]+W\8O8BT8$]_&+T^L\D(O8BTX(BU8&BT8$T>O1 XMV='JT=@+VW7T]_&+\#/24E#_=@K_=@CH)P [5@9W!W((.T8$=@.#[@$STHO& XM"_]T!_?:]]B#V@!;7E^+Y5W"" !5B^Q7BWX&BT8*"_B+7@B+3@1T"_?AB_B+ XMP_=F!@/XB\/WX0/77XOE7<(( %6+[%-7,_^+1@8+P'T2]]>+5@3WV/?:'0 XMB48&B58$BT8*"\!]$(M6"/?8]]H= ")1@J)5@@+P'4:BTX(BT8&,]+W\8M& XM!/?QB\(ST@O_=47K2I"+V(M."(M6!HM&!-'KT=G1ZM'8"]MU]/?Q,])24/]V XM"O]V".A9_SM6!G<'<@L[1@1V!BM&"!M6"BM&!!M6!@O_=0?WVO?8@]H 7UN+ XMY5W"" !5B^R+7@3_=@C_=@;_=P+_-^A&_XM>!(E7 HD'B^5=P@8)'[( %P"P XM0R!,:6)R87)Y("T@*$,I0V]P>7)I9VAT($UI8W)O<V]F="!#;W)P(#$Y.#8? XM "5S(#T@)7,* "5S.CH* "5S.@H *$U!24X@3D%-12D* " E<P M"25S"@!C XM:7)C=6QA<B!D97!E;F1E;F-Y(&9R;VT@8"5S)P N4%)%0TE/55, &YO(&UE XM;6]R>2!F;W(@;F%M90!N;R!M96UO<GD@9F]R(&YA;64 ;F\@;65M;W)Y(&9O XM<B!D97!E;F1A;G0 ;F\@;65M;W)Y(&9O<B!C;VUM86YD &YO(&UE;6]R>2!F XM;W(@8V]M;6%N9 !C;VUM86YD<R!D969I;F5D('1W:6-E(&9O<B!T87)G970@ XM)7, :6YC;VYS:7-T96YT(')U;&5S(&9O<B!T87)G970@)7, ;F\@;65M;W)Y XM(&9O<B!L:6YE ')U;&5S(&YO="!A;&QO=V5D(&AE<F4 ;F\@;6%C<F\@;F%M XM90!N;R!T87)G971S('!R;W9I9&5D !N;R!M96UO<GD@9F]R(&UA8W)O &YO XM(&UE;6]R>2!F;W(@;6%C<F\ ;F\@;65M;W)Y(&9O<B!M86-R;P :6YF:6YI XM=&5L>2!R96-U<G-I=F4@;6%C<F\@)7, 97AP86YD960@;&EN92!T;V\@;&EN XM90 ;6%K90!M86ME "T <@!M86ME9FEL90!M86ME9FEL90!C86YN;W0@;W!E XM;B!@)7,G.R!E<G)O<B E,#)X '( ;6%K969I;&4 ;6%K969I;&4 8V%N;F]T XM(&]P96X@8"5S)P!R &-A;FYO="!O<&5N(& E<R< ) D "Y324Q%3E0 +DE' XM3D]210!N;R!T87)G971S(&1E9FEN960 ;&]V90!.;W0@=V%R(0H $ ! XM !U<V%G93H@)7,@6RUF(&UA:V5F:6QE72!;+6%I;G!Q<G-T72!;/&UA8W)O XM/CT\=F%L/BXN+ET@6W1A<F=E="AS*2XN+ET* "5S.B %-(14Q, %P* &-O XM=6QD(&YO="!E>&5C=71E(& E<R< )7,Z(&5R<F]R(&-O9&4@)60 ("AI9VYO XM<F5D*0H )7,Z(& E<R<@<F5M;W9E9"X* &-A;FYO="!O<&5N(& E<R<[(&5R XM<F]R("5D " @("!T;W5C:"A@)7,G*0H )7,Z(& E<R<@;F]T('1O=6-H960* XM &1O(&YO="!K;F]W(&AO=R!T;R!M86ME(& E<R< )7,Z(& E<R<@:7,@=7 @ XM=&\@9&%T90H " /P! E<SH@ "!N96%R(&QI;F4@)60 ;&EN92!T;V\@ XM;&]N9P *@ N4U5&1DE815, <W5F9FEX(')U;&4@=&]O(&QO;F< :6UP;&EC XM:70@;F%M92!T;V\@;&]N9P \ &5X93)B:6X 15A%,D))3@ D*$5813)"24XI XM("0J+F5X92 D0 N97AE+F-O;0!L:6YK $Q. !,1DQ!1U, )"A,3BD@)"HN XM;V)J+"1 ("0H3$9,04=3*2 [ "YO8FHN97AE &-C $-# "U/= !#1DQ!1U, XM)"A#0RD@)"A#1DQ!1U,I("UC("0\ "YC+F]B:@!M87-M $%3 !!4T9,04=3 XM "0H05,I("0\+"1 ("0H05-&3$%'4RD[ "YA<VTN;V)J "YC;VT +F5X90 N XM;V)J "YA<VT +F, +E-51D9)6$53 !P? <'P$ @$ & XM @ (0# @0J!;( > "P 0 @0 L@!T +"B!0 (H$ XM"@"R $P L"@&.T-?1DE,15])3D9/#@"R !@ L(&!@0$!!0"R " L" ) + H XM*"@H* 4 LB 2 +!( 0"R$ \ L(0* + 0$! 0$! 0@8&!@8&!#0"R 10 L! 0 XM$! 0$(*"@H*"@@P L@(4 + 0$! 0( 4 L@"! +!<5$U0 %P& +( # "P+F$ XM+F$ +F$ /RH ( !X("]C( !#3TU34$5#&P"R H L" #M#7T9)3$5?24Y& XM3P [0U]&24Q%7TE.1D\ ,"( #X!XT$" B-!"T L@ A + 6 @(8#0D, XM# P'"/___Q(-$@+_$P"R "X L"AN=6QL*0 H;G5L;"D *RT@(P !0051( XM %P T*__\> #L 6@!X )< M0#4 /, $0$P 4X!;0'__QX .@!9 '< E@"T XM -, \@ 0 2\!30%L 0 +F-O;0 N97AE7P"R !$ L%!35 !01%0 @' $ XM^@C^"%-U;DUO;E1U95=E9%1H=49R:5-A= !*86Y&96)-87)!<')-87E*=6Y* XM=6Q!=6=397!/8W1.;W9$96, 5%H #M#7T9)3$5?24Y&3V L@ 0 +"> XM/0 /#Q.35-'/CX! T*97)R;W(@,C P,3H@3G5L;"!P;VEN=&5R(&%S<VEG XM;FUE;G0-"@ T*97)R;W(@,C P,#H@4W1A8VL@;W9E<F9L;W<-"@ # T* XM97)R;W(@,C P,SH@26YT96=E<B!D:79I9&4@8GD@, T* 0 #0IE<G)O<B R XM,# T.B!$3U,@,BXP(&]R(&QA=&5R(')E<75I<F5D#0HD D #0IE<G)O<B R XM,# Y.B!.;W0@96YO=6=H('-P86-E(&9O<B!E;G9I<F]N;65N= T* ( #0IE XM<G)O<B R,# R.B!&;&]A=&EN9R!P;VEN="!N;W0@;&]A9&5D#0H ____# &R XM H L/__________________11D 40$ ")T&,@520HS !1 #A^C! # XM!@P CL"+#@8 B_E/B_?]\Z10N#( 4,N,PXS82([8CL"_#P"Y$ "P__.N1XOW XMB\-(CL"_#P"Q!(O&]]#3Z'0*C-HKT([:@<[P_XO']]#3Z'0*C,(KT(["@<_P XM_ZR*T$ZMB\A&BL(D_CRP=0:L\ZKK!Y \LG5K\Z2*PJ@!=+B^)P$.'XL>! #\ XM,]*MB\CC$XO" \..P*V+^(/__W01)@$=XO.!^@#P=!:!P@ 0Z]R,P$".P(/O XM$"8!'4B.P.OBB\.+/@@ BS8* /P 08" "T0 ([8CL"[ #ZCM:+Y_LN_R^T XM0+L" +D6 (S*CMJZ$0'-(;C_3,TA4&%C:V5D(&9I;&4@:7,@8V]R<G5P= 4 XHRDY<&<)0QE"W+0 '5P X Xend FRIDAY_NIGHT echo extracting - move.c sed 's/^X//' > move.c << 'FRIDAY_NIGHT' X/****************************************************************/ X/* Wmove() routine of the PCcurses package */ X/* */ X/****************************************************************/ X/* This version of curses is based on ncurses, a curses version */ X/* originally written by Pavel Curtis at Cornell University. */ X/* I have made substantial changes to make it run on IBM PC's, */ X/* and therefore consider myself free to make it public domain. */ X/* Bjorn Larsson (...mcvax!enea!infovax!bl) */ X/****************************************************************/ X/* 1.0: Release: 870515 */ X/****************************************************************/ X X#include <curses.h> X#include <curspriv.h> X X/****************************************************************/ X/* Wmove() moves the cursor in window 'win' to position (x,y). */ X/****************************************************************/ X Xint wmove(win,y,x) X WINDOW *win; X int y; X int x; X { X if ((x < 0)||(x > win->_maxx)||(y < win->_regtop)||(y >win->_regbottom)) X return(ERR); X win->_curx = x; X win->_cury = y; X return(OK); X } /* wmove */ X X/****************************************************************/ X/* Move() moves the cursor in stdscr to position (x,y). */ X/****************************************************************/ X Xint move(y,x) X int y; X int x; X { X return(wmove(stdscr,y,x)); X } /* move */ FRIDAY_NIGHT echo extracting - mvcursor.c sed 's/^X//' > mvcursor.c << 'FRIDAY_NIGHT' X/****************************************************************/ X/* Mvcur() routine of the PCcurses package */ X/* */ X/****************************************************************/ X/* This version of curses is based on ncurses, a curses version */ X/* originally written by Pavel Curtis at Cornell University. */ X/* I have made substantial changes to make it run on IBM PC's, */ X/* and therefore consider myself free to make it public domain. */ X/* Bjorn Larsson (...mcvax!enea!infovax!bl) */ X/****************************************************************/ X/* 1.0: Release: 870515 */ X/****************************************************************/ X X#include <curses.h> X#include <curspriv.h> X X/****************************************************************/ X/* Mvcur(oldy,oldx,newy,newx) the display cursor to <newy,newx> */ X/****************************************************************/ X Xint mvcur(oldy,oldx,newy,newx) X int oldy; X int oldx; X int newy; X int newx; X { X if ((newy >= LINES) || (newx >= COLS) || (newy < 0) || (newx < 0)) X return(ERR); X _cursescursor(0,newy,newx); X _cursvar.cursrow = newy; X _cursvar.curscol = newx; X return(OK); X } /* mvcur */ FRIDAY_NIGHT echo extracting - nearcall.inc sed 's/^X//' > nearcall.inc << 'FRIDAY_NIGHT' X far_call EQU 0 FRIDAY_NIGHT echo extracting - newwin.c sed 's/^X//' > newwin.c << 'FRIDAY_NIGHT' X/****************************************************************/ X/* Newwin(), subwin() routines of the PCcurses package */ X/* */ X/****************************************************************/ X/* This version of curses is based on ncurses, a curses version */ X/* originally written by Pavel Curtis at Cornell University. */ X/* I have made substantial changes to make it run on IBM PC's, */ X/* and therefore consider myself free to make it public domain. */ X/* Bjorn Larsson (...mcvax!enea!infovax!bl) */ X/****************************************************************/ X/* 1.0: Release: 870515 */ X/****************************************************************/ X X#include <stdio.h> X#include <curses.h> X#include <curspriv.h> X X/****************************************************************/ X/* Makenew() allocates all data for a new window except the */ X/* actual lines themselves. */ X/****************************************************************/ X Xstatic WINDOW *makenew(num_lines, num_columns, begy, begx) X int num_lines, num_columns, begy, begx; X { X int i; X WINDOW *win; X X /* allocate the window structure itself */ X X if ((win = (WINDOW *) malloc(sizeof(WINDOW))) == NULL) X return ((WINDOW *) ERR); X X /* allocate the line pointer array */ X X if ((win->_line = (int **) calloc(num_lines, sizeof (int *))) == NULL) X { X free(win); X return((WINDOW *) ERR); X } X X /* allocate the minchng and maxchng arrays */ X X if ((win->_minchng = (int *) calloc(num_lines, sizeof(int))) == NULL) X { X free(win); X free(win->_line); X return((WINDOW *) ERR); X } X if ((win->_maxchng = (int *) calloc(num_lines, sizeof(int))) == NULL) X { X free(win); X free(win->_line); X free(win->_minchng); X return((WINDOW *) ERR); X } X X /* initialize window variables */ X X win->_curx = 0; X win->_cury = 0; X win->_maxy = num_lines - 1; X win->_maxx = num_columns - 1; X win->_begy = begy; X win->_begx = begx; X win->_flags = 0; X win->_attrs = ATR_NRM; X win->_tabsize = 8; X win->_clear = (bool) ((num_lines == LINES) && (num_columns == COLS)); X win->_leave = FALSE; X win->_scroll = FALSE; X win->_nodelay = FALSE; X win->_keypad = FALSE; X win->_regtop = 0; X win->_regbottom = num_lines - 1; X X /* init to say window unchanged */ X X for (i = 0; i < num_lines; i++) X { X win->_minchng[i] = 0; X win->_maxchng[i] = num_columns-1; X } X X /* set flags for window properties */ X X if ((begy + num_lines) == LINES) X { X win->_flags |= _ENDLINE; X if ((begx == 0) && (num_columns == COLS) && (begy == 0)) X win->_flags |= _FULLWIN; X } /* if */ X if (((begy + num_lines) == LINES) X && X ((begx + num_columns) == COLS)) X win->_flags |= _SCROLLWIN; X return(win); X } /* makenew */ X X/****************************************************************/ X/* Newwin() creates a new window with size num_lines * num_co- */ X/* lumns, and origin begx,begy relative to the SCREEN. Special */ X/* case: if num_lines and/or num_columns is 0, the remainder of */ X/* the screen is used. */ X/****************************************************************/ X XWINDOW *newwin(num_lines, num_columns, begy, begx) X int num_lines, num_columns, begy, begx; X { X WINDOW *win; X int *ptr; X int i, j; X X if (num_lines == 0) X num_lines = LINES - begy; X if (num_columns == 0) X num_columns = COLS - begx; X if ((win = makenew(num_lines, num_columns, begy, begx)) == (WINDOW *) ERR) X return((WINDOW *) ERR); X for (i = 0; i < num_lines; i++) /* make and clear the lines */ X { X if((win->_line[i] = (int *) calloc(num_columns,sizeof(int))) == NULL) X { X for (j = 0; j < i; j++) /* if error, free all the data */ X free(win->_line[j]); X free(win->_minchng); X free(win->_maxchng); X free(win->_line); X free(win); X return((WINDOW *) ERR); X } /* if */ X else X for (ptr = win->_line[i]; ptr < win->_line[i] + num_columns;) X *ptr++ = ' ' | ATR_NRM; X } /* for */ X return(win); X } /* newwin */ X X/****************************************************************/ X/* Subwin() creates a sub-window in the 'orig' window, with */ X/* size num_lines * num_columns, and with origin begx, begy */ X/* relative to the SCREEN. Special case: if num_lines and/or */ X/* num_columns is 0, the remainder of the original window is */ X/* used. The subwindow uses the original window's line buffers */ X/* to store it's own lines. */ X/****************************************************************/ X XWINDOW *subwin(orig, num_lines, num_columns, begy, begx) X WINDOW *orig; X int num_lines, num_columns, begy, begx; X { X WINDOW *win; X int i, j, k; X X /* make sure window fits inside the original one */ X X if ( X begy < orig->_begy || X begx < orig->_begx || X (begy + num_lines) > (orig->_begy + orig->_maxy) || X (begx + num_columns) > (orig->_begx + orig->_maxx) X ) X return((WINDOW *) ERR); X X if (num_lines == 0) X num_lines = orig->_maxy - (begy - orig->_begy); X if (num_columns == 0) X num_columns = orig->_maxx - (begx - orig->_begx); X if ((win = makenew(num_lines, num_columns, begy, begx)) == (WINDOW *) ERR) X return((WINDOW *) ERR); X X /* set line pointers the same as in the original window */ X X j = begy - orig->_begy; X k = begx - orig->_begx; X for (i = 0; i < num_lines; i++) X win->_line[i] = (orig->_line[j++]) + k; X win->_flags |= _SUBWIN; X return(win); X } /* subwin */ FRIDAY_NIGHT echo extracting - options.c sed 's/^X//' > options.c << 'FRIDAY_NIGHT' X/****************************************************************/ X/* Idlok(), clearok(), leaveok(), scrollok(), nodelay(), key- */ X/* pad(), meta(), cursoff() and curson() routines of the */ X/* PCcurses package. */ X/* */ X/****************************************************************/ X/* This version of curses is based on ncurses, a curses version */ X/* originally written by Pavel Curtis at Cornell University. */ X/* I have made substantial changes to make it run on IBM PC's, */ X/* and therefore consider myself free to make it public domain. */ X/* Bjorn Larsson (...mcvax!enea!infovax!bl) */ X/****************************************************************/ X/* 1.0: Release: 870515 */ X/****************************************************************/ X X#include <curses.h> X#include <curspriv.h> X Xstatic bool hasold = FALSE; /* for remembering old cursor type */ Xstatic int oldmode; X X/****************************************************************/ X/* Idlok() is used to set flag for using the terminal insert/ */ X/* delete line capabilities. This is not relevant for the PC */ X/* version of curses, and thus nothing is done. */ X/****************************************************************/ X Xvoid idlok(win, flag) X WINDOW *win; X bool flag; X { X } /* idlok */ X X/****************************************************************/ X/* Clearok() marks window 'win' to cause screen clearing and */ X/* redraw the next time a refresh is done. */ X/****************************************************************/ X Xvoid clearok(win, flag) X WINDOW *win; X bool flag; X { X if (win == curscr) X _cursvar.tmpwin->_clear = flag; X else X win->_clear = flag; X } /* clearok */ X X/****************************************************************/ X/* Leaveok() marks window 'win' to allow the update routines */ X/* to leave the hardware cursor where it happens to be at the */ X/* end of update. Usually used in combination with cursoff(). */ X/****************************************************************/ X Xvoid leaveok(win, flag) X WINDOW *win; X bool flag; X { X win->_leave = flag; X } /* leaveok */ X X/****************************************************************/ X/* Scrollok() marks window 'win' to allow the scrolling region */ X/* of it to actually scroll. */ X/****************************************************************/ X Xvoid scrollok(win, flag) X WINDOW *win; X bool flag; X { X win->_scroll = flag; X } /* scrollok */ X X/****************************************************************/ X/* Nodelay() marks the window to make character input non- */ X/* waiting, i.e. if there is no character to get, -1 will be */ X/* returned. */ X/****************************************************************/ X Xvoid nodelay(win, flag) X WINDOW *win; X bool flag; X { X win->_nodelay = flag; X } /* nodelay */ X X/****************************************************************/ X/* Keypad() marks window 'win' to use the special keypad mode. */ X/****************************************************************/ X Xvoid keypad(win, flag) X WINDOW *win; X bool flag; X { X win->_keypad = flag; X } /* keypad */ X X/****************************************************************/ X/* Meta() allows use of any alternate character set allowed by */ X/* the terminal. We always allow this on the PC, so this one */ X/* does nothing. */ X/****************************************************************/ X Xvoid meta(win, flag) X WINDOW *win; X bool flag; X { X } /* meta */ X X/****************************************************************/ X/* Cursoff() turns off the hardware cursor. */ X/****************************************************************/ X Xvoid cursoff() X { X if (!hasold) X { X oldmode = _cursesgcmode(); /* get old cursor type */ X hasold = TRUE; X } X _cursescmode(31,30); /* turn it off */ X } /* cursoff */ X X/****************************************************************/ X/* Curson() turns on the hardware cursor. */ X/****************************************************************/ X Xvoid curson() X { X if (hasold) X { X _cursescmode(oldmode >> 8,oldmode); X hasold = FALSE; X } X } /* curson */ FRIDAY_NIGHT echo extracting - overlay.c sed 's/^X//' > overlay.c << 'FRIDAY_NIGHT' X/****************************************************************/ X/* Overlay() and overwrite() functions of the PCcurses package */ X/* */ X/****************************************************************/ X/* This version of curses is based on ncurses, a curses version */ X/* originally written by Pavel Curtis at Cornell University. */ X/* I have made substantial changes to make it run on IBM PC's, */ X/* and therefore consider myself free to make it public domain. */ X/* Bjorn Larsson (...mcvax!enea!infovax!bl) */ X/****************************************************************/ X/* 1.0: Release: 870515 */ X/****************************************************************/ X X#include <curses.h> X#include <curspriv.h> X X/****************************************************************/ X/* Overlay() overwrites 'win1' upon 'win2', with origins alig- */ X/* ned. Overlay is transparent; blanks from 'win1' are not */ X/* copied to 'win2'. */ X/****************************************************************/ X Xvoid overlay(win1, win2) X WINDOW *win1, *win2; X { X int *minchng; X int *maxchng; X int *w1ptr; X int *w2ptr; X int attrs; X int col; X int line; X int last_line; X int last_col; X X last_col = min(win1->_maxx, win2->_maxx); X last_line = min(win1->_maxy, win2->_maxy); X attrs = win2->_attrs & ATR_MSK; X minchng = win2->_minchng; X maxchng = win2->_maxchng; X X for(line = 0; line <= last_line; line++) X { X register short fc, lc; X w1ptr = win1->_line[line]; X w2ptr = win2->_line[line]; X fc = _NO_CHANGE; X for(col = 0; col <= last_col; col++) X { X if ((*w1ptr & CHR_MSK) != ' ') X { X *w2ptr = (*w1ptr & CHR_MSK) | attrs; X if (fc == _NO_CHANGE) X fc = col; X lc = col; X } /* if */ X w1ptr++; X w2ptr++; X } /* for */ X X if (*minchng == _NO_CHANGE) X { X *minchng = fc; X *maxchng = lc; X } /* if */ X else X if (fc != _NO_CHANGE) X { X if (fc < *minchng) X *minchng = fc; X if (lc > *maxchng) X *maxchng = lc; X } /* else if */ X minchng++; X maxchng++; X } /* for */ X } /* overlay */ X X/****************************************************************/ X/* Overwrite() overwrites 'win1' upon 'win2', with origins */ X/* aligned. Overwrite is non-transparent; blanks from 'win1' */ X/* are copied to 'win2'. */ X/****************************************************************/ X Xvoid overwrite(win1, win2) X WINDOW *win1, *win2; X { X int *minchng; X int *maxchng; X int *w1ptr; X int *w2ptr; X int attrs; X int col; X int line; X int last_line; X int last_col; X X last_col = min(win1->_maxx, win2->_maxx); X last_line = min(win1->_maxy, win2->_maxy); X attrs = win2->_attrs & ATR_MSK; X minchng = win2->_minchng; X maxchng = win2->_maxchng; X X for(line = 0; line <= last_line; line++) X { X register short fc, lc; X X w1ptr = win1->_line[line]; X w2ptr = win2->_line[line]; X fc = _NO_CHANGE; X X for(col = 0; col <= last_col; col++) X { X if ((*w1ptr & CHR_MSK) != (*w2ptr & CHR_MSK)) X { X *w2ptr = (*w1ptr & CHR_MSK) | attrs; X X if (fc == _NO_CHANGE) X fc = col; X lc = col; X } /* if */ X X w1ptr++; X w2ptr++; X } /* for */ X X if (*minchng == _NO_CHANGE) X { X *minchng = fc; X *maxchng = lc; X } /* if */ X else X if (fc != _NO_CHANGE) X { X if (fc < *minchng) X *minchng = fc; X if (lc > *maxchng) X *maxchng = lc; X } /* else if */ X minchng++; X maxchng++; X } /* for */ X } /* overwrite */ FRIDAY_NIGHT echo extracting - prntscan.c sed 's/^X//' > prntscan.c << 'FRIDAY_NIGHT' X/****************************************************************/ X/* Printw() and scanw() routines of the PCcurses package */ X/* */ X/****************************************************************/ X/* This version of curses is based on ncurses, a curses version */ X/* originally written by Pavel Curtis at Cornell University. */ X/* I have made substantial changes to make it run on IBM PC's, */ X/* and therefore consider myself free to make it public domain. */ X/* Bjorn Larsson (...mcvax!enea!infovax!bl) */ X/****************************************************************/ X/* 1.0: Release: 870515 */ X/****************************************************************/ X X#include <curses.h> X#include <curspriv.h> X Xstatic int pblen(); /* gets length of bufer */ X X/****************************************************************/ X/* IMPLEMENTATION NOTE */ X/* These routines make a local copy of their parameter stack, */ X/* assuming at most 5 'double' arguments were passed (== 40 */ X/* bytes == 20 int's == 10 long's == 10-20 pointers {depending */ X/* on memorymodel}, etc). This means the invokation of the */ X/* routines themself require at least 80 bytes of stack just */ X/* for the parameters, and the sprintf() and sscanf() functions */ X/* will require more. Therefore, this module should be compiled */ X/* with stack checking on to avoid stack overflow errors. */ X/****************************************************************/ X Xstatic char printscanbuf[513]; /* buffer used during I/O */ X X/****************************************************************/ X/* Wprintw(win,fmt,args) does a printf() in window 'win'. */ X/****************************************************************/ X Xint wprintw(win,fmt,A1,A2,A3,A4,A5) X WINDOW *win; X char *fmt; X double A1,A2,A3,A4,A5; X { X sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5); X if (waddstr(win,printscanbuf) == ERR) X return(ERR); X return(pblen()); X } /* wprintw */ X X/****************************************************************/ X/* Printw(fmt,args) does a printf() in stdscr. */ X/****************************************************************/ X Xint printw(fmt,A1,A2,A3,A4,A5) X char *fmt; X double A1,A2,A3,A4,A5; X { X sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5); X if(waddstr(stdscr,printscanbuf) == ERR) X return(ERR); X return(pblen()); X } /* printw */ X X/****************************************************************/ X/* Mvprintw(fmt,args) moves the stdscr cursor to a new posi- */ X/* tion, then does a printf() in stdscr. */ X/****************************************************************/ X Xint mvprintw(y,x,fmt,A1,A2,A3,A4,A5) X int y; X int x; X char *fmt; X double A1,A2,A3,A4,A5; X { X if (wmove(stdscr,y,x) == ERR) X return(ERR); X sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5); X if(waddstr(stdscr,printscanbuf) == ERR) X return(ERR); X return(pblen()); X } /* mvprintw */ X X/****************************************************************/ X/* Mvwprintw(win,fmt,args) moves the window 'win's cursor to */ X/* a new position, then does a printf() in window 'win'. */ X/****************************************************************/ X Xint mvwprintw(win,y,x,fmt,A1,A2,A3,A4,A5) X WINDOW *win; X int y; X int x; X char *fmt; X double A1,A2,A3,A4,A5; X { X if (wmove(win,y,x) == ERR) X return(ERR); X sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5); X if(waddstr(win,printscanbuf) == ERR) X return(ERR); X return(pblen()); X } /* mvwprintw */ X X/****************************************************************/ X/* Wscanw(win,fmt,args) gets a string via window 'win', then */ X/* scans the string using format 'fmt' to extract the values */ X/* and put them in the variables pointed to the arguments. */ X/****************************************************************/ X Xint wscanw(win,fmt,A1,A2,A3,A4,A5) X WINDOW *win; X char *fmt; X double A1,A2,A3,A4,A5; /* really pointers */ X { X wrefresh(win); /* set cursor */ X if (wgetstr(win,printscanbuf) == ERR) /* get string */ X return(ERR); X return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5)); X } /* wscanw */ X X/****************************************************************/ X/* Scanw(fmt,args) gets a string via stdscr, then scans the */ X/* string using format 'fmt' to extract the values and put them */ X/* in the variables pointed to the arguments. */ X/****************************************************************/ X Xint scanw(fmt,A1,A2,A3,A4,A5) X char *fmt; X double A1,A2,A3,A4,A5; /* really pointers */ X { X wrefresh(stdscr); /* set cursor */ X if (wgetstr(stdscr,printscanbuf) == ERR) /* get string */ X return(ERR); X return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5)); X } /* scanw */ X X/****************************************************************/ X/* Mvscanw(y,x,fmt,args) moves stdscr's cursor to a new posi- */ X/* tion, then gets a string via stdscr and scans the string */ X/* using format 'fmt' to extract the values and put them in the */ X/* variables pointed to the arguments. */ X/****************************************************************/ X Xint mvscanw(y,x,fmt,A1,A2,A3,A4,A5) X int y; X int x; X char *fmt; X double A1,A2,A3,A4,A5; /* really pointers */ X { X if (wmove(stdscr,y,x) == ERR) X return(ERR); X wrefresh(stdscr); /* set cursor */ X if (wgetstr(stdscr,printscanbuf) == ERR) /* get string */ X return(ERR); X return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5)); X } /* mvscanw */ X X/****************************************************************/ X/* Mvwscanw(win,y,x,fmt,args) moves window 'win's cursor to a */ X/* new position, then gets a string via 'win' and scans the */ X/* string using format 'fmt' to extract the values and put them */ X/* in the variables pointed to the arguments. */ X/****************************************************************/ X Xint mvwscanw(win,y,x,fmt,A1,A2,A3,A4,A5) X WINDOW *win; X int y; X int x; X char *fmt; X double A1,A2,A3,A4,A5; /* really pointers */ X { X if (wmove(win,y,x) == ERR) X return(ERR); X wrefresh(win); /* set cursor */ X if (wgetstr(win,printscanbuf) == ERR) /* get string */ X return(ERR); X return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5)); X } /* mvwscanw */ X X/****************************************************************/ X/* Pblen() returns the length of the string in printscanbuf. */ X/****************************************************************/ X Xstatic int pblen() X { X char *p = printscanbuf; X X while(*p++); X return(p-printscanbuf-1); X } /* plben */ FRIDAY_NIGHT echo pccurses.sh.3 completed!