[comp.sys.m6809] AR - compressing archiver

pete@wlbr.EATON.COM (Pete Lyall) (07/30/87)

This is a VERY IMPORTANT UTILITY. You will need this tool, along with
'uudecode' to break up some of the tools and other goodies that will
be posted in the future. PLEASE GRAB IT, even if you don't want to use
it right away. This is the 'ar' package that has rapidly become the
standard method of wheeling bundles of OS9 files about. - PWL


#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	ar.readme
#	ar.doc
#	ar.uue
# This archive created: Thu Jul 30 11:17:06 1987
export PATH; PATH=/bin:$PATH
if test -f 'ar.readme'
then
	echo shar: will not over-write existing file "'ar.readme'"
else
sed 's/^X//' << \SHAR_EOF > 'ar.readme'
XThe other two files that follow in this archive are:
X
Xa) Ar.doc
Xb) Ar.uue
X
XAr.doc is Carl Kreider's original documentation for using 'ar'. Some
Xfolks have found it a little tough to interpret, so in a nutshell,
Xhere are a few brief examples:
X
XCreating an 'ar' file:
X======================
X
XAssume that you want to stuff all the sources, '.h' files, and '.doc'
Xfiles from a given directory into an 'ar'chive. You would chd to the
Xaffected directory and type:
X
Xar -u myjunk *.c *.h *.doc
X
XThis says:
X
Xcreate or update an archive file called 'myjunk.ar' (the '.ar' suffix
Xis automatically added and handled), and in it place all files with
Xsuffixes of '.c', '.h', and '.doc'.
X
X
XBursting an 'ar' file:
X======================
X
XTo unpack all the files from the archive created above, we would type:
X
Xar -x myjunk
X
XIf just the '.c' files were desired:
X
Xar -x myjunk *.c
X
XListing a file from within an 'ar' file without unpacking it:
X=============================================================
X
XIf you were just interested in reading the '.doc' files, but didn't
Xwant to use the disk space to unpack it (or the time), you could
Xtype:
X
Xar -p myjunk *doc
X
XI find this especially useful for handling documentation on my system.
XI keep it all in 'ar' files in a raw, pre-text formatter (like Nroff)
Xstyle. When I want a copy of documetation, I just:
X
Xar -p docfiles <desired_filename> ! text -I -q
X
XWhich pipes it directly through the formatter, which could then be
Xpiped into the spooler, redirected to another file, or whatever.
X
XLooking at the contents of an 'ar file:
X=======================================
X
Xar -t myjunk
X
XJust looking for the C sources:
X
Xar -t myjunk *.c
X
X
X------------------------------------------------------------
X
XIn order to use the file 'ar.uue' packaged herein, you
Xmust use the 'uudecode' utility that I recently posted
Xto the comp.sys.m6809 group. The syntax should be:
X
Xuudecode ar.uue
X
XThe file 'ar' should be created. You should then place this command in
Xyour CMDS directory, and ensure the attributes are set for execution.
X
XPete Lyall
X======================================================================
X
SHAR_EOF
fi # end of overwriting check
if test -f 'ar.doc'
then
	echo shar: will not over-write existing file "'ar.doc'"
else
sed 's/^X//' << \SHAR_EOF > 'ar.doc'
XAr is a utility modeled loosely after the archive utility in the Kernigan & 
XPlauger book, Software Tools. It's purpose is to gather together files into a 
Xcommon file, in order to save space, to keep related files together, to ease 
Xthe transmission of files by telephone, and other similar uses.  It will use 
XLempel-Zev compression on text files, so substantial space savings can 
Xresult.  Several versions of the same file can be kept in one archive without 
Xfile name contention.  
X
XThe command line syntax is: 
X
X  Ar <-command>[options] <archive_name> [file_specification(s)] 
X
XThe items enclosed in <> are required and those in [] are optional.  The 
Xcommands available operate on the archive in some way: 
X
X  -p print a file(s) to standard output 
X  -t print a table of contents for the archive 
X  -u update/add file(s) to the archive 
X  -x extract file(s) from the archive 
X
XThe options modify the behavior of a command: 
X
X  -a causes all old files to be included in the command 
X  -s supresses compress on storage, no effect on retrieval 
X  -z names of files to process are read on standard input 
X
XMost of these commands and modifiers are obvious, but not so the detail 
Xoperation.  A version number is kept as part of the header record associated 
Xwith each file in the archive.  The current file has a version number of '0'. 
XOlder versions of files with the same names have succedingly greater numbers.  
XCommands normally operate on current copies, or those with a version of '0'. 
XThe 'a' option will cause all to be selected.  To avoid name conflicts on 
Xextraction, the version number for all but the current version will be 
Xappended to the name of the created file.  
X
XA file spec can include the meta characters '?' (matches any character) and 
X'*' (matches any string of characters).  Thus the following examples are valid 
Xfile specifications: 
X
X   *.c matches ar.c, dir.c, but not dir.h or dir.cc 
X   ar.?  matches ar.c, ar.h, but not ar.ch 
X   a*z matches az, abz, abcz, abcdz, etc.  
X   *.* matches anything with a dot in it 
X   * matches anything and everything 
X
XMeta characters can be used for files both bound for the archive and for files 
Xto be extracted.  The p, t, and x commands default to '*' if no explicit file 
Xlist is given.  The u command MUST have a file spec.  The file specification 
Xcan include a path list if it is not absolute.  That is, '/d0/work/*.c' will 
Xnot be accepted, but 'work/*.c' will be.  During extraction, if the directory 
Xin the path list of the archived file cannot be found, it will be created.  
XHere are some sample command lines: 
X
X   ar -pa archfile print all files, even old versions 
X   ar -p archfile print all current files 
X   ar -p archfile *.c print all current files with '.c' suffix 
X   ar -p archfile file.c print only 'file.c' 
X
XThe x and t commands would work the same way, but the u command is slightly 
Xdifferent.  Sample command lines follow: 
X
X   ar -us archfile *.c add all files with '.c' suffix without compression 
X   ar -u archfile * add ALL files using compression unless binary 
X   ar -u archfile file.c add only 'file.c' 
X
XIf a file with the same name as the one to be added exists in the archive 
Xalready, the version number of the existing one is incremented and the new 
Xversion is added to the end of the archive.  The atribute section of the file 
Xdescriptor is saved in the archive and restored to the file (as much as is 
Xpossible) on extraction.  OS9 limits this to owner, creation date, and last 
Xmodified date.  Size of course will be the same, but the file permissions will 
Xdefault to some value.  It is possible (I do it in 'arc') to preserve 
Xpermissions, but that requires that the disk be opened raw and written raw.  I 
Xwould prefer not to do that here.  
X
XPre-extension is used during extraction to avoid segment table overflow 
Xproblems, and will be added to update as soon as the mechanism becomes clear.  
X
XThere is no way in the first version of 'ar' to recover space of obsoleted or 
Xupdated files, or to delete files.  This did not seem important, given the 
Xdesign goal.  This can be simulated with a burst/re-archive operation, which 
Xis, in principle, how 'ar' will have to do it.  It is easy to add if it proves 
Xnecessary for more general use of 'ar'.  
X
XThe concatenation of two '.ar' files is still an archive, with certain 
Xlimitations.  If a duplicate file with duplicate version appears in both 
Xarchives prior to concatenation, only the last one physically in the archive 
Xfile will be saved on extraction.  One could, of course, double the size of 
X'ar' with all manner of prompting, perusing, and choosing in cases like that 
Xbut I prefer to rely on the inate ability of the user deal with such problems 
Xoutside of 'ar'.  
X
XThe archive file is opened in update only if necessary, so the last modified 
Xdate of the archive is not disturbed by extraction or perusal.  This should go 
Xa long way toward making rational backup of archives possible.  
X
X
X
SHAR_EOF
fi # end of overwriting check
if test -f 'ar.uue'
then
	echo shar: will not over-write existing file "'ar.uue'"
