home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / pc / doc_net / starter.kit < prev    next >
Text File  |  1991-05-19  |  32KB  |  797 lines

  1.  
  2. [Date of last change 04/16/91 Release 1.7]
  3.  
  4. [Note: 1.6 was never released...]
  5.  
  6.                          UseNet CBIP Starter's Kit
  7.  
  8.    This kit contains what you will need to begin downloading files from
  9. comp.binaries.ibm.pc. This kit contains:
  10.  
  11.         1) Instructions
  12.         2) BASIC source to create UUDECODE.COM
  13.         3) DEBUG script to create UUDECODE.COM
  14.         4) C source for UUDECODE
  15.         5) Documentation for UUDECODE
  16.         6) LOOZ 2.12, ZOO extractor, in uuencoded form
  17.  
  18. You will need:
  19.  
  20.         1) GW-BASIC or DEBUG (from MS-DOS)
  21.         2) File editor
  22.  
  23. What to do:
  24.  
  25. You will need to split this file into 5 parts. Each part is separated by a
  26. line stating "---CUT HERE---" and a short description. Using a text editor,
  27. separate the parts for the BASIC and DEBUG sources and the LOOZ extractor.
  28. If you have a GW-BASIC interpreter, run the UUDECODE.BAS program, which will
  29. create UUDECODE.COM. If you have the MS-DOS DEBUG program, create
  30. UUDECODE.COM by saving the DEBUG script below as UUDECODE.DBG and feeding it
  31. to DEBUG by giving the command
  32.  
  33.         DEBUG < UUDECODE.DBG
  34.  
  35. This will create UUDECODE.COM. You can alternately compile UUDECODE.C.
  36.  
  37. Then use the UUDECODE program to decode LOOZ into executable form by saving
  38. the LOOZ.UUE file and saying
  39.  
  40.         UUDECODE LOOZ.UUE
  41.  
  42. This will create LOOZ212.EXE, which can be used to extract ZOO archives by
  43. specifying
  44.  
  45.         LOOZ212 X FILENAME
  46.  
  47. NOTE: This file is for the purpose of ease of use on any system. Although
  48. other formats (such as shar files) are easier to handle, they present a
  49. problem on the portability between systems.
  50.  
  51. ---CUT HERE--- Save as UUDECODE.BAS and run under GW-BASIC
  52. 100 REM - BASIC PROGRAM TO CREATE UUDECODE.COM v2.0 (a fast uudecoder)
  53. 105 REM UUDECODE.BAS created by w8sdz@WSMR-SIMTEL20.ARMY.MIL (Keith Petersen)
  54. 110 CLS:PRINT "Creating UUDECODE.COM.  See UUDECODE.DOC for instructions."
  55. 115 OPEN "UUDECODE.COM" AS #1 LEN = 1
  56. 120 FIELD #1, 1 AS A$: CHECKSUM#=0
  57. 130 FOR I = 1 TO    73
  58. 140  LINESUM#=0: LOCATE 2,3: PRINT "Countdown: "    73 - I ;
  59. 150  FOR J = 1 TO  16: READ BYTE$: CHECKSUM#=CHECKSUM#+VAL("&H"+BYTE$)
  60. 160   LINESUM#=LINESUM#+VAL("&H"+BYTE$)
  61. 170   IF (BYTE < 256) THEN LSET A$=CHR$(VAL("&H"+BYTE$)): PUT #1
  62. 180  NEXT J
  63. 190  READ LINETOT$: LINECHECK# = VAL("&H"+LINETOT$)
  64. 200  IF LINECHECK# = LINESUM# THEN GOTO 220
  65. 210  LOCATE 4,2: PRINT "Error in line #"  ;  260 +  10 * I: GOTO 260
  66. 220 NEXT I
  67. 230 CLOSE: READ FILETOT$ : FILECHECK# = VAL(FILETOT$)
  68. 240 IF CHECKSUM# <> FILECHECK# THEN GOTO 260
  69. 250 PRINT: PRINT "UUDECODE.COM created successfully": SYSTEM
  70. 260 PRINT: PRINT "UUDECODE.COM is not valid!": END
  71. 270 DATA EB,5F,90,49,6E,70,75,74,20,66,69,6C,65,20,65,72,  6A1
  72. 280 DATA 72,6F,72,2E,4F,75,74,70,75,74,20,66,69,6C,65,20,  5F2
  73. 290 DATA 65,72,72,6F,72,2E,73,74,61,72,74,20,6E,6F,74,20,  617
  74. 300 DATA 66,6F,75,6E,64,2E,45,6E,64,20,6E,6F,74,20,66,6F,  5C7
  75. 310 DATA 75,6E,64,2E,20,65,78,69,73,74,73,2E,20,41,62,6F,  595
  76. 320 DATA 72,74,69,6E,67,21, 0, 0, 0, 0,AC, 3,AC, 3,5C, 3,  402
  77. 330 DATA  0,E8,FA, 1,E8,54, 1,BF,5C, 3,E8,D1, 0,AD,3D,62,  743
  78. 340 DATA 65,75,F4,AD,3D,67,69,75,EE,AD,3D,6E,20,75,E8,BF,  87F
  79. 350 DATA 5C, 3,B4,20,AC,3A,C4,76,FB,AC,3A,C4,75,FB,AC,3A,  84E
  80. 360 DATA C4,76,FB,3A,C4,74, 4,AA,AC,EB,F8,BA,5C, 3,33,C9,  8F9
  81. 370 DATA 88, D,80,3E,60, 1,FF,74,1E,B4,4E,CD,21,3C, 2,74,  5E7
  82. 380 DATA 16,3C,12,74,12,8B,CF,2B,CA,E8,2F, 1,BA,44, 1,B9,  609
  83. 390 DATA 12, 0,B0, 5,E9,16, 1,B4,3C,CD,21,73, 3,E9,E3, 0,  5E7
  84. 400 DATA A3,58, 1,BF,5C, 3,E8,65, 0,AC, A,C0,74,48,BB,20,  674
  85. 410 DATA 20,2A,C3, A,C0,74,3F,32,E4,8B,E8,B9, 4, 6,AC,8A,  70C
  86. 420 DATA E0,AC,8A,D0,2B,C3,D0,E4,D0,E4,D2,E8, A,C4,AA,4D,  ABB
  87. 430 DATA 74,D4,8A,E2,AC,8A,D0,2B,C3,D2,E4,D0,E8,D0,E8, A,  AD8
  88. 440 DATA C4,AA,4D,74,C1,8A,E2,AC,2B,C3,8A,CD,D2,E4, A,C4,  9D1
  89. 450 DATA AA,4D,75,C7,EB,B0,E8,15, 0,AD,3D,65,6E,75, 5,AC,  7AE
  90. 460 DATA 3C,64,74, 3,E8,AE, 0,E8,61, 0,B4,4C,CD,21,8B,36,  6A5
  91. 470 DATA 5A, 1,89,3E,5E, 1,BD,50, 0,BF, C, 3,33,C0,AB,B9,  5B3
  92. 480 DATA 27, 0,B8,20,20,F3,AB,BF, C, 3,3B,36,5C, 1,72, 6,  4D1
  93. 490 DATA E8,38, 0,E8,55, 0,AC,3C,60,75, 4,B0,20,EB, 8,3C,  61D
  94. 500 DATA  D,74,1B,3C, A,74,18,AA,4D,75,DF,3B,36,5C, 1,72,  4F9
  95. 510 DATA  3,E8,37, 0,AC,3C, A,75,F2,BF,5C, 3,EB,B4,46,89,  707
  96. 520 DATA 36,5A, 1,8B,3E,5E, 1,BE, C, 3,C3,BA,5C, 3,8B,CA,  5B7
  97. 530 DATA 87, E,5E, 1,2B,CA,76, A,8B,1E,58, 1,B4,40,CD,21,  54D
  98. 540 DATA 72, 1,C3,BA,14, 1,B9,12, 0,EB,22,BA,AC, 3,B9,54,  653
  99. 550 DATA FA,8B,1E,56, 1,B4,3F,CD,21,72, C, B,C0,74, 8,8B,  62B
  100. 560 DATA F2, 3,C6,A3,5C, 1,C3,BA, 3, 1,B9,11, 0,50,E8, A,  648
  101. 570 DATA  0,58,E9,55,FF,BA,36, 1,B9, E, 0,52,51,BA,3E, 3,  5EB
  102. 580 DATA B9, 2, 0,90,E8, C, 0,59,5A,E8, 7, 0,BA,3E, 3,B9,  595
  103. 590 DATA  2, 0,90,BB, 2, 0,B4,40,CD,21,C3,90, D, A,54,68,  557
  104. 600 DATA 69,73,20,50,72,6F,67,72,61,6D,20,52,65,71,75,69,  5FA
  105. 610 DATA 72,65,73,20,44,4F,53,20,56,65,72,73,69,6F,6E,20,  576
  106. 620 DATA 32,2E,30,20,6F,72,20,68,69,67,68,65,72,2E, D, A,  46D
  107. 630 DATA 24, D, A,49,6E,70,75,74,20,70,61,74,68,2F,66,69,  516
  108. 640 DATA 6C,65,3A,20,20,4E,6F,20,61,63,74,69,6F,6E,B4,30,  58A
  109. 650 DATA CD,21,3C, 2,73, C,BA, C, 3,B4, 9,CD,21,B8, 1,4C,  524
  110. 660 DATA CD,21,E8,46, 0,73,33,BA,68, 4,B9,1B, 1,90,E8,6A,  69F
  111. 670 DATA FF,BA,41, 3,B9,14, 0,BB, 2, 0,B4,40,CD,21,BF,7F,  6A7
  112. 680 DATA  0,C6, 5,50,8B,D7,B4, A,CD,21,E8,1E, 0,73, B,BA,  667
  113. 690 DATA 55, 3,B9, 9, 0,B0, 1,E9,33,FF,BA, 4, 4,B8, 0,3D,  59D
  114. 700 DATA CD,21,72, 4,A3,56, 1,C3,E9,1C,FF,BE,80, 0,BF, 4,  726
  115. 710 DATA  4,FC,AC, A,C0,74,2F,B4,20,AC,3A,C4,76,FB,3A,C4,  806
  116. 720 DATA 76,26,3C,2F,74, 4,3C,2D,75,18,8B,D0,8B, 4,3C,3F,  4DA
  117. 730 DATA 74,1B,24,5F,3D,4F,20,8B,C2,75, 7,F6,16,60, 1,46,  53A
  118. 740 DATA 46,AC,AA,AC,EB,D8,F9,C3,C6, 5, 0,F8,C3,BA,68, 4,  973
  119. 750 DATA E9,66,FF,90,55,55,44,45,43,4F,44,45,20,76,32,2E,  622
  120. 760 DATA 30, 0,4F,72,69,67,69,6E,61,6C,6C,79,20,62,79,20,  565
  121. 770 DATA 54,68,65,6F,64,6F,72,65,20,41,2E,20,4B,61,6C,64,  565
  122. 780 DATA 69,73, 0,54,68,6F,72,6F,75,67,68,6C,79,20,72,65,  608
  123. 790 DATA 68,61,63,6B,65,64,20,62,79,20,44,61,76,69,64,20,  583
  124. 800 DATA 50,20,4B,69,72,73,63,68,62,61,75,6D,2C,20,54,6F,  588
  125. 810 DATA 61,64,20,48,61,6C,6C, 0,55,55,44,45,43,4F,44,45,  4B4
  126. 820 DATA 20,5B,2D,3F,5D,5B,2D,6F,5D,20,5B,64,3A,5D,5B,5C,  4C5
  127. 830 DATA 70,61,74,68,5C,5D,62,69,6E,61,72,79,2E,55,55,45,  608
  128. 840 DATA 20,3C,52,45,54,55,52,4E,3E, D, A,55,73,69,6E,67,  497
  129. 850 DATA 20,74,68,65,20,66,69,6C,65,6E,61,6D,65,2E,74,79,  5DD
  130. 860 DATA 70,20,69,6E,20,74,68,65,20,22,62,65,67,69,6E,22,  531
  131. 870 DATA 20,6C,69,6E,65,2C, D, A,70,72,6F,64,75,63,65,73,  570
  132. 880 DATA 20,75,75,64,65,63,6F,64,65,64,20,66,69,6C,65,6E,  600
  133. 890 DATA 61,6D,65,2E,74,79,70,20,6F,6E,20,63,75,72,72,65,  5FC
  134. 900 DATA 6E,74,20,64,72,69,76,65,5C,70,61,74,68, D, A,28,  564
  135. 910 DATA 70,72,6F,76,69,64,69,6E,67,20,66,69,6C,65,6E,61,  661
  136. 920 DATA 6D,65,2E,74,79,70,20,64,6F,65,73,6E,27,74,20,61,  5B2
  137. 930 DATA 6C,72,65,61,64,79,20,65,78,69,73,74,29,2E, D, A,  53C
  138. 940 DATA 2D,6F,20,73,77,69,74,63,68,20,66,6F,72,63,65,73,  5F0
  139. 950 DATA 20,6F,76,65,72,77,72,69,74,65,20,6F,66,20,65,78,  5F9
  140. 960 DATA 69,73,74,69,6E,67,20,66,69,6C,65,6E,61,6D,65,2E,  61D
  141. 970 DATA 74,79,70, D, A,2D,3F,20,70,72,6F,64,75,63,65,73,  565
  142. 980 DATA 20,74,68,69,73,20,68,65,6C,70,20,6D,65,73,73,61,  5DA
  143. 990 DATA 67,65,2E, D, A,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  135
  144. 1000 DATA 114365
  145. ---CUT HERE--- Save as UUDECODE.DBG and feed to DEBUG
  146. e 0100
  147. EB 5F 90 49 6E 70 75 74 20 66 69 6C 65 20 65 72
  148. e 0110
  149. 72 6F 72 2E 4F 75 74 70 75 74 20 66 69 6C 65 20
  150. e 0120
  151. 65 72 72 6F 72 2E 73 74 61 72 74 20 6E 6F 74 20
  152. e 0130
  153. 66 6F 75 6E 64 2E 45 6E 64 20 6E 6F 74 20 66 6F
  154. e 0140
  155. 75 6E 64 2E 20 65 78 69 73 74 73 2E 20 41 62 6F
  156. e 0150
  157. 72 74 69 6E 67 21 00 00 00 00 AC 03 AC 03 5C 03
  158. e 0160
  159. 00 E8 FA 01 E8 54 01 BF 5C 03 E8 D1 00 AD 3D 62
  160. e 0170
  161. 65 75 F4 AD 3D 67 69 75 EE AD 3D 6E 20 75 E8 BF
  162. e 0180
  163. 5C 03 B4 20 AC 3A C4 76 FB AC 3A C4 75 FB AC 3A
  164. e 0190
  165. C4 76 FB 3A C4 74 04 AA AC EB F8 BA 5C 03 33 C9
  166. e 01A0
  167. 88 0D 80 3E 60 01 FF 74 1E B4 4E CD 21 3C 02 74
  168. e 01B0
  169. 16 3C 12 74 12 8B CF 2B CA E8 2F 01 BA 44 01 B9
  170. e 01C0
  171. 12 00 B0 05 E9 16 01 B4 3C CD 21 73 03 E9 E3 00
  172. e 01D0
  173. A3 58 01 BF 5C 03 E8 65 00 AC 0A C0 74 48 BB 20
  174. e 01E0
  175. 20 2A C3 0A C0 74 3F 32 E4 8B E8 B9 04 06 AC 8A
  176. e 01F0
  177. E0 AC 8A D0 2B C3 D0 E4 D0 E4 D2 E8 0A C4 AA 4D
  178. e 0200
  179. 74 D4 8A E2 AC 8A D0 2B C3 D2 E4 D0 E8 D0 E8 0A
  180. e 0210
  181. C4 AA 4D 74 C1 8A E2 AC 2B C3 8A CD D2 E4 0A C4
  182. e 0220
  183. AA 4D 75 C7 EB B0 E8 15 00 AD 3D 65 6E 75 05 AC
  184. e 0230
  185. 3C 64 74 03 E8 AE 00 E8 61 00 B4 4C CD 21 8B 36
  186. e 0240
  187. 5A 01 89 3E 5E 01 BD 50 00 BF 0C 03 33 C0 AB B9
  188. e 0250
  189. 27 00 B8 20 20 F3 AB BF 0C 03 3B 36 5C 01 72 06
  190. e 0260
  191. E8 38 00 E8 55 00 AC 3C 60 75 04 B0 20 EB 08 3C
  192. e 0270
  193. 0D 74 1B 3C 0A 74 18 AA 4D 75 DF 3B 36 5C 01 72
  194. e 0280
  195. 03 E8 37 00 AC 3C 0A 75 F2 BF 5C 03 EB B4 46 89
  196. e 0290
  197. 36 5A 01 8B 3E 5E 01 BE 0C 03 C3 BA 5C 03 8B CA
  198. e 02A0
  199. 87 0E 5E 01 2B CA 76 0A 8B 1E 58 01 B4 40 CD 21
  200. e 02B0
  201. 72 01 C3 BA 14 01 B9 12 00 EB 22 BA AC 03 B9 54
  202. e 02C0
  203. FA 8B 1E 56 01 B4 3F CD 21 72 0C 0B C0 74 08 8B
  204. e 02D0
  205. F2 03 C6 A3 5C 01 C3 BA 03 01 B9 11 00 50 E8 0A
  206. e 02E0
  207. 00 58 E9 55 FF BA 36 01 B9 0E 00 52 51 BA 3E 03
  208. e 02F0
  209. B9 02 00 90 E8 0C 00 59 5A E8 07 00 BA 3E 03 B9
  210. e 0300
  211. 02 00 90 BB 02 00 B4 40 CD 21 C3 90 0D 0A 54 68
  212. e 0310
  213. 69 73 20 50 72 6F 67 72 61 6D 20 52 65 71 75 69
  214. e 0320
  215. 72 65 73 20 44 4F 53 20 56 65 72 73 69 6F 6E 20
  216. e 0330
  217. 32 2E 30 20 6F 72 20 68 69 67 68 65 72 2E 0D 0A
  218. e 0340
  219. 24 0D 0A 49 6E 70 75 74 20 70 61 74 68 2F 66 69
  220. e 0350
  221. 6C 65 3A 20 20 4E 6F 20 61 63 74 69 6F 6E B4 30
  222. e 0360
  223. CD 21 3C 02 73 0C BA 0C 03 B4 09 CD 21 B8 01 4C
  224. e 0370
  225. CD 21 E8 46 00 73 33 BA 68 04 B9 1B 01 90 E8 6A
  226. e 0380
  227. FF BA 41 03 B9 14 00 BB 02 00 B4 40 CD 21 BF 7F
  228. e 0390
  229. 00 C6 05 50 8B D7 B4 0A CD 21 E8 1E 00 73 0B BA
  230. e 03A0
  231. 55 03 B9 09 00 B0 01 E9 33 FF BA 04 04 B8 00 3D
  232. e 03B0
  233. CD 21 72 04 A3 56 01 C3 E9 1C FF BE 80 00 BF 04
  234. e 03C0
  235. 04 FC AC 0A C0 74 2F B4 20 AC 3A C4 76 FB 3A C4
  236. e 03D0
  237. 76 26 3C 2F 74 04 3C 2D 75 18 8B D0 8B 04 3C 3F
  238. e 03E0
  239. 74 1B 24 5F 3D 4F 20 8B C2 75 07 F6 16 60 01 46
  240. e 03F0
  241. 46 AC AA AC EB D8 F9 C3 C6 05 00 F8 C3 BA 68 04
  242. e 0400
  243. E9 66 FF 90 55 55 44 45 43 4F 44 45 20 76 32 2E
  244. e 0410
  245. 30 00 4F 72 69 67 69 6E 61 6C 6C 79 20 62 79 20
  246. e 0420
  247. 54 68 65 6F 64 6F 72 65 20 41 2E 20 4B 61 6C 64
  248. e 0430
  249. 69 73 00 54 68 6F 72 6F 75 67 68 6C 79 20 72 65
  250. e 0440
  251. 68 61 63 6B 65 64 20 62 79 20 44 61 76 69 64 20
  252. e 0450
  253. 50 20 4B 69 72 73 63 68 62 61 75 6D 2C 20 54 6F
  254. e 0460
  255. 61 64 20 48 61 6C 6C 00 55 55 44 45 43 4F 44 45
  256. e 0470
  257. 20 5B 2D 3F 5D 5B 2D 6F 5D 20 5B 64 3A 5D 5B 5C
  258. e 0480
  259. 70 61 74 68 5C 5D 62 69 6E 61 72 79 2E 55 55 45
  260. e 0490
  261. 20 3C 52 45 54 55 52 4E 3E 0D 0A 55 73 69 6E 67
  262. e 04A0
  263. 20 74 68 65 20 66 69 6C 65 6E 61 6D 65 2E 74 79
  264. e 04B0
  265. 70 20 69 6E 20 74 68 65 20 22 62 65 67 69 6E 22
  266. e 04C0
  267. 20 6C 69 6E 65 2C 0D 0A 70 72 6F 64 75 63 65 73
  268. e 04D0
  269. 20 75 75 64 65 63 6F 64 65 64 20 66 69 6C 65 6E
  270. e 04E0
  271. 61 6D 65 2E 74 79 70 20 6F 6E 20 63 75 72 72 65
  272. e 04F0
  273. 6E 74 20 64 72 69 76 65 5C 70 61 74 68 0D 0A 28
  274. e 0500
  275. 70 72 6F 76 69 64 69 6E 67 20 66 69 6C 65 6E 61
  276. e 0510
  277. 6D 65 2E 74 79 70 20 64 6F 65 73 6E 27 74 20 61
  278. e 0520
  279. 6C 72 65 61 64 79 20 65 78 69 73 74 29 2E 0D 0A
  280. e 0530
  281. 2D 6F 20 73 77 69 74 63 68 20 66 6F 72 63 65 73
  282. e 0540
  283. 20 6F 76 65 72 77 72 69 74 65 20 6F 66 20 65 78
  284. e 0550
  285. 69 73 74 69 6E 67 20 66 69 6C 65 6E 61 6D 65 2E
  286. e 0560
  287. 74 79 70 0D 0A 2D 3F 20 70 72 6F 64 75 63 65 73
  288. e 0570
  289. 20 74 68 69 73 20 68 65 6C 70 20 6D 65 73 73 61
  290. e 0580
  291. 67 65 2E 0D 0A 24
  292.  
  293. r cx
  294. 0486
  295. n uudecode.com
  296. w
  297. q
  298. ---CUT HERE--- Save as UUDECODE.C and compile
  299. /*
  300.  * Copyright (c) 1983 Regents of the University of California.
  301.  * All rights reserved.
  302.  *
  303.  * Redistribution and use in source and binary forms are permitted
  304.  * provided that the above copyright notice and this paragraph are
  305.  * duplicated in all such forms and that any documentation,
  306.  * advertising materials, and other materials related to such
  307.  * distribution and use acknowledge that the software was developed
  308.  * by the University of California, Berkeley.  The name of the
  309.  * University may not be used to endorse or promote products derived
  310.  * from this software without specific prior written permission.
  311.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  312.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  313.  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  314.  */
  315.  
  316. /*
  317.  * Modified 12 April 1990 by Mark Adler for use on MSDOS systems with
  318.  * Microsoft C and Turbo C.
  319.  *
  320.  * Modifed 13 February 1991 by Greg Roelofs for use on VMS systems.  As
  321.  * with the MS-DOS version, the setting of the file mode has been disabled.
  322.  * Compile and link normally (but note that the shared-image link option
  323.  * produces a binary only 6 blocks long, as opposed to the 137-block one
  324.  * produced by an ordinary link).  To set up the VMS symbol to run the
  325.  * program ("run uudecode filename" won't work), do:
  326.  *        uudecode :== "$disk:[directory]uudecode.exe"
  327.  * and don't forget the leading "$" or it still won't work.  The binaries
  328.  * produced by this program are in VMS "stream-LF" format; this makes no
  329.  * difference to VMS when running decoded executables, nor to VMS unzip,
  330.  * but other programs such as zoo or arc may or may not require the file
  331.  * to be "BILFed" (or "unBILFed" or whatever).  Also, unlike the other
  332.  * flavors, VMS files don't get overwritten (a higher version is created).
  333.  */
  334.  
  335. #ifndef lint
  336. static char sccsid[] = "@(#)uudecode.c    5.5 (Berkeley) 7/6/88";
  337. #endif /* not lint */
  338.  
  339. #ifdef __MSDOS__        /* For Turbo C */
  340. #define MSDOS 1
  341. #endif
  342.  
  343. /*
  344.  * uudecode [input]
  345.  *
  346.  * create the specified file, decoding as you go.
  347.  * used with uuencode.
  348.  */
  349. #include <stdio.h>
  350.  
  351. #ifdef VMS
  352. #  include <types.h>
  353. #  include <stat.h>
  354. #else
  355. #  ifndef MSDOS            /* i.e., UNIX */
  356. #    include <pwd.h>
  357. #  endif
  358. #  include <sys/types.h>   /* MSDOS or UNIX */
  359. #  include <sys/stat.h>
  360. #endif
  361.  
  362. /* single-character decode */
  363. #define DEC(c)    (((c) - ' ') & 077)
  364.  
  365. main(argc, argv)
  366. char **argv;
  367. {
  368.     FILE *in, *out;
  369.     int mode;
  370.     char dest[128];
  371.     char buf[80];
  372.  
  373.     /* optional input arg */
  374.     if (argc > 1) {
  375.         if ((in = fopen(argv[1], "r")) == NULL) {
  376.             perror(argv[1]);
  377.             exit(1);
  378.         }
  379.         argv++; argc--;
  380.     } else
  381.         in = stdin;
  382.  
  383.     if (argc != 1) {
  384.         printf("Usage: uudecode [infile]\n");
  385.         exit(2);
  386.     }
  387.  
  388.     /* search for header line */
  389.     for (;;) {
  390.         if (fgets(buf, sizeof buf, in) == NULL) {
  391.             fprintf(stderr, "No begin line\n");
  392.             exit(3);
  393.         }
  394.         if (strncmp(buf, "begin ", 6) == 0)
  395.             break;
  396.     }
  397.     (void)sscanf(buf, "begin %o %s", &mode, dest);
  398.  
  399. #if !defined(MSDOS) && !defined(VMS)    /* i.e., UNIX */
  400.     /* handle ~user/file format */
  401.     if (dest[0] == '~') {
  402.         char *sl;
  403.         struct passwd *getpwnam();
  404.         struct passwd *user;
  405.         char dnbuf[100], *index(), *strcat(), *strcpy();
  406.  
  407.         sl = index(dest, '/');
  408.         if (sl == NULL) {
  409.             fprintf(stderr, "Illegal ~user\n");
  410.             exit(3);
  411.         }
  412.         *sl++ = 0;
  413.         user = getpwnam(dest+1);
  414.         if (user == NULL) {
  415.             fprintf(stderr, "No such user as %s\n", dest);
  416.             exit(4);
  417.         }
  418.         strcpy(dnbuf, user->pw_dir);
  419.         strcat(dnbuf, "/");
  420.         strcat(dnbuf, sl);
  421.         strcpy(dest, dnbuf);
  422.     }
  423. #endif    /* !defined(MSDOS) && !defined(VMS) */
  424.  
  425.     /* create output file */
  426. #ifdef MSDOS
  427.     out = fopen(dest, "wb");    /* Binary file */
  428. #else
  429.     out = fopen(dest, "w");
  430. #endif
  431.     if (out == NULL) {
  432.         perror(dest);
  433.         exit(4);
  434.     }
  435. #if !defined(MSDOS) && !defined(VMS)    /* i.e., UNIX */
  436.     chmod(dest, mode);
  437. #endif
  438.  
  439.     decode(in, out);
  440.  
  441.     if (fgets(buf, sizeof buf, in) == NULL || strcmp(buf, "end\n")) {
  442.         fprintf(stderr, "No end line\n");
  443.         exit(5);
  444.     }
  445.     exit(0);
  446. }
  447.  
  448. /*
  449.  * copy from in to out, decoding as you go along.
  450.  */
  451. decode(in, out)
  452. FILE *in;
  453. FILE *out;
  454. {
  455.     char buf[80];
  456.     char *bp;
  457.     int n;
  458.  
  459.     for (;;) {
  460.         /* for each input line */
  461.         if (fgets(buf, sizeof buf, in) == NULL) {
  462.             printf("Short file\n");
  463.             exit(10);
  464.         }
  465.         n = DEC(buf[0]);
  466.         if (n <= 0)
  467.             break;
  468.  
  469.         bp = &buf[1];
  470.         while (n > 0) {
  471.             outdec(bp, out, n);
  472.             bp += 4;
  473.             n -= 3;
  474.         }
  475.     }
  476. }
  477.  
  478. /*
  479.  * output a group of 3 bytes (4 input characters).
  480.  * the input chars are pointed to by p, they are to
  481.  * be output to file f.  n is used to tell us not to
  482.  * output all of them at the end of the file.
  483.  */
  484. outdec(p, f, n)
  485. char *p;
  486. FILE *f;
  487. {
  488.     int c1, c2, c3;
  489.  
  490.     c1 = DEC(*p) << 2 | DEC(p[1]) >> 4;
  491.     c2 = DEC(p[1]) << 4 | DEC(p[2]) >> 2;
  492.     c3 = DEC(p[2]) << 6 | DEC(p[3]);
  493.     if (n >= 1)
  494.         putc(c1, f);
  495.     if (n >= 2)
  496.         putc(c2, f);
  497.     if (n >= 3)
  498.         putc(c3, f);
  499. }
  500.  
  501. /*
  502.  * Return the ptr in sp at which the character c appears;
  503.  * NULL if not found
  504.  */
  505.  
  506. #define    NULL    0
  507.  
  508. char *
  509. index(sp, c)
  510. register char *sp, c;
  511. {
  512.     do {
  513.         if (*sp == c)
  514.             return(sp);
  515.     } while (*sp++);
  516.     return(NULL);
  517. }
  518.  
  519. ---CUT HERE--- Save as UUDECODE.DOC and read
  520.  
  521.             UUDECODE.DOC
  522.    by David Kirschbaum <kirsch%maxemail@peo-mis-emh1.army.mil>
  523.  
  524. UUDECODE uudecodes uuencoded files to original binary form.  It is
  525. compatible with the Unix (and other) uuencode/uudecode utilities.
  526.  
  527. Usage:
  528.  
  529.           UUDECODE<RETURN>
  530.     Displays usage message, prompts for input file name.
  531.  
  532.           UUDECODE [-o ][d:][\path\]filename.uue
  533.     Produces a uudecoded file, with the filename taken from
  534.     within the uuencoded file (which might include a path),
  535.     (provided the filename doesn't exist.  Use the "-o"
  536.     (or "/o") switch to force overwriting of any existing
  537.     output file.)
  538.  
  539.           UUDECODE /?  (or -?)
  540.     Writes a brief help screen to STDOUT and terminates.
  541.  
  542. Notes:
  543.  
  544. UUDECODE checks for existing files with the same name as the newly
  545. created output file.  It will produce an error message and abort if it
  546. finds one!  (Use the "-o" switch to force overwriting existing files.)
  547.  
  548. UUDECODE will accept an input path\filename up to 80 chars long, and will
  549. prompt if none is specified.
  550.  
  551. A uudecoded filename is taken from the uuencoded source file and is
  552. written to the current directory (or to the path included in the file
  553. header).
  554.  
  555. Input files may be any length.
  556.  
  557. Uuencoded file headers (mailing headers, etc.) need not be removed.
  558. However, any spurious lines between the "begin" and "end" lines MUST
  559. be removed.
  560.  
  561. Anything beyond the "end" line is ignored.  If no "end" is found, the
  562. output file is saved, but an error message is displayed.
  563.  
  564. Certain uuencoders append a "checksum" character to the end of each
  565. uuencoded line.  UUDECODE ignores these.
  566.  
  567. Uuencoded files generated or moved through a Unix system may have LF
  568. (ASCII 10) line endings instead of the DOS-convention CR/LF (ASCII
  569. 13/10) endings.  UUDECODE will handle those LF ends of line as well.
  570. you MAY get a "end not found" message, but the uudecoded file will be
  571. intact.
  572.  
  573. Certain systems and mailers will strip off trailing spaces on lines.
  574. UUDECODE attempts to replace them.
  575.  
  576. ---CUT HERE--- Save as LOOZ.UUE and use UUDECODE
  577. begin 644 looz212.exe
  578. M35K&`1,`#0`@`$H$__]^!H``````````(@````$`^Q!R:@$```"5"```>`@`
  579. M`"((```5"```#@@``-<'``##!P``8A(``+8/``#=&0``YAL``.T;````````
  580. M````````````````````````````````````````````````````````````
  581. M````````````````````````````````````````````````````````````
  582. M````````````````````````````````````````````````````````````
  583. M````````````````````````````````````````````````````````````
  584. M````````````````````````````````````````````````````````````
  585. M````````````````````````````````````````````````````````````
  586. M````````````````````````````````````````````````````````````
  587. M````````````````````````````````````````````````````````````
  588. M````````````````````````````````````````````````````````````
  589. M``````````````````````"Z\P$NB1:Z`+0PS2&++@(`BQXL`([:HS``C`8N
  590. M`(D>*@")+D(`QP8T`/__BSYX`+L``3O[=P*+^XO?C-J!P[!(<A"_`!"Q!-/K
  591. M0ROJA]\[[W<#ZU60B]\#VHD>.@")'CX`T^>.THOGZ%@`,\`NC@:Z`+^6!+FP
  592. M2"O/\ZK_-B8`_S8D`/\V(@#HJ`10Z*D;+HX>N@"+[(I&`K1,S2&T0+L"`"Z.
  593. M'KH`S2'#N1X`D+H``.CI_[@#`%#HU/\``````````"Z/!KP`+HP>O@#\C@8N
  594. M`+Z``#/`B]B+T(O()JR+_I,FB`%#A]GH%0!W!W(_Z`X`=_D\('0$/`EU[#+`
  595. MZ^@+P'0'0JH*P'4!0X;@,L#YXQ@FK$DL(G01!"(\7'4))H`\(G4#)JQ)"_;#
  596. MZ7S_C,6+-B@`@\8"N0$`0XD>(@!#B\$#P@/;!0$`)?[_`]B+_"OX*^.'W8OL
  597. MB28D`(S0CL")?@"#Q0*.'BH`2?.D,L"JCMN'RKZ!`.,.B7X`@\4"K`K`JN#Z
  598. M=/`SP(E&`"Z.'KX`+O\FO`!5B^Q75K0+S2&AJB:+?@2+3@;C&BK_BM@R'='C
  599. MBY>J)"K_BMPSVHO#1^+IHZHF7E^+Y5W#M#_K!I"T0.L!D%6+[%=6BUX$BU8&
  600. MBTX(S2%S`[C__UY?B^5=P[0\N0``ZP>0N``]ZP&058OL5U:+5@2+VLTAZ]FT
  601. M/NONN`%7Z\"X`$+KN[1!Z^"T`NO<M`'KV+0:Z]15B^Q75HM6!+D``,TAN```
  602. MZZFT3NOJM$_KYHOLBT8"M$S-(5&+S^@8`EG'!FL```##58OL5U8>B2Y%`(S;
  603. MCL.+1@2C20"+1@:C2P#H"P"++D4`'UY?B^5=PXDF1P#'!ED`"0#'!EL```+'
  604. M!E4``@''!E<```#'!FD```#'!FL```"+'DD`BQ9V`+D`(+0_S2%S`^L:D.@4
  605. M`3T!`74A@SYK``!T!XL.:P#HE@$SP,.X`@"+)D<`P[@!`(LF1P##/0`!=2_H
  606. M5P'HXP"C3P"C40"B7@"B70"@7@"+/FL`@?\`('(%Z#[_*_\#/G0`JO\&:P#K
  607. MHZ-/`*-3`(X&30`[!E4`<A&A40"C3P"@70!0_P97`*%/`#W_`'89B]B+Z]'C
  608. M`]TFBD<"4/\&5P`FBP>C3P#KXHS8CL"A3P"B70"B7@!0BPY7`$&)#E<`XQ]8
  609. MBSYK`('_`"!R!>C+_BO_`SYT`*K_!FL`XN6)#E<`BQY5`(OKT>,#W0:.!DT`
  610. MH%X`)HA'`J%1`":)!P?_!E4`H5,`HU$`BQY5`#L>6P!R#X,^60`-=`C_!ED`
  611. MT29;`.GI_J%I`(O0`P99`*-I`(O"T>C1Z-'H@>('`#W]'W(P4@,660")%FD`
  612. MN0`@B^@KR`,&=@"+\(L^=@#SI(L>20"+UXO-M#_-(7,#Z;C^,\!:`P9V`(OP
  613. MK8O8K(O*XP;0Z-';XOJ+PXL>60"#ZPG1XR.'7P##QP99``D`QP9;```"QP95
  614. M``(!PU!345)04N@T_8/$!%I96UC#4%-14E97!E%1_S9T`/\V2P#H<`2#Q`99
  615. M.\%T`^E._HL6=`#HR?_'!FL````'7UY:65M8PU6+[$Q,N`$`4(U&_E#_=@3H
  616. M&?V#Q`:*1OZ8B^5=PU9758OL@^P$BW8(OP$`@WPD`'1<_W0B_W0@_W8*Z#C]
  617. M@\0&QT;\``#K,O]V"NBR_UF(1O\+_W0(N&X`4.BP`%G_=O_H&_U9@'[_"G4*
  618. ML`U0Z`[]64?K`C/__T;\BT0D.T;\=\8+_W4(N'$`4.B``%F+Y5U?7L/#5E=5
  619. MB^Q,3(M^"HMV"(/^`WQ0BT4"B4;^B]B`/VQT#HO8@#]X=`>+V(`_='4UBU[^
  620. M@#]X=0N`?P%X=06#_@1\(NCW`XO'!08`4(O&!?W_4/]V_O]U!.A`!8/$"#/`
  621. M4.BO_%FX>@!0Z`\`6;@!`%#HG_Q9B^5=7U[#5E6+[(MV!@OV=!!6Z`H965!6
  622. MN`$`4.@+_(OE75[#58OL@'X$974*N(L!4.C2_UGK#H!^!&9U"+B4`5#HPO]9
  623. M_W8&Z+O_6?]V".BT_UG_=@KHK?]9@'X$9G4(N`$`4.@W_%E=PU95B^R#?@P`
  624. M?0/I=0!_!H-^"@!V;8-^#`!\#G\'@7X*`"!V!;X`(.L#BW8*BU8,BT8*4E"+
  625. MQIE;62O8&\J)3@R)7@I6N*PF4/]V!NAM^XOE.\9T!;@#`.LK5KBL)E#H)ON+
  626. MY8-^"/YTFU:XK"90_W8(Z&L"B^4[QG4#Z8?_N`(`ZP(SP%U>PU9758OL@^P$
  627. MBWX,QT;\`0#'1OX``#/VZT*+WM'CBQF`/UYT!\=&_```ZQB+WM'CBP%`4/]V
  628. M".@S`%E9"\!T!#/`ZR.+WM'C_S'_=@CH'0!960O`=`7'1OX!`$8[=@I\N8M&
  629. M_@M&_(OE75]>PU9758OL@^P&BWX*BW8(B7;^ZQ&+7O[_-^BS`5F+7OZ(!_]&
  630. M_HM>_H`_`'7GB7[^ZQ&+7O[_-^B5`5F+7OZ(!_]&_HM>_H`_`'7G,\")1OR)
  631. M1OKK#(`\`'4%N`$`ZS]'1HH%.@1T[H`\`'0)@#T_=01'1NOL@#TJ=0E'B7[Z
  632. MB7;\Z]Z#?OP`=!.+7OR`/P!T"_]&_(MV_(M^^NO%,\"+Y5U?7L-658OL@WX(
  633. M`'PS?P>!?@80)W8JBU8(BT8&N00`FL4=``")5@B)1@:+5@R+1@JY!`":Q1T`
  634. M`(E6#(E&"NO'BT8&"T8(=00S]NLY,]*X"@!24/]V"/]V!HM6"(M&!BM&"AM6
  635. M##/)N^@#FNL=``!24)HW'0``!04`@](`4E":-QT``(OPB\9=7L-65U6+[$Q,
  636. MBWX0,_;K"8I&"(M>#H@`1COW?/.+1@X#QTB)1OZ+V,8'`/]._HOW3H-^#`!\
  637. M3G4&@WX*`')&,]*X"@!24/]V#/]V"IHO'0``@,`PBU[^B`?_3OXSTK@*`%)0
  638. M_W8,_W8*FC<=``")5@R)1@I."\)T!`OV=;2+1@H+1@QT&#/VZP>+7@[&`"I&
  639. M._=\]8O?`UX.QD?_`(M&#HOE75]>PU6+[(!^!$%\#X!^!%I_"8I&!)@%(`#K
  640. M!(I&!)A=PU9758OLBWX,@WX(_G0?@WX(_74=,_;K$8M>"HH`Q![`1B:(!_\&
  641. MP$9&._=\ZXO'ZPQ7_W8*_W8(Z*;XB^5=7U[#5E=5B^Q,3(M^"#/VT>?'1OX(
  642. M`.L;T>^+QS/&J0$`=`N+QM'H-0&@B_#K`M'N_T[^@W[^`'_?B\:+Y5U?7L-6
  643. M,_;K#E;HN?]9B][1XXF'JB1&@?X``7+L7L-65U6+[$Q,BW8,BWX*@WX(`'4=
  644. M5XO&NE``]^(%RD=0Z/8465F+WM'CQX<F1P$`ZV6+QKHP`/?B!<9&4.A?^%F+
  645. MWM'C@[\F1P!T%(O&NE``]^(%RD=0Z%OX68E&_NL&Z%;XB4;^@W[^_W4OB][1
  646. MXX._)D<`=!:+WM'CQX<F1P``B\:Z4`#WX@7*1^M)B][1X\>')D<``#/`ZSN+
  647. MWM'CQX<F1P``B\:Z4`#WX@4J1U"+QKI0`/?B!<I'4(O&NC``]^(%QD90Z!,`
  648. M@\0&B\:Z4`#WX@4J1XOE75]>PU9758OL@^P$BWX,_W8*5^@L%%E95^A*%%F)
  649. M1OR+\$X+]GP8B]Z`.2]T$8O>@#E<=`J+WH`Y.G0#3NODB\9`B4;^,_;K$(M>
  650. M"`/>BD<>BU[^`]Z(`4:#_@U\ZXM>_@/?QD<-`(OE75]>PU9758OL@>R^`8MV
  651. M"L>&%O\``,>&&/\``,9&W0#'1OP``,=&_@``@#QX=5*`?`%P=07'1OP!`(!\
  652. M`7AU0;@!`(E&_HE&_(M>#O\WC89<_U#H@Q-968M>#O\WC4:<4.AU$UE9N)P"
  653. M4(V&7/]0Z$(365FXH0)0C4:<4.@U$UE9_W8(C88<_U#H31-968V&'/]0Z&<3
  654. M68OXC88<_P/XC88<_SO'=!*`/2YT#8`]+W0(@#U<=`-/Z^:`/2YT#KBF`E"-
  655. MAAS_4.CJ$EE9C88<_XE&",=&\```QT;N```STHO"B5;LB4;JB4;ZB4;XBQXN
  656. M`([#B]@FBT<"HVQ(H2X`HVI(C-"C:DB+_(O'!0\`N00`T^@%*``!!FI(BQ9J
  657. M2(O#B1;"1J/`1J%L2"O"HVY(B\-0_W8(4.B(_8/$!C/`4%"X`0!0Z'K]@\0&
  658. MB88:_PO`=0/I!`G'AK3^``#'1MX``(U&"%"X`0!0_[8:_^A@^H/$!@O`=0;_
  659. M1M[IP`C'1N`!`,=&Z```QT;F```STHO"B5;DB4;BB4;V_[8:_^B1]5F)AK;^
  660. M/?__=1BXNP)0_[8:_[BL`E"P95#H1_F#Q`CIH@#_1OB#?OX`=16XR0)0_[8:
  661. M_[B^`E"P;5#H)OF#Q`BX(@!0C8:^_E#_MK;^Z!3U@\0&@;[2_MRG=0B!OM3^
  662. MQ/UT$S/`4%"XS0)0L&50Z/+X@\0(ZT;_MMC^_[;6_O^VMO[H*?6#Q`:X,P!0
  663. MC8;B_E#_MK;^Z,ST@\0&@;[B_MRG=0B!ON3^Q/UT(#/`4%"XWP)0L&50Z*KX
  664. M@\0(_[:V_NCB]%G_AAC_Z6D'BX;H_@N&ZOYU`^E4!XN6ZOZ+ANC^B9:\_HF&
  665. MNOZ#?OX`=#*`O@#_`'0#Z1\'C89<_U"-A@C_4.B7^5E9"\!U+8U&G%"-A@C_
  666. M4.B%^5E9"\!U&^GW!O]V#O]V#(V&"/]0Z`+Y@\0&"\!U`^G?!O]&WH`\;'0#
  667. MZ7`#@'P!9G4%N`$`ZP(SP(A&W8!^W0!T9,:&9/X`BX:T_O^&M/Z[!0"9]_L+
  668. MTG44@W[@`'4.N+L"4(V&9/Y0Z+@065F-A@C_4(V&9/Y0Z(0065F-A@C_4.C#
  669. M$%FZ#0`KT%*X]@)0C89D_E#HS1"#Q`:-AF3^4.B,]UGI[@*+5NR+1NH#AO;^
  670. M$Y;X_HE6[(E&ZHM6\(M&[@.&^OX3EOS^B5;PB4;N_T;Z_T;VBU;DBT;B`X;V
  671. M_A.6^/Z)5N2)1N*+5NB+1N8#AOK^$Y;\_HE6Z(E&YHN&\/ZY"0#3Z"5_`(F&
  672. M6/Z+AO#^N04`T^@E#P")AEK^BX;P_B4?`(F&7/Z+AO+^N0L`T^@E'P")AE[^
  673. MBX;R_KD%`-/H)3\`B89@_HN&\OXE'P#1X(F&8OZ#?N``=!"XS@%0Z,WV6;CW
  674. M`5#HQ?99_[;\_O^V^O[_MOC^_[;V_N@Y!X/$"+@``U"-AF3^4.B7#UE9N`,`
  675. M4(V&1/Y0BX9<_IE24+@@`%#H"OF#Q`I0C89D_E#H30]96;BY`E"-AF3^4.@_
  676. M#UE9C89D_E#H?@]9B_B-AF3^`_B+AEK^N@,`]^(#!LP!B89"_HO8B@>(!4?_
  677. MAD+^BYY"_HH'B`5'_X9"_HN>0OZ*!X@%1_^&0O[&!2!'Q@4`@[Y<_@!T/X.^
  678. M6OX`=#BX`P!0C89$_E`STKAD`%)0BX98_@50`)E24)HO'0``4E"X(`!0Z&KX
  679. M@\0*4(V&9/Y0Z*T.65GK(K@#`%"-AD3^4#/`4%"X(`!0Z$;X@\0*4(V&9/Y0
  680. MZ(D.65FXN0)0C89D_E#H>PY96;@#`%"-AD3^4(N&7OZ94E"X,`!0Z!/X@\0*
  681. M4(V&9/Y0Z%8.65FX`P-0C89D_E#H2`Y96;@#`%"-AD3^4(N&8/Z94E"X,`!0
  682. MZ.#W@\0*4(V&9/Y0Z",.65FX`P-0C89D_E#H%0Y96;@#`%"-AD3^4(N&8OZ9
  683. M4E"X,`!0Z*WW@\0*4(V&9/Y0Z/`-65F#O@;_`'00N`4#4(V&9/Y0Z-L-65GK
  684. M#KBY`E"-AF3^4.C+#5E9@+X`_P!T$+@'`U"-AF3^4.BV#5E9ZPZX``-0C89D
  685. M_E#HI@U968V&"/]0C89D_E#HEPU96;B[`E"-AF3^4.B)#5E9C89D_E#HK_19
  686. M@'P!8W4._[:V_HV&XOY0Z*WS65G'1N```.ED`X"^_OX!?PZ`OO[^`74@@+[_
  687. M_@!^&;B[`E"-A@C_4+B>`5"P95#HB/2#Q`CI-@.-A@C_4.B'!%F`/'1U`^FE
  688. M`(.^%O\`=`/IFP"#?OP`=`/ID@"-A@C_4.B$\%F)AKC^/?__=0/I?0!0Z(?P
  689. M6;@5`U"-A@C_4+@*`U"P;5#H,?2#Q`CH@_"(AK/^B(:R_H"^L_X-=`GH<?"(
  690. MAK/^Z_"P"E#H8?!9@+ZR_GET#H"^LOYN=`>`OK+^876S@+ZR_F%U!/^&%O^`
  691. MOK+^;G49N+L"4(V&"/]0N"4#4+!M4.C2\X/$".F``H`\='4)QX:X_O[_Z:0`
  692. M@W[\`'4#Z8X`@W[^`'4#Z7T`H6Y(,]*)5O2)1O*`ON?^`74.!>SY@]+_B5;T
  693. MB4;RZQ*+5O2+1O(%!O^#TO^)5O2)1O*+EOC^BX;V_@4/`(/2`+D$`)K%'0``
  694. M.U;T?Q=U!3M&\G<0@[[X_@%R&G<'@[[V_@!V$3/`4%"X+P-0L&90Z#KS@\0(
  695. MQX:X_OW_ZQ7'AKC^`0#K#8V&"/]0Z$7O68F&N/Z#OKC^_W49N$4#4(V&"/]0
  696. MN*P"4+!E4.@`\X/$".F;`?^V[O[_MNS^_[:V_N@V[X/$!L<&JB8``(-^_@!U
  697. M/(V&"/]0Z+;R68-^_`!T"KC)`E#HJ/)9ZR.-A@C_4.BV"UF+^.L)N+D"4.B1
  698. M\EE'@_\-?/*X5`-0Z(/R68"^Y_X`=1S_MOS^_[;Z_O^VN/[_MK;^Z,SR@\0(
  699. MB8;@_NM)@+[G_@%U+($^;D@4!G,(QX;@_@$`ZS*A;$@%[/FC30#_MKC^_[:V
  700. M_NCC[EE9B8;@_NL6N+L"4(V&"/]0N)X!4+!E4.@W\H/$"(.^X/X`=$R#?OP`
  701. M=0F-A@C_4.AO[EF#ON#^`744,\!04+A8`U"P9E#H"?*#Q`CII`"#?OP`=`/I
  702. MFP"XNP)0C88(_U"X:`-0L&50Z.?Q@\0(Z8(`BX;T_CL&JB9T#KAX`U#HLO%9
  703. M_X88_^MJ@#QT=0JXC@-0Z)_Q6>M;@W[\`'4<_[;R_O^V\/[_MKC^Z.OM@\0&
  704. MN),#4.A]\5GK.8-^_@!T,_^VMO[HS>U9_[;V_HM&#@4"`%"+1@Q(4/\V:DCH
  705. M=P*#Q`@SP%!0N)\#4+!F4.AB\8/$"(`\='0.@W[\`'4(_[:X_NB/[5G_MKS^
  706. M_[:Z_O^VMO[HB.V#Q`;I7/C_MK;^Z'+M68`\;'50BT;B"T;D=$BX]P%0Z/WP
  707. M6?]VZ/]VYO]VY/]VXNAU`8/$"+BR`U#HX_!9N`8`4(V&H/Y0BT;VF5)0N"``
  708. M4.A-\X/$"E#HQ?!9N+L#4.B]\%F`?MT`=`Z#?MX`=`BXNP)0Z*GP68-^_@!T
  709. M`^GW]H-^W@!T`^GN]KC&`U#HC_!9Z>/V@#QL=`/I>@"`?MT`=72#?O@!?FZX
  710. MU@-0Z'#P6?]V\/]V[O]V[/]VZNCH`(/$"+BR`U#H5O!9N`4`4(V&HOY0BT;X
  711. MF5)0N"``4.C`\H/$"E#H./!9N.<#4.@P\%FX!@!0C8:B_E"+1OJ94E"X(`!0
  712. MZ)KR@\0*4.@2\%FXNP-0Z`KP68-^_@!T$3/`4%"XQ@-0L&90Z!/P@\0(@[X8
  713. M_P!T"+CS`U#HY.]9_[88_^AT[%F+Y5U?7L-65U6+[$Q,,_^+=@CK1(`D?X`\
  714. M+G4*"_]T!<8$7^L!1\=&_B0"ZP/_1OZ+7OZ`/P!T!HH'.@1U[XM>_H`_`'41
  715. MB@28NQH`F??[B]J*AR0"B`1&@#P`=;>+Y5U?7L-658OL@^P\_W8,_W8*_W8(
  716. M_W8&Z%SQ@\0(B_"X"0!0C4;L4/]V"/]V!K@@`%#HR?&#Q`I0C4;$4.@R"%E9
  717. MN`4`4(U&[%"+QIE24+@@`%#HJ/&#Q`I0C4;$4.CL!UE9N!0$4(U&Q%#HWP=9
  718. M6;@)`%"-1NQ0_W8,_W8*N"``4.AY\8/$"E"-1L10Z+T'65F-1L10Z.3N68OE
  719. M75[#5E=5B^R#["J+%BX`,\")5O")1NZ+7@B.PXO8)H$_35IU(\=&_@$`_W8.
  720. MC4;\4(U&^E"-1OA0C4;V4/]V".A8`8/$#.L9QT;^``"A+@")1OJ)1O:+1O*)
  721. M1OC'1OP``3/V.78*=06_`0#K2;\!`.LR@WX*`'0]BUX,BQ^`.`!T%(M>#(L?
  722. MB@#$7NX#WR:(AX``1NL9,_:#1@P"_TX*.78*=`O$7NX#WR;&AX``($>#_W]\
  723. MO4_$7NX#WR;&AX``#8O'@,#_BU[N)HB'@``S]NL5L`#$7NX#WB:(1VR+7NX#
  724. MWB:(1UQ&@_X4?.;&1M<IQD;6`8M6\(M&[@6``(E6[(M&[@6!`(E&WHM&[@5<
  725. M`(E&X(M&[@5<`(E6YHU&YE"-1M90C4;64.B5!(/$!L9&URG&1M8!BU;PBT;N
  726. M!6P`B4;@C4;F4(U&UE"-1M90Z&\$@\0&@3YN2``0=@?'1O(``.L+H6Y(N00`
  727. MT^")1O*A;$@%!O^)1O3_=O[_=OS_=OK_=OC_=O90_W8._W8(_W;RZ#,!@\02
  728. MB^5=7U[#5E=5B^R#[!B+=@B+WH[#NPH`)HL'B4;^H6Q(*P8N`#M&_G,1,\!0
  729. M4+@8!%"P9E#H,NV#Q`BA+@`%$`")1OJ+WH[#NPX`)HL'`T;ZBUX*B0>+WH[#
  730. MNQ``)HL'BUX,B0>+WH[#NQ8`)HL'`T;ZBUX.B0>+WH[#NQ0`)HL'BUX0B0>+
  731. MWH[#NP8`)HL'B4;LBUX.BP>)1NZ+WH[#NQ@`)HL'B4;\B]Z.P[L(`":+![D$
  732. M`-/@B4;P,__K-8O>CL.+7OR+Q]'@T>`#V";$'XQ&ZHE>Z(M6Z@/6B\,#1O")
  733. M5NJ)1NC$7N@FBP<#1A0FB0='.W[L<L:+UHM&\(E6](E&\HO6,\")5OB)1O:+
  734. M?O#K$\1>\B:*!\1>]B:(!_]&]O]&\D<[?A)RZ(OE75]>PXOLZPN0````````
  735. M`````(M&"BZCDQF+1@PNHY49BT8.+J.7&8M&$"ZCF1F+1A(NHYL9H2X`'H[8
  736. MNH``M!K-(1^YO@&.1@B,PS/_OAT:'K@``([8_/.D'XX&+@".7@0S]K\``8M.
  737. M!KJT`8M&`H[3B^*+T%,SP%`NH9,9+HL6E1DNBSZ7&2Z+-ID9+HL>FQG+5U:_
  738. M``$S]OSSI%Y?CM"+XHS`CM@+VW4#,\!05U;+L/^T3,TA````````````````
  739. M````````````````````````````````````````````````````````````
  740. M````````````````````````````````````````````````````````````
  741. M````````````````````````````````````````````````````````````
  742. M````````````````````````````````````````````````````````````
  743. M````````````````````````````````````````````````````````````
  744. M````````````````````````````````````````````````````````````
  745. M````````````````````````````````````````````````````````````
  746. M````````````````````````````````````````````````````````````
  747. M``````````````````````````````````````````````````!5B^RT)HM6
  748. M!)KS&P``S2&:_QL``(OE7<-;68/I$('#``%14\M;68/!$('K``%14\M5B^R#
  749. M/BX$('4%N`$`ZQ.+1@2+'BX$T>.)AW!(_P8N!#/`7</'!C0```#+PU6+[*$N
  750. M!/\.+@0+P'0,BQXN!-'C_Y=P2.OI_Q8P!/\6,@3_%C0$_W8$Z"OD65W#58OL
  751. M@^P(C4;X4.CR`5F-1OA0_W8&_W8$Z`<`@\0&B^5=PU9758OL'HMV#/\T_W0&
  752. MBW8(BP2+7`*+3`2+5`:+?`J+=`@?!U7-(5V<G%8>!HY>_HMV#(\$CT0&BW8*
  753. MCT0(CT0.CT0,@60,`0")?`J)5`:)3`2)7`*)!!]T!E!0Z`4`6%U?7L-65U6+
  754. M[(MV"`OV?!&#_EAW(XDV-@2*A#@$F);K#??>@_XB=Q#'!C8$__^+QJ,R`+C_
  755. M_^L%OE<`Z]A=7U["`@"Q`^L*L0+K!K$!ZP(SR5565XOLBT8*BU8,BUX.BVX0
  756. M,_;VP0%U&@O2>0GWVO?8&]:`R00+[7D)]]WWVQON@/$$B_T+^G4&]_.'\NL@
  757. M4;D@`(O^T>#1TM'6T=<[_7(+=P0[\W(%*_,;_4#BYUGVP0)T`Y:+U_;!!'0'
  758. M]]KWV(/:`%]>7<H(`(/Y('8%,\`STLM)?`;1X-'2Z_?+@_D@=@.Y(`!)?`;1
  759. M^M'8Z_?+@_D@=@4SP#/2RTE\!M'JT=CK]\M6EI*%P'0"]^.1A<!T!/?F`\B6
  760. M]^,#T5[+5E=5B^R+1@@[1@IS!OVX`0#K`_PSP(MV"(M^"HS9CL&+3@P+P'0&
  761. M`_%.`_E/]\<!`'0$XQ&D22OP*_C1Z?.E<P4#\`/XI/Q=7U[#58OL_W8(_W8$
  762. M_W8&Z*;_B^6+1@1=PU95B^R+=@:,!(Q,`HQ4!(Q<!EU>PU95B^R+=@;_=@CH
  763. M/`!90%!6Z#4`60/&4/]V".AL_XOEB\9=7L-65U6+[/R+?@J,V([`B_<RP+G_
  764. M__*N]]&+?@CSI(M&"%U?7L-65U6+[(M^"(S8CL"P`+G___SRKHO!]]!(75]>
  765. MPU9758OL3$R+?@A7Z-7_68E&_O]V"NC+_UF+\#MV#'8#BW8,5HO'`T;^4/]V
  766. M"NCT_H/$!HM>_@/>Q@$`B\>+Y5U?7L,`````````````````06)N;W)M86P@
  767. M<')O9W)A;2!T97)M:6YA=&EO;@T*````````````````````````````````
  768. ML$@```````````````````````````````````````(!```)```"``#_`?\#
  769. M_P?_#_\?```````@?``-"@"V)J`$0!]0=6)L:6,@9&]M86EN($QO;WH@97AT
  770. M<F%C=&]R(&)Y(%)A:'5L($1H97-I#0I697)S:6]N(#(N,6$@("AE=CDP,#4Q
  771. M-RD-"E5S86=E.B!L;V]Z('ML>'1]6V-P>%T@87)C:&EV95LN>F]O72!;9FEL
  772. M92!\(%YF:6QE72XN+@T*:6X@>WTZ(&P@/2!L:7-T+"!X(#T@97AT<F%C="P@
  773. M="`]('1E<W0-"FEN(%M=.B!C(#T@<VAO=R!C;VUM96YT<RP@<"`]('!I<&4@
  774. M=&\@<W1A;F1A<F0@;W5T<'5T+"!X(#T@97AE8W5T92`-"B`@("`@("!F(#T@
  775. M9F%S="!L:7-T:6YG(&EN(&-O;'5M;G,-"@!%4E)/4CH@(`!&051!3#H@(```
  776. M02!H:6=H97(@=F5R<VEO;B!O9B!/;WH@:7,@;F5E9&5D('1O(&5X=')A8W0@
  777. M`'0"3&5N9W1H("`@($-&("!3:7IE($YO=R`@1&%T92`@("`@(%1I;64-"@`M
  778. M+2TM+2TM+2`@+2TM("TM+2TM+2TM("`M+2TM+2TM+2T@+2TM+2TM+2T-"@!A
  779. M8F-D969G:&EJ:VQM;F]P<7)S='5V=WAY>C`Q,C,T-38W.#E!0D-$149'2$E*
  780. M2TQ-3D]045)35%565UA96D!>8'M]?B$C)"4F)R@I+2Y?`#`P,$IA;D9E8DUA
  781. M<D%P<DUA>4IU;DIU;$%U9U-E<$]C=$YO=D1E8P`N8V]M`"YE>&4`*BYZ;V\`
  782. M0V]U;&1N)W0@;W!E;B``#0H`#0I!<F-H:79E(``Z#0H`26YV86QI9"!A<F-H
  783. M:79E#0H`0F%D(&5N=')Y(&EN(&%R8VAI=F4-"@`@("`@("`@("`@("``.@!#
  784. M`$0@`$]V97)W<FET92``("A997,O3F\O06QL*3\@`%-K:7!P:6YG(`!&:6QE
  785. M('1O;R!B:6<@=&\@;&]A9`T`(&9O<B!O=71P=70N#0H`+2T@`$]U="!O9B!M
  786. M96UO<GD-"@!#86XG="!W<FET92!T;R``!U=!4DY)3D<Z("!"860@0U)#+@T*
  787. M`$]K#0H`97AT<F%C=&5D#0H`17AE8W5T:6]N(&9A:6QE9`T*`"!B>71E<RP@
  788. M`"!F:6QE*',I#0H`3F\@9FEL92!F;W5N9`T*``T*1U)!3D0@5$]404PZ#0H`
  789. M(&%R8VAI=F5S+"``5T%23DE.1SH@($5R<F]R<R!W97)E(&1E=&5C=&5D#0H`
  790. M)2```$9I;&4@=&]O(&)I9R!T;R!L;V%D#0```#8<-APV'````!,"`@0%!@@(
  791. M"!05!1/_%@46`O________________\%!?____________________\/__\"
  792. H_P______$___`@(%#P+___\3____________________$_\`+QPO'/\/
  793. `
  794. end
  795.  
  796.  
  797.