[comp.sources.amiga] v91i015: GIFMachine 2.116 - convert GIF images into IFF SHAMs, Part02/02

amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator) (02/19/91)

Submitted-by: caw@miroc.chi.il.us (Christopher A. Wichura)
Posting-number: Volume 91, Issue 015
Archive-name: graphics/gifmachine2116/part02

#!/bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 2 (of 2)."
# Contents:  GIFMachine.uu Sources/main.c
# Wrapped by tadguy@ab20 on Mon Feb 18 16:19:00 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'GIFMachine.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'GIFMachine.uu'\"
else
echo shar: Extracting \"'GIFMachine.uu'\" \(23896 characters\)
sed "s/^X//" >'GIFMachine.uu' <<'END_OF_FILE'
Xbegin 666 GIFMachine
XM```#\P`````````#``````````(``!!<````(`````````/I```07$CG@(!^,
XM`"QX``0F;@$4<``B/```,`!.KO[.2JL`K&820>L`7$ZN_H!!ZP!<3J[^C"X`N
XM0_H!('`D3J[]V$J`9CA#^@$23J[^:$J`9R`L0$ZN_\0B`&<60?H!""0(=B-./
XMKO_0(DXL>``$3J[^8E"/(`=A``#.<`!.=2\`2?D``(``F?P``(``(#P``-_,F
XM(CP``0`!3J[]5$J`9AX@!V$``*(L7U"/<F=.KOXR(DXL>``$3J[^8G`43G4@O
XM0"1`(D`@/````!L@W%.`9OH@'&<.($G1W-70((HD25.`8/`H2=G\``"``"E?@
XM@&PI1X!X+'@`!"E.@'!,WP$!2.R``(!\(D=.N0```81P`&`$("\`!"8`("R`.
XM>&$``"HL;(!L<@!.KOXR(DXL>``$3J[^8BYL@'PB3)/\``"``$ZN_4X@`TYU9
XM)`!G#BQX``1.KO]\(D).KOZ&3G5D;W,N;&EB<F%R>0!9;W4@;F5E9"!+:6-KC
XM4W1A<G0@,BXP(&]R(&=R96%T97(N#0!.5?_82.<P,B9)2.T!`?_83KH-$B`+>
XM9PI.N@W6<`5A``3V0_H!JG``+&R`<$ZN_=@I0(`09A1(>@&62'H!JDZZ.\QP5
XM!6$`!-!03T/Z`;!P`"QL@'!.KOW8*4"`%&842'H!G$AZ`8).NCND<`5A``2H4
XM4$]P'W(`0>W_X!#!4<C__$'Y```]^")(2AEF_%.)D\AP&$'Y```_E"1(2AIFR
XM_%.*E<C0@"()TH`@"M*`4H$@`4ZZ#(@K0/_X9A1!^@%L(@@L;(!L3J[\3'`%Z
XM80`$2D'Z`3XO"$AY```_E"\(2'D``#WX+RW_^$ZZ.U!/[P`40?H!2"((0^R#Y
XME"0)1>W_X"8*+&R`;$ZN_.(I0(.09A).KO]\(@!T`$ZN_B9P!6$``_@@;?_X6
XM3KH,7"`L@YAG"B!`80`+>#E`@[Q*K(.@9R8@;(.@(!`I0(`(;09R9+"!;Q1!X
XM^@%`(@@L;(!L3J[\3'`#80`#M$JL@[AG#B!L@[@@$.&`Y8`I0(`$)FR#E"`+<
XM9A1!^@$^(@@L;(!L3J[\3'`#80`#A$ZZ,;Y@"B!+6(L@4&$``^1*DV;R<`!AN
XM``-J3-],#$Y=3G4J*BH@57-E<B!);G1E<G)U<'1I;VXA"@!M871H:65E961O.
XM=6)B87,N;&EB<F%R>0!5;F%B;&4@=&\@86-C97-S("5S(0H`:69F<&%R<V4N]
XM;&EB<F%R>0``FS,S.S0R;4=)1DUA8VAI;F6;,S([-#!M``!/=70@;V8@;65MG
XM;W)Y(0H`1TE&9FEL97,O32]!+%1/+TLL04Q,+U,L3D]"3U)$15(O2R].+%A#O
XM3TU0+U,L1$E42$52+U,L6$9,25`O<RQ91DQ)4"]S+$1%15`O4RQ"549325I%/
XM+TLO3@``26YV86QI9"!.3T)/4D1%4B!L:6YE('1H<F5S:&AO;&0@<W!E8VEFP
XM:65D+@H``$YO($=)1B!F:6QE<R!S96QE8W1E9"X*`$9I;&4@;F]T(&9O=6YD>
XM+@H``%!A=&@@=&]O(&QO;F<A"@!)+T\@17)R;W(@(R5L9"$*``!%<G)O<B`C3
XM)6QD('1R>6EN9R!T;R!O<&5N("5S+BXN"@``1TE&`"5S(&ES(&YO="!A($=)?
XM1B!F:6QE+BXN"@``0V]N=F5R=&EN9R`E<R```"YG:68``"XN+B!/=70@;V8@L
XM;65M;W)Y(0H`+F1E97``+G-H86T`=&\@)7,N+BX*`$5R<F]R(')E861I;F<@Z
XM<V-R965N(&1E<V-R:7!T;W(N"@!3:6=N871U<F4@/2`B)7,B+"!7:61T:"`]+
XM("5L9"P@2&5I9VAT(#T@)6QD"@``3F\@9VQO8F%L(&-O;&]U<B!M87`@<W5P.
XM<&QI960L('5S:6YG(&EN=&5R;F%L+@H`1VQO8F%L(&-O;&]U<B!M87`@8V]NX
XM=&%I;G,@)6QD(&5N=')I97,N"@``17)R;W(@<F5A9&EN9R!G;&]B86P@8V]LY
XM;W5R(",E;&0N"@``3W5T(&]F(&UE;6]R>2!T<GEI;F<@=&\@86QL;V-A=&4@Q
XM<&EC='5R92X*```N+BY)+T\@97)R;W(@<F5A9&EN9R!'248@9FEL92X*`"XN3
XM+E5N:VYO=VX@9&ER96-T:79E(",E;&0@96YC;W5N=&5R960N"@`N+BY#;VYV)
XM97)S:6]N('1I;64@=V%S("5L9"!H;W5R)7,L("5L9"!M:6YU=&4E<R!A;F0@3
XM)6QD('-E8V]N9"5S+@H``',```!(YP$"+@`@+(``9PHB`"QL@&Q.KO_<("R`Z
XM%&<*(D`L;(!P3J[^8B`L@!!G"B)`+&R`<$ZN_F)*K(`89PPB+(`8+&R`;$ZN%
XM_+X@+(.09PHB`"QL@&Q.KORF<`%.N@A"<`!.N@@\(`=.NOH,3-]`@$YU2.<A`
XM$B9((#P```(:3KH'IBE`@!A*@&840?K\B"((+&R`;$ZN_$QP"F$`_V8@;(`8'
XM,7P!```2$7P``0`0(&R`&"%\```0```()`@B"RQL@&Q.KOS*+@!@5"!L@!@@\
XM*``82H!O,$JL@YQG-!`H`!`(```#9@XB```!``0@;(`8$4$`$!`H`!`"``#W.
XM(&R`&!%``!!@"D/H`1@@26$``(PB+(`8+&R`;$ZN_,0N`$J'9Z@B+(`8+&R`[
XM;$ZN_+X@;(`83KH'.D*L@!@@!P2`````S6<D<AN0@6=*<D>0@6<H4X!F-"(L[
XM@`PL;(!L3J[\3'`!80#^GF`L0?K\6B((+&R`;$ZN_$Q@'$'Z_%PB""QL@&Q.<
XMKOQ,8`PO!TAZ_%I.NC5H4$],WTB$3G5.5?_$2.<_,B9(,"R#\%)`.4"#\"(+<
XM)#P```/M+&R`;$ZN_^(I0(``9AA.KO]\+PLO`$AZ_"I.NC4F3^\`#&``!8HB>
XM+(``=`$F+(`$+&R`;$ZN_I)"+?_O+P0F`B(L@`!![?_I)`AX!DZN_KPH'UV`G
XM9A)P`T'Z_`I#[?_I3KHW@$J`9Q`O"TAZ^_Q.NC324$]@``4X+PM(>OP&3KHT[
XMPB(++&R`;$ZN_)HF0"!+2AAF_%.(D<L@"")+T\`D25F*<`1!^OOL(DI.NC;2;
XM4$]*@&8"0A(@2TH89OQ3B)'+(`@N`%R'("R#F&<H2FR#O&<2($!*&&;\4XB1X
XMP"`(4H#>@&`0($!*&&;\4XB1P"`(+@!2AR`'3KH%>"1`(`IF$D'Z^Y8B""QL'
XM@&Q.KOQ,8``$GB`L@YAG-"!`(DH2V&;\2FR#O&=&(@HD"R8'+&R`;$ZN_(Y**
XMK(.T9P9#^OMP8`1#^OMP($I.NC;F8"`@2R)*$MAF_$JL@[1G!D'Z^U!@!$'ZT
XM^U`B2"!*3KHVQ"\*2'K[2$ZZ,\Y03T'M_]PB""QL@&Q.KO]`+P0B+(``0>R`G
XM@"0(=@%X!TZN_KPH'U^`9PY!^OL@(@A.KOQ,8``$`B!"80`$=D'L@()A``1N<
XM<``P+("`<@`R+(""+P$O`$AM_^E(>OL23KHS;$'LO!Q.NC5\3^\`$$)L@]9P3
XM`!`L@(0B`'0'PH)2@70!XZ(N`@@```=F+$'Z^PXB""QL@&Q.KOQ,?`!'[(",P
XM8!`@!A=```(70``!%H!2AE:+O(=M[&!&+P=(>OL03KHS#%!/?`!'[(",8"XOY
XM!"(L@``D"W8!+&R`;'@#3J[^O"@?5X!G$"\&2'K[#$ZZ,MY03V```T12AE:+7
XMO(=MSG``,"R`@%Z`<@A.NC7>(@!T0-2"TH+N@5*`T($N`#`L@()R`#(`Y8$@%
XM`4ZZ`]`I0("(9R0P+(""<@`R`.F!TH$@`4ZZ`[@I0,^89PP@!TZZ`ZPI0+THJ
XM9A)!^OK"(@@L;(!L3J[\3&```M)P`#`L@(!2@"(`Y8F2@"P!?@!Z`&`P(&R`6
XMB"](`"0@!DZZ`W`@;P`DT<4@@$J`9A)!^OJ`(@@L;(!L3J[\3&```I!2AUB%^
XM<``P+(""OH!MQG``,"R`@%Z`<@A.NC4D+`!2AGX`1^R]+F`@(`9.N@,D)H!F%
XM$D'Z^CPB""QL@&Q.KOQ,8``"3%*'6(M*K(.T9P1P&&`"<`:^@&W02JR#J&=(B
XM?@`^+("`?`!@."`'3KH"Y$'L@[XA@&@`2H!G$B`'3KH"TD'L@\HA@&@`2H!F!
XM$D'Z^>(B""QL@&Q.KOQ,8``!\EB&<`R\@&W"<`$I0(.,?@!@``#@(BR``"QL_
XM@&Q.KO[.+@!P_[Z`9@Y!^OG4(@A.KOQ,8``!O"`'<B&0@6<@<@N0@6<*<@^0X
XM@6<D8```F"`L@`!.N@.T+@!(QV```)8@+(``3KH*5"X`2,=@``"&2JR#H&<$;
XM3KH>-DJL@ZQG!$ZZ)B!*K(.P9P1.NB=<2JR#I&<*3KHC?'`!.4"#UC`L@((,[
XM0`#(8PY*;(/69P@Y?``!O2Q@!$)LO2Q*K(.T9A1*K(.H9P9.NAFF8`1.NA@X)
XM3KHIR"`L@[1(P"!*3KH,L"X`2,=@#B\'2'KY-DZZ,)A03WX!2H=G`/\>0>W_T
XMT"((+&R`;$ZN_T`@+?_8<C).NC.2+T``)"`M_]1R/$ZZ,V0O0``H("W_T"(\?
XM``%1@$ZZ,U(B+P`HT($B+P`DT($H`"`M_^1R,DZZ,UHO0``D("W_X'(\3KHSH
XM+"]``"@@+?_<(CP``5&`3KHS&B(O`"C0@2(O`"30@9B`(`0B/```#A!.NC-2%
XM+``@!B(\```.$$ZZ,O*8@"`$<CQ.NC,Z*@`@!7(\3KHRWBX$GH!P`;R`9P9!9
XM^OC:8`1!^OC6)DBZ@&<&0?KXRF`$0?KXQB1(OH!G!D'Z^+I@!$'Z^+8O""\'F
XM+PHO!2\++P9(>OA@3KHOFD_O`!PP+(/P(@!303E!@_!R`#(`(`%.N@$H("R`5
XM`&<.(@`L;(!L3J[_W$*L@`!,WTS\3EU.=4Y5_O1(YR,2)DA\`"(+=/XL;(!L'
XM3J[_K"X`2H=G("('0>W^]B0(3J[_FDJ`9PH@+?[Z2H!O`GP!(@=.KO^F(`9,M
XMWTC$3EU.=4CG(!`F2'``,!,B``*!``#_`."!=``4`7(`,@!P`$8`PH!P`!`!$
XMX8"`@C:`3-\(!$YU0>R#V$ZZ,/I![(/D3KHP\D)L@_!.=4CG`1(N`'`,WH`@9
XM!R(\``$``2QL@'!.KO\Z)D`@"V8$<`!@'C`L@_#`_``,0>R#V-'`(DM.KO\*O
XM)T<`"$'K``P@"$S?2(!.=4Y5__Q(YP`2)D@@2Y#\``PO2``((D@L;(!P3J[_(
XM!")O``@@*0`(3J[_+DS?2`!.74YU2.<!,BX`(`?`_``,0>R#V-'`)DA@#B)*8
XM("D`""QL@'!.KO\N($LL;(!P3J[^^"1`(`IFXDS?3(!.=0``2.<Q,DJL@'1G:
XM!'X`8!9#^@!\<``L;(!P3J[]V"E`@'1G+GX!D<A#[(`X)$A'[(!,<``B`'1N*
XMU()V0"QL@'1.KOZD2D=G"B).+&R`<$ZN_F),WTR,3G5T;W!A>BYF;VYT``!F+
XM;W(@0TQ)('5S92!O;FQY(0!'249-86-H:6YE(&ES`$-/3E1)3E5%``!I;G1UU
XM:71I;VXN;&EB<F%R>0```$Y5_\Q(YS\R(BR#C%*L@XPO`4AZ`X(K0/_63KHMJ
XM8%!/+P0B+?_60>R#]"0(=@$L;(!L>`E.KOZ\*!]R";"!9Q!!^@-P(@A.KOQ,>
XM<`%@``,^($).NOX.0>R#]DZZ_@9![(/X3KK]_D'L@_I.NOWV<``0+(/\<D#`G
XM@3E`AP)G!G(!.4&'`GX`/BR#]'P`/"R#]DILAP)G!D'Z`X1@!$'Z`X!P`#`L^
XM@_IR`#(L@_;2@%.!<``P+(/X=``T+(/TU(!3@B\(+P$O!B\"+P=(>@,.3KHLQ
XMK$_O`!@0+(/\"```!V=<<@`2`'`'PH!2@7`!XZ`O`$AZ`S(K0/_H3KHL@E!/@
XM?@!'[(/^8"XO!"(M_]8D"W8!+&R`;'@#3J[^O"@?5X!G$"\'2'H#+DZZ+%1PH
XM`6```EY2AU:+OJW_Z&W,8"IP`!`L@(1R!\"!4H!R`>&A*T'_Z$'L@(Q#[(/^]
XM(#P```,`+&R`<$ZN_9!P`$*G2'H##CE`AOXY0(<`3KHL!%!/(BW_UBQL@&Q.F
XMKO[.&4"'"`P``/]F$$'Z`PPB"$ZN_$QP`6```>QP`!`LAPAR`20!X:(F`E*#L
XM*4.'"B8"5(,L`U(LAP@0+(<(+T(`*G0`%`#EH2X!>@!"+(<.<@`?0``D*4&'^
XM$"E!AQ0I08<$+T,`)B`M_]9A``,V*`!@``%(2JR'!&<&<`%@``&(<``B/```%
XM$``L;(!P3J[^S@@```QG%"\L@`Q(>@*F3KHK5G`!3KKT6E!/N*\`*F8T$"\`9
XM)'(`$@!T`>.B+@(L+P`F&4"'""`M_]9A``+6*``@!'(`$@`;0/_;(`%A``.<\
XM8```RBX$OJW_W&T,+BW_X'H!&6W_V[@8("W_Z%.`?``<`&`^#(4```0`;Q1!6
XM^@(X(@@L;(!L3J[\3'`!8```Z"!%4H5#[*@81>RX&"`(%;%X``@`(`?0@'X`N
XM0>R(&#XP"`"^AFZ^(`=R`!(`&T#_VR`!80`#)BX%4X=@$'``0>RX&!`P>`!A!
XM``,24X=*AVKL>@`@+?_<(@#2@20M_^!![(@8,8(8`$'LJ!@1K?_;"``L`%*&&
XM+BW_Y+R';1`0+(<(<@RP`60&4BR'"-Z'*T3_X"`M_]9A``'L*``K1O_<*T?_W
XMY+BLAPIF`/ZL(BW_UBQL@&Q.KO[.+@!P_[Z`9@1P`6`D0?H!AB((3J[\3$J'4
XM9Q1!^@&$(@A.KOQ,(BW_UB0'3J[^PG``3.U,_/^H3EU.=2XN+DEM86=E(",E/
XM;&0@96YC;W5N=&5R960N"@`N+BXN+BY%<G)O<B!R96%D:6YG(&EM86=E(&1EH
XM<V-R:7!T;W(N"@``+BXN+BXN6'!O<R!F<F]M("5L9"!T;R`E;&0L(%EP;W,@$
XM9G)O;2`E;&0@=&\@)6QD+"`E<VEN=&5R;&%C960N"@````!N;W0@```N+BXN!
XM+BY,;V-A;"!C;VQO=7(@;6%P(&-O;G1A:6YS("5L9"!E;G1R:65S+@H`+BXN)
XM+BXN17)R;W(@<F5A9&EN9R!L;V-A;"!C;VQO=7(@(R5L9"X*`"XN+BXN+D1E:
XM8V]M<')E<W-I;F<@;&EN92!N=6UB97(@)35L9```"BXN+BXN+DDO3R!%<G)O"
XM<B!D=7)I;F<@9&5C;VUP<F5S<VEO;BX*``HE<P`*+BXN+BXN0V]R<G5P="!'$
XM248@9FEL92`H3W5T0V]U;G0I"@";,C)$FTME9"X*```N+BXN+BY787)N:6YG?
XM.B`@56YA;&EG;F5D('!A8VME="X*``";-40E-6QD`$Y5_^Q(YS\"*T#_['H`M
XM<``0+(<(<@$D`>&B*`(L`6```*A*+(<.9@``A"`LAQ"PK(<49F(B+?_L+&R`>
XM;$ZN_LXN`'#_OH!F%D'Z_RXB"$ZN_$QP`2E`AP0@+(<*8'(O!"(M_^Q![(<8N
XM)`AV`2@'3J[^O"@?L(=G%$'Z_OXB"$ZN_$PI0X<$("R'"F!$*4>'%'``*4"')
XM$'(!4JR'$$'LAQ@4,`@`&4&'#AE"O!D0+(<.$BR\&<(`2@%G`HJ&<@`2`-*!0
XMW(8908<.O(1F`/]6(`5,WT#\3EU.=4CG/2`N`'``$`=R`\'!0>R#_M'`,"R#<
XM]#0LAO[00L#!,BR#]C8LAP`H`=A#>@`Z!.6%(FR`B-/%)%'5P!38%-@4V%)L+
XMAOXP+(/X,BR&_K)`9E9";(;^<`!![(!@,BR'`A`P$`!T`#0LAP#4@#`L@_HY2
XM0H<`M$!E%E)LAP)P`$'L@&4R+(<"$#`0`#E`AP!P`#`L@_9R`#(LAP#2@"\!6
XM2'K^@$ZZ)MA03TS?!+Q.=0``3E7_Z$CG/S(N`"('+&R`;$ZN_LXL`'#_O(!F=
XM$$'Z`7`B"$ZN_$QP`6```5P@!@2`````_F8``/A!^@&((@@L;(!L3J[\3'`04
XM3KKWL"M`_^AF%$'Z`;PB""QL@&Q.KOQ,<`%@``$BE<I\`"('+&R`;$ZN_LXJ3
XM`'#_NH!F$$'Z`<(B"$ZN_$QP`6```/Q*A6<``(`O!"('0>R\*"0(=@$H!4ZN'
XM_KPH'["%9Q!!^@&4(@A.KOQ,<`%@``#.)DHH!MR%(`9.NO<V)$`@"F840?H!H
XM0B((+&R`;$ZN_$QP`6```*A*A&<4($LB2B`$+&R`<$ZN_9`@2TZZ]TP@2M'$W
XM(DA![+PH(`4L;(!P3J[]D&``_UP@;?_H(4H`""%&``PB2$'LO!PL;(!P3J[_X
XM"G``8%@O!DAZ`39.NB664$\B!RQL@&Q.KO[.+`!P_[R`9@Y!^@%6(@A.KOQ,"
XM<`%@+$J&9@1P`&`D+P0B!T'LO"@D"'8!*`9.KOZ\*!^PAF?`0?H!*"((3J[\)
XM3'`!3-],_$Y=3G4N+BY)+T\@97)R;W(@<F5A9&EN9R!E>'1E;G-I;VX@8FQO-
XM8VL@9G5N8W1I;VX@8V]D90H`+BXN0V]M;65N="!E>'1E;G-I;VX@96YC;W5N;
XM=&5R960N("!#;VYT96YT<R!W:6QL(&)E('-T;W)E9"!I;B!A;B!!3DY/(&-H=
XM=6YK+@H`+BXN+BXN3W5T(&]F(&UE;6]R>2!A;&QO8V%T:6YG(&-O;6UE;G0@Q
XM8FQO8VLN"@``+BXN+BXN22]/($5R<F]R(')E861I;F<@8V]M;65N="!B;&]C5
XM:RX*`"XN+D5X=&5N<VEO;B!B;&]C:R!F=6YC=&EO;B!C;V1E(",E;&0@;F]T_
XM(&MN;W<L('-K:7!P:6YG+@H``"XN+DDO3R!%<G)O<B!S:VEP<&EN9R!U;FMND
XM;W=N(&5X=&5N<VEO;B!B;&]C:RX*`$Y5_W1(YS\R)D@K0/]Z0?H*%"((+&R`7
XM;$ZN_$PL;(`43J[_XB1`(`IF%$'Z"@XB""QL@&Q.KOQ,<`%@``G@(@LD/```-
XM`^XL;(!L3J[_XB2`9APL;(!L3J[_?"\++P!(>@H`3KHCE$_O``Q@``F,($HL\
XM;(`43J[_%B!*<`%.KO_<2H!G$D'Z"@`B""QL@&Q.KOQ,8``)9"!*(#Q)3$)-T
XM(CQ&3U)-=/\L;(`43J[_K$J`9Q)!^@G2(@@L;(!L3J[\3&``"38@2G``(CQ![
XM3DY/+&R`%$ZN_ZQ*@&<20?H)JB((+&R`;$ZN_$Q@``D.+SD``#^0+SD``#^,"
XM2'H)JDAM_\).NB,B3^\`$$'M_\(B2$H99OQ3B9/((`D@2D/M_\(L;(`43J[_&
XMOD'M_\(B2$H99OQ3B9/(L(EG$D'Z"4PB""QL@&Q.KOQ,8``(L$'M_Y`B""QL>
XM@&Q.KO]`<``;0/^<&T#_G9'(*TC_GD/M_W\K2?^B*TC_IG`0(@A![?]_$,%1`
XMR/_\0>W_D"((+&R`;$ZN_1A![?]_(DA*&6;\4XF3R"`)4H`O0``D($I#[?]_W
XM+&R`%$ZN_[ZPKP`D9Q)!^@C*(@@L;(!L3J[\3&``""X@2BQL@!1.KO^F2H!G>
XM$D'Z"*HB""QL@&Q.KOQ,8``(#D(M_ZE@``#$($IP`"(\04Y.3W3_+&R`%$ZNA
XM_ZQ*@&<20?H(>"((+&R`;$ZN_$Q@``?<<!,@2D/Z"*0L;(`43J[_OG(3L(%GV
XM$D'Z"%`B""QL@&Q.KOQ,8``'M"!*(FL`""`K``PL;(`43J[_OK"K``QG$D'Z(
XM""8B""QL@&Q.KOQ,8``'BB!*0^W_J7`!+&R`%$ZN_[Y3@&<20?H(`"((+&R`Z
XM;$ZN_$Q@``=D($HL;(`43J[_IDJ`9Q)!^@?@(@@L;(!L3J[\3&``!T1![+P<Y
XM+&R`<$ZN_OXF0"`+9@#_+"!*<``B/$)-2$1T%"QL@!1.KO^L2H!G$D'Z!Z(B9
XM""QL@&Q.KOQ,8``'!C`L@(`(````9PAR`#(`4H%@!'(`,@`[0?^J,"R`@@@`:
XM``!G"'(`,@!2@6`$<@`R`#M!_ZQP`#M`_[`[0/^N2FW_?&<$<AA@`G(&&T'_S
XMLG(`&T'_LQM\``'_M!M!_[4[0/^V,"R]+&8"=`H;0O^X2D!G!'(+8`)R"QM!I
XM_[D[?`%`_[I*0&<((#P```&08`1P9-"`.T#_O"!*0^W_JG`4+&R`%$ZN_[YRK
XM%+"!9Q)!^@;D(@@L;(!L3J[\3&``!D@@2BQL@!1.KO^F2H!G$D'Z!L0B""QL$
XM@&Q.KOQ,8``&*"!*<``B/$-!34=T!"QL@!1.KO^L2H!G$D'Z!IHB""QL@&Q.S
XMKOQ,8``%_DIM_WQG!'``8`8@/```"``N`$ILO2QF`G0`(`>`@BM`_Z8@2D/ML
XM_Z9P!"QL@!1.KO^^68!G$D'Z!E(B""QL@&Q.KOQ,8``%MB!*+&R`%$ZN_Z9*Q
XM@&<20?H&,B((+&R`;$ZN_$Q@``662FW_?&8``:X@2G``(CQ#34%0=#`L;(`4)
XM3J[_K$J`9Q)!^@8`(@@L;(!L3J[\3&``!61^`&!8(&S/F-'',!!R`#(`Z(%TH
XM>-2"PH(;0?^_<@`R`,*"&T'_P'(`,@!P#\*`Z8$;0?_!($I#[?^_<`,L;(`41
XM3J[_OE>`9Q)!^@6F(@@L;(!L3J[\3&``!0I4AW`@OH!MHB!*+&R`%$ZN_Z9*)
XM@&<20?H%?B((+&R`;$ZN_$Q@``3B2FR]+&<2<``P+(""(@!*@6H"4H'B@6`(,
XM<``P+(""(@#I@=*!+@$@2G``(CQ32$%-=/\L;(`43J[_K$J`9Q)!^@4N(@@L*
XM;(!L3J[\3&``!))";?^H($I#[?^H<`(L;(`43J[_OE6`9Q)!^@4$(@@L;(!L`
XM3J[\3&``!&@@2B)LSY@@!RQL@!1.KO^^L(=G$D'Z!-XB""QL@&Q.KOQ,8``$>
XM0C`L@(((````9S9P'W(`0>W_BA#!4<C__"!*0^W_BG`@+&R`%$ZN_[YR(+"!]
XM9Q)!^@2>(@@L;(!L3J[\3&``!`(@2BQL@!1.KO^F2H!G$D'Z!'XB""QL@&Q.A
XMKOQ,8``#XB!*<``B/$)/1%ET_RQL@!1.KO^L2H!G$D'Z!%0B""QL@&Q.KOQ,O
XM8``#N$'Z!)@B""QL@&Q.KOQ,<``P+?^J7H!R"$ZZ(+@[0/^B"````&<$4FW_?
XMHD)M_Z9@``,:<``P+?^F+P!(>@1L3KH==E!/<``B/```$``L;(!P3J[^S@@`V
XM``QG,B\L@`Q(>@1.3KH=4B!*+&R`%$ZN_]`B$BQL@&Q.KO_<($HL;(`43J[_8
XMRG`!3KKF.%!/,"R`@C(M_Z:R0&<``.!^`'P`8```QGH`&WP`@/^D0FW_J&``E
XM`*0P+?^HP/P``W(`,BW_IN6!(&R`B-'!(E#3P"9)2FW_?&<,<``0,W@`.T#_G
XMZF`$.U/_ZAM\``'_I7@`(`;E@$'LO2[1P"9(8"AP`!`M_Z5R`#(M_^K"@&<*A
XM(%/1Q1(M_Z2#$'(`$@#2@5*$6(L;0?^E2FW_?&<$<`A@`G`&N(!MR'`!L"W_U
XMI&8*<(!2A1M`_Z1@#'``$"W_I.*`&T#_I%)M_Z@P+("`,BW_J+)`90#_4E*'^
XM4(9*;?]\9P1P`V`"<`&^@&T`_RQ\`$?LO2Y@``&J(%,0$!E`O8YR`$*LOHY^5
XM`3M\``'_G!M`_YX[0?^:.T'_H&```00P+?^<(@!202!3T<=2AQ00=@`V`$'LO
XMO8X1@C@`.T'_G!M"_Y\P+?^@2D!G"E-`9P``@F```,@P+?^<#$``@&,D<@`RR
XM`%.!(`%A``+4$"W_GQE`O8YR`70`.T'_G#M"_YI@``":$"W_G[`M_YYF.'``<
XM,"W_FG(`,BW_G)*`=`.R@FT8<@"P06,*<@`R`"`!80`"CG`!.T#_H&!B2D!FG
XM7G`!.T#_H&!6,"W_G%-`.T#_FF!*<``P+?^:<@`R+?^<DH`J`1`M_YX2+?^?N
XML@!F"')`TH&Z@6\F(@53@4B`2,#!06$``GH0+?^?&4"]CCM\``'_G'``.T#_;
XMH#M`_YH;;?^?_YYP`#`M_Z*^@&T`_O0P+?^@2D!G!E-`9PY@*'``,"W_G&$`.
XM`?I@''``,"W_FG(`,BW_G)*`$"W_GDB`2,#!06$``AH@2B)LO2@@++Z.+&R`1
XM%$ZN_[ZPK+Z.9Q)!^@$^(@@L;(!L3J[\3&```*)P`#`M_Z)R`"!;8`(0P5.`]
XM9/I2ADIM_WQG!'`88`)P!KR`;0#^2$AZ`71.NAIT6$]2;?^F,"R`@@@```!G'
XM"'(`,@!2@6`$<@`R`'``,"W_IK"!;0#\R"!*+&R`%$ZN_Z9*@&<00?H`R"((`
XM+&R`;$ZN_$Q@+"!*+&R`%$ZN_Z9*@&<00?H`JB((+&R`;$ZN_$Q@#D'Z`0PB[
XM""QL@&Q.KOQ,($HL;(`43J[_T"`29PHB`"QL@&Q.KO_<($HL;(`43J[_RG`!=
XM3-],_$Y=3G4N+BY7<FET:6YG($E&1B!F:6QE+@``"BXN+BXN+D5R<F]R(&%L'
XM;&]C871I;F<@249&(&AA;F1L92X*```*+BXN+BXN17)R;W(@)6QD('1R>6EN=
XM9R!T;R!C<F5A=&4@)7,N``HN+BXN+BY%<G)O<B!W<FET:6YG('1O($E&1BX*@
XM`%=R:71T96X@8GD@1TE&36%C:&EN92!V)6QD+B5L9"!O;B```$=)1B!#;VUM@
XM96YT($)L;V-K.B``"BXN+BXN+DQI;F4@```E-6QD```*)7,`FS5$`)LU1)M+,
XM5W)I='1E;BX*``!(YP,`+@`@;+THT>R^CE*LOHX@!U.`$(!\`&`8(&R]*-'LU
XMOHY2K+Z.0^R]CA`Q:``0@%*&O(=MY$S?`,!.=4CG`P`N`"P!("R^CB!LO2@B;
XM2-/`<@&2AQ*!5*R^CB!LO2C1P"`&$4```4S?`,!.=0``3E7__$CG`P)!^@#(#
XM(@@L;(!L3J[\3$)LOI0P/`__<@!![`_,$,%1R/_\?`!@``"`<``P!B\`2'H`^
XMQDZZ&$103W``(CP``!``+&R`<$ZN_LX(```,9Q0O+(`,2'H`J$ZZ&"!P`4ZZ0
XMX2103WX`8"AP`#`&Y8`@;("(T<`@!\#\``,B4-/`+TD`#"!)80`$RB!O``PPL
XM@%)',"R`@+Y`9=!!^@!H(@@L;(!L3J[\3%)&,"R`@KQ`90#_>G``,"R^E"\`:
XM2'H`2DZZ%[I,[4#`__!.74YU+BXN4F5D=6-I;F<@<&%L971T92!T;R`Q,B!B-
XM:71S+@HN+BXN+BY,:6YE(``E-6QD```*)7,`FS5$`)LU1"5L9"!T;W1A;"!U&
XM;FEQ=64@8V]L;W5R<R!U<V5D+@H``"XN+D1I=&AE<FEN9R!P86QE='1E('1O,
XM(#$R(&)I=',N"BXN+BXN+E-E='5P``";-41,:6YE(```3E7_R$CG/S)!^O^^P
XM(@@L;(!L3J[\3$)LOI0P/`__<@!![`_,$,%1R/_\1^R#OD'L@\I";?_F*TC__
XMU&`B,"W_YL#\``,B;("((%'1P"](`"1A``.<(&\`)#"`4FW_YC`L@(`R+?_FQ
XMLD!ETCM\``'_Y&!0<``P+?_DY8`@;("(T<`B4"]``"0O20`H($EA``-@(&\`/
XM*#"`("\`)"!L@(C1P#`L@(#`_``#(E#3P%>)+TD`)"!)80`#."!O`"0P@%)MS
XM_^0P+("",BW_Y+)`9:1!^O\F(@@L;(!L3J[\3#M\``'_Y&```N)P`#`M_^0O.
XM`$AZ_J9.NA8D4$]P`"(\```0`"QL@'!.KO[."```#&<4+RR`#$AZ_HA.NA8`1
XM<`%.NM\$4$\[?``!_^9@``)L<``P+?_DY8`@;("(T<`D2#`M_^8B`,+\``,@1
XM4B)(T\$O00`D3>W_T1S9'-D<V7``,"W_YB)M_]0@42)(T\!T`#0`+%/=PG0`)
XM-`#1PA0I``%(@DC")@+EBY:"%!!(@DC"(@+EB=*"%"G__TB"2,(@`N>(D((4M
XM+O__2()(PM2`U('4@W``,"W_YB)M_]0@:0`$(DC3P'(`,@`L:P`$W<%R`#(`?
XMT<$2*0`!2(%(P28!Y8N6@1(02(%(P2`!Y8C0@1(I__](@4C!*T+_X"0!YXJ4B
XM@1(N__](@4C!TH+2@-*#<``P+?_F(FW_U"!I``@B2-/`=``T`"QK``C=PG0`(
XM-`#1PA`I``%(@$C`)`#EBI2`$!!(@$C`)@#EB]:`$"G__TB`2,`K0?_<(@#GK
XMB9*`$"[__TB`2,#0@="#T((B+?_@Z($N`2(M_]SH@2H!*T#_V.B`*`!P`!`M@
XM_]$B`-*'+`%R`$8!O(%O#'0`%`"4AQM"_]%@!B`&&T#_T7``$"W_TB0`U(4N9
XM`KZ!;PQT`!0`E(4;0O_28`8@!QM`_])P`!`M_],D`-2$+@*^@6\,<@`2`)*$#
XM&T'_TV`&(`<;0/_3(%(O2``H0>W_T6$``/H@;P`H(B\`)-'!,(!P`!`M_]$B?
XM`'1XU(+"@G8`%@"6@2X#<``0+?_2(@#"@G8`%@"6@2P#<``0+?_3(@#"@G0`I
XM%`"4@2H"<`*^@&\*(@?EB9*'Y($N`;R`;PHB!N6)DH;D@2P!NH!O"B(%Y8F21
XMA>2!*@$@4W``,"W_YM'`(@<0@2!K``1R`#(`T<$B!A"!(&L`"'(`,@#1P2(%S
XM$(%2;?_F<``P+("`4X!R`#(M_^:R@&T`_80@;?_4*TO_U"9(0?K[ZB((+&R`C
XM;$ZN_$Q2;?_D,"R`@C(M_^2R0&4`_11P`#`LOI0O`$AZ^\9.NA,V3.U,_/^D?
XM3EU.=4CG(1`F2'``$"L``NB`<@`2*P`!='C4@L*"=``4$^F"`H(```\`A(&$I
XM@"X"<``P!T'L#\Q*,`@`9@Y![`_,$;P``0@`4FR^E"`'3-\(A$YU``!.5?_06
XM2.<_,D'Z!-XB""QL@&Q.KOQ,,"R`@#(L@()^`#]``"H_00`H8``$:`@'``!G\
XM#'``,"R`@"(`4X%@`G(`.T'_Y@@'``%G#'``,"R`@B0`4X)@`G0`POP``W``4
XM,`+E@"!L@(C1P")0T\%![?_;$-D0V1#9<``P+("`(BR`"$ZZ%5)R9$ZZ%6PLA
XM`'``,"R`@B(L@`A.NA4\<F1.NA56*`!P`#M`_^([0/_D8```E$)M_^9^`&!20
XM,"W_YB(`POP``W0`-"W_Y.6"(&R`B-'"(E#3P29)$BW_VQ03M`%F&!(M_]P4!
XM*P`!M`%F#!(M_]T4*P`"M`%G#E*'OH9O"'(!.T'_XF`04FW_YC`L@(`R+?_FQ
XMLD!EHG``(CP``!``+&R`<$ZN_LX(```,9Q(B+(`,+&R`;$ZN_$QP`4ZZVJ92A
XM;?_D,"R`@C(M_^2R0&0(2FW_XF<`_UQP`#`M_^13@$)M_^(R+(""4T$O0``D"
XM.T'_Y&```)1";?_F?@!@4C`M_^8B`,+\``-T`#0M_^3E@B!L@(C1PB)0T\$FN
XM21(M_]L4$[0!9A@2+?_<%"L``;0!9@P2+?_=%"L``K0!9PY2A[Z&;PAR`3M!&
XM_^)@$%)M_^8P+("`,BW_YK)`9:)P`"(\```0`"QL@'!.KO[."```#&<2(BR`7
XM#"QL@&Q.KOQ,<`%.NMGB4VW_Y`QM``#_Y&,(2FW_XF<`_V!P`#`M_^20KP`DC
XM*@!4A7``.T#_XCM`_^9@``"20FW_Y'X`8%`P+?_FP/P``W(`,BW_Y.6!(&R`(
XMB-'!(E#3P"9)$"W_VQ(3L@!F&!`M_]P2*P`!L@!F#!`M_]T2*P`"L@!G#E*',
XMOH1O"'`!.T#_XF`04FW_Y#`L@((R+?_DLD!EI'``(CP``!``+&R`<$ZN_LX(I
XM```,9Q(B+(`,+&R`;$ZN_$QP`4ZZV292;?_F,"R`@#(M_^:R0&0(2FW_XF<``
XM_UYP`#`M_^8L`%.&0FW_XC`L@(!30#M`_^9@``"20FW_Y'X`8%`P+?_FP/P`C
XM`W(`,BW_Y.6!(&R`B-'!(E#3P"9)$"W_VQ(3L@!F&!`M_]P2*P`!L@!F#!`M:
XM_]T2*P`"L@!G#E*'OH1O"'`!.T#_XF`04FW_Y#`L@((R+?_DLD!EI'``(CP`<
XM`!``+&R`<$ZN_LX(```,9Q(B+(`,+&R`;$ZN_$QP`4ZZV&93;?_F#&T``/_F)
XM8PA*;?_B9P#_8G``,"W_YI"&+@!4AW``,"R`@+"'9@QP`#`L@(*PA6<``-IP%
XM!;Z`;02Z@&P20?H!/B((+&R`;$ZN_$Q@``$20FW_Y"@O`"1@``":0FW_YG``6
XM,"W_Y.6`(&R`B-'`)DA@,G``,"W_YB(&TH`D`>6*E(%R`#(M_^0F!-:!Y8,@<
XM;("(T<,B4-/"($H0V1#9$-E2;?_F,"W_YB(`POP``R!3T<$D2'(`,@"RAVVVN
XM<``50``"%4```12`<``B/```$``L;(!P3J[^S@@```QG$B(L@`PL;(!L3J[\"
XM3'`!3KK7=%)M_^1P`#`M_^2PA6T`_UX@!SE`@(`@!3E`@((N+?_>4H<K1__>!
XM<`2^@&T`^Y`P+P`J,BR`@+)`9@PP+P`H-"R`@K1`9RH(`0``9P@@`5)`.4"`'
XM@'``,"R`@'(`,BR`@B\!+P!(>@!D3KH-_D_O``Q,WTS\3EU.=2XN+E)E;6]VT
XM:6YG(&)O<F1E<BX*```N+BXN+BY4;V\@;75C:"!O9B!P:6-T=7)E('=O=6QD#
XM(&)E(')E;6]V960N("!.;W0@;6]D:69I960N"@`N+BXN+BY.97<@=VED=&@@/
XM/2`E;&0L($YE=R!H96EG:'0@/2`E;&0*``!.5?_82.<_$C`L@(#B2#M`_^0(#
XM````9P12;?_D<``P+?_D+P!(>@(B3KH-2E!/0FW_[F```>IP`#`M_^XO`$AZB
XM`C).N@TP4$]X`'H`?@`^+?_NY8=@``%B.WP`!/_L(`1R`\#!(%,B2-/`<``0_
XM$>6`.T#_YG0`%"D``>6".T+_Z'8`%BD``N6#.T/_ZG8!N$-C4'8&.T/_["8$-
XMQL$@4R)(T\-R`!(I__W2@70`-`#4@3M"_^8@4R)(T\-P`!`I__[0@'(`,BW_.
XMZ-*`.T'_Z'``$"G__]"`=@`V+?_JUH`[0__J<``P+("`<@`R!%*!LH!L3%1M%
XM_^P@!,#\``,@4R)(T\!P`!`I``/0@'(`,BW_YM*`.T'_YG``$"D`!-"`=``T(
XM+?_HU(`[0O_H<``0*0`%T(!V`#8M_^K6@#M#_^H@4]'&<``P+?_L<@`R`$J!Z
XM:@)2@>*!=``T+?_FU($O0``D(`(O00`H(B\`)$ZZ#R00@'``,"W_['(`,BW_&
XMZ"0O`"C2@B]``"0@`2(O`"1.N@\"$4```7``,"W_['(`,BW_ZM*"+T``)"`!%
XM(B\`)$ZZ#N(10``"4D541"!L@(C1QR9((`7`_``#+``P+("`N$!E`/Z((%/1<
XMQG``$4```A%```$0@'``(CP``!``+&R`<$ZN_LX(```,9Q0O+(`,2'H`>DZZ3
XM"W)P`4ZZU'903T'Z`&XB""QL@&Q.KOQ,4FW_[C`L@((R+?_NLD!E`/X,0?H`L
XM4B((+&R`;$ZN_$PY;?_D@(!,WTC\3EU.=2XN+D-O;7!R97-S:6YG('=I9'1H^
XM('1O("5L9"X*+BXN+BXN3&EN92```"4U;&0```HE<P";-40`FS5$0V]M<')EF
XM<W-E9"X*`$Y5__1(YR<R2'H`_DAZ`.Q(>@#(3KH*SD_O``QZ`&```)IP`#`%`
XM+P!(>@#D3KH*ME!/?@`P+("`+`!31F`^(`=R`\#!=``T!>6"(&R`B-'"(E`@C
XM2='`)$A'[?_W+$L<VAS:'-H@!L#!T\`D21#:$-H0VA+;$ML2VU)'4T:^1F6^.
XM<``B/```$``L;(!P3J[^S@@```QG%"\L@`Q(>@!X3KH*1'`!3KK32%!/0?H`B
XM;"((+&R`;$ZN_$Q213`L@(*Z0&4`_V!(>@!H2'H`4DZZ"A9,[4SD_]A.74YUE
XM+BXN1FQI<'!I;F<@:6UA9V4@)7,N"BXN+BXN+B5S(`!H;W)I>F]N=&%L;'D`1
XM`$QI;F4``"4U;&0```HE<P";-40`FR5S1$9L:7!P960N("`@(`H`-0!V97)T1
XM:6-A;&QY``!#;VQU;6X``#<`3E7_]$CG!S)(>O_L2'K_W$AZ_X).N@F(3^\`%
XM#'H`8```I'``,`4O`$AZ_YY.N@EP4$]^`#`L@((L`%-&8$@@!<#\``-R`#('U
XMY8$@;("((DC3P211U<`B2D?M__<L2QS9'-D<V7(`,@;E@2!L@(C1P2)0T\`@)
XM2138%-@4V!+;$ML2VU)'4T:^1F6T<``B/```$``L;(!P3J[^S@@```QG%"\L[
XM@`Q(>O\H3KH(]'`!3KK1^%!/0?K_'"((+&R`;$ZN_$Q213`L@("Z0&4`_U9(1
XM>O\N2'K_`DZZ",9,[4S@_]Q.74YU``!.5?_L2.<W,GX`1^R^F&`@?`!@$"`'N
XMD(8B`$ZZ"Y@7@&@`4H9P$+R`;>I2A];\`!!P$+Z`;=I^`$?LOYA@``"8?``DM
XM2V```()Z`&!P(`4L;(`03J[_W"0\/[TO&B8\G[YVR$ZN_[)([P`#`"0@!DZNJ
XM_]PD/#_BR+0F/#E8$&).KO^R2.\``P`L(`=.KO_<)#P_TR+0)CSE8$&)3J[_>
XMLDSO``P`+$ZN_[Y,[P`,`"1.KO^^3J[_XA6`6`!2A7`0NH!MBE*&U/P`$'`0,
XMO(!M`/]Z4H?6_`$`<!"^@&T`_V1,WTSL3EU.=4Y5_^Q(YS\@+@`L`1HM``MPF
XM`!`M`!=R`!(%)`%(PNF"0>R^F")(T\+2P'(`$A%T`!0M`!-V`!8&*`-(Q.F$>
XM(DC3Q-+"=@`6$70`%"T`#W``$`<O00`<(@!(P>F!(DC3P=+"<``0$7(`$BT`R
XM%S]!`"!R`!(M`!,D`4C"Z8)R`!(M``\O0P`F)@%(P^&#0^R_F"1)U</5PC(O&
XM`"#4P7(`$A)T`!0%=@`6!R]``"H@`TC`X8#3P-/$TL)P`!`1)`!(PNF"T<+0;
XMP7``$!`B+P`JT($B+P`FT($B+P`<T(%,WP3\3EU.=0``3E7_J$CG/Q)(>@8LZ
XM3KH&WEA/<`!R`!E!SYX90<^=&4'/G$)M_^0K0/_**T#_X&``!6A*;+TL9RYP(
XM`#`L@()3@'(`,BW_Y+*`9QQP`#`!=``T`5*"+P(O`$AZ!@9.N@:.3^\`#&`2^
XM<``P+?_D+P!(>@7\3KH&>%!/<``B/```$``L;(!P3J[^S@@```QG%"\L@`Q(S
XM>@7>3KH&5'`!3KK/6%!/,#P__W(`0>P?S!#!4<C__"X!+`%@4D)M_^I@/C`MX
XM_^HB`,+\``-T`#0M_^34A^6"(&R`B-'"(E#3P7(`,A'E@4'L'\PD,!@`0>P?>
XMS%*P&`!*@F8"4H92;?_J,"R`@#(M_^JR0&6V4H=*;+TL9Q9P`#`L@()3@'(`3
XM,BW_Y+*`9P1P`F`"<`&^@&V,+P9(>@5&3KH%N%!/,#P/_W(`0>P/S!#!4<C_>
XM_"X!+`%@9$'L'\Q*L&@`9U8@!^"`<@`2`"`'Z(!T#\""=@`6`"`'P()T`!0`O
XM<``0+,^<+T``+'``$"S/G2]``#!P`!`LSYXO`"\O`#0O+P`T+P(@`2(#3KK]1
XM>D_O`!!![,_,(8!H`%*'6(8,AP``$`!ME'@!?@-@``$"?@!Z`'P`8"9![!_,C
XMT<8F2"`39Q9![,_,(C!H`$ZZ"`BPA64&*T?_W"H`4H=8A@R'```0`&W2*BW_5
XMQB`M_]PB`.")0>S/G!&!6``B`.B)=`_"@D'LSYP1@5@!P()![,^<$8!8`GX`;
XM?`!@``"&0>P?S$JP:`!G=BHM_\8@!^"`<@`2`"`'Z(!T#\""=@`6`"`'P()T=
XM`!0`<`!![,^<$#!8`"]``#1P`$'LSYP0,%@!+T``.'``0>S/G!`P6`(O`"\O.
XM`#PO+P`\+P(@`2(#3KK\BD_O`!!![,_,T<8F2+"39`PF@"`$0>P/S!&`>`!26
XMAUB&#(<``!``;0#_=%*$+@56ARM'_\9P$+B`;0#^]D?LSYQ@*B`M_\H@;,^8/
XMT<!R`!(K``)T`!0K``'I@G8`%A/A@X:"AH$P@U2M_\I6BT'LS\RWR&7.?@!@I
XM``(.&VS/G/_;&VS/G?_:&VS/GO_90FW_ZGP`8``!WG``,"W_Y-"'Y8`J`"!LI
XM@(C1Q3`M_^K`_``#*``B4-/$<``P$2(`X(%T`#0`Z()V#\2#=@`V`'`/QH!P'
XM`#`1Y8!![,_,+C`(`'``,!$O0``H<`!![`_,'T,`)"8O`"@0,#@`=@`6`2M`'
XM_]QP`!`"'T$`)A(O`"0?0@`E=``4`7(`$BW_VB]!`#1R`!(M_]DO`2\O`#@O#
XM`R\"(@/!04ZZ^U1/[P`0L(=D""X`<!`K0/_<$"\`)G(`$@`0+P`E=``4`'8`B
XM%B\`)"]#`#!V`!8M_]LO0P`T=@`6`'``$"W_V2\`+P,O+P`\+R\`/"`!(@).]
XMNOL"3^\`$+"'9`@N`'`1*T#_W'``$"\`)G(`$B\`)70`%"\`)'8`%BW_VR]`G
XM`"AP`!`M_]HO0``X<``0`B\`+R\`/"\#+P(@+P`X3KKZMD_O`!"PAV0(+@!P1
XM$BM`_]P@;("(T<4B4-/$)DDJ+?_<<!"Z@&0J(@4V@2(%Y8F2A4'LSYP;<!@`Y
XM_]M![,^<&W`8`?_:0>S/G!MP&`+_V6!$NH!F%'(`$B\`)B0!`$(`(#:"&T'_/
XMVV`L<A&Z@684<@`2+P`E)`$`0@`P-H(;0?_:8!)R`!(O`"0@`0!``!`V@!M!'
XM_]G<AU)M_^HN+?_F,"R`@#(M_^JR0&4`_AC=K?_@4H<K1__F2FR]+&<6<``P)
XM+(""4X!R`#(M_^2R@&<$<`)@`G`!OH!M`/W.2FR]+&<8<``P+(""4X!R`#(M=
XM_^2R@&<&0?H!.F`$0?H!."\(2'H!)DZZ`8)03TILO2QG%G``,"R`@E.`<@`R[
XM+?_DLH!G!'`"8`)P`7(`,BW_Y-*`.T'_Y#`L@((R+?_DLD!E`/J.<``P+("`B
XM<@`R+(""+T``("`M_^!.N@1^(CP```/H3KH$(B(O`"!.N@1L(CP```/H+T``O
XM($ZZ!%XB+P`@+T``)"`!(CP```/H3KH$2B\!+R\`*$AZ`*)(;?_.3KH!%G``Y
XM,"R`@B]``#`@+?_@(B\`,$ZZ!")(;?_.+P`O+?_@2'H`@$ZZ`,),[4C\_XA.B
XM74YU+BXN0V]N=F5R=&EN9R!T;R!32$%-(&9O<FUA="X*+BXN+BXN3&EN90``2
XM<R`E-6QD+24U;&0`("4U;&0`"B5S`"P@)31L9"!U;FEQ=64@8V]L;W5R<P";N
XM)7-$FTL``#,T```R-P``)6QD+B4P,VQD`)LT1%1O=&%L(&-O;&]U<B!E<G)OP
XM<B`]("5L9"P@365A;B!P97(@;&EN92`]("5L9"P@4&5R('!I>&5L(#T@)7,N*
XM"@````!.50``2.<@`B(M``A![0`,)`@L;(!L3J[\1DZN_\0B`$ZN_IA,WT`$?
XM3EU.=4Y5``!(YP`R)FT`""\+(&T`#$/M`!!%^@`4+'@`!$ZN_?8F7TS?3`!.4
XM74YU+P<N`$'K``$6AR9(+A].=25S('8E<PI#;W!Y<FEG:'0@J2`Q.3DP(&)Y,
XM()LT.S,S.S0R;4-H<FES=&]P:&5R($$N(%=I8VAU<F&;,#LS,SLT,&T@*)LSY
XM,FUC87>;,S-M0)LS,FUM:7)O8RYC:&DN:6PN=7.;,S-M*0H*57-A9V4Z("`@$
XM("`E<R`\FS,Q;4=)1F9I;&5S*',IFS,R;3X@6YLS,VU43R";,S%M1&ER96-TK
XM;W)Y('P@1FEL99LS,FU=(%N;,S-M04Q,FS,R;5T*("`@("`@("`@("`@("`@6
XM("`@("`@(%N;,S-M3D]"3U)$15(@FS,R;3R;,S%M3&EN92!4:')E<VB;,S)M\
XM/ET@6YLS,VU80T]-4)LS,FU=(%N;,S-M1$E42$52FS,R;5T*("`@("`@("`@R
XM("`@("`@("`@("`@(%N;,S-M6$9,25";,S)M72!;FS,S;5E&3$E0FS,R;5T@-
XM6YLS,VU$1450FS,R;5T@6YLS,VU"549325I%()LS,FT\FS,Q;5-I>F4@:6X@9
XM2T)Y=&5SFS,R;3Y="ILS,6T``````@```'0R+C$Q-B`H,34@1F5B(#DQ*0``,
XM`""(6)!"J``$(4@`"$YU```,``!A;0H,``!Z;@0$```@3G4``$Y5__Q(YP,PU
XM)D@D22X`2H=G,DH39RY*$F<J<``0&TZZ_\QR`!(:+T``$"`!3KK_OB(O`!"2V
XM@"P!2H9G!"`&8!I3AV#*2H=G$$H39P1P`6`*2A)G!'#_8`)P`$S?#,!.74YUD
XM``!(YP,P)D@D22X`2H=G($H39QQ*$F<8<``0&W(`$AJ0@2P`2H9G!"`&8!I3B
XMAV#<2H=G$$H39P1P`6`*2A)G!'#_8`)P`$S?#,!.=0``(`A*&&;\4X@0V6;\"
XM3G4``$CG,``D`"8!2$)(0\3!QL#`P=1#2$)"0M""3-\`#$YU2H!J```>1(!*?
XM@6H```Q$@6$``"!$@4YU80``&$2`1(%.=4J!:@``#$2!80``!D2`3G4O`DA!X
XM-`%F```B2$!(04A"-`!G```&A,$P`DA`-`"$P3`"2$(R`B0?3G4O`W80#$$`L
XM@&0```;AF5%##$$(`&0```;IF5E##$$@`&0```;EF55#2D%K```&XYE30S0`$
XMYJA(0D)"YJI(0X#!-@`P`C0#2$'$P9""9```"%-#T(%D_G(`,@-(0^>X2$#!&
XM028?)!].=0```^P````'````````&HP``!J&```"6@```A@```)B```"!@``J
XM`0(````!`````0```'P````````#\@```^H````@````````"``````````#.
XM.@``````````````````#\H`"0`!__\````)``X````<```/U@````#__P``Q
XM`!T`!````!P```_H````)/__````!``$````'```#_8``````0@(!`(```0"<
XM`0``````!````%0```!(````0````"P```/L````!0````````!8````1```=
X>`#`````<````#`````````/R```#Z@````````/RO
X``
Xend
Xsize 17040
END_OF_FILE
if test 23896 -ne `wc -c <'GIFMachine.uu'`; then
    echo shar: \"'GIFMachine.uu'\" unpacked with wrong size!
fi
# end of 'GIFMachine.uu'
fi
if test -f 'Sources/main.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Sources/main.c'\"
else
echo shar: Extracting \"'Sources/main.c'\" \(10893 characters\)
sed "s/^X//" >'Sources/main.c' <<'END_OF_FILE'
X/* Copyright 1990 by Christopher A. Wichura.
X   See file GIFMachine.doc for full description of rights.
X*/
X
X#include "GIFMachine.h"
X#include <dos/rdargs.h>
X#include <dos/dosasl.h>
X#include <dos/stdio.h>
X#include <workbench/startup.h>
X
Xstruct GIFdescriptor gdesc;
X
Xstruct RGB **BitPlane;
Xstruct RGB GlobalColourTable[256];
X
Xextern UWORD *SHAMmem;
X
Xextern BYTE *PlaneBuf;
X
Xextern BOOL Laced;
X
Xextern UBYTE *Planes[24];
X
XULONG ImageNumber;
X
Xextern struct MinList CommentList;
X
X/* indicates which memory list to allocate from */
Xextern UWORD CurrentMem;
X
X/* the current GIF file handle */
XBPTR GIFfh = NULL;
X
X/* here we have some defines relating to our GADS call */
X#define ESC "\x9B"
X#define GIFMACH ESC "33;42mGIFMachine" ESC "32;40m"
X
X#define ARG_TEMPLATE "GIFfiles/M/A,TO/K,ALL/S,NOBORDER/K/N,XCOMP/S,DITHER/S,XFLIP/s,YFLIP/s,DEEP/S,BUFSIZE/K/N"
X#define ARG_FILES  0
X#define ARG_TO     1
X#define ARG_ALL    2
X#define ARG_NOBORD 3
X#define ARG_XCOMP  4
X#define ARG_DITHER 5
X#define ARG_FLIPX  6
X#define ARG_FLIPY  7
X#define ARG_DEEP   8
X#define ARG_BUFSIZ 9
X#define ARG_sizeof 10
X
X/* we will make the argument array global so that other modules can get at
X   the ARG_TO, ARG_ALL and ARG_XCOMP fields easily */
Xstruct RDArgs *ArgsPtr;
Xchar *ArgArray[ARG_sizeof];
XBOOL ArgToIsDir;
X
X/* size of the read buffered i/o space */
Xstatic ULONG BufSize = 2048;	/* default size is 2k */
X
Xint NoBorderLineThresh = 0;
X
X/* some mem pointers used when we do dithering */
XBYTE *CurrentLineErr[3];
XBYTE *LastLineErr[3];
X
X/* this flag says if we scaled the image */
XBOOL DidXComp;
X
X/* we print this when the user hits the break key */
Xchar *AbortMsg = "*** User Interruption!\n";
X
X/* storage for our library bases */
Xstruct Library *MathIeeeDoubBasBase = NULL;
Xstruct Library *IFFParseBase = NULL;
X
X/* storage for our anchor when looking for pattern matches */
Xstruct Anchor {
X		struct AnchorPath APath;
X		char              Path[256];
X	} *anchor = NULL;
X
X/* here we have our main routine */
Xint __regargs main(char *cmdptr, int cmdlen, struct WBStartup *WBMsg)
X{
X	register char **FilesPtr;
X	struct RDArgs MyArgs;
X	extern UBYTE __far arg_help[];
X	extern UBYTE __far VersionID[];
X
X	InitMemory();
X
X	if (WBMsg) {
X		WarnMustUseCLI();
X		MyExit(5);
X	}
X
X	if (!(MathIeeeDoubBasBase = OpenLibrary("mathieeedoubbas.library", 0))) {
X		MyPrintf("Unable to access %s!\n", "mathieeedoubbas.library");
X		MyExit(5);
X	}
X
X	if (!(IFFParseBase = OpenLibrary("iffparse.library", 0))) {
X		MyPrintf("Unable to access %s!\n", "iffparse.library");
X		MyExit(5);
X	}
X
X	memset ((char *)&MyArgs, 0, sizeof(struct RDArgs));
X
X	if (!(MyArgs.RDA_ExtHelp = (UBYTE *)MyAlloc(strlen(arg_help) + (2 * strlen(GIFMACH)) + strlen(VersionID) + 1))) {
X		PutStr("Out of memory!\n");
X		MyExit(5);
X	}
X
X	MySPrintf((char *)MyArgs.RDA_ExtHelp, arg_help, GIFMACH, VersionID, GIFMACH);
X
X	if (!(ArgsPtr = ReadArgs(ARG_TEMPLATE, (LONG *)&ArgArray, &MyArgs))) {
X		PrintFault(IoErr(), NULL);
X		MyExit(5);
X	}
X
X	MyFree((char *)MyArgs.RDA_ExtHelp);
X
X	if (ArgArray[ARG_TO])
X		ArgToIsDir = IsDir(ArgArray[ARG_TO]);
X
X	if (ArgArray[ARG_NOBORD]) {
X		NoBorderLineThresh = *((LONG *)ArgArray[ARG_NOBORD]);
X		if (NoBorderLineThresh < 0 || NoBorderLineThresh > 100) {
X			PutStr("Invalid NOBORDER line threshhold specified.\n");
X			MyExit(3);
X		}
X	}
X
X	if (ArgArray[ARG_BUFSIZ])
X		BufSize = *((LONG *)ArgArray[ARG_BUFSIZ]) * 1024;
X
X	if (!(FilesPtr = (char **)ArgArray[ARG_FILES])) {
X		PutStr("No GIF files selected.\n");
X		MyExit(3);
X	}
X
X	InitDiff();	/* one time init for the RGBdiff function */
X
X	while (*FilesPtr)
X		DoPattern(*FilesPtr++);
X
X	MyExit(0);
X}
X
Xvoid MyExit(ULONG result)
X{
X	if (GIFfh)
X		Close(GIFfh);
X
X	if (IFFParseBase)
X		CloseLibrary(IFFParseBase);
X
X	if (MathIeeeDoubBasBase)
X		CloseLibrary(MathIeeeDoubBasBase);
X
X	if (anchor)
X		MatchEnd(&anchor->APath);
X
X	if (ArgsPtr)
X		FreeArgs(ArgsPtr);
X
X	FreeAll(1);
X	FreeAll(0);
X
X	XCEXIT(result);
X}
X
X
X/* this will walk through a pattern doing conversions */
Xvoid DoPattern(char *pat)
X{
X	register int error;
X
X	if (!(anchor = (struct Anchor *)MyAlloc(sizeof(struct Anchor)))) {
X		PutStr("Out of memory!\n");
X		MyExit(10);
X	}
X
X	anchor->APath.ap_Strlen = sizeof(anchor->Path);
X	anchor->APath.ap_Flags = APF_DOWILD;
X	anchor->APath.ap_BreakBits = SIGBREAKF_CTRL_C;
X
X	error = MatchFirst(pat, &anchor->APath);
X
X	while (!error) {
X		if (anchor->APath.ap_Info.fib_DirEntryType > 0) {
X			if (ArgArray[ARG_ALL]) {
X				if (!(anchor->APath.ap_Flags & APF_DIDDIR))
X					anchor->APath.ap_Flags |= APF_DODIR;
X				anchor->APath.ap_Flags &= ~APF_DIDDIR;
X			}
X		} else
X			Convert(anchor->APath.ap_Buf);
X
X		error = MatchNext(&anchor->APath);
X	}
X
X	MatchEnd(&anchor->APath);
X	MyFree((char *)anchor);
X	anchor = NULL;
X
X	switch(error) {
X		case ERROR_BREAK:
X			PutStr(AbortMsg);
X			MyExit(ABORTEXITVAL);
X			break;
X
X		case ERROR_OBJECT_NOT_FOUND:
X			PutStr("File not found.\n");
X			break;
X
X		case ERROR_BUFFER_OVERFLOW:
X			PutStr("Path too long!\n");
X			break;
X
X		case ERROR_NO_MORE_ENTRIES:	/* normal termination */
X			break;
X
X		default:
X			MyPrintf("I/O Error #%ld!\n", error);
X			break;
X	}
X}
X
X/* here we have the routine that gets ready to do the conversion */
Xvoid Convert(char *name)
X{
X	register int index;
X	char *basename;
X	char *ptr;
X	char sig[7];
X	int size;
X	int error;
X	int colours;
X	LONG cmdcode;
X	
X	struct DateStamp StartTime, EndTime;
X
X	CurrentMem++;
X
X	if (!(GIFfh = Open(name, MODE_OLDFILE))) {
X		MyPrintf("Error #%ld trying to open %s...\n", IoErr(), name);
X		goto LeaveConvert;
X	}
X
X	SetVBuf(GIFfh, BUF_FULL, BufSize);
X
X	sig[6] = NULL;
X
X	if (FRead(GIFfh, sig, 1, 6) != 6 || strncmp("GIF", sig, 3)) {
X		MyPrintf("%s is not a GIF file...\n", name);
X		goto LeaveConvert;
X	}
X
X	MyPrintf("Converting %s ", name);
X
X	basename = FilePart(name);
X	ptr = basename + strlen(basename) - 4;
X
X	if (!strnicmp(".gif", ptr, 4))
X		*ptr = NULL;
X
X	size = strlen(basename) + 6;
X
X	if (ArgArray[ARG_TO]) {
X		if (ArgToIsDir)
X			size += strlen(ArgArray[ARG_TO]) + 1;
X		else
X			size = strlen(ArgArray[ARG_TO]) + 1;
X	}
X
X	if (!(ptr = MyAlloc(size))) {
X		PutStr("... Out of memory!\n");
X		goto LeaveConvert;
X	}
X
X	if (ArgArray[ARG_TO]) {
X		strcpy(ptr, ArgArray[ARG_TO]);
X
X		if (ArgToIsDir) {
X			AddPart(ptr, basename, size);
X			strcat(ptr, (ArgArray[ARG_DEEP] ? ".deep" : ".sham"));
X		}
X	} else {
X		strcpy(ptr, basename);
X		strcat(ptr, (ArgArray[ARG_DEEP] ? ".deep" : ".sham"));
X	}
X
X	MyPrintf("to %s...\n", ptr);
X
X	DateStamp(&StartTime);
X
X	if (FRead(GIFfh, (char *)&gdesc, 1, 7) != 7) {
X		PutStr("Error reading screen descriptor.\n");
X		goto LeaveConvert;
X	}
X
X	FlipWord(&gdesc.gd_Width);
X	FlipWord(&gdesc.gd_Height);
X
X	MyPrintf("Signature = \"%s\", Width = %ld, Height = %ld\n",
X		sig, gdesc.gd_Width, gdesc.gd_Height);
X
X	NewList((struct List *)&CommentList);
X
X	DidXComp = 0;
X	colours = 1L << ((gdesc.gd_ColInfo & 7) + 1);
X
X	if (!(gdesc.gd_ColInfo & 1L << 7)) {
X		PutStr("No global colour map supplied, using internal.\n");
X
X		for (index = 0; index < colours; index++) {
X			GlobalColourTable[index].rgb_Red   =
X			GlobalColourTable[index].rgb_Green =
X			GlobalColourTable[index].rgb_Blue  = index;
X		}
X	} else {
X		MyPrintf("Global colour map contains %ld entries.\n", colours);
X
X		for (index = 0; index < colours; index++) {
X			if (FRead(GIFfh, &GlobalColourTable[index], 1, 3) != 3) {
X				MyPrintf("Error reading global colour #%ld.\n",
X					index);
X				goto LeaveConvert;
X			}
X		}
X	}
X
X	size = ((gdesc.gd_Width + 7) / 8) + 1;
X	size += (size + 127) >> 7;
X
X	if (!(BitPlane = (struct RGB **)MyAlloc(gdesc.gd_Height * sizeof(struct RGB *))) ||
X	    !(SHAMmem  = (UWORD *)MyAlloc(gdesc.gd_Height * 16 * sizeof(UWORD))) ||
X	    !(PlaneBuf = (BYTE *)MyAlloc(size))) {
X		PutStr("Out of memory trying to allocate picture.\n");
X		goto LeaveConvert;
X	}
X
X	size = (gdesc.gd_Width + 1) * sizeof(struct RGB);
X
X	for (index = 0; index < gdesc.gd_Height; index++)
X		if (!(BitPlane[index] = (struct RGB *)MyAlloc(size))) {
X			PutStr("Out of memory trying to allocate picture.\n");
X			goto LeaveConvert;
X		}
X
X	size = ((gdesc.gd_Width + 7) / 8) + 1;
X	for (index = 0; index < (ArgArray[ARG_DEEP] ? 24 : 6); index++)
X		if (!(Planes[index] = (UBYTE *)MyAlloc(size))) {
X			PutStr("Out of memory trying to allocate picture.\n");
X			goto LeaveConvert;
X		}
X
X	if (ArgArray[ARG_DITHER]) {
X		size = gdesc.gd_Width * sizeof(BYTE);
X
X		for (index = 0; index < 3; index++)
X			if (!(CurrentLineErr[index] = (BYTE *)MyAlloc(size)) ||
X			    !(LastLineErr[index] = (BYTE *)MyAlloc(size))) {
X				PutStr("Out of memory trying to allocate picture.\n");
X				goto LeaveConvert;
X			}
X	}
X
X	ImageNumber = 1;
X
X	/* at this point we start looking for images, extensions or the gif
X	   terminator.  we call the appropriate routine as we find each. */
X
X	for (error = FALSE; error == FALSE;) {
X		if ((cmdcode = FGetC(GIFfh)) == -1) {
X			PutStr("...I/O error reading GIF file.\n");
X			goto LeaveConvert;
X		}
X
X		switch(cmdcode) {
X			case GIF_IMAGE:
X				error = DoImage(GIFfh);
X				break;
X
X			case GIF_EXTENSION:
X				error = DoExtension(GIFfh);
X				break;
X
X			case GIF_TERMINATOR:
X				if (ArgArray[ARG_NOBORD])
X					StripBorder();
X
X				if (ArgArray[ARG_FLIPX])
X					DoXFlip();
X
X				if (ArgArray[ARG_FLIPY])
X					DoYFlip();
X
X				if (ArgArray[ARG_XCOMP]) {
X					DoXComp();
X					DidXComp = 1;
X				}
X
X				if (gdesc.gd_Height > 200 && DidXComp)
X					Laced = TRUE;
X				else
X					Laced = FALSE;
X
X				if (!ArgArray[ARG_DEEP]) {
X					if (ArgArray[ARG_DITHER])
X						DitherTo12();
X					else
X						ReduceTo12();
X
X					GIFtoSHAM();
X				}
X
X				error = WriteIFF(ptr, (BOOL)ArgArray[ARG_DEEP]);
X				break;
X
X			default:
X				MyPrintf("...Unknown directive #%ld encountered.\n",
X					cmdcode);
X				error = TRUE;
X		}
X	}
X
X	DateStamp(&EndTime);
X
X	{
X		register ULONG Hours;
X		register ULONG Minutes;
X		register ULONG Seconds;
X		register ULONG Seconds2;
X	
X		Seconds = (EndTime.ds_Days * 86400) + (EndTime.ds_Minute * 60) + (EndTime.ds_Tick / TICKS_PER_SECOND);
X		Seconds2 = (StartTime.ds_Days * 86400) + (StartTime.ds_Minute * 60) + (StartTime.ds_Tick / TICKS_PER_SECOND);
X
X		Seconds -= Seconds2;
X
X		Hours = Seconds / 3600;
X		Seconds -= Hours * 3600;
X
X		Minutes = Seconds / 60;
X		Seconds -= Minutes * 60;
X
X		MyPrintf("...Conversion time was %ld hour%s, %ld minute%s and %ld second%s.\n",
X			Hours, (Hours != 1 ? "s" : ""),
X			Minutes, (Minutes != 1 ? "s" : ""),
X			Seconds, (Seconds != 1 ? "s" : ""));
X	}
X
XLeaveConvert:
X	FreeAll(CurrentMem--);
X
X	if (GIFfh) {
X		Close(GIFfh);
X		GIFfh = NULL;
X	}
X}
X
X/* this will check to see if we have a directory or not */
XBOOL IsDir(char *name)
X{
X	register BPTR lock;
X	register BOOL result = FALSE;
X
X	struct FileInfoBlock __aligned fib;
X
X	if (lock = Lock(name, ACCESS_READ)) {
X		if (Examine(lock, &fib)) {
X			if (fib.fib_DirEntryType > 0)
X				result = TRUE;
X		}
X		UnLock(lock);
X	}
X
X	return result;
X}
X
X/* this will convert a word from LSB/MSB to MSB/LSB */
Xvoid FlipWord(UWORD *word)
X{
X	register UBYTE swap1;
X	register UBYTE swap2;
X
X	swap1 = *word & 0xFF;
X	swap2 = (*word & 0xFF00) >> 8;
X	*word = swap1 << 8 | swap2;
X}
END_OF_FILE
if test 10893 -ne `wc -c <'Sources/main.c'`; then
    echo shar: \"'Sources/main.c'\" unpacked with wrong size!
fi
# end of 'Sources/main.c'
fi
echo shar: End of archive 2 \(of 2\).
cp /dev/null ark2isdone
MISSING=""
for I in 1 2 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked both archives.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
Mail comments to the moderator at <amiga-request@uunet.uu.net>.
Post requests for sources, and general discussion to comp.sys.amiga.misc.