else
sed 's/^X//' << \SHAR_EOF > 'ar.uue'
Xbegin ar
XMA\TQ[  -$8'U !E/54'R J:@I\ P'R;X.30@-$!/7Z? 6B;[KN0SA#")0E4T
XM$#&-,!NNH2<$C=CN8C/)  &NH2<"C<Q/$:/D)P2GP"#W[F+LH2<',(W_J!<!
XM ^RA)P4PQ!< ^C)D-1"OR0'-$*_) 8W,  'MR0'),<D!CS#DIH#FR0'*P1TG
XM5($-)U"!("<$@2PF!*: (/"!(B<$@2<F'J^A;,D!RC0"IH"!#2<$H>0F]C4$
XM;Q^!#2<BIH @PC ?KZ$P 6S) <J!#2<,@2 G"($L)P2F@"#P;Q\@I##) 8TT
XM$.S) <DT!C'$C0H7 (EOXF_B%R]+,*E"5:^I =<0[ZD!RQ#OJ0'9S/^",.NL
XMJ0'9) JLJ0'7)1ZOJ0'9.2HJ*BH@4U1!0TL@3U9%4D9,3U<@*BHJ*@TPC.3&
XMSS0$A@(0C@!D$#^,;^(7+OOLJ0'+HZD!V3GLJ0'9HZD!USDT$#"K,(LT$.RA
XM,,OLA.-B[800K.0F\3)D.31 S/^M%_^+,G<7'9>N;S "KV_L'NVI =WL;1"#
XM  ,M$JYO, *O;^P>[68? >:$P2TG Q<+KJYF, &O9N:$'30&%RB/,F+G:.QF
XMPP ![68T!A<!!#)BKF\P J]O[![MJ0'?- 87)]$R8NUD[*D !30&[*D!W^-F
XMP__]- 87)Z,R9.U^)RCLJ0 %- ;LJ0'?- ;L:,, !#0&%PL<[>07)V<R9#0&
XM%R=4,F3MJ0'?YFC!=28%S  !( )/7S0&[.@1- ;LZ!&#  /MZ!$T!A<%_3)F
XM[7XF%>9HP74F#S"-##PT$$]?- 87"^8R9.9HP74F*C"-#$(T$.RI =\T!A<>
XM^#)D[>0F03"-## T$.RI =\T!A<>XS)D[>0@+#"-#!XT$.RI =\T!A<>SC)D
XM[>0F%^RI =\T!C"-# 4T$.RI =LT!A<+BC)F[.0T!N9J'30&%P!<,F0R:37 
XM-$#,_[H7_C,@1:YD, &O9.8?'30&%R=C,F(? 2 @S  ![:D !R HS  ![:D 
XM"2 ?S  ![:D "R 6%PI0(!&, &$GVXP <R??C !Z)^,@ZN;X!":V-< T0,S_
XMN!?]W>9E'1\!("SL9C0&%P$Y( ?L9C0&%P(X,F(@,T]?( /,  $T!NQH- :-
XM)C)D(" 7"?T@&XP 9"<6C !T)\J, '4GSHP <"?4C !X)],@X#7 -$#,_U 7
XM_84RZ)SLJ0 !$"8 R3"-"S T$!<&+A8 N^RI  $@+,P  30&,&PT$.QDPP "
XM- 87$44R9A"#  $G%^;H42<*[*D !Q"#  $G".ST[>3LY";.[.0F'<P  30&
XM,.A.[ (T!NR$- ;LZ&XT!A<A 3)H%@!D[.AJ)A8P8C00,*D 2#00[.AL- 87
XM!Y R9B!),&HT$#"-"JXT$!<><3)D,&(T$!<&:C)B[>AB,&(T$.SH9#0&[.AL
XM- 87!V R9C#H4C00KNAD[ @T!A</@C)D[.AB- 87(M4R8C!B-!#LZ&HT!A<%
XMUS)D$(/__Q F_RTRZ&0UP#1 S/\^%_R.,NB:[*D  28+,(T*3C00%P4Y,F(P
XMC0I%-! 7'?4R8C"-"GTT$!<=ZC)B,(T*M#00%QW?,F(6 *WLJ0 !%@">S  !
XM- 8PZ! T$.QHPP "- 87$"LR9A"#  $0)@!CYNA5)PSLJ0 '$(,  1 F %(P
XMZ%#L C0&[(0T!C#H8S00%P]",F+L C0&[(0T!N;H91TT!N;H9ATT!N;H9QTT
XM!N;H:!TT!N;H:1TT!N;H9QTT!C#H(C00,(T*;#00%QU5,N@8S  !- 8PZ%+L
XM C0&[(0T!NSH<#0&%Q^=,FCL^ 3M9.QD$";_6C!F-!#LZ&PT!A<$SS)D$(/_
XM_Q F_STRZ&8UP#1 S/] %_N&,NB,%@"=[*D  18 <LP  30&,.@<-!#LZ!3#
XM  (T!A</5#)F[6P0@P !)E#FZ&'#  'GZ&',  $T!LS_H#0&S/__- ;LZ'XT
XM!A<?(3)H[.AX- ;,  $T!LP 8#0&,.@8-! 7'&\R:.U^)A$PC0G<-!#LJ0';
XM- 87"$<R9.SX$.WH$.SH$! F_X3,  $T!C#H7NP"- ;LA#0&[.A^- 87'LPR
XM:##H$C00[.AZ- 87! @R9!"#__\0)O],[*D  18!V3"-"9\T$.SH$L,  C0&
XM%QL8,F3MZ'(F)>RI =L0@P#6$"<!LNSH$,,  C0&,(T)=300[*D!VS0&%P?%
XM,F;LZ!##  (T!C"-"6LT$!<;^S)D[*D "282[.AR- 87(;TR8NUN$(.'S28$
XM3U\@ \P  N?H8.RI  ,T!C#H%#00%R*Y,F3, " T!LP 0C0&,.@>-! 7#K<R
XM9NSH$,,  C0&,.@<-! 7(I,R9##H8C00KNAT[ @T!A<,K3)D3U_GZ&'LZ'(T
XM!A<?#3)B,&0T$.SH>C0&%Q\/,F(7)-/LZ'@T!LP  30&S !@- 8PZ!@T$!<;
XM(S)H,&@T$#!F[ (T!NR$- 8PZ'$T$!<,\C)B%R01[ (T!NR$- :-!    & U
XM$!<C_A<DB3!H[ (T!NR$- :NZ'SL"#0&%PRA,F8PZ%PT$##H%#00[.AV- ;L
XMZ'XT!A<$UC)F%R17,.0T$.SH>C0&%QZ",F(7)$;LZ'(T!A<?>3)B3U\T!C!F
XM[ (T!NR$- ;LZ'XT!A<=)C)H[.AX- ;,  $T!LP 8#0&,.@8-! 7&G0R:.U^
XM)AGLZ!##  (T!C"-"!,T$.RI =LT!A<&1#)F3U\T!C!B[ (T!NR$- ;LZ'XT
XM!A<<V#)H[/@0[>@0[.@0$";^'3#D[ (T!NR$- :NZ'SL"#0&%POA,F8RZ'0U
XMP#1 S/]:%_B_,NBD3U_M8A8!-.SH9"<FS  _- ;L^&0T!A<AJ3)D[7XF+,P 
XM*C0&[/AD- 87(98R9.U^)AGL8C0&KNAD, *OZ&3L'C0&%P$T,F+CX2"W,&:O
XMZ%I/7^>$S  O- :NZ&0P J_H9.P>[>A8- 87(6<R9.WH6"<R[.A6- ;LZ%PT
XM!A<@L3)DS  O- ;LZ%PT!A<A1#)D[>A6'P%/7^>$[.A8PP ![>A8( SLZ%;M
XMZ%CLZ%KMZ%;F^%HG!>SH6B &,(T'&Q\0- 87#.TR8NUDYOA:$"< 6,P +Z[H
XM5C !K^A6YQ\@2<P  30&[&(T!NSH6C0&%R"D,F0T!NSH7#0&%PNP,F;M?B<F
XM[*D!WS0&[.A<- 87#%0R9.U^)Q+L8C0&[.A<- 87 %<R8N/A[6+L9#0&%PR;
XM,F+MY!"#__\0)O^D[.A@P___[>A@@___$";^O.RI  LG(2 4YF8G$.QB- 8P
XM:#00C1@R8N/A[6(P9C00%Q@$[>$FX>QB,NA<-< T0,S_M!?W.S)^YO@&P2\F
XM%.QF- 8PC09)-!#,  $T!A<$6S)F[&8T!A<?O#)BPP #- 87 S$R8NWD[*D 
XM 28,[.3MJ0'A[:D  2 *[.3MN0'A[:D!X>QF- ;LJ0'APP "- 87'U$R9$]?
XM[;D!X<P  3)B-< T0,S_M!?VQNQD- ;,  $T!LP 8#0&[&PT!A<7R3)H[7XF
XM!<S__S7 S  '- ;LJ0 #- ;L:C0&%Q]),F;M?B<0,(T%Q300S  !- 87 [LR
XM9$]?-< T0,S_;A?V<C+HN.SH3,, ".WD(%A/7^?TS "!- ;LZ$[#  @T!A<C
XM,S)D$(/__R8QS "_- ;LZ$[#  @T!A<C*C)D$(/__R89[.A,PP (- 8PC05]
XM-!#LJ0';- 87 U4R9LP +Z[D, &OY.<?S  O- ;L8C0&%Q\',F3MY! F_Y3L
XMZ$S#  @T!C!F-! 7'EXR9*[H3.:(3R<CKNA,YHA/'30&,(T%/#00,&@T$!<>
XM;S)B,&@PBS00%Q=A,F8PC04F-! P9C00%Q84,F3M8B85,&0T$#"-!1$T$.RI
XM =LT!A<"TC)F[.A,PP!9- 87"+\R8NP"- ;LA#0&KF;L"#0&%PB*,F;L8C+H
XM2#7 -$#,_ZX7]68R>C!B-!"NZ! PB$H7(#ZN;N:(3AT? 18 HNQJ- 87'&0R
XM8NWD$(/__R81,(T$O#00[*D!VS0&%P)G,F3L;#0&[&(T!A<:EC)D$(/__R81
XM,(T$LC00[*D!VS0&%P)#,F0PJ0'/-! P9!<@"!<?WQ<?\J:$J@&J JH#$";_
XMG18!!C!B[ (T!NR$- ;LZ! T!NSH$#0&%P[$,FCMY!"#__X0)@#C,(T$>2 $
XM,(T$FS00S  !- 87 >HR9!8 RJ]^)Z",  (GNR#B-$#,_[ 7])<R>C!B-!"-
XM!      U$!<?;:YNYHA.'1\!%@"#[&HT!NQB- 87&><R9!"#__\F$S"-!& T
XM$.RI =LT!A<!E#)D( 4P8A<?3>QL- 87&V@R8NWD$(/__R;$KFSL!D_$("=+
XM,(T$2300[*D!VR I,&(T$.QL- ;LZ! T!A<);C)F[>00@__])B4PC00]( 0P
XMC01=-!#,  $T!A<!-S)D( VO?A G_Z*,  (GPR#A,&(SJ0'/-$ 7'L<R9C7 
XM-$#,_[87\]0R?NQF- 87'4LR8NWD)A$PC00R-!#LJ0';- 87 /$R9.SD%@$G
XM-$#,_[@7\Z<PC00F-! PJ0!5-! 7%2@R9#"-!#4T$#"I %4T$!<5%S)D,(T$
XM3C00,*D 5300%Q4&,F0PC01C-! PJ0!5-! 7%/4R9#"-!((T$#"I %4T$!<4
XMY#)D,(T$H#00,*D 5300%Q33,F0PC02[-! PJ0!5-! 7%,(R9#"-!-@T$#"I
XM %4T$!<4L3)D,(T$\C00,*D 5300%Q2@,F0PC04)-! PJ0!5-! 7%(\R9#"-
XM!1XT$#"I %4T$!<4?C)D,(T%.S00,*D 5300%Q1M,F0PC058-! PJ0!5-! 7
XM%%PR9,P  2 X-$#,_[07\KWLJ0'=- 8PC05--! PJ0!5-! 7%#@R9NQJ- ;L
XM:C0&[&HT!C"I %4T$!<4(3)H[&0T!A<AOC)B-< K05(P+C K "YA<@!N;VYE
XM(&]F('1H92!T87)G971S(&9O=6YD#0!R*P!W*P!R &-A;B=T(&9I;F0@)7,-
XM "H 97AT<F%C=&EN9R \)7,^#0 J " @(" @(" @(" @(" @(" @(" @(" @
XM(" @(" @(" @(" @(" @(" @(" @(" @(" @("!F:6QE(" @<W1O<F5D#0 @
XM(&9I;&4@;F%M92 @(" @(" @(" @(" @(" @("!V97(@(" @9FEL92!D871E
XM(" @(" @<VEZ92 @("!S:7IE#0 M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
XM+2TM+2 M+2T@+2TM+2TM+2TM+2TM+2T@(" M+2TM+2 @("TM+2TM#0 E+3(Y
XM<R E,F0@("4P,F0O)3 R9"\E,#)D("4P,F0Z)3 R9" E-VQD("4W;&0- '=R
XM:71E(&9A:6QU<F4@;VX@9&5L971E#0!R &-A;B=T(&9I;F0@)7,- &%R8VAI
XM=FEN9R \)7,^#0!W<FET92!E<G)O<B!O;B!H96%D97(@9F]R("5S#0 N &%B
XM<V]L=71E('!A=&@@:6QL96=A;" \)7,^#0!F:6QE(&YO="!A<F-H:79E(&]R
XM(&1A;6%G960- &-A;B=T(&UA:V4@/"5S/@T +B5D '< 8W)E871E(&9A:6QU
XM<F4@;VX@)7,- ')E860@97)R;W(@=VAI;&4@8V]P>6EN9PT =W)I=&4@97)R
XM;W(@=VAI;&4@8V]P>6EN9PT 87)C:&EV92!D86UA9V5D(&]R(&9I;&4@;F]T
XM(&-O;7!R97-S960- '5N:VYO=VX@8V]M<')E<W-I;VX@86QG;PT =W)I=&4@
XM97)R;W(@=VAI;&4@8V]P>6EN9PT <F5A9"!E<G)O<B!W:&EL92!C;W!Y:6YG
XM#0!S=')I;F<@=&%B;&4@;W9E<F9L;W<@;VX@8V]M<')E<W-I;VX- '5N:VYO
XM=VX@8V]M<')E<W-I;VX@86QG;PT 0V%N)W0@9V5T(&UE;6]R>0T 07(@5C$N
XM,B M(&%R8VAI=F4@9FEL92!M86YA9V5R#0!5<V%G93H@($%R("T\8VUD/EL\
XM;6]D:69I97(^72!;9FEL92 N+B!=#0 @(" @(" \8VUD/B!I<R!O;F4@;V8@
XM=&AE(&9O;&QO=VEN9SH- " @(" @(" @('0@('-H;W<@=&%B;&4@;V8@8V]N
XM=&5N=',@9F]R(&%R8VAI=F4- " @(" @(" @('4@('5P9&%T92]A9&0@9FEL
XM92AS*2!T;R!T:&4@87)C:&EV90T (" @(" @(" @<" @<')I;G0@9FEL92AS
XM*2!F<F]M('1H92!A<F-H:79E#0 @(" @(" @("!X("!E>'1R86-T(&9I;&4H
XM<RD@9G)O;2!T:&4@87)C:&EV90T (" @(" @/&UO9&EF:65R/B!I<R!O;F4@
XM;V8@=&AE(&9O;&QO=VEN9SH- " @(" @(" @(&$@(&%L;"!V97)S:6]N<R H
XM9F]R(&5X=')A8W0I#0 @(" @(" @("!S("!S=7!R97-S(&9I;&4@8V]M<')E
XM<W-I;VX- " @(" @(" @('H@(')E860@;F%M97,@9F]R(#QC;60^(&9R;VT@
XM<W1D(&EN#0 -(" @(" @1FEL92!N86UE<R!C86X@:6YC;'5D92!T:&4@;65T
XM82!C:&%R<R  *B!A;F0@/RP@;W(@<&%T:"!L:7-T<RX- "5S.B  -$#,_ZX7
XM[5DR=NQNYV',  _G8NSH$.UDS  0[68PY#00S "-("0T0,S_KA?M,S)V[&[G
XM8<P #^=B[.@0[63, !#M9C#D-!#, (XT!A<< S)D,FHUP#1 S/^R%^T$,GPP
XMY#00[&HT!LP  C0&%QDF,F86 ,XT0,S_M!?LY3!F[ (T!NR$- ;L:#0&S  "
XM- 87&4DR:#7 -$#,_[87[,,R?##D-!"-!      U$!<7F3#D-! P8NP"- ;L
XMA#0&KFXP :]NYA]/%Q=F%Q;N-!#,  @7%ZH7%W$PY#00,&+L C0&[(0T!JYN
XM, &O;N8?3Q<7/A<6QC00S  (%Q>"%Q=),.0T$#!B[ (T!NR$- :N;C !KV[F
XM'T\7%Q87%IXT$,P "!<76A<7(3#D-! P8NP"- ;LA#0&YO@.3Q<6\Q<6>Q<7
XM!C#D,ZD!SS1 %Q;[,F0UP#1 S/^U%^P([F8R?Q8 4^;DP2HF(.9J'30&-$#L
XM:30&C=XR9NU^)P;,  $6 &3FP";C%@!;YL00)P!5YN3!/R8$,T$@'>;D'30&
XMYFPG#.; '30&%Q3I,F(@ ^; '1"CX28NYFHG$JYE, &O9>8?'30&%Q3+,F(@
XM":YE, &O9>8?'>?D$";_B.;$)@7,  $@ D]?,F$UP#1 S/_ %^MR( KF::YD
XM, &O9.<?[&;#___M9H/__R;J-< T0,S_N!?K4.YF( _FP"8$3U\UP.QDPP !
XM[63F^ 0=- 87%&/MY.;$'30&%Q19,F(0H^$GU^;$'30&%Q1*[>3F^ 8=- 87
XM%#\R8J/A-< T0,S_N!?K LP @30&[&8T!A<8;3)D-< T0,S_M1?JZC)_S  @
XM- 8PJ0'C-!#L:30&%QAD,F;M?BX%S/__(!OFJ0'CY^0GV^;D3\1_$(, +A G
XM_\XPJ0'C'Q R837 -$#,_ZH7ZJ0R=LP+L^WD3U\6 $7LJ0(+6$E825A),*D"
XM+S"+-!#LJ0(+6$E825A),*D"+S"+3U_M NWQ[*D""UA)6$E823"I B\PB^RI
XM @OM!NRI @O#  'MJ0(+[*D""Q"# 0 0+?^K%P@3,*D"%300C00    "-1 7
XM%1;LZ! T!LP  C0&S  !- 8P9C00%PMG,FCL;C0&%Q$O,F+M9A8 >NQF6$E8
XM25A),*D"+S"+[ +M9.QD)Q7L9%A)6$E823"I B\PB^P&$*-H(R'LZ! T!NQH
XM- 87 80R9.QF- ;L:C0&%P"!,F3M8NQH(!?L9%A)6$E823"I B\PB^P&$*-H
XM)@;L9.UF(!/L9%A)6$E823"I B\PB^R$%O^6KF[L!D_$$"83[&XT!A<0GC)B
XM[6@0@___$";_:NSH$#0&[&@T!A<!&3)D[.@0- ;,__\T!A<!"C)DKN@2-! P
XMJ0(5%Q0Q3U\R:C7 -$#,_\ 7Z3SLJ0(+$*.I @<M!<S__37 [*D""UA)6$E8
XM23"I B\PBT]?[0+LJ0(+6$E825A),*D"+S"+[&3M!NQF6$E825A),*D"+S"+
XM[@+O?B<5'S!825A)6$DPJ0(O,(OL!A"C9",K[*D""UA)6$E823"I B\PB^^$
XM[&9825A)6$DPJ0(O,(OLJ0(+[0(6 %7N9A\P6$E825A),*D"+S"+[(3M9NU^
XM)Q7L9EA)6$E823"I B\PB^P&$*-D(]/LJ0(+6$E825A),*D"+S"+[&;MA!\P
XM6$E825A),*D"+S"+[*D""^V$[*D""\,  >VI @M/7S7 -$#,_[(7Z$8R?NQF
XM$"P 6NRI @TO1NQH- ;LJ0(-PP '- ;,  @7$['M8C0&S  !- 8PJ0(9-! 7
XM"6$R:#"I A4T$.P"- ;LA#0&[&87$LP7$E07$M]/7^VI @WL:#0&%PXZ,F)/
XM7Q8 VNQF- 87 -<R8NRI @WCJ0(%[:D"#30&[*D"!5A)6$E821"CX28[[&@T
XM!NRI @4T!LP  30&,*D"&300%PCT,F@PJ0(5-!#L C0&[(0T!NRI @47$ET7
XM$>47$G!/7^VI @WLJ0(+$*.I @D0+P!L[*D"#2\[[&@T!NRI @4T!LP  30&
XM,*D"&300%PBF,F@PJ0(5-!#L C0&[(0T!NRI @47$@\7$9<7$B)/7^VI @WL
XMJ0(%PP ![:D"!1"CJ0(#)@;LJ0('( _,  $T!NRI @47$RK#___MJ0(),F(U
XMP#1 S/^P%^;^,G;LJ0(-1U9'5D=61U;M9NRI @U/Q _M:..I @40@P 0+C',
XM !"CJ0(%HVCM9.QF6$DPJ0(9,(LT$.QH6$DPJ0(9,(OLA#0&S/__- ;LJ0(%
XM%@!WS  0HVCM8NRI @6C8NWD[&9823"I ADPBS00[&A823"I ADPB^R$- ;,
XM__\T!NQH%Q*0I.#DX#0&[.@2- ;L9A<2::K@ZN#M\<P $*/D[63L9L,  5A)
XM,*D"&3"+-!#L:,,  5A),*D"&3"+[(0T!LS__S0&[&87$DE#4S0&[&H7$D!#
XM4Z3@Y. T!NSH$C0&[&H7$BZJX.K@[?$R:C7 -$#,]]@7Y@,RZ?@DS ?0[>D'
XMT.SI!^ T!LP  30&S  "- 8PZ0?@-! 7!O<R:!"#  $M"NSI!]H0@PNS)P;,
XM__X6 >@7 Y<PJ0(5-! PZ0?F[ (T!NR$- :-!     (U$!<0%1<0BT]?%@!9
XM[*D""UA)6$E823"I B\PBS00[*D""UA)6$E823"I B\PBT]?[0+M\>RI @M8
XM25A)6$DPJ0(O,(M/7^T$[*D""UA)6$E823"I B\PB^RI @OM!NRI @O#  'M
XMJ0(+[*D""Q"# 0 0+?^7[.D'X#0&%P%4,F+MZ0?4[>D'V.SI!^(T!NSI!]HT
XM!A<*BS)D%@$6[.D'UNWI!]+LZ0?6$*.I @L0+0!6[.D'T,/__^WI!] PY#"+
XM[.D'V.>$[.D'U" W[.D'T,/__^WI!] PY#"+-!#LZ0?86$E825A),*D"+S"+
XM[ ;G\>SI!]9825A)6$DPJ0(O,(OL!.WI!];LZ0?6$(,! "R[[.D'T,/__^WI
XM!] PY#"+-!#LZ0?86$E825A),*D"+S"+[ ;MZ0?:Y_'LZ0?B- ;,!]"CZ0?2
XM- ;,  $T!NSI!]8P9C"+-! 7!9XR:,P'T.WI!]#LJ0(+[>D'UA"CJ0('+#?L
XMZ0?66$E825A),*D"+S"+[.D'U.T$[.D'UEA)6$E823"I B\PB^SI!]CM!NRI
XM @O#  'MJ0(+[.D'TNWI!]3LZ0?@- :-&#)B[>D'UA"#__\0)O[4[.D'UC+I
XM!]PUP#1 S/^R%^/1,G[LJ0(-$*.I  TL#>RI @L0HZD""1 O -3LJ0(+$*.I
XM @DO*^RI @7#  'MJ0(%$*.I @,F!NRI @<@#\P  30&[*D"!1</H</__^VI
XM @DPJ0(5[ (T!NR$- :-!      U$!<-[2]&,*D"%>P"- ;LA#0&[*D"!1<.
XM(Q<-U2\&[*D"!2 $[*D"%^VI  WL9C0&[*D #30&S  !- 8PJ0(9-! 7!$(R
XM:.VI  TN!<S__R!,,*D"%300[ (T!NR$- ;LJ0 -%PW6%PUS%PWI3U_MJ0(-
XM[*D"!</__S0&[*D #5A)6$E82:/A[:D #8T4[>3LJ0(-XZD"!>VI @WLY#)B
XM-< T0,S_MA?BQ3)Z[*D"#4=61U9'5D=6[6+LJ0(-3\0/[63CJ0(%$(, $"X<
XM[&)823"I ADPB^R$- ;, !"CJ0(%HV87#HH@0<P $*-D- ;LJ0(%H^'MY.QB
XM6$DPJ0(9,(OLA#0&[&(7#GTT!NQDPP !6$DPJ0(9,(OLA#0&S  0HV07#DNJ
XMX.K@- ;,__\T!NRI @47#E!#4Z3@Y. R9C7 -$#,_[X7XB7,  OMJ0(#S  )
XM[:D"!<P  30&[*D"!1<.),/__^VI @G,  $T!NRI @,7#A'#___MJ0('-< Y
XM-$ SJ4(O-$#F9\%D)V7!;R<0P7@G,L%8)RZ&;.W!;\0UQC!HY@/$!\LPY\#&
XM XT$)O(@-F2$9@%F F8#6B;UIH2J :H"J@,YQ" T!#!IY@/$#S0$AC#!"2\$
XMAC>K8:O@I\#&!(W.)N8R8:[D;\07!,0UQN9H*BO,  "C:NUJS   XFFB:.UH
XM$(.  "81[ (F#3"- %NF@*? )OH6_X#&+>? ,*D #T_&"C0"- 8@,VSD[&VC
XM NUM[&OB :*$[6LD[NQMXP+M;>QKZ0&IA.UKYN1M8B8%72<&;&++,.? , 1O
XMY&IA)LOF;LLPY\ R8R"K+3(Q-#<T.#,V-#@ -$ SJ0 [[$9/Q ,0)P!H,TTT
XM0#"I 0NLX2+KS #([:D!VQ8 5C7 -$#N:"8$C=$? ^]^)T;L9.U(KF;F <$K
XM)PBN9N8"P2LF!NQ&R@,@'NQ&- ;F^ C!<B<'YO@(P60F!<P  2 #S  "JN#J
XMX.U&[$+C2^U$[<0?,#7 3U\UP#1 [F0R?$]?[>2N:N8!'1\!(!ZN:N8"P2LF
XM!<P !R (S  $( /,  /MY" 5,&06 &BO?B<,C !X)]F, "LGYB#KYO@*'1\!
XM%@!<[.3* 2 \[.3* C0&-$ 7#8\R9.UB$(/__R<6S  "- 9/7S0&- ;L:#0&
XM%PWD,F@@1>SDR@(T!C1 %PT#( OLY,J!- 8T0!<-5S)D[6(@)S(<S #+[:D!
XMVT]?(!R, '(0)_^=C !A$"?_G(P =R?"C !D)\H@V^QB,F0UP#1 3U\T!NQH
XM- ;L:#0&%@!+-$#L9C0&[&8T!A?_'#)D'P,1@___)@1/7R U3U\@)#1 [&@T
XM!A<%EC)B[&8T!NQF- 87_O0R9!\#[WXL!$]?( _L:#0&[&@T!C1 %_Z#,F8U
XMP#1 [F0@ N? ,*D .S00%P98,F+!#2<*$(/__R;I3U\@!&_$[&0UP#1 [F;L
XM9#0&( JNY.> K^3!#2<5,U_O?BL/[&HT!A<&(3)B$(/__R;A;_00@___)@1/
XM7R "[&8R8C7 -%;N:$]?("/L:B 6[&XT!A<%]#)B$(/__R<7Y\#LY(,  >WD
XM)N;L8L,  >UB$*-L+=8R8C7&-%;N:$]?("/L:B 6KF[FP#06%P04,F00@___
XM)Q7LY(,  >WD)N;L8L,  >UB$*-L+=8R8C7&-$ S9C"I $CL9" (-$ S:*YD
XM[&:OJ4)#,(T"+B 0-$#L9.VI0D,S:.QF,(T"*#1&-!"-!S)F-< R:#GN9#)X
XM( FN;NR!KVZM^ KFP"?JP24F]5^&?>WDYV?G8N; P2TF!.=GYL#!,"<"QB#G
XM9N9?%P&M[6/FP,$N)@OG8N; %P&>[>3FP,%C)[@T0,%F)S;!92<RP6<G+L%%
XM)RK!1R<FP6PG0\%S)V'!9"=YP6\0)P$9P7@0)P#+P5@0)P#%P74G=C5 ((+L
XM930&,.@2[&1M9B8#S  &-!;,?0#M:.9?3S0&%P7X(!LT0*[H$NP"- ;LA#0&
XM, 2OZ!;FP.]F- 87^XTR:!\#%@"LC6\? S1 %P80,F)M9"<'$*-B(@+M8A< 
XMR!8 DHU/-'9-*A! 4(( [>3&+>? ( 2-/#1VS  %[6*G9#"I #,U!B =;.2C
XMA"3ZXX$T!.9A;6,F!5TG!FQCRS#GP&]A-01J82;ARS#GP&_$,F0@/3.I0D6N
XMZ!+L@:_H$CG$(.=GC>TT1L0/- 2&,,$)+P2&-ZMLJ^"GP.SD1%9$5D161%;M
XMY";@;\2N8HT3,F(U0(TL-4 6_H_FA*;"IX#GQ#1 K.$E\CF-J31&Q ?+,.? 
XM[.1$5D161%;MY";N(,@T0!<%.C)B0%"" .-G[6=M:R8+C1X@!^; )PRM^ [L
XM9(,  >UD*O!M:R<"C08YYFRM^!#L:8,  >UI*O(Y;^)OXC-?,*D!"R 7[.18
XM2>WD6$E82>/DZ\") (, ,.WDYL2FA80()N,UAJZI0D,T%A<!H#)D.:ZI0D/G
XM@*^I0D-OA#DT0.YD,GH0)P$*[$;% Q G 0*%@"8*-$ 7 _ R8A8 Q84!)Q8T
XM0!<"/S)BID:$_J=&[$+C2^U$%@"I[,00HT00) "B,&(T$#!N%P:TKN@0)PB,
XM  $G'!8 ;S!B-!#L C0&[(0T!C1 %P#-,F(7!A@7!H[L2Q<&<.P"- ;LA#0&
XM,&;L C0&[(0T!C"- )(7!@PL!S!F%P8I( (P9A<%_BT?[&3CQ.WD$*-")13L
XMY!"C1"0-[.3MQ.9'Q._G1Q8 6NSH$!"#  $F&3!L-!#L C0&[(0T!NQ$H\07
XM!@P7!:D7!A_L1.W$YD?$[^='[.@0- 8P;NP"- ;LA#0&[$@T!A<) #)H[ (T
XM!NR$- 8PC0 4%P6*)@7,__\@ D]?,F8UP     #_____3U\? 306[&8T%A?^
XMS#)H.31 [F0G!NQ&Q ,F#3"I <_,___MA.T"-<"$@"8'-$ 7 K(R8LP  30&
XM7S0&- ;L2#0&%PB5,FCL C0&[(0T!J9&A $G!.Q"( +L1#0&[,2CX1<%7!<$
XMY#7 -$#N9NQ&A(#$(L$")CB!@"<'-$ 7 F0R8NQ&Q 0G+,P  30&,&?L2#06
XMYD?$0"<%%P@N( ,7"! R9A"#__\F.>9'RB#G1\S__S7 A $F"31 %P"I[>$F
XM[J[$YF7G@*_$K$0D#.9'Q$ G#^9EP0TF"31 %P"([>$FS>QD-< T0.YFYF0T
XM1A?_>.9IYV$7_W$R9#7 -$ PJ0 [QA T!#00C0HU$# -:N0F]#7$-$#N9! G
XM_Y/L1A G_XW$ B<(-$"-%S)B( )/7S0&[$@T!A<'/S)B3U_M1C7&-$#N9! G
XM_V;L1L0BP0(0)O]<A( F!S1 %P&(,F(T0(T$,F(UP#1 [F0R?*9&A $F(^S$
XM$*-$)QQ/7S0&-$ 7_HXR8NP"- ;LA#0&[$@T!A<'1S)H[,2C0NUB$"< 7NQ&
XMA $0)P!6Q$ G+>Q"("$T!NS$- ;L2#0&%P<.,F;MY!"#__\G*.QBH^3M8NS$
XMX^3MQ.QB)MD@)>QB- ;L0C0&[$@T!A<&RC)F$*-B)P_F1\H@YT?L1.W$S/__
XM(!"F1HH!IT;L0NW$XTOM1$]?,F0UP#1 [F0G6:9&A $F4Z[$K$0D4N: K\1/
XM-< T0.YF)T#F1\0!)SKL9!"#__\G,J[$K$(G+.>"(-TT0.YD-,"-P>UB$(/_
XM_R<*C;<0@___)P*F8S)D-<#&$" "QB#J1^='S/__-<#L1H2 Q#'! 2;Q@8 G
XM!S1 %P!<,F(PJ0 [-! 1H^$F$>9'Q$ G"S"I $@T$!?^G3)BYD?$""<5[$LT
XM!JY"[$@T%N9'Q$ G$A<%XB 0S  !- 8P2J]"[$@T%A<%KS)F[7XGCRN1KD(P
XMBZ]$KD(6_S\T0.YDYD?%P"8?,NC@,.3L2#063U\T!A<$*,9 IF8G L: ,N@F
XMZD?G1Z9&BH"G1L0,)CGL2R8%S $ [4OL0B81[$LT!A<&;C)B[4(0@___)P3&
XM"" +,$JO0LP  >U+Q@3J1^='[$+C2^U$[<0UP#"-  ,?$#D -$#N9JYDC18?
XM 2 &-$#N9JYDYL#G@";Z[&0UP*YBYH F_# ?'Q Y-$"N9.YF( 3FP"<'YL3@
XM@"?V4!TUP#1 [F3FP";\,U\?,*-D-< T8*YF[F@0KFHG%" (,3\G#N; )PKF
XMQ." )_)0'2 "3U\UX#1 [F2N9N: Y\ J^L1_YU]OQ.QD-< T0*YD[F8T4$_F
XMP"?^3^UBC08G]3)D-<"N8N: )PCA92;X'Q @%T\YKF+,  $T!B &X6<F J_D
XMYH F]C4&@P !.4_F8S"I 0NFBX0$)Q7$WT\Y3^9C,*D!"Z:+A (G!,H@3SGL
XM8CGL8L, _U\T!EA)6$DT!A<$ZC)B-4 0@___)Q > ^U",T0T0(UR,F+NJ0&+
XM.31&[&;#  -$5D16PP ![>2NJ0&+)A(PJ4)/KZD!BZ^I0D]/7^VI0E'NA" $
XM'S'NQ.Q"$*/D)2(F!NS$[80@$.Q"H^3M0EA)6$DSR^SD[4*OJ0&+,T0?," .
XM$:.I 8LFS!?_<2;'3U\R8C7 -$;N9C-<KJD!BR 0K(0E"A&CY"(3$:.$)0ZN
XMA*_D$:/D(^D1HX0DY#1 [$)825A)X^$0HX0F$#00KH3L C40XT+M0NR4( +L
XMA.W$[ )825A)X^0T!A&CX28,[ +C0NT"[,3MA" "[X2OJ0&+(([L9.,"[:D!
XMT>QBZ0&IA.VI <\6 .?L9*,"[:D!T>QBX@&BA.VI <\6 -+L8A"CA"82[&00
XMHP(G"R4&A@$<_B #3X$!- 'L8>UE-0$R9#D7 +K,  "C NT"S   X@&BA.V$
XM.>R$0U/MJ0'/[ )#4S"I <_M CDPJ0'/[0(?B1T?B>V$.3"I <_M F^$;P$Y
XM-" 0KF3LA.VD[ +M(C40'B$U!NWD.<P  >,"[0+LA,D B0#MA#GL H,  >T"
XM[(3" (( [80YKF(T!!< 0#4$72<+: -I FD!:81:)O4U!NWD.:YB- 07 "0U
XM!%TG"V>$9@%F F8#6B;U-0;MY#D?J#40KV(R8C"I <\?BCGLA.VI <_L C"I
XM <_M CF#   G"C0&,GYOY&]A("XU!NWDS  M%@"9@P  )_$T!C)^;^1O84TJ
XM"$!0@@!C8>UB[&8J"$!0@@!C8>UFA@%,:&-I8BKYI^3L9F]F;V>C8B0&XV(<
XM_B "&@%I9VEF9&)F8VKD)NCM8FUA)PCL9D!0@@#M9JYD[&;M9*]FKF+L9#)F
XM.5TG$V=B9F-:)OD@"ETG!V1B9F-:)OGL8C0&[&+M9.SD,F0Y72?P:&-I8EHF
XM^2#G[:D!VS0D$#\,-200/P@Y-&"F:>9G)S3! 2<RP0(G%,$%)Q#!!B<FP0XG
XM(,$/)QG&T" %$#^-) 4U8!8"QJ_X"JYJ[P)/7S7@$*YLKFH0/XTU8!8"MS1@
XMIFGF9R=(P0(G0L$#)T#!!"<WP0HG2,$+)S3!#"= P0TG,,$/)RC!$"<DP1$G
XM'L$4)Q?!%2<3P1DG#\$:)Q#!&R<<QM U8!8"8Q"N;NYLKFH@#!^)IFNN;!"N
XM;N[H$! _CC5@%@)/KF*F91 _A"4#$#^/%@) KF+F91 _A18"-J9E( *& JYB
XM$#^0%@(HIF,0/X(0)0(6'XE/.:YBIF4?B<0DR@L0/X,D3L':)B:F986 )B"$
XM!ZYB$#^$)1<T0HX  #.$Q@(0/XXU0B0K- 00/X\U!!8!UJYBIF7F9Q _@R7R
XM(!3!VB;L$#^')>>N8J9EYF<0/X,E[!^)3SFN8J9E$#^$$"4!IA^)3SFF8Q _
XMCQ8!HS0@KF:F91"N:#0@$#^)) W!TR8$3U\UL#4P%@%]'R UL#0@IF6N9A"N
XM:#0@$#^+(-TT(!"N:"<.IF6N9A _BB0%-2 6 50?(#6@-" 0KF@G]:9EKF80
XM/XP@Y31 [&HF",X  (X  " T$(,  2<E$(,  B<4QO=/[:D!V\S__S"I <_M
XMA.T"-<"F9<8"$#^-)>4@":9EQ@40/XTEVA\PXVCMJ0'1'P,?$.EGJ68KR!\!
XM[:D!SZ9E$#^();LPJ0'/-<#LJ0'-- ;L9!"CJ4)3)28T($]?$#\'XV80/P<?
XM(#4@) ;,__\R8CGMJ0'-XZE"4Z/D[:E"4S)B[*E"4S0&HV3MJ4)3[*D!S:/A
XM- 9/KN2G@*RI <TE^#6&[&+CJ0'7)2$0HZD!V20:- :NJ0'73ZSD) 2G@"#X
XM[*D!US40KZD!USG,__\Y[&(T(! _!R0%S/__-: ?(#4@[:D!S4]?[:E"4SDT
XM8*9GQCDT!LP0/S0&[FSL0:Y$$*Y&[DBMY#1![F\S2#8^-1*GPJ](,F0U8(4!
XM)P3,__\Y3U\Y3^VI =O,__\Y)?5/7SD7  @7]L[L8A _!CD  0 !C   #H<.
XMCP          .YK*  7UX0  F):   ]"0  !AJ   "<0   #Z    &0    *
XM)Q #Z !D  H          0                (  0            !&  ( 
XM                                                            
XM                                                            
XM                                                            
XM                                                 0$! 0$! 0$!
XM$1$1$1$! 0$! 0$! 0$! 0$! 0$! 0$P(" @(" @(" @(" @(" @2$A(2$A(
XM2$A(2" @(" @("!"0D)"0D(" @(" @(" @(" @(" @(" @(" B @(" @($1$
XM1$1$1 0$! 0$! 0$! 0$! 0$! 0$! 0$(" @( $    "  4  P  07( G'VJ
X 
Xend
SHAR_EOF
fi # end of overwriting check
#	End of shell archive
exit 0
-- 
                                                   Pete Lyall

Usenet:     {trwrb, scgvaxd, ihnp4, voder, vortex}!wlbr!pete
Compuserve: 76703,4230 (OS9 Sysop) OS9 (home): (805)-985-0632 (24hr./1200 baud)