[comp.sys.atari.st] uuencodeded uudecode program is here.

Peck@RADC-MULTICS.ARPA (Rodney) (12/08/86)

   Here thanks to Paul Smee in England is a uuencoded uudecoder.  I've 
Tried it, and it works for everything but uniterm (I think uniterm is too
big).  Use the basic uudecode to decode this then use UUDECODE.TTP to 
decode everything from now on.
  Also included is the source code in (MetaComCo Lattice) C source form.
 
Good luck,
    Rodney Peck
    Rome Air Development Center (Even still another multics)
    Rome, NY

  PS: DISCLAIMER:  Anything I post on this or anyother message do not
represent the views or opinions of my employer as I do not have the power to
express opinions for that entity.

 Good luck,
    Paul Smee, Sr Sys Prog (Formerly of HIS-CISL)
    Avon Universities Computer Center (Yet Another Multics)
    Bristol, England

NOTE: Paul has replaced all the spaces (32dec) with grave accent marks (`)
   If you recall the definition of the uuencode process, the ` is not a valid
   character in a uuencoded file. SO.... do a global replace with `'s to spaces.
     -rodney
 -------------------


# This is a shell archive.
# Remove everything above and including the cut line.
# Then run the rest of the file through sh.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar:   Shell Archiver
# Run the following text with /bin/sh to create:
#         UUDECODE.UUE
#         UUDECODE.C
#
# This archive created:  Dec 03, 1986 -- 20:24
# By: Paul E, Smee  (using that wonderful machine :-)
#
echo shar: extracting UUDECODE.UUE
sed 's/^XX//' << \SHAR_EOF > UUDECODE.UUE
XXbegin 777 UUDECODE.TTP
XXM8!H``$/>`````````````````````````````"9O``0CRP``/+Y!ZP"`0H(4
XXM&"A(4T(D2`P0``IG``$`#!``(&<```H,$``)9@``#%*(4T)JXF```.8,$``\
XXM9P``K`P0`#YG``":#!``/6<*#!``)6=*8```QE*(<`!R`!(0#$$`.6X:!$$`
XXM,&T4XX`O`.6`T)_0@5*(4T)K``":8-Q*@&<``)(,@```!`!N!B`\```$`"/`
XXM```_RF``_WI2B'``<@`2$`Q!`#EN&`1!`#!M$N.`+P#E@-"?T(%2B%-":U1@
XXMWDJ`9TX,@```"`!N!B`\```(`"/````^GF``_SA#^0``/(I@```(0_D``#QJ
XXM<A]2B%-":R0,$``@9P#_&`P0``EG`/\0#!``"F<`_P@2V%')_^!P\6```)Q*
XXM0FL&%-A1RO_\0AHB*P`8TJL`'"`/D+D``#_*D($D.0``/IYF"B0`!((``!``
XXM8!)N`M2`#((```@`;@8D/```"``F`9:+UH+6N0``/\HO`R\+0F<_/`!*3D%*
XXM@&<&,#S_V6`V(`(N0=_"W_D``#_*(\$``#RJ(\$``#RN(\```#RR3KD``!UT
XXM+PQ+^0``O&(L34ZY```&JG``/P`_/`!,3D%@_"`O``1@\$Y6_RX,;@`!``IO
XXM)$AY```\T"!N``PO*``$80`$1E"/(\```#_.6*X`#%-N``I@"B/\``!`6@``
XXM/\X,;@`!``IG($AY```\TDAY``!`BDZY```)<E"/<`(O`$ZY```*^EB/+SD`
XXM`#_.<%`O`$AN_RYA``-$3^\`#$J`9B!(>0``/.I(>0``0(I.N0``"7)0CW`#
XXM+P!.N0``"OI8CW`&+P!(>0``//E(;O\N3KD``#NR3^\`#$J`9JI.<4AN_WY(
XXM;O_^2'D``#T`2&[_+DZY```E4D_O`!!(>0``/0Q(;O]^80`#@%"/(\```#_2
XXM+P`O.0``/\YA:E"/+SD``#_23KD```W`6(\O.0``/\YP4"\`2&[_+F$``J!/
XXM[P`,2H!G''`&+P!(>0``/0](;O\N3KD``#NR3^\`#$J`9R!(>0``/19(>0``
XXM0(I.N0``"7)0CW`%+P!.N0``"OI8CTY>3G5.5O^J+RX`"'!0+P!(;O^P80`"
XXM1$_O``Q*@&862'D``#TC2'D``$"*3KD```ER4(]@2!`N_[!(@$C`!(`````@
XXM`H`````_/4#_JDI`;RQ![O^Q+4C_K#`N_ZI(P$J`;Z0O`"\N``PO+O^L81)/
XXM[P`,6*[_K%=N_ZI@W$Y>3G5.5O_R(&X`"!`02(!(P"]````"@````$#C@"(O
XXM```"@0```!_E@8"!$B@``4B!2,$O00`$`H$```!`ZH&`@2(O``0"@0```!#H
XXM@8"!(B\`!`*!````#^F!%"@``DB"2,(O0@`$`H(```!`YH*"@B0O``0"@@``
XXM`!SD@H*")"\`!`*"`````^V"%B@``TB#2,,O0P`$`H,```!`XH.$@R8O``0"
XXM@P```!^$@SU`__X]0?_\/4+_^@QN``$`$FU6#$``#68:<`TO`$AY```]+R\N
XXM``Q.N0``"7)/[P`,8#8@;@`,("@`"%.`(4``"$J`:Q`B4%*0,"[__A*`2(!(
XXMP&`4,"[__DC`+RX`#"\`3KD```^\4(\,;@`"`!)M6`QN``W__&8:<`TO`$AY
XXM```],B\N``Q.N0``"7)/[P`,8#8@;@`,("@`"%.`(4``"$J`:Q`B4%*0,"[_
XXM_!*`2(!(P&`4,"[__$C`+RX`#"\`3KD```^\4(\,;@`#`!)M6`QN``W_^F8:
XXM<`TO`$AY```]-2\N``Q.N0``"7)/[P`,8#8@;@`,("@`"%.`(4``"$J`:Q`B
XXM4%*0,"[_^A*`2(!(P&`4,"[_^DC`+RX`#"\`3KD```^\4(].7DYU3E;_^$CG
XXM`0PJ;@`0*&X`"%-N``Y*;@`.;U0@+0`$4X`K0``$2H!K"B!54I5P`!`08`HO
XXM#4ZY```.FEB/+@`,A_____]G*"!'T?P``#Z_$!`"``!72@!G""`'&(!2C&"P
XXM4FX`#@R'````"F:D3G$,A_____]F$+GN``AF"G``3-\P@$Y>3G53;@`.2FX`
XXM#F\(&+P`(%*,8.Y"%%.,&+P`"B`N``A,WS"`3EY.=4Y6__PO+@`,+RX`"$ZY
XXM```+8E"/+4#__$J`9A`O+@`(2'D``#TX81!0CV`(("[__$Y>3G5.7DYU3E8`
XXM`"\Y```\S$AY```]3$AY``!`BDZY```)<D_O``PO+@`,+RX`"$AY``!`BDZY
XXM```)<D_O``QP`2\`3KD```KZ6(].7DYU3E;_[D*Y```_VG`!(\```#_6#+D`
XXM```@```_UFP``(@@;@`($!!(@$C`4H`B0-/\```^OA`1"````V<&4JX`"&#>
XXM(&X`"!`02@!G6B`Y```_UN6`4KD``#_6($#1_```/]H@K@`((&X`"!`02(!(
XXMP$J`9QA2@")`T_P``#Z^$!$(```#9@92K@`(8-H@;@`($!!R`!"!4JX`"!U`
XXM__]*`&8`_W!.<4AY``!`6DAY```]4DAY```\:DZY```+M$_O``P2.0``/(HM
XXM0/_V#`$`/F<B2'D``$!R2'D``#U42'D``#R*3KD```NT3^\`#"U`__)@($AY
XXM``!`<DAY```]5DAY```\BTZY```+M$_O``PM0/_R2'D``$"*2'D``#U92'D`
XXM`#U83KD```NT3^\`#"U`_^Y*@&8,<`$O`$ZY```=!EB/2J[_]F8>+R[_[DAY
XXM```]6TZY```)&%"/<`$O`$ZY```*^EB/+SD``#ZF3KD``!-B6(\O`"\N__9.
XXMN0``"JI0CR!N__80*``0`@``]Q%``!!*KO_R9AXO+O_N2'D``#UR3KD```D8
XXM4(]P`2\`3KD```KZ6(](>0``/]HO.0``/]9.N0```<A0CT*G3KD```KZ6(].
XXM7DYU``!.5O_\(&X`"!`02(!(P%*N``@M0/_\2H!G.B(Y``!`>E.!(\$``$!Z
XXM2H%K%"!Y``!`<E*Y``!`<A"`2(!(P&#$2'D``$!R+R[__$ZY```/O%"/8+`@
XXM.0``0'I3@"/```!`>DJ`:Q8@>0``0')2N0``0')P"A"`2(!(P&`22'D``$!R
XXM<`HO`$ZY```/O%"/3EY.=4Y6__A"KO_X(&X`"!`02(!(P%*N``@M0/_\2H!G
XXM-"!N``PB*``(4X$A00`(2H%K#")04I`2@$B`2,!@$"\N``PO+O_\3KD```^\
XXM4(\M0/_X8+8@+O_X3EY.=4Y6_NQ(YP`@0>X`$"U(_^P@;@`,$!!*`&<``19(
XXM@$C`4H@M0/_X+4@`#`R`````)68``,80$`P``"5F/$B`2,!2K@`,(&X`""(H
XXM``A3@2%!``@M0/_X2H%K#")04I`2@$B`2,!@JB\N``@O+O_X3KD```^\4(]@
XXMF$AN__1(;O_L2&[^["\N``Q.N0``+2)/[P`0+4#_\$J`9P#_=D*N__PM0``,
XXM("[__+"N__1L`/]B(&X`""(H``A3@2%!``A*@6L4(E!2D$7N_NS5P!`2$H!(
XXM@$C`8!Q![O[LT>[__!`02(!(P"\N``@O`$ZY```/O%"/4J[__&"L(&X`""`H
XXM``A3@"%```A*@&L2(E!2D"`N__@2@$B`2,!@`/[V+RX`""\N__A.N0``#[Q0
XXMCV``_N),WP0`3EY.=4Y6```O+@`(3KD```XN6(]*K@`,9@9P`$Y>3G4@;@`(
XXM$"@`$`(``/L10``0````"!%``!`@;@`,(FX`""*((T@`#"-Y```^I@`2<`!.
XXM7DYU3E;__$*N__P@+O_\#(`````4;"!R&$ZY```[;B!`T?P``$!:+PA.N0``
XXM#<!8CU*N__Q@U$*N__P@+O_\L+D``#_";!`O`$ZY```<A%B/4J[__&#D+RX`
XXM#"\N``A.N0``'090CTY>3G5.5O_X+7P``$!:__P@;O_\L?P``$(Z9!(0*``0
XXM2@!G"@:N````&/_\8.(@;O_\L?P``$(Z9@9P`$Y>3G4O+O_\+RX`#"\N``AA
XXM"$_O``Q.7DYU3E;_ZB!N`!!**``09P@O"&$``?I8CRUY```_QO_T+6X`#/_P
XXM(&[_\!`H``%(@$C`#(````!B9PX,@````&%F$D*N__1@""U\``"``/_T4J[_
XXM\"!N__`0*``!#```*U?!1`%(@4C!(&X`#!`02(!(P!U!_^\,@````'=G``#0
XXM#(````!R9P``@@R`````868``10@+O_T`(`````(+T```$HN_^]G!'("8`)R
XXM`2`O``"`@0"````!`"\\```!I"\`+RX`"$ZY```6,$_O``PM0/_X4H!F!G``
XXM3EY.=7`"+P!"IR\N__A.N0``&[!/[P`,2B[_[V<((#P```"`8`)P`BU`__Q@
XXM``"D2B[_[V<$<`)@`G``(B[_](*`+P$O+@`(3KD``!8P4(\M0/_X4H!F!G``
XXM3EY.=4HN_^]G""`\````@&`"<`$M0/_\8%Y*+O_O9P1P`F`"<`$B+O_T@H``
XXM@0```0``@0```@`O/````:0O`2\N``A.N0``%C!/[P`,+4#_^%*`9@9P`$Y>
XXM3G5*+O_O9P@@/````(!@`G`"+4#__&`&<`!.7DYU("[_^'(&3KD``#MN($#1
XXM_```0V9**``!9Q@([@`"__\@;@`0T/P`%B)N`!`C2``,8`@@;@`00J@`#"`N
XXM__@@;@`0$4``$2"H``QP`"%```@A0``$("[__!%``!`@"$Y>3G5.5@``(&X`
XXM"!`H`!`(```!9PXO"'#_+P!.N0``#[Q0CR!N``@0*``0`@``#$H`9A9*J``2
XXM9Q`O*``2+R@`#$ZY```4:E"/D<@B;@`((T@`#"-(`!)"*0`0$"D`$4B`2,`O
XXM`$ZY```<A%B/3EY.=4Y6```@;@`($"@`$`@```)G!G``3EY.=2!N``A*J``2
XXM9QH0*``0"````V80+R@`$B\H``Q.N0``%&I0CR!N``C0_``6(FX`""-(``P0
XXM*0`0````!!-``!!P`"-``!(C0``((T``!$Y>3G4``$Y6__@@;@`($"@`$`(`
XXM`#!*`&<&</].7DYU(&X`"$JH`!)F'!`H`!`(```"9A(O"&$``TY8CTJ`9P9P
XXM_TY>3G4@;@`($"@`$`@```)G"'`!+4#_^&`J(&X`"!`H`!`(```!9P9P_TY>
XXM3G4@;@`($"@`$`````$10``0+6@`$O_X(&X`"!`H`!%(@$C`+R[_^"\H``PO
XXM`$ZY```8OD_O``PM0/_\2H!J$"!N``@0*``0````(!%``!!*KO_\9A`@;@`(
XXM$"@`$````!`10``02J[__&\.(&X`""%N__P`!""H``P@;@`($"@`$`(``#!*
XXM`&<&</].7DYU(&X`""`H``13@"%```1*@&L*(E!2D'``$!%@"B\N``AA`/[F
XXM6(].7DYU3E;_\BUN``C_]B!N``P0*``0`@``,$H`9P9P_TY>3G4@;@`,2J@`
XXM$F9R$"@`$`@```)F:`RN_____P`(9@9P`$Y>3G4O+@`,80`"%%B/2H!G!G#_
XXM3EY.=2!N``P0*``0`````A%``!`@*``2(4``"%.`(4``"$J`:Q`B4%*0("X`
XXM"!*`2(!(P&`.+RX`#"\N``AA`/]L4(].7DYU(&X`#!`H`!`(```"9TH,KO__
XXM__\`"&8&<`!.7DYU("X`"!U`__\@;@`,$"@`$4B`2,!R`2\!2&[__R\`+4'_
XXM\DZY```9[$_O``QR_RU!``@M0/_Z8```PB!N``P0*``0"````&<&</].7DYU
XXM(&X`#!`H`!`````"$4``$`RN_____P`(9SA*J``(;S(@*``(4X`A0``(2H!K
XXM$")04I`@+@`($H!(@$C`8`XO+@`,+RX`"&$`_K!0CW#_+4``"")N``P@4;'I
XXM``QG1$JI``AJ""UI`!+_\F`0(&X`#"`H`!*0J``(+4#_\B!N``P0*``12(!(
XXMP"\N__(O*``,+P!.N0``&>Q/[P`,+4#_^F`*<``M0/_Z+4#_\@RN_______Z
XXM9A(@;@`,$"@`$````"`10``08!H@+O_ZL*[_\F<0(&X`#!`H`!`````0$4``
XXM$"!N``P@*``2(4``"")H``P@B2`N``@,@/____]G*"(H``A3@2%!``A*@6L,
XXM(E!2D!*`2(!(P&`.+RX`#"\N``AA`/W44(\@;@`,$"@`$`(``#!*`&<&</].
XXM7DYU#*[_______9F!G``3EY.=2`N__9.7DYU3E8``"!N``A*J``29Q`0*``0
XXM"````V8&<`!.7DYU+SD``#ZF3KD``!-B6(\@;@`(((`A0``,2H!F#G`,(\``
XXM`#ZB</].7DYU(&X`""%Y```^I@`2$"@`$`(``/,10``0<``A0``((4``!$Y>
XXM3G4``"/Y```^J@``/K(@.0``/JXCP```/K9*N0``/JYF!'#_3G61R")Y```^
XXMLB*((WD``#ZV``0@"$YU0J=A!%B/3G5.5O_X2JX`"&H&</].7DYUD<@CR```
XXM/JHCR```/JXM?````(#_^"\\```$`$ZY```='EB/+4#__$J`9@9P_TY>3G4C
XXM[O_\```^JB/N__@``#ZN("X`"%.`+4``"$J`9QXO/```!`!.N0``'1Y8CTJ`
XXM9PP@+O_XT;D``#ZN8-1A`/]`<`!.7DYU3E;__"`Y```^MN>`3EY.=4Y6__P@
XXM+@`(+P`M0/_\8098CTY>3G5.5O_P2JX`"&X&<`!.7DYU("X`"%Z`<@A.N0``
XXM.RHM?```/K+_^"!N__@M4/_\+4#_\$JN__QG5B`N__`@;O_\(B@`!+*`;3:R
XXM@&8((F[_^"*08!8@;O_\("@`!)"N__`A0``$YX#1KO_\("[_\)&Y```^MB!N
XXM__P@"$Y>3G4M;O_\__@@;O_\+5#__&"D("[_\.>`+P!.N0``'1Y8CRU`__1*
XXM@&=&2KD``#ZN9A`CP```/JHC[O_P```^KF`F(#D``#ZNYX`@>0``/JK1P")N
XXM__0M2/_\L\AF"B`N__#1N0``/JX@+O_T3EY.=7``3EY.=4Y6__P@+@`,+P`O
XXM+@`(+4#__&$&4(].7DYU3E;_Y$JN``QN!G#_3EY.=2!N``@@+@`,7H!R"$ZY
XXM```[*BU`_^3G@"U(_^S1P"`N_^31N0``/K8M?```/K+_]")N__0M4?_\+4C_
XXMZ$JN__QG``#H(&[__"`H``3G@-'`+4C_^"!N__RQ[O_H8Q@B;O_L(H@C;O_D
XXM``0@;O_T((EP`$Y>3G4@;O_\L>[_Z&8>(F[_["*0("[_Y-"H``0C0``$(&[_
XXM]"")<`!.7DYU(&[_[+'N__AD$"`N_^21N0``/K9P_TY>3G4@;O_LL>[_^&90
XXM(&[__$J09QP@;O_H(F[__+'18Q`@+O_DD;D``#ZV</].7DYU("[_Y"!N__S1
XXMJ``$2I!G%B!N_^@B;O_\L=%F"B`H``31J0`$(I!P`$Y>3G4M;O_\__0M;O_X
XXM__`@;O_\+5#__&``_Q0@;O_T(*[_[)'((F[_["*((V[_Y``$(`A.7DYU3E8`
XXM`$JN``AK)"`N``BPN0``/\)L&'(&3KD``#MN($#1_```0V80$`@```=F#G`)
XXM(\```#ZB<`!.7DYU("X`"'(&3KD``#MN($#1_```0V8@"$Y>3G5.5O_P0J[_
XXM_"`N__RPN0``/\)L''(&3KD``#MN($#1_```0V80$$H`9P92KO_\8-@@+O_\
XXML+D``#_"9@YP&"/````^HG#_3EY.=2`N__QR!DZY```[;B!`T?P``$-F(#D`
XXM`#ZZ`H```(``(BX`#+.`+4``#"U(__`(```/9P1P$&`"<```@````(`@;O_P
XXM$(`@+@`,`H`````##(`````"9SX,@`````%G$DJ`9E8@;O_P$!````!`$(!@
XXM7`@N``,`#V<$<`A@`G```(`````@(&[_\!(02(%(P8*`$(%@.`@N``,`#V<$
XXM<`A@`G```(````!@(&[_\!(02(%(P8*`$(%@%"!N__!"$'`6(\```#ZB</].
XXM7DYU<``@;O_P$4```2!N``@0$$H`9@@M?```/F(`"$*N__@@+O_X#(`````8
XXM;$9R"4ZY```[;B!`T?P``#V*4H@O""\N``A.N0``/!Y0CTJ`9AP@+O_X<@E.
XXMN0``.VX@0-'\```]BB)N__`34``!4J[_^&"N(&[_\!`H``%*`&84""X``0`.
XXM9PPO+@`(3KD``"`X6(\(+@`#``]G!'`"8`H@+@`,`H`````#+P`O+@`(3KD`
XXM`!VV4(\@;O_P(4```DJY```\NF=`("X`#`*````#`$J`9Q9"IR\N``A.N0``
XXM'W!0CR!N__`A0``"2KD``#RZ9TIP`B/````^HB!N__!"$'#_3EY.=2`N``P"
XXM@```!0`,@```!0!F)"!N__`O*``"3KD``!_66(]P$2/````^HB!N__!"$'#_
XXM3EY.=2`N__Q.7DYU3E8``"`N``P"@```@```@````P$B+@`,`H'__W__+P$O
XXM`"\N``AA`/U\3^\`#$Y>3G5.5O_>2JX`$&H.<!8CP```/J)P_TY>3G4O+@`(
XXM80#\_EB/+4#_XDJ`9@9P_TY>3G4@;O_B$"@``4B`2,`,@`````5D``#DY8!.
XXM^P@"8```$F````Y@```*8```SF````(O+@`0+RX`#"!N_^(O*``"3KD``"!V
XXM3^\`#"U`__I*N0``/+IG"DJ`9@9P_TY>3G4@;O_B$!`(```$9P@@+O_Z3EY.
XXM=7``+4#_]BU`__(@+O_VL*[_^FQ:(&X`#-'`4J[_]A`0'4#__TB`2,`,@```
XXM``UGV@R`````&F8D("[_]I"N__I3@'(!+P$O`"\N``AA``(`3^\`#"`N__).
XXM7DYU(&X`#-'N__)2KO_R$*[__V"<2J[_\F8(2J[_^F8`_T(@+O_R3EY.=7#_
XXM3EY.=4Y6_^)*K@`0:@YP%B/````^HG#_3EY.=2\N``AA`/O06(\M0/_F2H!F
XXM!G#_3EY.=2!N_^80*``!2(!(P`R`````!60``7+E@$[["`)@```28```#F``
XXM``I@```&8``!4"!N_^80$`@```-G$G`"+P!"IR\N``AA``%,3^\`#"!N_^80
XXM$`@```1G,"\N`!`O+@`,+R@``DZY```@MD_O``PM0/_V2KD``#RZ9P9P_TY>
XXM3G4@+O_V3EY.=4(N__YP`"U`__8M0/_R+4#_[B`N__:PK@`0;```D"!N``S1
XXMP%*N__80$!U`__\,```*9A(,+@`-__YG"AU\``W__U.N__8@;O_RT?P``$(Z
XXM("[_\E*`$B[__Q"!+4#_\AU!__X,@````(!MIB\`2'D``$(Z(&[_YB\H``).
XXMN0``(+9/[P`,+4#_ZK"N__)G!G``3EY.=4JY```\NF<&</].7DYU0J[_\F``
XXM_VA*KO_R9SHO+O_R2'D``$(Z(&[_YB\H``).N0``(+9/[P`,+4#_ZK"N__)G
XXM!G``3EY.=4JY```\NF<&</].7DYU("[_]DY>3G4@+@`03EY.=7`3(\```#ZB
XXM</].7DYU3E;_[B\N``AA`/H@6(\M0/_R2H!F!G#_3EY.=2!N__(0*``!2@!G
XXM!G``3EY.=2\N`!`O+@`,(&[_\B\H``).N0``(/I/[P`,+4#_^DJY```\NF<.
XXM<!8CP```/J)P_TY>3G4,K@````(`$&9@2J[_^F=:(&[_\A`0"```!&9.("[_
XXM^E.`+4#_]DJN__9K-$*G+R[_]B\N``AA`/]F3^\`#$J`9QYP`2\`2&[__R\N
XXM``AA`/Q<3^\`#$J`9@93KO_V8,8@+O_V4H!.7DYU("[_^DY>3G5.5O_T+RX`
XXM"&$`^4Q8CRU`__A*@&8&</].7DYU0J[__"!N__@O*``"3KD``!_66(]*N0``
XXM/+IG!G#_+4#__"!N__A"$"`N__Q.7DYU3E;_VB\N``A.N0``(#A8CTJY```\
XXMNF<&</].7DYU<`!.7DYU3E8``"\N``AATEB/3EY.=0``3E8``"\N``PO+@`(
XXM3KD```'"4(].7DYU3E;_]"`N``BPN0``/+)O!G``3EY.=2!Y```\KB`N``C1
XXMN0``/*Z1N0``/+(@"$Y>3G5.5O_\+RX`"&'$6(\M0/_\2H!G!$Y>3G4@?/__
XXM__\@"$Y>3G5.5O_X(#D``#RND+D``#RJT;D``#RR(_D``#RJ```\KI'((\@`
XXM`#ZR(\@``#ZJ(\@``#ZV(\@``#ZN(`A.7DYU``!.5O_T80`%]BU`__A*@&8&
XXM<`!.7DYU`JX````#``PO+@`(+SD``#Z&80`&>E"/(&X`"!(0+4#__$H!9@9P
XXM!"U`__P@+O_\#(`````%9```D..`3OL(`F`(8!Q@-&!,8%A*K@`,9@`!1$'Z
XXM`Z8B;O_X(HA@``$H#*X````!``QF``$J0?H#JB)N__@BB&```0X,K@````$`
XXM#&8``1!!^@/0(F[_^"*(8```]$'Z!3HB;O_X(HA@``#F#*X````!``QF#D'Z
XXM!+@B;O_X(HA@``#.0?H#W")N__@BB&```,`,K@````$`#&8N("X`"'(0+T``
XXM`.*@0J<O+P`$+P!R`R\!<CPO`4ZY```ZXD_O`!0CP```/+I@:"`N``AR$"]`
XXM``#BH'("+P$O+P`$+P!R`R\!<CTO`4ZY```ZXD_O`!0CP```/+I*@&HV#*X`
XXM```"``QF+"`N``AR$"]```#BH$*G+R\`!"\`<@,O`7(\+P%.N0``.N)/[P`4
XXM(\```#RZ2KD``#RZ:R0@;O_X(7D``#RZ``1!^@(4(F[_^"*(0KD``#RZ("[_
XXM^$Y>3G4O+O_X80`$B%B/<`!.7DYU3E;_^&$`!#PB+@`(=!`O00``Y*%"IR\O
XXM``0O`70#+P)T/"\"+4#__$ZY```ZXD_O`!0CP```/+I*@&H0+R[__&$`!#Q8
XXMCW``3EY.=2!N__PA>0``/+H`!$'Z`90B;O_\(HA.7DYU3E8``$CG`"!*K@`(
XXM9@IP`$S?!`!.7DYU0?H!;B1N``@B4K/(9APO*@`$<`$O`'`^+P!.N0``.N)/
XXM[P`,(\```#RZ+RX`"&$``]!8CTJY```\NE?`1`!(@$C`3-\$`$Y>3G5.5O_\
XXM("X`"'(0+T```.*@+R\``"\`<@(O`7)!+P%.N0``.N)/[P`0(\```#RZ2H!7
XXMP40!2(%(P2`!3EY.=4Y6``!*K@`(9AI"IR\N`!`O+@`,+RX`"&$``=1/[P`0
XXM3EY.=2)N``@@44*G+RX`$"\N``PO"4Z03^\`$$Y>3G5.5@``2JX`"&8<<`$O
XXM`"\N`!`O+@`,+RX`"&$``F!/[P`03EY.=2)N``@@47`!+P`O+@`0+RX`#"\)
XXM3I!/[P`03EY.=4Y6``!(YP`@2JX`"&8*<`!,WP0`3EY.=4'Z`$HD;@`((E*S
XXMR&<*<`!,WP0`3EY.=7`0(BX`#."A+RX`$"!N``@O*``$+RX`#"\!<`0O`'!"
XXM+P!.N0``.N)/[P`83-\$`$Y>3G5.5O_P2JX`%&<$<$!@`G`_<A`D+@`0XJ(B
XXM+@`,=A`O00`$YJ$O+P`$+P$O+@`0+P(@;@`(+R@`!'8%+P,O`"U`__Q.N0``
XXM.N)/[P`<+4#_^$J`:@PCP```/+IP`$Y>3G4@+O_X3EY.=4Y6__Y"IW`#+P!.
XXMN0``.N)0CR!N``P0@'`!3EY.=4Y6__Q"KO_\("[__+"N`!!L)B!N``S1P!`0
XXM2(!(P"\`<@$O`7($+P%.N0``.N)/[P`,4J[__&#0("X`$$Y>3G5.5O_\0J[_
XXM_"`N__RPK@`0;"8@;@`,T<`0$$B`2,`O`'(!+P%R!2\!3KD``#KB3^\`#%*N
XXM__Q@T"`N`!!.7DYU3E;_=B`N`!`,@````']L!%.`8`)P?1U`_X!![O^`(`AR
XXM$.*@+P@O`'("+P%R"B\!3KD``#KB3^\`$'`*+P!P`2\`<`(O`$ZY```ZXD_O
XXM``P0+O^!2(!(P'("+4'_>"U`_WP@+O]\5(`B+O]XLH!L/A`V&(`=0/]W#```
XXM#68&'7P`"O]W#"X`&O]W9@P@+O]X58!$@$Y>3G4@+O]X58`@;@`,T<`0KO]W
XXM4J[_>&"T("[_?`R`````?6P*(&X`#-'`$+P`"B`N_WQ2@$Y>3G5.5O_Z0J[_
XXM_"`N__RPK@`0;%`@;@`,T<`0$!U`__M(@$C`#(`````*9A9P#2\`<`$O`'`"
XXM+P!.N0``.N)/[P`,$"[_^TB`2,`O`'(!+P%R`B\!3KD``#KB3^\`#%*N__Q@
XXMIB`N`!!.7DYU3E8``$JN`!1G!B`N`!!@`G``3EY.=4Y6__Q"KO_\("[__`R`
XXM````%&PBYX`@0-'\``!"ODJ09@X@0-'\``!"OB`(3EY.=5*N__Q@TG``3EY.
XXM=4Y6```@;@`(0I!.7DYU3E8``!`N``L,``!A;1(,``!Z;@P$``!A!@``04Y>
XXM3G40+@`+3EY.=4Y6__X0+@`+2(!(P"\`8<A8CQ(N``](@4C!+P$?0``$8;98
XXMCQ(O``"R`&8$<`%@`G``3EY.=4Y6_^IP`2U`__QP_RU`__AP`"U`__`M0/_T
XXM(&X`#-'N__!*$&<&4J[_\&#N0J[_["`N_^P@;@`(T<!*$&<``)8@;@`(T<`0
XXM$!U`_^M*KO_\9U(,```]9P8,```L9A8@+O_P4X`B+O_XLH!F""`N__1.7DYU
XXM("[_^%*`$B[_ZTB!2,$@;@`,T<`4$$B"2,(O`B\!+4#_^&$`_S)0CTJ`9@1"
XXMKO_\$"[_ZPP``"QG!@P``#UF#'`!+4#__'#_+4#_^`PN`"S_ZV8$4J[_]%*N
XXM_^Q@`/]>2J[__&<6("[_\%.`(B[_^+*`9@@@+O_T3EY.=7#_3EY.=0``3E;_
XXMZ"/N``@``$->0>X`$$*N__PM2/_L(&X`#!`02@!G``$^2(!(P%*N``P@0"U(
XXM__C1_```/K\2$`@!``-FV`R`````)68``-0@;@`,$!`,```E9CH@>0``0UX0
XXM$$B`2,!2N0``0UXM0/_X(&[_^-'\```^OQ`0"````V;8#*X````E__AGD"`N
XXM__Q.7DYU(&X`#!`0#```*F<,+6[_[/_H6*[_[&`(0J[_Z%*N``Q"KO_T+R[_
XXMZ$AN__1(>@"J+RX`#$ZY```FWD_O`!`M0/_P2H!G!"U```P,KO______]&8>
XXM2J[_\&<$4J[__$JN__QO""`N__Q.7DYU</].7DYU2J[_]&<&4[D``$->2J[_
XXM\&9$("[__$Y>3G4@>0``0UX0$$B`2,`M0/_T4KD``$->(&[_]-'\```^OQ`0
XXM"````V;8("[_]+"N__AG`/[*("[__$Y>3G52KO_\8`#^NB`N__Q.7DYU3E;_
XXM_"!Y``!#7A`02(!(P%*Y``!#7BU`__Q*@&8"</].7DYU3E;_X'``(&X`"!(0
XXM2(%(P5*!($'1_```/KX2$"U`__0M0/_P"`$``F="("[_\'(*3KD``#MN(&X`
XXM"!(02(%(P5*N``@"@0````_0@2U`__`@;@`($!!(@$C`4H`@0-'\```^OA`0
XXM"````F:^(&X`"!`0#```;&8*4JX`"'`!+4#_]"!N``Q.D"!N``@2$"U`__P,
XXM`0!C9QX@;O_\T?P``#Z_$!`(```#9PP@;@`,3I`M0/_\8.(@+O_\#(#_____
XXM9@P@;@`0((!P`$Y>3G4@;@`($!!(@$C`<C@$@0````AK``5(L+L8"&;P3OL8
XXM!@```&9@``2:````<V``!$0```!C8``#T@```&A@``-(````>&```8X```!O
XXM8```]````&1@```"<``M0/_L2J[_\&<*#*X````!__!O-B`N__P,@````"UG
XXM"`R`````*V8B#*X````M__QF!'#_8`)P`"U`_^P@;@`,3I!3KO_P+4#__"!N
XXM__S1_```/K\0$`@```)F#B!N`!`@KO_\<`!.7DYU0J[_Z"`N_^AR"DZY```[
XXM;B(N__P"@0````_0@2U`_^@@;@`,3I`M0/_\("[_\%.`+4#_\$J`9Q(@;O_\
XXMT?P``#Z_$!`(```"9KI*K@`49P`$3DJN_^QJ!$2N_^A*KO_T9@XB;@`4(%$@
XXMKO_H8``$,")N`!0@42"N_^A@``0B("[__`R`````,&T(#(`````W;PX@;@`0
XXM(*[__'``3EY.=4*N_^@@+O_HYX`B+O_\`H$````'T($M0/_H(&X`#$Z0+4#_
XXM_"`N__!3@"U`__!*@&<4#*X````P__QM"@RN````-__\;[Y*K@`49P`#LDJN
XXM__1F#B)N`!0@42"N_^A@``.>(FX`%"!1(*[_Z&```Y`@;O_\T?P``#Z_$!`(
XXM```'9@X@;@`0(*[__'``3EY.=2UN__S_^"!N``Q.D"U`__Q*KO_P9PH,K@``
XXM``+_\&].#*X````P__AF1"`N__P,@````'AG"`R`````6&8P(&X`#$Z0($`M
XXM2/_\T?P``#Z_$A`(`0`'9@P@;@`0((!P`$Y>3G5"KO_H4Z[_\&!@(&[_^-'\
XXM```^OQ`0"````F<.("[_^`2`````,"U`_^@@;O_XT?P``#Z_$!`(````9PX@
XXM+O_X!(`````W+4#_Z"!N__C1_```/K\0$`@```%G#B`N__@$@````%<M0/_H
XXM("[_\%.`+4#_\$J`9P``C"!N__S1_```/K\0$`@```=G>"`N_^CI@"!N__S1
XXM_```/K\2$"U`_^@(`0`"9PXB+O_\!($````P@Z[_Z"!N__S1_```/K\0$`@`
XXM``!G#B`N__P$@````#>!KO_H(&[__-'\```^OQ`0"````6<.("[__`2`````
XXM5X&N_^@@;@`,3I`M0/_\8`#_:$JN`!1G``(`2J[_]&8.(FX`%"!1(*[_Z&``
XXM`>PB;@`4(%$@KO_H8``!WB!N__S1_```/K\0$`@```)F#B!N`!`@KO_\<`!.
XXM7DYU0J[_["`N_^QR"DZY```[;B(N__P"@0````_0@2U`_^P@;@`,3I`M0/_\
XXM("[_\%.`+4#_\$J`9Q(@;O_\T?P``#Z_$!`(```"9KI*K@`49P`!;")N`!0@
XXM42`N_^PP@&```5Q*K@`49PXB;@`4(%%2D2`N__P0@"`N__!3@"U`__!*@&\D
XXM(&X`#$Z0+4#__%*`9Q9*K@`49]XB;@`4(%%2D2`N__P0@&#.("[__`R`____
XXM_V8,(&X`$""`<`!.7DYU(&X`"%*((`A.7DYU2JX`%&<.(FX`%"!14I$@+O_\
XXM$(`@;@`,3I`M0/_\4H!G("`N__!3@"U`__!*@&<2(&[__-'\```^OQ`0"```
XXM`V>^(FX`%"!10A!@``"D("[__`R`````+6<F#(`````N9QX,@````#!M"`R`
XXM````.6\.(&X`$""N__QP`$Y>3G5(;O_@2&[_["\N``PO+O_P+R[__$ZY```W
XXM?$_O`!0M0/_\2J[_[&8,(&X`$""`<`!.7DYU2JX`%&<V2J[_]&88(FX`%"!1
XXM("[_X"(N_^1.N0``-:H@@&`8(FX`%"!1(*[_X"%N_^0`!&`&<`!.7DYU(&X`
XXM$""N__P@;@`(4H@@"$Y>3G5.5O^T2.<`('``+4#_Z'+_+4'_Y'(@+4'_X"!N
XXM``@2$"U`__`M0/_<+4#_[`P!`"UF"G`!4JX`""U`__`@;@`($!!(@$C`+T``
XXM!%*`($#1_```/KX0$`@```)G:`RO````,``$9@9P,"U`_^`@;@`($!!(@$C`
XXM4JX`"`*`````#RU`_]P@;@`($!!(@$C`4H`B0-/\```^OA`1"````F<D("[_
XXMW'(*3KD``#MN$A!(@4C!4JX`"`*!````#]"!+4#_W&#`(&X`"!`0#```+F9(
XXM4JX`"$*N_^0@;@`($!!(@$C`4H`B0-/\```^OA`1"````F<D("[_Y'(*3KD`
XXM`#MN$A!(@4C!4JX`"`*!````#]"!+4#_Y&#`(&X`"!`0#```;&8*<`%2K@`(
XXM+4#_[$*N_]`@;@`($!!(@$C`<D@$@0````AK``*(L+L8"&;P3OL8!@```&9@
XXM``)N````96```F````!G8``"4````&-@``(J````<V```=(```!O8``!6```
XXM`'A@``#<````=6```#@```!D8````DJN_^QG#B)N`!`@45B1+5#_S&`,(FX`
XXM$"!16)$M4/_,2J[_S&HH<`$M0/_H8"!*KO_L9PXB;@`0(%%8D2U0_\Q@#")N
XXM`!`@45B1+5#_S'`++4#__"`N_\QR"DZY```[*BU!__A*@6H$1*[_^%.N__P@
XXM+O_X!H`````P(B[__!V`&+@@+O_,<@I.N0``.RHM0/_,2J[_S&:\#*X````!
XXM_^AF#E.N__P@+O_\';P`+0BX0>[_N"`N__S1P'(+DH`M0?_T+4C_T&```79*
XXMKO_L9PXB;@`0(%%8D2U0_\Q@#")N`!`@45B1+5#_S'`(+4#__%.N__P@+O_,
XXM`H`````/($#1_```/HH@+O_\'9`(N"`N_\SH@`*`#____RU`_\Q*KO_,9LQ!
XXM[O^X("[__-'`<@B2@"U!__0M2/_08``!`DJN_^QG#B)N`!`@45B1+5#_S&`,
XXM(FX`$"!16)$M4/_,<`LM0/_\4Z[__"`N_\P"@`````<&@````#`B+O_\'8`8
XXMN"`N_\SF@`*`'____RU`_\Q*KO_,9LY![O^X("[__-'`<@N2@"U!__0M2/_0
XXM8```D`RN_______D9@@M?````,C_Y")N`!`@45B1(E`M2?_0L_P`````9@@M
XXM?```/IK_T$*N__0@+O_TL*[_Y&Q0(&[_T-'`$!!*`&=$4J[_]&#D0>[_N'`!
XXM+4#_]"1N`!`B4EB2(!$=0/^X+4C_T&`@<`(M0/_48!A"KO_48!)P`2U`_]1@
XXM"G``3-\$`$Y>3G5*KO_09P``TDJN_]QG"B`N_]RPKO_T;`8M;O_T_]P@+O_T
XXMD:[_W$*N__Q*KO_P9T@@+O_T4X`M0/_T2H!K&"!N``S1[O_\4J[__")N_]`0
XXMD5*N_]!@VB`N_]Q3@"U`_]Q*@&M<(&X`#-'N__Q2KO_\("[_X!"`8-X@+O_<
XXM4X`M0/_<2H!K%"!N``S1[O_\4J[__"`N_^`0@&#>("[_]%.`+4#_]$J`:Q@@
XXM;@`,T>[__%*N__PB;O_0$)%2KO_08-H@;@`4(*[__"!N``A2B"`(3-\$`$Y>
XXM3G4,KO______Y&8&<`8M0/_D#*X````4_^1M!'`38`0@+O_D+4#_]%*`#*X`
XXM```!_]17P40!2(%(P4AN_[A(;O_H2&[_V"\!+P`@;@`0+Q!.N0``-<)/[P`8
XXM(&X`$%"00>[_N"(N_]@M0/_T+4'__"U(_]!*@6H$1*[__`RN`````O_49AI*
XXMKO_T9PX,K@````;__&T$<`!@`G`!+4#_U$JN__1G!%.N_]AP`"U`__Q*KO_H
XXM9P12KO_\2J[_U&<J("[_Y%*`(B[__-"!+4#__$JN_]AK""`N_]C1KO_\2J[_
XXMY&=`4J[__&`Z("[_Y%R`T:[__$JN_]AJ""`N_]A$@&`$("[_V"U`__@,@```
XXM`&-O!%*N__P,K@```^?_^&\$4J[__$JN__!F-"`N_]RPKO_\;RH@+O_\D:[_
XXMW"`N_]Q3@"U`_]Q*@&L4("[_X"!N``P0@%*N``Q2KO_\8-Y*KO_H9PP@;@`,
XXM$+P`+5*N``Q*KO_49P`!!DJN_]AJ<"!N``P0O``P4H@0O``N4H@M2``,("[_
XXMY%.`+4#_Y$J`:P`!Y"`N_]A2@"U`_]A*@&H.(&X`#!"\`#!2K@`,8-0@+O_T
XXM4X`M0/_T2H!K%"!N_]`B;@`,$I!2KO_04JX`#&"R(&X`#!"\`#!2K@`,8*0@
XXM+O_84Z[_V$J`:S`@+O_T4X`M0/_T2H!K%"!N_]`B;@`,$I!2KO_04JX`#&#2
XXM(&X`#!"\`#!2K@`,8,1*KO_D9PP@;@`,$+P`+E*N``P@+O_D4X`M0/_D2H!K
XXM``$Z("[_]%.`+4#_]$J`:Q0@;O_0(FX`#!*04J[_T%*N``Q@SB!N``P0O``P
XXM4JX`#&#`("[_]%.`+4#_]$J`:Q0@;O_0(FX`#!*04J[_T%*N``Q@#"!N``P0
XXMO``P4JX`#"!N``P0O``N4JX`#"`N_^13@"U`_^1*@&LP("[_]%.`+4#_]$J`
XXM:Q0@;O_0(FX`#!*04J[_T%*N``Q@T"!N``P0O``P4JX`#&#"(&X`#!"\`$52
XXMB"U(``Q*KO_8:@X0O``M4JX`#$2N_]A@#"!N``P0O``K4JX`#'`++4#_]%.N
XXM__0@+O_8<@I.N0``.RH&@0```#`@+O_T'8$(N"`N_]AR"DZY```[*BU`_]@,
XXMK@````G_]&[(2J[_V&;"("[_]`R`````"VP24J[_]"!N``P0M@BX4JX`#&#B
XXM#*X````!__!F-"`N_]RPKO_\;RH@+O_\D:[_W"`N_]Q3@"U`_]Q*@&L4("[_
XXMX"!N``P0@%*N``Q2KO_\8-X@;@`4(*[__"!N``A2B"`(3-\$`$Y>3G4O`DZY
XXM```Y^B("3KD``#ET)!].=0````!.4/_B3E$``$CG?S`D:``((!HB$DZY```Y
XXM^D)I``A":0`&+P"#GV8.)&@`'"8H``Q3@V```/A20C-"``1(0C-"``A"1C0I
XXM``1G7&H25D)K&`I"``/5:0`$80`!`&!(80`!,E)I``9@$G0$U6D`!&$``.IA
XXM``#R4VD`!DJ`:\13:0`$XXGCD&#R0D)"1B\`@Y]G%&$``-)*1F8,#$(``68&
XXM4VD`!F#L!@8`,!.&(`I20@Q"`!1KU'8!)"@`#$JH`!!G#B@\`````=1I``93
XXM0FLZ>!0,0@`2;#(X`AHQ(`L&!0`%#`4`.6\B$[P`,"`+4C$@"AHQ(`I30FKH
XXM4FD`!E-#>@"ZJ``09P)2A"1H`!Q'\3`*(`1G'E-$-@0$0P`4:P)X$Q3;4<S_
XXM_$I#:P@4_``P4<O_^B1H`!A"DDII``AG`E.2)&@`%$*!,BD`!DC!)(%,WPS^
XXM3EE.6$YUXHCBD01"``%F]DYU?`!(YS``)``F`>.)XY#CEN.)XY#CEM*#T8)D
XXM```$4H;CB>.0XY9,WP`,3G4O`G0`/SP`0..)XY#CD@Q"``IM"`2"````"E*!
XXM4U=FZ$_O``(D'TYU3E#_]$Y1``!(YWXP<`!R`#-````S0``",T``!#-```9A
XXM``%T#`8`,&8(`&D@```$8.X,!@`M9@H`:8````1A``%6#`8`,&T^#`8`.6XX
XXM`&D@```$,T8`"CPI``:=:0`"+P`"G_````!G!E)I``)@SF$`_SH\*0`*`H8`
XXM```/TH9"AM&&8+@,!@`N9@Q*:0`&9F!2:0`&8*8,!@!E9P8,!@!E9DYA``#P
XXM#`8`*V<,#`8`+68*`&D0```$80``V@P&`#!M+@P&`#EN*#HI``#CZ0``X^D`
XXM`-MI``#CZ0```D8`#]UI```,:0__``!MS.+I```_*0`$`E\@`&8*)&@`%$*2
XXM8```@C0I```_*0`$`E\0`&<"1$+5:0`"+P"#GV=4,WP`/P``2H!K"N.)XY!3
XXM:0``8/)*:0`"9R!K%'0$U6D``&$`_EQA`/YD4VD``F#680#^AE)I``)@S'0`
XXM-"D``#\I``0"7X``9P0(P@`?3KD``#HP)&@`&"3`)($D:``4)+P````!<``P
XXM*0`(3-\$?DY93EA.=2PH``AG"B%\```````(3G5(Y_S@)&@`$$Z2/`!,WP<_
XXM,T8`"%.H``QF"`!I"```!$YU/RD`!`)?"`!G`GS_3G4B``*`?____V<62$%(
XXMP0*!@`!__^Y)!$$`?^&(",``'TYU+P)*@&=,44$O``*?_P```&<<4D'BB.*2
XXM+P`"G_\```!F\$J":@A2@&#>4T'CB`@``!=G]@9!`']O'`Q!`/]L)@B``!?O
XXM23\!2$&"7TA!0D&`@20?3G4O/`````%.N0``.M)"@&`:+SP````"3KD``#K2
XXM(#Q_@```2H%J!`C``!]/[P`$8,PD``*`?____V8(<`!R`'0`8")(0DC"Z$("
XXM@H``!_\$0@/_+P)T"N.)XY!1RO_Z",``'R0?3G4O`R\`@Y]G9`1"``M*@&8(
XXM(`%"@01"`"`O``*?_^```&<D4D+BB.*1XI,O``*?_^```&;N2H-J#E*!9`I2
XXM@&#84T+CB>.0"```%&?T!D(#_V\>#$('_VPH`H``#___Z4H_`D)"2$*$7TA"
XXM@((F'TYU+SP````!3KD``#K2<`!@&"\\`````DZY```ZTC`\?_!(0H!"2$!"
XXM0$_O``1R`&#,``!.5@``(^X`"```0V).7DYU3E8``$CG?_PJ3T*Y```\NG`'
XXMD&X`#N5`3OL``C\N`"H_+@`F/RX`(C\N`!X_+@`:/RX`%C\N`!(_+@`*3D$N
XXM34S?/_Y.7DYU2.<\`"H!9S)J`D2!*`!G*&H"1(!"@G8?XX#CDK2!9024@5*`
XXM4<O_\B("N85J`D2`LX1J"$2!8`1"@4*`3-\`/$YU``!(YW@`*`"SA$J`9S!J
XXM`D2`)`!*@68$0H!@(FH"1($F`,;!2$+$P4A"0D+6@DA!P,%(0$)`T(-*A&H"
XXM1(!,WP`>3G4``$Y6__Q*K@`09S@@;@`(2A!G,")N``Q*$6<H$!!(@$C`4JX`
XXM"!(12(%(P5*N``R0@2U`__Q*@&<$3EY.=5.N`!!@PDJN`!!G'"!N``A*$&<&
XXM<`%.7DYU(&X`#$H09P9P_TY>3G5P`$Y>3G4``$Y6```@;@`($!`@;@`,$A"P
XXM`6842@!F!G``3EY.=5*N``A2K@`,8-P@;@`($!!(@$C`(&X`#!(02(%(P9"!
XXM3EY.=0``````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````555$14-/1$4`````/,)R`%5S86=E.B!5541%0T]$12!;
XXM9FEL95T*`$YO(&)E9VEN(&QI;F4*`&)E9VEN(`!B96=I;B`E;R`E<P!W8@!E
XXM;F0@("``3F\@96YD(&QI;F4*`%-H;W)T(&9I;&4*`"5C`"5C`"5C`$-A;FYO
XXM="!O<&5N(&9I;&4@)7,`)7,Z(```<@!W`&$``&$`0V%N)W0@;W!E;B!S=&1I
XXM;B!F:6QE"@!#86XG="!O<&5N('-T9&]U="!F:6QE"@`!8V]N.@`````!0T].
XXM.@`````"<')N.@`````"4%)..@`````";'-T.@`````"3%-4.@`````";'!T
XXM.@`````"3%!4.@`````";'!T,3H````"3%!4,3H````#875X.@`````#0558
XXM.@`````#8V]M.@`````#0T]-.@`````#8V]M,3H````#0T]-,3H````#<F1R
XXM.@`````#4D12.@`````#<'5N.@`````#4%5..@`````$;G5L.@`````$3E5,
XXM.@`````$;G5L;#H````$3E5,3#H```!#3TXZ`````$%823HL05A/.BQ,4U0Z
XXM+$Y)3#HL0T]..CTJ`````#YJ,#$R,S0U-C<X.4%"0T1%1@``````````````
XXM`````@`````````````````````````````@("`@("`@("`H*"@H*"`@("`@
XXM("`@("`@("`@("`@($@0$!`0$!`0$!`0$!`0$!"$A(2$A(2$A(2$$!`0$!`0
XXM$(&!@8&!@0$!`0$!`0$!`0$!`0$!`0$!`0$!$!`0$!`0@H*"@H*"`@("`@("
XXM`@("`@("`@("`@("`@(0$!`0("`@("`@("`@("@H*"@H("`@("`@("`@("`@
XXM("`@("`@2!`0$!`0$!`0$!`0$!`0$(2$A(2$A(2$A(00$!`0$!`0@8&!@8&!
XXM`0$!`0$!`0$!`0$!`0$!`0$!`0$0$!`0$!""@H*"@H("`@("`@("`@("`@("
XXM`@("`@("`A`0$!`@````````%`````````@`````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM````````````````````````````````````````````````````````````
XXM```````````````````````````````````````````````&DD(*"D@(*B(&
XXM!@8&"`@D%!`$#@8&#`@:!@8,#`H8"@H0"`H&"!X*#@8&#"@&!@$@"CH<"CH<
XXM"CI`%'`4'`8&!A(&#A`("A@>"`@<+@8&!@H0!@8&$`8&!@X&!@86$@8,"`8.
XXM(@8,"`8&"B@("@8."@H("@80"E"$&F(Z'#HD"`@6"A80#!XZKB(Z5CH(;"8D
XXM0,X!:K[B!A@0)`0&!@8.""8&%!@(&A`6.@90*!`("`@(&$H6!H0N>@H($!((
XXM&`H(%@H2"`:N(!H(#A((+"00'!`*+`I89`Z\B@Y@)`X:(`X:($H."J8()`@R
XXM%`X*!C0&!@8$"`8&!C#B"B8*,`H&#!)&"AY("A`T"NQ4$AX\0$@6OAQ&#`&$
XXM+"0,#E1$%!`*-@PH'"X^VB8RV&8H("`P&"0@6"8RQ&`ZA$040!3Z+GC8`8X!
XX5`>8:D`@B`0$!&N80QA`B%`'@`;P`
XX`
XXend
SHAR_EOF
if test 24487 -ne "`wc -c UUDECODE.UUE`"
then
echo shar: error transmitting UUDECODE.UUE '(should have been 24487 characters)'
fi
echo shar: extracting UUDECODE.C
sed 's/^XX//' << \SHAR_EOF > UUDECODE.C
XX/*
XX * Uudecode -- decode a uuencoded file back to binary form.
XX *
XX * Useage: (CLI) uudec <uuencoded filename>
XX *         (GEM) click on uudec.ttp
XX *               enter <uuncoded filename> in dialog box
XX *               hit CR
XX *
XX * Result: File specified in first line of uuencoded file is created,
XX *         contents of uuencoded file are decoded and placed into
XX *         the created file.
XX *
XX * How it works:
XX *         The bits of every three consecutive bytes of the binary file are
XX *         encoded into four consecutive printable ascii bytes according
XX *         to the following diagram:
XX *
XX *               |         |         |         |         |
XX *               |x1x2|3456|x7x8|1234|x5x6|7812|x3x4|5678|
XX *               -----------------------------------------
XX *
XX *         where the long vertical bars separate bytes and the short
XX *         vertical bars separate half bytes.  The x'ed bits are not
XX *         important to us (they are given values which result in
XX *         printable ascii characters).  The first eight digits
XX *         increasing in order from 1 to 8 mark the positions of the
XX *         first byte of the group of three binary bytes.  The next
XX *         eight mark the second byte and so on.  Each line of the
XX *         encoded file contains a count character followed a number
XX *         (multiple of four) of encoded bytes.  To decode we merely
XX *         need to go through the usual bit pushing.
XX *
XX * Problems: Contact J. Franco (franco@indiana.CSNET)
XX *
XX * Comment: This should work.  I successfully downloded the recently posted
XX *          RTXDEMO with no trouble whatsoever (and that is a pretty big
XX *          file).
XX *
XX * Note:    This is the latest of a number of hacks of a uudecoder originally
XX *          intended for the IBM PC. (3/6/86 - JVF)
XX *
XX * Nother comment:  Modified by P. Smee (Smee at UK.AC.AUCC via UCL-CS) to cope
XX *          with normal Multics I/O which strips trailing blanks from lines,
XX *          and can add extraneous control chars (NUL and CR).  Implicitly
XX *          takes advantage of the spec saying uuencoded lines have max length
XX *          of 62 chars.  Modified for MetaComCo Lattice C compiler. 86-07-10
XX */
XX
XX#include <stdio.h>
XX#include <osbind.h>
XX#include <ctype.h>
XX
XXchar *Progname = "UUDECODE";
XX
XX#define USAGE "Usage: UUDECODE [file]\n"
XX
XX/* single character decode */
XX#define DEC(c)  (((c) - ' ') & 077)
XX
XXFILE *in, *out, *efopen(), *fopen();
XXchar *cfgets();
XX
XXmain(argc, argv)
XX        short int argc; char *argv[];
XX        {
XX
XX        short int mode;
XX        char dest[128];
XX        char buf[80];
XX
XX        /* optional input arg */
XX        if (argc > 1) {
XX                in = efopen(argv[1], "r");
XX                argv++; argc--;
XX                }
XX        else
XX                in = stdin;
XX        if (argc != 1) {
XX                fprintf(stderr, USAGE);
XX                exit(2);
XX                }
XX        /* search for header line */
XX        for (;;) {
XX                if (cfgets(buf, sizeof buf, in) == NULL) {
XX                        fprintf(stderr, "No begin line\n");
XX                        exit(3);
XX                        }
XX                if (strncmp(buf, "begin ", 6) == 0)
XX                        break;
XX                }
XX        sscanf(buf, "begin %o %s", &mode, dest);
XX        out = efopen(dest, "wb");  /* create output file */
XX        decode(in, out);
XX        fclose(out);
XX        if ((cfgets(buf, sizeof buf, in) == NULL)
XX             || (strncmp(buf, "end   ", 6) != 0)) {
XX                fprintf(stderr, "No end line\n");
XX                exit(5);
XX                }
XX        }
XX
XX/*
XX * copy from in to out, decoding as you go along.
XX */
XX
XXdecode(in, out)
XX        FILE *in, *out;
XX        {
XX        char buf[80];
XX        char *bp;
XX        short int n;
XX        for (;;) {
XX                if (cfgets(buf, sizeof buf, in) == NULL) {
XX                        fprintf(stderr, "Short file\n");
XX                        break;
XX                        }
XX                n = DEC(buf[0]);
XX                if (n <= 0)
XX                        break;
XX                bp = &buf[1];
XX                while (n > 0) {
XX                        outdec(bp, out, n);
XX                        bp += 4;
XX                        n -= 3;
XX                        }
XX                }
XX        }
XX
XX/*
XX * output a group of 3 bytes (4 input characters).
XX * the input chars are pointed to by p, they are to
XX * be output to file f.  n is used to tell us not to
XX * output all of them at the end of the file.
XX */
XX
XXoutdec(p, f, n)
XX        char *p; FILE *f; short int n;
XX        {
XX        short int c1, c2, c3;
XX        c1=((*p&64)<<1)   | ((*p&31)<<2)   | ((p[1]&64)>>5) | ((p[1]&16)>>4);
XX        c2=((p[1]&15)<<4) | ((p[2]&64)>>3) | ((p[2]&28)>>2);
XX        c3=((p[2]&3)<<6)  | ((p[3]&64)>>1) | ((p[3]&31));
XX        if (n >= 1)
XX           { if (c1 == 13)
XX                  fprintf(f,"%c",13);
XX             else
XX                  putc(c1, f);
XX           }
XX        if (n >= 2)
XX           { if (c2 == 13)
XX                  fprintf(f,"%c",13);
XX             else
XX                  putc(c2, f);
XX           }
XX        if (n >= 3)
XX           { if (c3 == 13)
XX                  fprintf(f,"%c",13);
XX              else
XX                  putc(c3, f);
XX           }
XX        }
XX
XX
XX/* cfgets: like fgets, but massages the string to repair Multics
XX   propensity to remove trailing blanks and to insert initial NULs, and
XX   possibly CRs.  Takes advantage of the facts that uuencode lines are no
XX   longer than 62 chars, and that the algorithm used above doesn't care if
XX   there are extra blanks on the end of a line.  While this is designed
XX   specifically to accomodate files pulled to the ST from Multics, it should
XX   also work with files from other systems. */
XX
XXchar *cfgets(s, n, iop)
XX        char *s;
XX        short int n;
XX        register FILE *iop;
XX        {
XX        register int c;
XX        register char *cs;
XX
XX        cs = s;
XX        while (--n > 0 && (c = getc(iop)) != EOF)
XX            if (isprint (c)) {
XX                  *cs++ = c;
XX            } else {
XX                  n++;
XX                  if (c == '\n')
XX                      break;
XX            }
XX
XX        if ((c == EOF) && (cs == s))
XX            return (NULL);
XX        while (--n > 0)
XX            *cs++ = ' ';
XX        *cs-- = '\0';
XX        *cs = '\n';
XX
XX        return (s);
XX        }
XX
XX
XX/* Open a file, aborting on failure */
XX
XX/* Written by Bernie Roehl, June 1985 */
XX
XXFILE *
XXefopen(fn, mode)
XX        char *fn, *mode;
XX        {
XX        FILE *unit;
XX        if ((unit = fopen(fn, mode)) == NULL)
XX                error("Cannot open file %s", fn);
XX        else
XX                return unit;
XX        }
XX
XXextern char *Progname;
XX
XXerror(s1, s2)
XX        char *s1, *s2;
XX        {
XX        fprintf(stderr, "%s: ", Progname);
XX        fprintf(stderr, s1, s2);
XX        exit(1);
XX        }
SHAR_EOF
if test 6568 -ne "`wc -c UUDECODE.C`"
then
echo shar: error transmitting UUDECODE.C '(should have been 6568 characters)'
fi
# End of shell archive
exit 0

pes@bath63.ux63.bath.ac.uk (Paul Smee) (12/09/86)

  ... Sacrificial offering ...
And, thanks to Rodney Peck for posting it.  As I'd explained to him, the
only way I've got to put things *onto* newsnet is by typing them in, which
didn't feel like a good idea here.

One comment, I have (so far, up to 1.6c) managed to UUDECODE UniTerm with
it as well (on an ST520).  However, I *did* have to CAT the pieces together
on my Multics before porting it to the ST.

Apologise for the fact that the C's a bit tacky, particularly my part of
it.  Twas my first serious thing-to-do in C; and I'm scared to clean it
up now that I know better, lest I might break it.  I've been considering
changing it to use translate table lookup, and to 'know' that the
accent grave is == to a space, since that seems to be a common perversion.

And yes, I'm aware of the chicken-and-egg problem here (UUENCODED UUDECODE)
but suspect that can be gotten around by finding a friend with a U**x or
by using the (or a) BASIC UUDECODE program.

Finally, one note.  Based on conversations over here, it appears that porting
stuff to the ST by UUDECODEing on a mainframe and then binary xfering the
result is quite likely not to work, for reasons which no-one I know of has
worked out.  I've never seen any problems though if you ASCII port to the ST
and then UUDECODE there.

silvert@dalcs.UUCP (12/12/86)

>Finally, one note.  Based on conversations over here, it appears that porting
>stuff to the ST by UUDECODEing on a mainframe and then binary xfering the
>result is quite likely not to work, for reasons which no-one I know of has
>worked out.  I've never seen any problems though if you ASCII port to the ST
>and then UUDECODE there.

I have had no trouble whatsoever uudecoding on either a VAX or Wicat
system.  Why shouldn't it work?  You are only translating codes to
bytes.  It may be that the version of uudecode doesn't work right.

I always uudecode as early in the transfer process as possible to reduce
the size of files being transferred (I receive mail on a VAX, uucp to my
Wicat, and xmodem to the ST).

pes@bath63.ux63.bath.ac.uk (Paul Smee) (12/19/86)

Well, far as I can see there's no reason that uudecoding on a host, and
transferring to the ST, *shouldn't* work.  However, in practical terms,
it appears to be more likely not to work than transferring to the ST and
then uudecoding -- based on personally observed cases.

Certainly, if you've got a combination that works -- with uudecode on a host
and then port -- then use it, it will be quicker.  However, I'd suggest that
people who have trouble should try the other method of working -- port first,
then uudecode -- as in my experience that's likely to make the problems go
away.

I'm actually a bit suspicious of at least one release of VAX/VMS.  However,
other than telling y'all what I've seen, I'm not going to investigate it.
I don't have the incentive to (because I've got no problems working the way
I do); or the means (don't have a handy VMS, don't have a handy ST<->U**x
connection, so I have to run everything thru my Multics -- Multics uses
36 bit words (9-bit bytes) so that playing with 8-bit binaries on it can
be 'tricky', and in any case doesn't have uudecode).

So, in summary, if what you do works, stick with it, but if you're having
problems consider a change...