www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/09/03/13:11:53

Xref: news2.mv.net comp.os.msdos.djgpp:8222
From: SubSpace <q8536254 AT helios DOT usq DOT edu DOT au>
Newsgroups: comp.os.msdos.djgpp
Subject: findnext && WIN95, Random numbers too...
Date: Tue, 3 Sep 1996 14:25:28 +1000
Organization: University of Southern Queensland
Lines: 359
Message-ID: <Pine.HPP.3.95.960903142109.2731A-100000@helios.usq.edu.au>
NNTP-Posting-Host: helios.usq.edu.au
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

I'm having trouble with the following program, in that it doesn't find the
 last file in a directory when running in a WIN95 DOS box, but works OK
 in WIN95's plain DOS mode and in a dos box under Windows For
 Workgroups 3.11.  I.ve looked in the FAQ and this news group, but no one
 else appears to have suffered from this.  (None of the files had long
 names)  The program is my attempt to
 write a quick 'n dirty file encrypter using a simple xor with a sequence
 of ramdom bytes.   I've included the source for UFCCRYPT (which my
 program calls) so that anyone interested can compile and test it.

 I'm particularly interested in feedback about my rnd11() function.
/*
 * Pseudo random numbers, from an 11 byte key
 * Placed in the public domain by Steve Ripps, q8536254 AT helios DOT usq DOT edu DOT au
 * 20-8-96  28-12-95
 * I think this has a period of ((2**87)-1)/8, ie 2**84
 */
unsigned int sreg[3]; /* must be 32 bit.  Don't forget to SEED it. */
/*----------------------*/
unsigned char rnd11(void)
/*----------------------*/

/*  sreg[  ]  sreg[  ]  sreg[ ].........sreg[0]
    || <--------------------------------------|
    ||>                                       ^
    |>_ XOR_____>______old_bit_____>__________|

The 11 bytes of sreg[] are used as an 87 bit shift register.  This gives us
 the odd number of bits which is required by the algorithm.  sreg[] is
 shifted left, and the bits from sreg[2], bits 21 & 22 are XORed and the
  resuling bit is fed into sreg[0], bit 0 on the next shift.
*/
{
/* shift 11 bytes left 8 times as 3 32 bit ints*/

sreg[2] = (sreg[2] << 8) | (sreg[1] >> 24);    /* do the shift */
sreg[1] = (sreg[1] << 8) | (sreg[0] >> 24);    /* do the shift */
sreg[0] = (sreg[0] << 8) | (((sreg[2] >> 23) ^ (sreg[2] >> 22)) & 0x7f)\
          | old_bit;

old_bit = ((sreg[2] >> 15) ^ (sreg[2] >> 14)) & 0x80;

return (sreg[0] & 0xff);
}


begin 644 rs.zip
M4$L#!!0``@`(`"M@(R'NU3U.>!<``+1#```$````4E,N0\T[_5/;2+(_)U7Y
M'QI?!620C663A`V8+9:0;-XE6<HFFVR!EQI+(UL/6?)I1A AT VY/WM;[IG1A_&
ML-S=OE?GW1AY/OI[NGMZ1K"]^>]^GCV%31@,(1+`X!]YY%\"2P((HDS>0!C%
M''CB9S=RSC-P%EDD)4\@3#-X\U_O3DZ:(*=,PB**8P)$8^<26!S39`$S)OUI
ME$P4]#F34P*NA@<^RP(7%)QR:)00##5$P9%1QI$*[LLTNP&9<0Y1J-!Q:`60
MSF64)DCT)+KB29LFON5,YAD7K_$7M:S!6X+,,FY)XX'"`S,^0ZC(QXQ=1[-\
M!F+.>=`VTTYB%B627TM#&@)(KWAF!;"(%"N*EBBKP%709A;`<=F*,O331"J(
M`GK=<23A:,K]RV$^,X,/<YG.F(Q\$#P1**PT5'"W`]XB*,BJ,[Z!CX?OWA\-
MAB"B24*L- AT V`83Z?IYD4,&="S*<9$QSR.<@4O)<POI%<6+[*_ AT AUDTQB1:(:
MU^WJ<9JS/(FN AT 5`[30CSQ"<24'6*9Z,E@(P'N:^G>YZ9KIX%YS0.,C4AG4&2
MS\8\@PE/>,9DFK4!3J>$_=+01;!\E.\-<HYSYX4";$.%\MD\%2(:QUR!>M\^
M;A,\"VF>I9.,S<@F(4DE60BP!;N!FS3/(&17ZD\DJR"MUDZYD$;\%7Q7+(Z"
M2-XH(O^11QERF44LAH!;[5B6-D6<+L2F)26(2'!,L24XRWQM_>,L5\C#-/,5
M65(R_U)8_(?:6N)(H.6D"7'NI[,9SHNC1$T0L/;I\.-Q^_2W$U0AO_;C/."!
M14EDL!C)``9BAJOKI\-3#5>F,";1^GH5L,H",Q:JN+>@>'O21L^PV5:D70R&
M;06GAL9G1&""0+,\@3!+9_#E_:<WOWP9TL+[R!(VX9FV*0:S-!>*G3CR+PLX
M:=7.:[Z`>"_H:]\U8'X]YYE44`.R AT Q#5JR9%R24]3=D5ATA"%DVFDH"%42:D
MQ2RC&8?_SH6$J1JTSQ/)LP-8(#MSQ0<MW<;AA"E"+OG-ZX;U*7^%O[4^]^W[
M#\<P/!U\/CK]/#@N>M1GAY93N=!-^S;]O1T(,;@]_>WDMO0]`9/L]NCOPX^W
M%@1^SF'%Y_SBPH`G-R3R&=F[77#5^7!>^P7G/3UQ7G./(&_FO*#^YTB003FS
M5$A<USR1X$]9,N%"JT![K?_Y\P^-ZWC;G1^V?W@)O_(,.NT7+^$BC*XIELA4
MF[KV5T+>*%JV-[0GZ'6V.[N5:2_@;P$/<0F].?[I\SL7)ES.%TZS:D8TL;M;
MG[@#'UG`0>09!Y9-KLY&&SH>Y#X3?,,LO>Z+^JPN'!'+VO^C@)#:**'5"F\/
M+PX'1S]CDR(I*.U>B]O1X]`347B-F9"0)GRMN;QJR5ZS/,%UJ_N^O/_TPPMX
M\\L0QNFU7C4PE.@+@Y2+9$/"(LTNU[!C^]E3_.]OEJI](3,%IST]J#<&4;K4
M-L]2GPNQU*K(6FY)E\>(&[$M)).J&6![DR)PH4^DJ!S*LRQ)[Q(31^.EQG%T
M!XV/$E]N2Q-B!`K$?AIC1*BC1<>P-#-/(H78DOSYT_MK&)ZRY`W+`C0C?Q&`
M/U7<&Y&J,=;6M+&!1F';?OK\]L/Q)X#=3J71QO8&+NY&I6,PO/CU>#!\_\LG
MU3>$*[,*SK/SI&&PO8O3,8OA5Y9%;(S>$]'Y4Y;ARCS;&;F?^.(3F_$S;V>T
M]^QIGJ!?H1`@`43&)V>]T9X6R^F4 AT YA&(:[<"8:A3!._-(?SH)SS-LW4Z!8V
MHADBP/H<(B6- AT XMQ)%?/68>IZL>G,9<+SA/P61P+R)+`\YSF71*.1#Z[4%-<
M_93PQ1Z"/;Q*HX#<)H;->1SY#".P<&&&KG[,=0)6Z&F>I3+5JQ,C+06A(M^Q
M4GRRJ5,A8F-SOG`U0YN"Q;*Y9R!]2!7%J!V!4].0_`L30J]@]4.4&1E.9[Y4
M8\'!#(7"T&X3\2$/.GI?\AN;"5)B5$S"F,\5G?M'@X-2T^JSJ5V:(9."6//9
MTV_/GJ+`%+A^QX6HWU$4XPJ,?*@K2(T8Y^%9MX,VXL]S*1P#1/U>3*.8.]&^
M]PK6UW'H6M_KH2.';_B%T'$E3!T<#!96M+4UZJMG:OO^[*EI;K6B47_CO+-1
M(&J0.>/<C,L\2\#10['ENY'P220$I&&H)3KGXO*&=A*`6PETXRP1E5Q,_8^R
MQ="P5HII\^+"SV3G8A*GXPNK:0>M1HO*HM>#F\ZGSQ\^%$20<>6"37AEAC_/
MHD2&#C3.D\$0`,[0EXU8F,#9&CKU$;3L)H%2LW)+1"X?0^QRMH/2,%H^;^"H
M\P8)Q^)2J,XSA:P5&&QJ9L)F_#Z,]R*B?54%FYRFF**I.3PH4!>Z,;JBQ-!1
MSYAM4:IFLD,T;TKO,'6E;+"2!381C*)A*:,L@//K2#I>5>%^FEQA:*Z;*6Y6
M%`.32,*47U<TJWYUG?K8*%%4:C49D]<@^&Q^]A+-7!B!8HO;>/ZUX=*4K<ZU
MU^E4S1$';)74$7T#W<>@I\&>_G;"0<=0S3TCP9-B2C(G7,J;N3$PP$YC1]JG
M>`H%>NV.62'HU3[E<8RI+`*)0G`<X?45'O6_ AT _/=1KO1;):+4;7[\QM'07&%
MIXFFU4=K&!S5K8C"[N9^KSZ+29K5@$8Q20N`1E=4<V144VQ%9*J?L9*0@(DW
M1#`MFH'`WX;IDF=T3-HC&=HVB:&MJ+E&W*.OJ3:U-TIZ-QV#177U[:"MK8+P
M6K]Q-H9'T^$V%+F->]E2K%BN:+.UBBV^S)>K'U%<_Y\<JE:<NW<OVTF5;]1Q
MKV;+E">>")X':7W;+EQCRHG=XZ-O+Y+];J>UV_KA)4!WM^5U6S^\H-;W9AM&
M[F'*<"<ZYUF4!AC-'*>[N;G[JMGRFMN[+D0<\/=.D9!N;[96?NYF%#HY,)[X
MH6FD6YWH`(SN/HW:]D._.R,4,,#M+>RW'O6YM1,.X'&?W\V$@POX^LO@`C\'
M]'UATJ1J$WYND0M,SHI*2QIJZD=Z,R)X@,4!EL#N*\`:4SV+LU$1BR%"C5;X
M,1"D06#K,PJ>FB9@,8W\*49/4^T(%#X:R^))FD5R.FN#Q4Q5%T*DAL4\E*XM
M$FE89#HTMCMR=5/7 AT W6L-B'1BG6D6L]`B61<Y#%E AT 8H!14*HL[T4C%X(!G1L
M923!'2BA;S][BHK^1IK6G!>"0KI AT ES;\`D74 AT UY7(TBDT.9A2(0^./9Q?Q]V
MFW!K&KP1'!Q`=Z>)Z2NZY"`E"C0J!&*']<L9=1"=QX'HE"`Z%1!.01@"Z37A
M=ZBU=)M-6(?.]:NP>:YM2W]NB[P;^33/B*$ZVWNQ#,_;,?!V.S31AD%+%W:%
MU>SL455F[N>9P&J<24XP4\[27.(^YS'%E;+&P`3(14J;]DJYU_&:E-#T.^!0
M80+[FVW<0VV(LK`DYMR/PH@'R^4EIZOGKR&`,D<B*`7U\8T&5ZM5%8,K]1)F
M-O9H]2(?VR$1U^4^(Q*4J]!+0W!)O,`K:,&G5%*.*%.%3A="5.MQEJ49I'.>
MV/R1NKRBRX]34>OJ%ET99B*UOE[1ER=QE%S6.N]3`BT8#&N#H8E[3/A1](?=
M%>E,TJ5=&@JSC(-!FO`]_4@+75)<Q)]%C:1O2R-[M$22-)NQ&-91!5IC6N)I
M$M_H)2.SW%?SPW%\">&%^E80XQ3YB'DRD5,7KE4+%=HVP_F>3;-8F)B-*)N-
MHTF>YMH^8"E9R]C,;HSY;*Z'8'F+32JC9FP28<'A;+>VNZ8^C+=':9X AT KPB&
M_#36K2A_*-)#/V9B:C;NBK:^%NE>L55&$R3S+LRZ2`9)QCCN?0@+OI%Q&`SU
M><O2Z0E.,)G%77G?JK]OW@^.CS3.]Z;TL23W]1*F,/`>_BA0Q[I"#<,;(?G,
MA6D4!#Q1H`:<!:4FGR`O5$5Q-/--8NI08N8M461';W0LD"R;<%GACJ8_^89?
M<X[F;"'LE50,3XZ_X/F1`A*RR-9(GCPQZ:W7W45G]N3)=_6%"FALMC<;6A9:
M]MVFWK<5Z]X>DQDB4(T"G(RK?KTOU54+A&BE\>PI+@'H4]&/2J&.PN6ND^&Z
M5BE("`H#QS85@&\Z,I9TZI51<0\%(BQ:A0$/==FILE]$+?"Y/#@X@.<"]O?W
M&ZY>IXCL;SP)HA!GFQQUS:`&^$:RNXSFT(9U:+>AXL5(`+3?-*80A<Z:0[GF
M;.X03^TPO+`[%-=K-F]O]8B[`PPUM(UYHED&<AA]E!4&>D>+J5`J4H9V4"0"
M6CU:K7B:$24YW[O/*I%V.XA`:-;C-)T;$-\-2P6=3,HL&L,Z>"^;*R"NM$?5
M3DDP59](&<"OF2_C&^AVJG4@=`G^-.)7'':P+IG/$FNB"D;CS.OV=EZ\?+7;
M[GC=4385K`4-DS`C_EIAX.RYUQ6CAEN3L-XU5$8^%PUW!7/@->%':&0->`V-
M5J.IUT!66ZN/@M,E.-,Z'+/X`1X/9X?@B#H<0<[DGX'3T_2P.AP\E,.$9`6<
MEMT$8_JPTEI=<KVT'+%B`FF>"1Y?Z5-04R*WV_8_-^<'[)GH>M"B'VW2"*P4
ME=<3K95V\M=8R5]C(W^-A?PU]E%:!QE'Z=JQ'#0T!9]B74:AXX3S?HCYVK)#
MS,9;6+2AB9P%VPLZDN;7D3Z!1CBXVZ'#X\*A(*90<'ZIP+J=#^[P^/CO%\>?
MWEA#-4E//Y0\CM68YE[=1-[B85.:2YBF"Z`T2>^S'A/*<?Z[C(V!)VD^F<+@
M\"/:.=;MJT:./&=LUE^JQ&TV\2 AT Z]1U'1'_P"]DTI&YY+YK-?I_*K):&;_8A
MQ&R6$Q^VJ>+H/J72TJ*O<ZR5*Q9 AT _`?/4@?/%US$F(;TW-3+]3B.9E'"\(05
M+RO0-A7Y*>7`QFDFG1*<B>(97T1)H"6[O3F AT 7Z0K DOT Q./E9SK?F?O>K^W=[VU
M=9<IVD)=XRZ/3E&N1]K2!OHPA`!PYD^A$E AT K!)@='&:3==78^7:&/1:ICZ34
M+I(1BZ,_../CV_+>@'L\I')O/NKNN813><5F<4*UCH;.84I7($D&%<"J!*@J+
M#*%`8P"[N.<TB6R2%NCHAH&]5U3*HS22-#,"-R95$WMEH**5S<ZN1WWDTC<4
MF^6GR:3TLFX'A>`?T'UE>$@5<LN0E=Y)+F$@RM-\?>Z[8J*I#=<=<@$&-QX<
MS!$\S:\JXI^2!*+S::&B*?YNS]E*7,>?C@:_G9S6)&%-"K;Z1I1+*C]BL9_'
M[+Z;!:O%6E*]0_02I"_D#0O[O"NO%=P4Y.GBA%MU&Q7B#P[ZL+NW AT A!3HUZ*
MADC-1W:),7FQM$5<\DA?&W?<!8\%!VO3-8,V=X=6&K1U\*^,@Q\>GY:0[RBY
MY7FEW"A5M^9'YH%9`?)^C^A6VK];D$<Y1:'5._YBV2J<Y156,:U5(K>GN%0(
M>,`<]%81C_HL!>2R'[()"_J.OHN.6T5O0>C^/E;F5IEG&8/(Q*>I*0-HZ6-Q
M%,,[^6T=PTN"HK`TRK5^@7GUDBPC6W:>%.N'RC-K`,]WO[;4/W"^9!BV+_G-
MCW2 AT UG#/[ZK"+3!5./I7-U,%??_NENJN:.])C1;CAA:V]@(_E4G0GRX!34EY
M>[.V95GI-;3%+CF+TB?P%4[!M9%K:Z?B'ZJ'0TL:/:E[AH*/C'/$KX&8$NLX
M#T-.IYQ3SN8U8P*G-,9FU>UB8UF3$%@<89)OTQ4W!2A)%_?)H&9T]0KB<Z'M
M:^4N4L=#K.'=]KNK!*?O"UQ<(%47E-4*>_RDD]XW*=Y%TG7'>MHK8.U><NWA
M6 AT 6E^M573`3\NCC?PE.T+:\R!J?8PS#;MGP6.&@T[^^EL^6BEK>UM=J=H8JH
MRKIL,#7.![KD%\E_0BE%[?8Y;2Y7ZJ;`LD)'.W5R=9T+HU-E8U&@73OO=%Z9
M):CXC0/4E'9R:&/6TR$YMHBFL7A[1>%DM;?!GFI%E`XRX?[/]B;94:W4J2MB
M3W2IL-%N-YI[*]W1F/F7>B/.KR*L[RX5:,JS;4W^XP\SB AT KXC$6)@P\LF_BV
M_JWO"#8?#\E4QZE&VP>\HX/&[$(2J*]?XN!-)"Y=F"\NQBQPC49M(5L7.NG.
MCN;:7JTO2\MX^1:W?"?VAAU-)+C9V<?#KR>'IS^/M+M-,SH"P)ML]B+L!(1D
MF30;"YJ*@"H3K<]%\!97 AT 3S%U)V.?8VYW[ER=-;#8SWUX"$7+FRJQ[).[^-M
MJ^)(@643K\!,/[OUG[V2KF54"I)WYG6QPUYD*6_6V9(KZO&@WZU=BDCP+@5B
M=DFSWL AT U./0"^8SW9=(Y75S'`65Q?_C^W?#XW:]FE>-)Q3PC0,4!?HFRMQ)E
M5Z/L5E#60757 AT -I9":JG0?7N!=6[`ZK?]^QBTW>>J$)N!JS971Q)IM'ZN>%V
MFP\/+T=O_]AX]-C6FV(LT!K9VKH?[H-CM?M87R?F]GL/4&#\3/TZC36!+NF=
M3FV+LG=5\H4K+^>1'GO6+W\W<M;+)N-S/`IG,$\Q9Z'(C\F3D\_QE1N\8]RT
M-_YJMXET6[_1(-LE-'AIJ+^Q5KE"8 AT 9I6]GR]HH]`J)HK#6,<7ZW('H/@N@]
M#`+]6,"OL;*AKQB1L4/+*RCTSFC$"/I]P"!-(C!O]12>*Q+85SVNJLT$?2T*
M9_[!YA"9.P?%*L.PK<T!CW#,'E_?/T<G)%-8X/U!O"&=*Y"9D&JZJ')A[R-K
M,.C8RFV\ZN*!?I,I2DJ?:M:1&5L&H>)JLPXU`N)T8;0*08:5Q9A+/`!H`QQF
MV51G/O<>XUAP?9L`:(35(QP24]\H@+I)_DEP7;V%Y&A-'?2AT\0K2#32BGBM
M#QO;&ZO;7V\4ZX9:6RV[;O`7K3>=^E4FZIM.=IH)68H AT O!Q:&6;RC?E-:>?H
M2VFX#MGE8)QJ[*"0]6F6XRTG7FH%Z2K156;0>6YF2H#ZU9#*RJ)+)$-\?81B
M'X5$'K(\EEIGVQ@@BU1[8:-FT:5AZ(OAC AT ZT5:]K0CK>EPW47_(\VN\0?QXN
MP->%N(0917V=46OC<(-<%=99JVUK);SFJJ3N#5D;WHAE5RR*\9[X6G'W\LF3
M\O:ES AT T?.DP\666!1:\6>-%OCV*K-DK[:([I&:Y$4I?/S`MRYC5!O$E*5^IE
MJM=W<4_ZZVM\:]">?^K4T''6G+KTUM>=ZAKH][O-IFJLMJWU.X4I%V?/U%.4
M(8DTQ!RFN?$Q]8/F8L&;(^8U,\9JS>C:%%&Q6FYLK)3XT AT Y:%G9);TT1FIA?
M\;COE:<X^$\GA)1SFT6M6^X$KDM^X^J;X8WSY)AB#+W1U"RN:L_[CAE0>>')
M=*-P<0C>^EG3SE=[!A-Y$3KVF[,,NKQ>?:>FV.38XPMC)T(&BC>W\25-YZ+=
M;AM++`*DWIQ4)J*.C/H4ON;^#RO."Y9 AT GZ8IB&F:2=K15##4"G1WP!C)=I8'
M?Z\D2%5*O)>K9.ZA6(HL"Z.2$96GK2%(\W',[1_)XDO]50E$_GP!??,>)DYN
M"&:V9?CN)'BF%(S#J![FX6L$F(BJP0\'$C7E-9AMI'YNN.HODHO5%1TMU/>^
MY^V1IRXYK!RDJ4FT,58SR9]W1\TBBUR^UU^N?CHBT6&JLT=_$8MQZU4\"QOT
M^XA`#]`W\W06\A'?W,5S#))"$-'+%_+&!8'IR?`PEE5A+DN"R%.`]_=?-_YU
MOCV*+(]A>TF96[MN(Y8/JK.;!(]79_=UJ4[U_)^HSE*%6)/UBJWC1W:]6H6"
M?3A]C`J[!P>-_U#3A=_[-=9-DC,;XYU'JK?3X)$+INPF,$+0=<`_97RQ__M!
MWS(._Z?&2QM\"MAT`]GQNLWR&C)"JE[3;;?;W1&1OT)>O;OBHEEFI6NG6U?D
M3H6;<G=53H+]_;+$7VV_[5=4L;FSA=PN;<+*.Z_]79WDEV\9X0MA;&Z.VW!!
MZAJ"-S*+\9'<X2EOL7FID*=W)I1GAO6WX5:=`9,=Z$-M#`7F3!M##&JJZ/`J
M/=Z=T^[R**[R>GOM]/L>6^N`!UU8L<AZ]UK:P?/=K_O0<(ECLK,_-S-S+70P
M-#?XZA=MGCV]DU9AG0C3-IUEEYFT!K2.U^7N4H:(GPOTET`O*)497D-723HC
MMU:G^9?O$JPJ,/XO4$L#!!0``@`(`!*4!B'@EDEV#!X``+MH```*````549#
M0U)94%0N0\4\:W/;1I*?[2K_AUYOQ2(EBB(>I"C+U*[B.(EK':_+EB^WI6-4
M(#B4($$`#P`I<6/_]YON>>)!4G)RM=ZL",Q,]_1K>F9Z>G"P^^PI[,+G'U_O
MA]EJ7KR$15QD`<R"O``J:7EMB&[G,;ME21$449H@!$&]3N>K++J\*J#UN AT W.
MT9'3P;]N!W[,&(-/Z:RX"S(&/Z:+9$J@'7B;A%V-X.PJRB&.)EF0K8`_SA`L
MEV#'L$H7$`8)9&P:Y446318%@ZB`()D>I!EAN$VGT6R%A;P+ED%QQ:!@V6T.
MZ8Q>?GK_&=[)'GYB"<N"&#XL)G$4$OR[*&1)SB#(88ZE^16;PF1%H.N8.`86
M\7I!P))E.2\#5W4H,78 AT S:`5%,A$!ND<`=N<\A7$`2=0P:V7A6%Y"E%"J*_2
M.>?NBB/E_-Y%<0P3!HN<S19QAW#PUO#KV[.?__GY#$[?_PM^/?WX\?3]V;^.
M>>OB*N6U;,D$+E1IQ%%SWK(@*5:<?$+QRYN/KW_F,*??OWWW]NQ?R,6/;\_>
MO_GT"7[\YT<XA0^G'\_>OO[\[O0C?/C\\<,_/[WI`GQB3$E;BK5)XEK:,X[U
M-LT83%D11'%NI/"O=`$YIS2>PE6P9)"QD$5+3F<`83I?/5:K<9I<$N\<RHCW
M&*(9)&G1@;LL*CCEJ=8W@:\UW`X,#OOP2Y#G<+ID'7@=W$ZR:'K)'W\YA9[K
M>$<=^/SIU/#S]]9?VS2,+A9%%'?#)V[7<WC+@][PX,C5S3XMYO,T*R!+>;.$
MY:KBX-G39T__&B5AO)@R>(46D5QVKTZP<#9E,_CAS?>??RHWF4:I:,&2:303
M"&8)-OYT=GKV]C5_YR^\%_D..0[KL`0@&WPX/7O]\[LW__7F'3S7+J(#\Z`(
MKV*V9#$X88=X-$7=JR=.]PAZW@'G\LA]_NSIP2X0DQ_9_RZBC/Q(3B8P#7C/
MJSG+7U(]_3G5I;"SF(47J,$=5'M00,S0*WDN3**"&N\&R50($#B@`$(`SR40
M=A^$1;R2$#FT+C AT 3%YY[T98PNVG6!#[P2^`#WP8?^`*<X':BI-C!T1KD^>*6
M3=&4)LS0.E2DDB*ELQ6JVQ$R6`99E"XX AT BR\B AT H6%HM,J%^JGK0<9L&*Y%A<
M!<E-CKV\NEH419K\/9TO\FX^S<,NFRY.H'66WL+/5-4&ZJ!@>1$EEX00641\
MBR2/+A-.+HT/)>;C=0V$3(Z-72A!5(R,2$V3);NO$#L/X[^+BFYZSXF:=H.P
MN[B!UH=@$<,[MHJ#9-K^=G(UE8#_'D2NU,6/:(9LLKB\Q$Z%ICD/4P:L"(7G
MV+D,PYVJ1GYZ_=IS/?</B=1SJS1Z;I-(J:^!__\K#]/7P+?Y,JC^;)X&OLU3
MF>0_5<>OT3=!$,=D8$='W:/^=^11>,GG]V__&VZ#\$IYW0/;85I([1+!4HW)
MFE36L;).;))PPX""A=T+?)RFO,<@GK/LMM4^MJ1I:-!,"Y^GEAF:,]$9$+H;
MMBJ"R;DS&)^[X^-R73[IG8\[ZMFQGEWKV3L?']OSQ:?O3UOYI`/+-K1V6P+?
M;KO5"J^"C/_FD_9>:]ENMQMYBXI6['0@=CN0\=^,_T9%AKY6RQ`:&AQC@]\A
M2 AT J(Z!FD1"'OP.X-T8>%=U=1S%H<8'^_#;^+,H`;&,$+6QJ],?_O6%7/TJP5
MC8;'$.WO'P/!/<DYR.[-WA[\QLG@+9_$#OPV(MZ5N#J0PPOHW<_XO_8QI[C>
MH&6UV/-Y(U!]<OJK"'N(\.1D!,X`6]81]A!A6\$#(33X;(K=XTT=>=LH]^J4
M;T#G;J/;K=.M]%4A/'9LPK-M(L\>*?)LF\BS;Q9Y[&ZDW-M&N?=(RMUME#<*
M73Q_U8CS$4H\=D89_\F<47Z,12Z:Q`B-*'-YD6C\5?QDK%AD"=0\57G,BKZ^
MDM>H3 AT K&W6HW)F?D)C?&JRIN[+A<\6?YL('_'_)AG)&8M^E4/%D,(VBU)&GM
MV&G#JU?@N6WX`J;454K-2JVSQM9"+8_TDP]VDN0C&XWZY`2 AT U[:LW_(E34:+
M`,[@80".`D!>'P+04P#^L`Q09B=&=K+'LI,]EIWLL>QD#V6G8:0?0SS*CB&S
MA[2T-8=S'HM^:3K`-X4-_RDKPW:9:I>Y]-;4[MN=A-I&?N#M%R(2!=,T89`F
M(?ZA/7Q_0/Y";.INV`JF+*/XP2Q+;ZE%FD67V"WNS58%@]-/K]^^Q:9=Z5W$
M=I@&XSQTSON#,6?F=Q)7_[`#_A'_/Z?2\SK@]CO@\#+@9<#+^D/^_QZOYYQX
M/J\?\/HAQF;`X<7`B_N\:9\W]3FXQ\%=#N[P,H>7`2\;\'9]WL[GX-Z`0`>\
MN,^;^KPI!A@\WM3E90XO`UXV0+2\N<][\S@%'D?ANJ)77 AT R\>(#$<1"?@W@<
MQ.5H7(S6\3)`*CB8R\$<C AT K\9T^_'EL^^.?T#FX7X17NY+*T"`H&+."O+NUN
MX2J(9RHN,P\=F$O]L*G0 AT E0)*F/"9ACU6>2XV9J'+F*\C)8B=A3M8)NZ$GB7
M.7IWK06DNX.RK/S77`B&F[K]\,Z1%.P>Z:-ZR0HGYX<WGS`BDTRAR33<<W]H
M$>4+4T`]NKXP!Y0LZA2E2\H:2*GW2#FDPR,E=&$M@$T'0J]H&J04CTP'0=#P
MT#K0!%"/:!)H&JAROR<MJR^,TQ>&AX:$-HN6TQ\(NR13&`@[17OU!L(D<.-7
M4OW9%8,WP.[G04)1SB*8Q`RGB/`*<A:SL,A%X!'C(WJ(R;U'E&`DEDTCM)B,
MY8NX:!ACC.,I2=)SI?1<(3T4#4E2_4KQH*C AT B'B4CS3(4`$H492:_O6%`E"R
MSJ$8&0.IKZ%0`@H:=:-_73'(4)=N7^A+/)*>2#=#.9#D+RJ!%$,,"$G:C%Y$
M":YCV/G`'Q]O\6 AT D1ZH4@D.KS"?I/<1I>K.8YTT6R;%X[KGGDB AT 5CW!H\22-
MC>SQ4$@9Q4)\#H1T41Z>9:,=(5WD':6(O"'OI)@C:;^>X)W,VY6NC&15'7IH
M3LB%WFI;Y&/Y^7!\[H]QL(_,T AT -71K\+3^;+P2"M AT U3J2$OPA/J1"!I0?>F6
ML>P0OG8,.D2(Q<I_ AT N0-7(/>1D5=')GA#,,Z.CGB"<U0HAE(E%+*1-61[%)1
MBRA[-72Z^5`.`]_,,03>-Q,&V79/,HH4>VI!3A-YQ]Y/_2YQ AT Q2:FAX4+MW/
MH9$&T2%)=>JD$@D*]%`*U37H-;@E5%#S7;]9+PJ5`K'5WI>H78,*/&4.=4%Z
MLKFD`-2TZ1O=*']28I0$L4602NA'1I`:OQ2R%N"A&19".LVD'AJ46A^#CEX\
MD#WTC6"5:8'3C&Y AT J53-09[H AT JA1X\A5ZE7"K^M%ZL+QC*4IM'H,*<%Y2KT*
M_69!DG`\`VOCUXJSN7?,G+E)YXZ9+XCSGB740XMSQ^+\J([.YK9G>01%==\R
M+=]P3=3ZS>.E;PW7GK$4-8VIF4XSJJCUMPC2-8)1KD)-B3`P`E0T*&6NX]R7
MH#;:P\I8E'[4Z9DY@;H9-/M()6_;G`XMZSRRO/?`LM:Z()7CUP)R*E[<5ON1
M\21"`%N&MFT6:B)Q+2$JTCUK]M!^N=&$;*^CO<V1Q:EC#8*>Y9(;)ILCLZ*Q
MK<U1"R;E1?RR>0DS:-:+9ZE94J74ZBC!JLEG(-$/MT\V8)N0;RED:`18FA?[
MUBRQQJGUS/BSYT4]A.66AM#*1<(ZBY0>V;$]M12 AT FE;5NEVI7:\KW#JZ AT 4%%
MS1U+!X>6NGN6KW25$+98I&=[%6/=RHT[UJRAO9#:T*UQY_U.>7[T+%=NC4'J
M0GN)9L[MZ<TQPUAS:#D[[3,]-9O7T;G6<#ZTA#@TX-IJ>A:J AT 1A^EB#K*]`H
MQ_-:VN$E41$%L:B86VOPVZ#(HOOZ$E4"7&!;7,2;N$#SOE_/VY5-?6F[[8L]
M?O,>WFS@?;%[\X=BHT?K<%_L:,0^;VML8D/@P1,T;`D2;(I#'&X2-(5Y'BYF
M:EX2,NUCI0'X<H>,TD`)#.2NQ),NQ)>+T+[<V"#5G%+:60Z%,%'(*%@4.`H9
MA4^;-^F!?#DR4!@H@('8.Q$*N:3RY2!!K:(F4<.H54]:MB_]+4H<I8S2=\7.
MTY.#`HT%#00-!XT%C0 AT -QY/3JR\'$BH5%8D*;MY2.0,*5=RP58ZI0M^_/?OE
M]-,_,"Y[&Q1JIU@[*MQT%*B/(JN!^;6!]WKR2)"'4711I!>3*&F%;6CQ/R>C
MG6#G;ZUPOW_4?BG>3_D[?]KO>U2RO]/=:1LD'!91$"Z#Q!L*&&^XQ_%)3(XK
M"AUWCR.EPCV!C*3U2Q!F*0:<<E9`0`&*5J_;=;VV$(_L4`JO%?&^H.6\>M5R
MG'W^]AU'Z[4I>-[BKZ]X;\[@9:\-;2M<DD\`TZE6(J&%BGY-LYNK-,N9SDB+
MDH1EN(^?JQ)47CG%KJMTNX)I:F_\.Y!?13/*D"#@*`=8!O&"=>R\&'N4!<D4
MWI1**,V"=YNP^T+$MTR^TC_8'/T<[$@Y[$@KZE83()KM"(]<ALZ1:Q^[E-_=
MRKLGWDVH1*+;S2?G8O";>+8)A9LHND+S%0_9-IPH50^&_-[1P*:R_.Y6WCWQ
M7J:2H_N#5*I!S$3LI@@F+U'?,GY6UZ((N=DIF&?D7K,<E39E]\KC4F0[6=Q.
M6*:2!U5"`!J+3%,2':@X[3YP_&'*.\)'A4FT5[:&>'5K7I)AD AT  DOT VEL%`D7]Y
MEY9ZRTO4BA`BQ[7(,:V/=W=)"7PBS[%@61+$\0JIQNGV8LHH AT RB?,ZPO8#$O
M3QCZ6,W($$-(;E^Y,B/E:7HQ#YV7Q#9:=2E:C4*6DL)(<!Y>L>F"$RJ)JZ1J
M*J'#5K%73QEJLA;R4S]*?B*VGE-P77L.$0JLR;^N AT 4,!'(3%@H1)HL:,-@S;
M*QUJ5F2$D?-P AT Z.?DIYD;'_.&9&JE%F4#'RX33GKF,(2S:(P2`H3`OXWR]+N
M&@4)\6.(SQV?.^YP;`>:J=(MZ<;]<W63<]Y84=&.$74Y6FWLMDE7^[*0$%9,
M_!])>A>SZ2532LN+;$%9?>:,I,*9&`K=_YA.7-1)52%L-G^).=4I!`FP>\P)
M9\;_T+CE=;14DQF4_-^\^6B%SE%,_!\,P-MDF=ZP*8 AT CH@"*Z%9$O^]2\(<5
M%R)`%%[C9)"3?!V'G`]:U AT Q\[0]4$Y6%A2?[-"IN AT _SF?#@&M>3LW0]['?[7
MI[\N_77H;V](?WWZZ])?1ZW,JA3@'\)L1>81L_ AT G\)MGUWIVU+,`Z0U-5<^W
MGEWKV2F#2!BJDC#BV;6>G3*(@!%5`D8^N]:S4P8A&%E%,.K9M9Z=,@C"J"J$
MT<^N]>R407I#4]7SK6?7>G;*(%)9$L9Z=JUGK;YR8O6SI_/L`H=1*^A`4D[D
MV`WHF!JW+(G,X-!U40>N.U#P_V[G\N@[@8,1#.4+Y4S`"'K'$,$K#@_1WIZ5
M;\'!1KU2AL6U:'W-6P_YCVS]I!@-=Z.]:TQ*X#!?1JW AT O#AP_3&\T$O9`KX#
MUV^W_Z9M_'K\TB#7V^76,HVF[7G&&9JUGG_7<^_A>8<C;9?S?%0#>&X=TTNC
MSUDAI+7LP*0LK>5Q67B3FLAD-[L3XK113JY?%50T:RTYKWJ0#6$/HC'O^@G'
M\V5DK>=M+FJI!2(+/\+),F/B5D`Z AT YT).L^=+KRE97 AT JG"H+@T6.]U1NF4X=
MQ7.['3P+7XKU$0&2EZ1FIA9NV6W.K/6T3,)'V4,8LR#C#5IY$61%!\*D("&2
MA]JE0FURO$Y*4&3L\/?]_;82BVB\MP<CV/F?WDY-458X(_HWFTJ)TUI);#0@
MD$Y9+`"C1.Q"Y!Y`;I;R"]&X%77RMCC!:T7M\7FKU<K;)R>^2#QQVU_PG9X=
MJL5*1V:EE&:=MYHD6/!'V(?;`-,&>/]BHIA&&<.D?"'D%<SH2@).H%EN9$K"
M5,O'5MMD5X7I+<LO\*`:S51:!%;PMP[DE[)$V^1UM0!MS.G0CZM3IHAXDCJ\
MSABN'W#6$^L=N=[%&5XW*E((9C/.1W4%JEO<7;%$+V]XM[BU5Y4'9F2@?FAL
MX,,KZ`_HJ30^RASCU(:+,/XXAGUPM!,@OGBE=A$5N.\`!Y8S+@%0-I`:>**5
MB\W\\3K/Y;BV[XIFO.Z%Z+L-O`#4(K'2^P$,Q^?BP>5/UV,<V4H')2_V]0$Z
M<;?II+P^0UWH9H_6B3]\F$[<;]')8;-.E,^3*K'R.Q^N#J,-MZZ-PX?J`+3@
MWJ=W>J,GEMY:!RC[:8I2F42)I9(UVV!F\E%44PWR*V'$?:+RTG=,N%V\A2*V
MN^`,O*%OPB4"DA:1Z`KTPC-*(,WH3F%JN4K()]U:M^_2=(XFP2$IGI+3(MTF
MG).#0C3RN%[D!<><0AZG=]UN#>>!$J*>$V0&JMGG=B#G!*6SEBEJFSS.!]IB
MQ;,95>.*HFZP:*LBSX3R=M!F]QW^7\5HZ5^CY:(G&=NXE4FZZ+VN]_>/UQFC
MM<&WT)%KN-;>P1_;DWY]`'PM+67J9FKYBGPB;)2">65]XZTAVDL[PD1S=HFA
M.[I4DAC[,1M*#2FV09U2!S#/T#KFBX*9`(I?LDZQ"=);2CL1B!*&]$8000<:
M3*;G+5DNXX:$_U9>>(PRWG-*EAH'(>MHL)RA"8N65UFZN+R22J?Q1WN^>*7R
MPJ:Y\:$(D:?BBBI_60%>HLQ8,%V5 AT HX:0"?8-9F_,H[\4M AT P_WT%/OZ6%X!)
M`==.!ZZ-'Z)T(KP1H(I*MN9(_^=P=`,?'Y0#S+%*KVE<E,0E1^R@^3PA6%?"
MN AT K65;#62"K2"^EJ.IR4>TT#;Y.[^IBKUA/Z<F2#>@,+"R5P<]I><?;;`%\X
M%A&'=GW8AR$!K[D.]`2%<4\(K AT G!@!!<"P2.Z"F?G.>7XW-L"+3YM49:;WS>
MLB AT Y.<'1)!-[Y4V9$H8]YW$8G'$3#5]*&)P:!I,TO8Z&QV"0,^@6*MP:#A@^
MCHK-&!XB":^$H2TMZ3$T;,;@;#S[66],U7[)!J@,S"6#1UB5OJ(@<<"C<=2E
MB9+80-(V(WL(28\W,U+/!JJV&=U#J'JLV6T1U#8;?`A)C[#")U^K4S>ZTK43
M=X"18LJRE<?+-/'@6 AT 4*%L=1<FGOL3*Q+HP7EX`?1Z!P:32CL"<NY\P$7%[?
MC^1"2BU6!'TFOU<OC7`Y3W48^#,;SO5M]T`$"7'BWL/UVH85=2 AT XID`MSJR2
M7[FBULTHAEM4\KAI'2VV.^)POF$3>K!F_3F;JX4G]MT^7KO<Q`FRNMS$J1E/
MA(L._Y'78BL+T;LTFU[(,\W*=MO AT L+8D,X'.*F$7MJPKS1%]!^FZP$53E%"!
M=>OP8)>^9B&L@]9Q,&%J=U`]WZ*O$^1:5B"9DAH\H,LP'&&OVW6 AT U$KN^\0"
MU;3R'&OE;ZL;-7DJ%E]3>7HMJ6'6A0L9K,E903M4<607%5V#Q$+W/BW82XG"
M!/8QWD(;)E&$MH0KSN!6""-G2_S8AH4&0_9Y%[Y?V3DUT;_%M@=M1)EZ!_=B
M:1*O:.EJ8<`1BHO8?,Y"/+W AT 2/(B2$)FT7W0L'<FQ</(SA?1>VB]S!)R'7C-
M*)A$8<9C%?]8J>:HWXP"S0=56<-Z`(/C,A6.C:)B AT 8THOJNAZ$/)0%2(P(["
ME+#N AT 3O8$+1)!8L&(0YC,P!Y4QS$IL#>GEG-RONTV?R\(I_QN6D\/A=C9&/\
M0(Q;'9[<VS,!3'UI(DM#EHL-$Q.I$]8&2>VL:&C(<RAS));?!?.Y^:Z.\8OR
MRS_A(LMP/Y<'\:;,!SMTFU\M9K.87>23UDV'`+$G"CVJC(:;<@1<M:G&P57,
M48+=6P[V>H1I"-8V6<B-UF0W./?^!C?GSAAG=WG[OEWJA88276,<:;SU$A4A
MWY!-\0C.,4OB&SCG8`_EO+5[HRY&_L;[TMP/_/7<M^[--=CU?"M;^\2*Q9PL
M AT Z+2Z+`"2-@=<2+OR,WQ,TSQ"N[83ASCUX4 AT 9\QJAL9&,0,1L0Z#.#:FU7 AT D
M*:WP`J'//5P6/'_QXCGYHRA9!G&D_'W3N:<-3#8O(OQ6^%^$TM'J5?"_I%5D
MF:!;N7T&T7S09<E9#MY9ZR_6`&Z;R5@%Y>VF.=KN:%3FF!>]>`'YN5.O<L8:
MH;A0*C58A1\!8CZN`E.Y8]R>O:JR\Q9ILI+JN AT J22UHM_O#FDPX(`4>:12RG
M.,=:IT*N2(,$89AF4W))8ETF/!+3$[IR.O:\5]%BT\E8]6!,6,&HE(67GT=C
M$PN+9JV00_;@RQ<(X00&'CKPT.JC%C`>E,/%'/[D!*[5T8[82"A2K3C<@/,=
MP1YO^9!X_0>Y4REY<IT&H,/U&9OA"D4X;%+/%(R8S8JF)'XE3^.S3.)6;<C\
M9KR9^H1#'=#9`K AT  DOT SOU&.&\K7'TL2-,I><.OU1&/Z&]O9%9GB_]8PYZ_50?^
MDC.^Y$SLWCC6.1H>XM;F26LV6R*`N^ZC*VM##]:LL`Y#*0<5VR]Q8;24$3M:
M);V0ITO4G?F"@1I)\@L&UACB*+Z,..PY"D#N4`]G8T*W-Z+C$]W4M9KN[:UO
M^M4.T%L#V!E41[!%LZL)MD@;06M)<1BZ(1V-Z9,.O.3D!%KN$/9UN1EU2UQF
M<B)E,U<>PJ[C2;(D6SO^8UK#X8-;T[\UK=>8$\[D+AUO+RV4PG-MM")L]NK5
M"$I?7+*4B$)U:T)U-PM5L>(^2JCNHX3J/DJH;E6HALFJX+1!5A<$E07WYU(R
MV)LUR6!V),%\4&O#AZPJ7WZH?BJ%5_&:S%WG?M3BK;K^";*5RO?2"T7\/A'O
M"X52]8['\N-%]^J;1PHO`>(W=I"X1L!,`68:4#F AT T=(=]0 AT U?H_'(]SR*=-E
MF2JS'!<&;3%QK3\^QWJP(F2>B/1*AV.W4K7Z1-A"Y(_/6[(CC-JN0>1O1^09
M1([\UDD#(F\[(O=!%+D-B&JH'&SD;).2;+6))HPI2\5LH*FW%1$<&43KI82M
MMB$:/H0B;%5#5$-UR!O%VVQ)M=I$TX#3%&_3'+;:AJAO$&V04G\[(O]!%/D-
MB&JHT'+C;;:D6FVB">T[WJHY=SLBQR#:("5G.Z+>@RCJ-2`2J-"ETJ9JZ1S3
M"^VDEF[YTS[X?=W:W"$V4;B?>BF^$)H5XG,A\OM>18H7]_!)),J+6RP9FT7W
MD?F"+]/[;3MS3JQ0TT4Q7Q07`CENNUIJAD"82BHBU1Q;NUK>1$XP<AZA<HYS
MLIBA6[17N!RC%HEL(;::8M-Y7*IQ=`U_^IM^>FFU;EP-]L5B4`>,!3;<0\GS
M`>M:E%[S#6`?:*O55F9BM@,YR*4-G;+0\:]2G%[UX.)%?!=L*0U`?"RLUZZ1
MV9>+UMZCZ!3+J/XF.I7<ZN!Z3Z2:4$BDIR&E_8E:8X)-WVAKE^Z%T#=`A87.
M%HF^7R.VBL^>"A,1WT*_82O+H/3>J%,R(=.CBCM1PQO<IQR-F[(&?P["&TJ&
M$`DGY1B!M/G2]M4*SB`Q33A%S,J^+['N8.?&RB4B*I6 AT 14)P7F1).%_)9L3M
ML&WE15I[1 AT E;H^6G5.=_N'UBE"4D4+E(+/$&(S"::BEAMO%[9O;+LZ=/G@"L
MKS<O;K^1*#Q.4;YH@@HH4IGR2CZH0I:QKHJ;P0A3A^))TC+JWN\LA=O AT AI62
M5>$JF,]7I7M^F"*<,)$/A^%!'2PS<4)A<;.-QMCLUR3]5<B&93Z.!JD>/1ZZ
M<,89R,7)TY*%A?S\?L;F&<M94HBOYN,I#EUWPJ0BNM&1B,ME$M_!E`F\)0-G
MTUD<7):3=R5`:Q*GX4U'-K'XI'*="RVJJ\.O^J%%/1Q5H*)F$G*+LQ(!6Q%4
MHNMG;^HYA_6A^+S;?=YH:1^9.)'&P2BOO\W,,2[V0O<YY_(R$[0JXFI7^L3(
MFV`9(Z.]-OQE!"UK]X9E5ARA,K4,39RAGB]D'3H\N5<C45WT[>]'8KE@+M AT W
MU5?`-L(H`+%K6M.ELZ5+IZ%+9U.7CNIR?:Z+=0;13!56U`IK=%1;1=6>*W<P
M[#VX9=7-@=(?=&)J*==T;X.Y1I4(<NQLN5Q!`^V\].4#2EF(1-XGW;2(G?4W
M+60WKNG&'WYK-VZIFWV3UZF%4V4O^R/L[7FNZCK;RF'V1SBT>]K.9-D"Z/*X
MOE*>PYZ,PY AT I:N,$6W629MITMLZ:>(L8G3Q>>:]T0G8E#E\RQYRW-+@CKW9R
M(9P[Q:C0/JW+/1B.^XO1\-=O0)@]`&'SG)BS`AUX>4K$:S)B"_/#FT_4%MO0
MO1]]9BCO"&6KR AT 45@7!MI%UL-O0-E/+18&,IK3"'9H59FYOPI&O"(,?;J'=L
M)V.E.T`FL6#]C%$Y%>I`6+N6)L^00LHPA2_$DCS`IZBV=H-T>.341;]N62F5
MHO[W?U!+`0(4`!0``@`(`"M@(R'NU3U.>!<``+1#```$``````````$`(```
M``````!24RY#4$L!`A0`%``"``@`$I0&(>"6278,'@``NV@```H`````````
J`0`A````FA<``%5&0T-265!4+D-02P4&``````(``@!J````SC4`````
`
end

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019