home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sources.hp48
- Path: sparky!uunet!seq!spell
- From: Jonathan Tomohiko Higa <jonhiga@phoenix.Princeton.EDU>
- Subject: v08i007: tasc.jth - Tasc v3.0 - ->ASC / ASC->, Part01/01
- Message-ID: <1993Jan22.043824.2923@seq.uncwil.edu>
- Followup-To: comp.sys.hp48
- Sender: spell@seq.uncwil.edu (Chris Spell)
- Organization: Univ. of North Carolina @ Wilmington
- Date: Fri, 22 Jan 1993 04:38:24 GMT
- Approved: spell@seq.uncwil.edu
- Lines: 745
-
- Checksum: 202422666 (verify with brik -cv)
- Submitted-by: Jonathan Tomohiko Higa <jonhiga@phoenix.Princeton.EDU>
- Posting-number: Volume 8, Issue 7
- Archive-name: tasc.jth
-
- It's finally ready. ... Here follows the official public release of
- TASC version 3.
-
- BEGIN_RDME tasc.rdm
- TASC (version 3) is an ASC <-> HP48 binary translator.
-
- Why do you want TASC at all?
- 1. Do the translation on another computer instead of on the HP48. A binary
- is approximately half the size of its ASC equivalent; therefore, you
- will require less battery power.
- 2. It behaves like uuencode to the extent that you don't have to strip off
- the non-ASC parts of a post or message if it contains only one ASCed object.
- I've been using commands like | "tasc - newgame.bin" within my mail reader
- to extract HP48 programs with ease.
- 3. There's no memory limit. Some programs are too large to be
- downloaded in ASC form but can still be downloaded in binary form.
-
- Why is it better than previous versions?
- 1. It determines the file type by inspecting the file instead of expecting
- a filename extension.
- 2. It determines how to invent a target file name by knowing the source
- file's type.
- 3. The target file is overwritten when translation begins, not upon
- program startup as before. If the source file seems corrupt, a usable
- target file is still created and a warning is given.
- END_RDME
-
- BEGIN_DOC tasc.1
- TASC(1) USER COMMANDS TASC(1)
-
- NAMES
- tasc - translate HP48 binary files to and from ASC format
-
- SYNOPSIS
- tasc [opt ...] source [target]
-
- DESCRIPTION
- This program translates HP48 binary files to and from ASC
- format. It should be fully compatible with Bill Wickes's
- original ->ASC-> programs. The symbol "-" in place of a
- filename represents the terminal. If a target filename is
- not provided, one will be invented by changing the source
- filename's suffix to ".asc" or ".bin". Note that a target
- filename cannot be invented if the standard input is the
- source. Multiple options should be specified as separate
- arguments.
-
- OPTIONS
- -d Force ASC->bin (ASC decoding) mode.
-
- -e Force bin->ASC (ASC encoding) mode.
-
- -q Don't print reports (quiet).
-
- DIAGNOSTICS
- Returns 0 on success, 1 on error. On successful exit, a
- BYTES statement is given if not in quiet mode.
-
- AUTHOR
- Jonathan T. Higa (jonhiga@phoenix.princeton.edu)
-
- CREDITS
- - ASC: Bill Wickes (billw@hpcvdw.cv.hp.com).
- - Cyclic Redundancy Check: da Cruz, Frank. _K_e_r_m_i_t: _A _F_i_l_e
- _T_r_a_n_s_f_e_r _P_r_o_t_o_c_o_l. Bedford, MA: Digital Press, 1987.
- - Object structure: HP48 Tools Manual; "HP48SX Internals,"
- by Derek S. Nickel.
- - Guidance: Joe Horn (akcs.joehorn@hpcvbbs.cv.hp.com)
- - Original inspiration: miscellaneous asc2bin programs on
- seq.uncwil.edu
-
- Sun Release 4.1 Last change: 1993 January 18 1
- END_DOC
-
- BEGIN_SRC tasc.c
- /* tasc (version 3): ASC-encoder/decoder for HP48 files
- Copyright (c) 1993 by Jonathan T. Higa
- This program is free. It may be reproduced or modified as long as
- appropriate credit is given.
- Credits:
- - ASC: Bill Wickes (billw@hpcvdw.cv.hp.com).
- - Cyclic Redundancy Check:
- da Cruz, Frank. _Kermit: A File Transfer Protocol._
- Bedford, MA: Digital Press, 1987.
- - Object structure:
- HP48 Tools Manual;
- "HP48SX Internals," by Derek S. Nickel.
- - Guidance: Joe Horn (akcs.joehorn@hpcvbbs.cv.hp.com)
- - Original inspiration:
- miscellaneous asc2bin programs on seq.uncwil.edu
- */
-
- #include <stdio.h>
- #include <string.h>
-
- struct hexbuf {
- unsigned long bits;
- long nibs;
- int bsize;
- unsigned short crc;
- };
-
- enum hpdatatype { HPBIN, HPASC, UNKNOWN = -1 };
-
- int verbose = 1;
-
- void pushhex(struct hexbuf *b, int h)
- /* Add a hex digit to the bit buffer. */
- {
- b->bits |= (h & 0xfuL) << b->bsize;
- b->bsize += 4;
- }
-
- int pophex(struct hexbuf *b)
- /* Remove and return a hex digit from the bit buffer, and
- include it in the CRC. */
- {
- int h = b->bits & 0xf;
- b->crc = (b->crc >> 4) ^ (((b->crc ^ h) & 0xf) * 0x1081);
- b->nibs++;
- b->bits >>= 4;
- b->bsize -= 4;
- return h;
- }
-
- enum hpdatatype hptype(FILE *f)
- /* Determine the type of HP file by scanning the beginning of the file.
- If the type is known, put the file pointer at the start of data. */
- {
- char c;
- if (fscanf(f, "HPHP48-%c", &c) == 1)
- return HPBIN;
- else
- for (; ; )
- switch (fscanf(f, "%*[%]HP:%*[^;]%c", &c)) {
- case 1:
- while (fscanf(f, " @%c", &c) == 1) {
- if (c != '\n') {
- fscanf(f, "%*[^\n]");
- fscanf(f, "%*1[\n]");
- }
- }
- return fscanf(f, "%c", &c) == 1 && c == '"' ? HPASC : UNKNOWN;
- case 0:
- fscanf(f, "%*[^\n]");
- fscanf(f, "%*1[\n]");
- break;
- case EOF:
- return UNKNOWN;
- }
- }
-
- char *newext(char *new, const char *old, const char *ext)
- /* Create a new filename from the old filename and extension. */
- {
- char *p = strrchr(strcpy(new, old), ext[0]);
- if (p) strcpy(p, ext);
- else strcat(new, ext);
- if (verbose) fprintf(stderr, "tasc: inventing filename \"%s\"\n", new);
- return new;
- }
-
- int asctobin(FILE *fasc, FILE *fbin)
- {
- struct hexbuf hb = {0, 0, 0, 0};
- int d, err = 0;
-
- /* write header into binary file */
- fputs("HPHP48-E", fbin);
-
- /* translate data */
- while (fscanf(fasc, "%1x", &d) == 1) {
- pushhex(&hb, d);
- if (hb.bsize >= 24) {
- d = pophex(&hb);
- d |= pophex(&hb) << 4;
- putc(d, fbin);
- }
- }
- if (hb.bsize > 16) {
- d = pophex(&hb);
- putc(d, fbin);
- }
-
- /* check CRC */
- if (hb.crc != hb.bits || hb.bsize != 16) {
- fprintf(stderr, "tasc: ASC->bin: warning: CRC is incorrect\n");
- err = 1;
- }
- if (verbose)
- fprintf(stderr, "tasc: ASC->bin: BYTES: #%hXh %ld%s\n",
- hb.crc, hb.nibs/2, hb.nibs & 1 ? ".5" : "");
- return err;
- }
-
- int bintoasc(FILE *fbin, FILE *fasc)
- {
- struct hexbuf hb = {0, 0, 0, 0};
- unsigned long fldlen = 0;
- enum { SIZE, ASCIC, ASCIX, DIR, ANY = -1 } fldnxt = ANY;
- int c, err = 0, width = 0;
-
- /* write header into ASC file */
- fprintf(fasc, "%%%%HP: T(1);\n\"");
-
- /* parse binary */
- while ((c = getc(fbin)) != EOF) {
- pushhex(&hb, c);
- pushhex(&hb, c >> 4);
- if (!fldlen) /* done with previous field */
- switch (fldnxt) { /* now for the current field */
- case SIZE:
- if (hb.bsize >= 20) {
- /* this object's length is known by the size field */
- fldlen = hb.bits & 0xfffff;
- fldnxt = ANY;
- }
- break;
- case ASCIC:
- if (hb.bsize >= 8) {
- /* ASCII-char identifier */
- fldlen = 2 + 2 * (hb.bits & 0xff);
- fldnxt = ANY;
- }
- break;
- case ASCIX:
- if (hb.bsize >= 8) {
- /* ASCII-extended identifier */
- fldlen = 4 + 2 * (hb.bits & 0xff);
- fldnxt = ANY;
- }
- break;
- case DIR:
- if (hb.bsize >= 20) {
- /* first object pointer in a directory, to an ASCIX name */
- fldlen = hb.bits & 0xfffff;
- fldnxt = ASCIX;
- }
- break;
- default:
- if (hb.bsize >= 20) {
- unsigned long pro = hb.bits & 0xfffff;
- fldlen = 5; /* the prolog field is 5 nibbles long */
- if (pro == 0x29e8uL || pro == 0x2a0auL || pro == 0x2a2cuL
- || pro == 0x2a4euL || pro == 0x2b1euL || pro == 0x2b40uL
- || pro == 0x2b62uL || pro == 0x2b88uL || pro == 0x2dccuL)
- fldnxt = SIZE; /* expect a size field */
- else if (pro == 0x2e48uL || pro == 0x2e6duL || pro == 0x2afcuL)
- fldnxt = ASCIC; /* expect an ASCIC object */
- else if (pro == 0x2a96uL) {
- /* expect the directory pointer after the first 8 nibbles */
- fldlen = 8;
- fldnxt = DIR;
- }
- else if (pro == 0x2911uL) fldlen = 10; /* is system binary */
- else if (pro == 0x2933uL) fldlen = 21; /* is real */
- else if (pro == 0x2955uL) fldlen = 26; /* is long real */
- else if (pro == 0x2977uL) fldlen = 37; /* is complex */
- else if (pro == 0x299duL) fldlen = 47; /* is long complex */
- else if (pro == 0x29bfuL) fldlen = 7; /* is char */
- else if (pro == 0x2e92uL) fldlen = 11; /* is XLIB name */
- }
- break;
- }
-
- /* write out the current field */
- while (fldlen && hb.bsize) {
- c = pophex(&hb);
- if (width == 64) {
- putc('\n', fasc);
- width = 0;
- }
- fprintf(fasc, "%X", c);
- width++;
- fldlen--;
- }
- }
- if (hb.bits) {
- fprintf(stderr, "tasc: bin->ASC: warning: last object incomplete\n");
- err = 1;
- }
-
- /* append CRC */
- if (verbose)
- fprintf(stderr, "tasc: bin->ASC: BYTES: #%hXh %ld%s\n",
- hb.crc, hb.nibs / 2, hb.nibs & 1 ? ".5" : "");
- hb.bits = hb.crc;
- hb.bsize = 16;
- while (hb.bsize) {
- if (width == 64) {
- putc('\n', fasc);
- width = 0;
- }
- fprintf(fasc, "%X", pophex(&hb));
- width++;
- }
- fprintf(fasc, "\"\n");
- return err;
- }
-
- int main(int argc, char **argv)
- {
- const char *STDIO = "-";
- enum hpdatatype coding = UNKNOWN;
- int i = 1, opt = 1;
- char *iname, *oname, temp[256];
- while (i < argc && opt) {
- if (argv[i][0] == '-') {
- opt = 1;
- switch (argv[i][1]) {
- case 'd':
- coding = HPASC;
- break;
- case 'e':
- coding = HPBIN;
- break;
- case 'q':
- verbose = 0;
- break;
- default:
- opt = 0;
- }
- } else
- opt = 0;
- i += opt;
- }
- argc -= i;
- if (argc < 1 || argc > 2) {
- fprintf(stderr, "Use: %s [opt ...] source [target]\n"
- "opt\taction\n"
- " -d\tForce ASC->bin (ASC decode)\n"
- " -e\tForce bin->ASC (ASC encode)\n"
- " -q\tSuppress non-error messages (quiet)\n"
- "The filename \"-\" represents the terminal.\n",
- argv[0]);
- return 1;
- }
- iname = argv[i];
- if (strcmp(iname, STDIO)) {
- if (!freopen(iname, "rb", stdin)) {
- fprintf(stderr, "tasc: ");
- perror(iname);
- return 1;
- }
- } else if (argc == 1) {
- fprintf(stderr, "tasc: cannot invent output filename for stdin\n");
- return 1;
- }
- switch (hptype(stdin)) {
- case HPASC:
- if (coding == HPBIN) {
- fprintf(stderr, "tasc: ASC->bin mode was disallowed\n");
- return 1;
- }
- if (verbose) fprintf(stderr, "tasc: entering ASC->bin mode\n");
- oname = argc == 1 ? newext(temp, iname, ".bin") : argv[i+1];
- if (strcmp(oname, STDIO) && !freopen(oname, "wb", stdout)) {
- fprintf(stderr, "tasc: ");
- perror(oname);
- return 1;
- }
- if (asctobin(stdin, stdout))
- return 1;
- break;
- case HPBIN:
- if (coding == HPASC) {
- fprintf(stderr, "tasc: bin->ASC mode was disallowed\n");
- return 1;
- }
- if (verbose) fprintf(stderr, "tasc: entering bin->ASC mode\n");
- oname = argc == 1 ? newext(temp, iname, ".asc") : argv[i+1];
- if (strcmp(oname, STDIO) && !freopen(oname, "w", stdout)) {
- fprintf(stderr, "tasc: ");
- perror(oname);
- return 1;
- }
- if (bintoasc(stdin, stdout))
- return 1;
- break;
- default:
- fprintf(stderr, "tasc: unknown input type\n");
- return 1;
- }
- if (fclose(stdin)) {
- fprintf(stderr, "tasc: ");
- perror(iname);
- return 1;
- }
- if (fclose(stdout)) {
- fprintf(stderr, "tasc: ");
- perror(oname);
- return 1;
- }
- return 0;
- }
- END_SRC
-
- compiled with Turbo C 2.0
-
- BEGIN_UUE tasc.uue
- begin 644 tasc.com
- MC,HNB1;6`K0PS2&++@(`BQXL`([:H]DOC`;7+XD>TR^)+O,OQP;=+___Z!,!
- MQ#[1+XO'B]BY_W\F@3TX-W49)HM5`H#Z/740@.;?_P;=+X#^674$_P;=+_*N
- MXV%#)C@%==:`S8#WV8D.T2^Y`0#3XX/#"(/C^(D>U2^,VBOJBSY.-('_``)S
- M![\``HD^3C2!QY(Z<B@#/DPT<B*Q!-/O1SOO<AF#/DXT`'0'@SY,-`!U#K\`
- M$#OO=P>+_>L#Z0`!B]\#VHD>ZR^)'N\OH=<O*]B.P+1*5\TA7]/G^H[2B^?[
- M,\`NC@;6`K\\.KF2.BO/\ZH._Q8N.NB_"NBG"[0`S1J)%M\OB0[A+_\6,CK_
- M-L\O_S;-+_\VRR_H>P=0Z&0*+HX>U@+H6P`._Q8P.HOLM$R*1@+-(;D.`)"Z
- MCR_IAP`>N``US2&)'KLOC`:]+[@$-<TAB1Z_+XP&P2^X!37-(8D>PR^,!L4O
- MN`8US2&)'L<OC`;)+[@`)8S*CMJZ-@+-(1_#'K@`)<46NR_-(1\>N`0EQ1:_
- M+\TA'QZX!27%%L,OS2$?'K@&)<46QR_-(1_#QP;=+P``R\.T0+L"`,TAP[D>
- M`)"ZG2\NCA[6`NCI_[@#`%#H2O\``%6+[%:+=@2+1@:9)0\`@>(``(I,"`[H
- M82L+!`M4`HE4`HD$@T0(!%Y=PU6+[%97BW8$BSR!YP\`BT0*L033Z%"+1`HS
- MQR4/`+J!$/?B6C/0B50*@T0$`8-4!@"+5`*+!+$$#N@S*XE4`HD$@VP(!(O'
- M7UY=PU6+[(/L`E:+=@2-1O]0N/8P4%;HV2.#Q`8]`0!U!3/`Z9(`C4;_4+@`
- M,5!6Z,`C@\0&/?__=0/I>``+P'1;/0$`=![KWH!^_PIT%K@6,5!6Z)PC@\0$
- MN!TQ4%;HD2.#Q`2-1O]0N!$Q4%;H@B.#Q`8]`0!TT(U&_U"X)#%05NAN(X/$
- M!CT!`'4+@'[_(G4%N`$`ZP.X___K'+@G,5!6Z$XC@\0$N"XQ4%;H0R.#Q`3I
- M<?^X__]>B^5=PU6+[%97BW8$BUX(B@>84/]V!E;H`QF#Q`10Z,`J@\0$B_@+
- M_W0,_W8(5^CL&(/$!.L*_W8(5NA6&(/$!(,^W#``=`]6N#4Q4+AT-5#HGR*#
- MQ`:+QE]>7<-5B^R#[`Y65XMV!HU>\A93N]XP'E.Y#``.Z$TJ,_]6N%0Q4.B(
- M(H/$!.M-_W;^C4;R4.A$_H/$!(-^^AA\.HU&\E#H7OY$1(E&_HU&\E#H4OY$
- M1+$$T^`)1O[_!'T0BD;^_T0*BUP*B$?_M`#K"E;_=O[HFAF#Q`2-1OY0N%TQ
- M4/]V!.A7(H/$!CT!`'2=@W[Z$'XJC4;R4.@(_D1$B4;^_P1]$(I&_O]$"HM<
- M"HA'_[0`ZPI6_W;^Z%09@\0$BT;\,]([5O1U"SM&\G4&@W[Z$'01N&$Q4+AT
- M-5#HN"Q`2_`0"#/MPP`'0^BU;XBT;V)0$`@>(```O0=`6XL#'K`[BS,5`S
- MTK@"`%)0_W;X_W;V#N@Z*%)0_W;\N(PQ4+AT-5#H<"Q`R+QU]>B^5=PU6+
- M[(/L&E97BW8&C5[J%E.[ZC`>4[D,``[H'"G'1O@``,=&]@``QT;Z___'1OX`
- M`#/_N+0Q4%;H*RQ`3IV@+_=OR-1NI0Z/[\@\0$BT;\L033^%"-1NI0Z.S\
- M@\0$BT;V"T;X=`/IH@*+1OH]`P!V`^FI`(O8T>,N_Z<.!A8&.@9B!HH&@W[R
- M%'T#Z7T"BU;LBT;J)?__@>(/`(E6^(E&]L=&^O__Z6("@W[R"'T#Z5D"BU;L
- MBT;J)?\`@>(``-'@T=(%`@"#T@")5OB)1O;KT(-^\@A]`^DQ`HM6[(M&ZB7_
- M`('B``#1X-'2!00`@](`B5;XB4;VZZB#?O(4?0/I"0*+5NR+1NHE__^!X@\`
- MB5;XB4;VQT;Z`@#I[@?O(4?0/IY0&+5NR+1NHE__^!X@\`B5;HB4;FQT;X
- M``#'1O8%``O2=0@]Z"EU`^EK`(-^Z`!U"H%^Y@HJ=0/I6P"#?N@`=0>!?N8L
- M*G1.@W[H`'4'@7[F3BIT08-^Z`!U!X%^YAXK=#2#?N@`=0>!?N9`*W0G@W[H
- M`'4'@7[F8BMT&H-^Z`!U!X%^YH@K=`V#?N@`=0^!?N;,+74(QT;Z``#I20
- M?N@`=0>!?N9(+G0:@W[H`'4'@7[F;2YT#8-^Z`!U#X%^YOPJ=0C'1OH!`.D:
- M`8-^Z`!U&8%^YI8J=1+'1O@``,=&]@@`QT;Z`P#I^P"#?N@`=12!?N81*74-
- MQT;X``#'1O8*`.GA`(-^Z`!U%(%^YC,I=0W'1O@``,=&]A4`Z<<`@W[H`'44
- M@7[F52EU#<=&^```QT;V&@#IK0"#?N@`=12!?N9W*74-QT;X``#'1O8E`.F3
- M`(-^Z`!U%(%^YITI=0W'1O@``,=&]B\`Z7D`@W[H`'43@7[FOREU#,=&^```
- MQT;V!P#K8(-^Z`!U6H%^YI(N=5/'1O@``,=&]@L`ZT>-1NI0Z*;Z1$2)1OR#
- M_T!U'_\$?0^P"O]$"HM<"HA'_[0`ZPI6L`I0Z.X5@\0$,___=ORXQ#%05NAE
- M'H/$!D>#;O8!@U[X`(M&]@M&^'0&@W[R`'6KBUX$_P]\#?]'"HM?"HI'_[0`
- MZPC_=@3HA0Q$1(E&_#W__W0#Z?_\BT;J"T;L=!.XQS%0N'0U4.@1'H/$!,=&
- M_@$`@S[<,`!T/HM6\(M&[B4!`('B```+T'0%N!PRZP.X'S)0,]*X`@!24/]V
- M\/]V[@[HD2124/]V]+CX,5"X=#50Z,<=@\0,BT;T,]*)5NR)1NK'1O(0`.LZ
- M@_]`=1__!'T/L`K_1`J+7`J(1_^T`.L*5K`*4.@,%8/$!#/_C4;J4.B4^41$
- M4+@@,E!6Z'P=@\0&1X-^\@!UP+@C,E!6Z&H=@\0$BT;^7UZ+Y5W#58OL@>P(
- M`597QX;X_B8RQX;Z_O__O@$`B_[K2XO>T>,#7@:+'X`_+74YOP$`B][1XP->
- M!HL?BD<!F#UD`'0,/64`=`\]<0!T$NL8QX;Z_@$`ZQ+'AOK^``#K"L<&W#``
- M`.L",_\#]SMV!'T$"_]UK"EV!(-^!`%\!H-^!`)^%HM>!O\WN"@R4+AT-5#H
- MSQR#Q`;I#P*+WM'C`UX&BP>)AOS^_[;X_E#HKA*#Q`0+P'0GN%0U4+CH,E#_
- MMOS^Z$\'@\0&"\!U*+CK,E"X=#50Z(P<@\0$Z9T!@WX$`741N/(R4+AT-5#H
- M=1R#Q`3IM0&X5#50Z,#X1$0+P'4#Z:P`/0$`=`/I0POOK^`'41N"$S4+AT
- M-5#H11R#Q`3IA0/MPP`'0.N$4S4+AT-5#H+1R#Q`2#?@0!=16X8S-0_[;\
- M_HV&`/]0Z";Y@\0&ZPJ+WD/1XP->!HL'B8;^_O^V^/Y0Z/,1@\0$"\!T)[AD
- M-5"X:#-0_[;^_NB4!H/$!@O`=1&X:S-0N'0U4.C1&X/$!.D(`;AD-5"X5#50
- MZ"KY@\0$"\!U`^FR`.GY`(.^^OX!=1&X<C-0N'0U4.BA&X/$!.GA`(,^W#``
- M=`ZXEC-0N'0U4.B)&X/$!(-^!`%U%;BT,U#_MOS^C88`_U#H@OB#Q`;K"HO>
- M0]'C`UX&BP>)AO[^_[;X_E#H3QQ`0+P'0FN&0U4+BY,U#_MO[^Z/`%@\0&
- M"\!U$+B[,U"X=#50Z"T;@\0$ZV6X9#50N%0U4.BX^8/$!`O`=!+K6KC",U"X
- M=#50Z`D;@\0$ZTJX5#50Z'<+1$0+P'09N-PS4+AT-5#H[!J#Q`3_MOS^Z'TB
- M1$3K)+AD-5#H40M$1`O`=!RXXS-0N'0U4.C&&H/$!/^V_O[H5R)$1+@!`.L"
- M,\!?7HOE7<-5B^Q6BW8$"_9\%(/^6'8#OE<`B3;J,XJ$[#.8ENL-]]Z#_B-W
- MZL<&ZC/__XO&H]LON/__ZP!>7<("`,-5B^SK"HL>4#31X_^7/#JA4#3_#E`T
- M"\!UZ_\61C3_%D@T_Q9*-/]V!.AP]5E=PP```````"Z/!K,,+HP>M0S\C@;7
- M+[Z``#+D)JQ`C,6'UI.+-M$O@\8"N0$`@#[9+P-R$8X&TR^+_K%_,L#RKN-V
- M@/%_@^P"N`$``\,#P27^_XO\*_AR8(OGC,".V(S0CL!12?.D,L"JCMV'\H?9
- MB\.+T$/H&0!W!W)`Z!(`=_D\('0(/`UT!#P)=>@RP.OD"\!T!T*J"L!U`4.&
- MX#+`^>,5K$DL(G0/!"(\7'4'@#PB=0*L20OVP^E3]5D#RBZ.'K4,B1[++T,#
- MVXOTB^PKZW+FB^6)+LTOXPZ)=@"#Q0(VK`K`X/IT\#/`B48`+O\FLPR+#M$O
- M4>A'`5F+^`O`="0>'@>.'M,O,_;\\Z0?B_@&_S;5+^@I`8/$`HO8!Z//+PO`
- M=0/IYO0SP+G__XD_@\,"\JXF.`5U](D'PU6+[(,^4#0@=06X`0#K%8M&!(L>
- M4#31XXF'/#K_!E`T,\#K`%W#58OL5E>+?@2+10:C?CH[QW4(QP9^.@``ZQ"+
- M=02+'GXZB7<$H7XZB40&7UY=PU6+[%97BWX$BT8&*06+-0/WBT8&0(D$B7P"
- MH7PZ.\=U!HDV?#KK"(O^`WX&B74"B\8%!`#K`%]>7<-5B^Q6BT8$,](E__^!
- MX@``4E#H]`!968OP@_[_=00SP.L8H7PZB40"BT8$0(D$B39\.J%\.@4$`.L`
- M7EW#58OL5HM&!#/2)?__@>(``%)0Z+<`65F+\(/^_W4$,\#K%8DV@#J)-GPZ
- MBT8$0(D$B\8%!`#K`%Y=PU6+[%97BWX$"_]U!#/`ZUJ+QP4+`"7X_XOX@SZ`
- M.@!U!U?HH?]9ZT*+-GXZB\8+P'0QBP2+UX/"*#O"<@E75N@-_UE9ZR2+!#O'
- M<@Y6Z-'^6?\$B\8%!`#K$(MT!CLV?CIUSU?H(O]9ZP!?7EW#58OLBT8$B]2!
- MZ@`!.\)S!Z/E+S/`ZPO'!MLO"`"X___K`%W#58OLBT8$BU8&`P;E+X/2`(O(
- M@<$``8/2``O2=0H[S',&AP;E+^L+QP;;+P@`N/__ZP!=PU6+[/]V!.B?_UGK
- M`%W#58OLBT8$F5)0Z++_B^7K`%W#58OL@^P&5E>+=@@S_\=&^@``QT;\``"+
- MWD:*!XA&_SQR=0J_`0#'1OP!`.LO@'[_=W4/OP(#QT;Z@`#'1OP"`.L:@'[_
- M874/OP()QT;Z@`#'1OP"`.L%,\#IA0"*!(A&_T:`?O\K=!&`/"MU*X!^_W1T
- M!H!^_V)U'X!^_RMU!8H$B$;_B\<E_/\-!`"+^,=&^H`!QT;\`P"`?O]T=0:!
- MSP!`ZR6`?O]B=0N!SP"`@4[\0`#K%*&\-B4`P`OXB\>I`(!T!8%._$``QP9(
- M-$`8BUX&B3^+1OJ+7@2)!XM&_.L`7UZ+Y5W"!@!5B^R#[`16BW8(_W8$C4;\
- M4(U&_E#H__Z)1`(+P'0<@'P$`'TC_W;^_W;\_W8&Z#8!@\0&B$0$"L!]#<9$
- M!/_'1`(``#/`ZT>*1`284.AS!5D+P'0%@4P"``*X``)0]T0"``)T!;@!`.L"
- M,\!0,\!05NAG!8/$"`O`=`M6Z"X&63/`ZPOK"<=$#```B\;K`%Z+Y5W"!@!6
- MOE0UZP+K`(!\!`!\"HO&@\80/90V<NZ`?`0`?`8SP.L&ZP2+QNL`7L-5B^Q6
- MZ,__B_"+Q@O`=08SP.L.ZPQ6_W8$_W8&Z"'_ZP!>7<-5B^Q6BW8(BT0..\9T
- M!#/`ZQ%6Z+,%65;_=@3_=@;H^_[K`%Y=PU6+[%:#?@0`?`OH?_^+\(O&"\!U
- M!#/`ZQ**1@2(1`16,\!0_W8&Z,W^ZP!>7<-5B^R+3@2T/(M6!LTA<@+K!E#H
- M.?KK`%W"!`!5B^R+7@0KR2O2M$#-(>L`7<("`%6+[(/L!%97BWX&]\<`P'4(
- MH;PV)0#`"_CWQP`!=0/IC0"AOC8A1@B+1@BI@`%U![@!`%#HZ/DSP%#_=@3H
- MVPI968E&_#W__W43]T8(@`!T!#/`ZP.X`0")1OSK%/?'``1T#+A0`%#HM?GI
- MU@#K`NL^]\?P`'0?_W8$,\!0Z%'_B_"+Q@O`?06+QNFV`%;H8@59ZR#K%O]V
- M!/]V_.@R_XOPB\8+P'T%B\;IEP#K<)#'1OP``%?_=@3HC@!968OPB\8+P'Q9
- M,\!05NAG`UE9B4;^J8``="&!SP`@]\<`@'05BT;^)?\`#2``4+@!`%!6Z$$#
- M@\0&ZPKWQP`"=`16Z.O^@W[\`'07]\?P`'01N`$`4+@!`%#_=@3H``J#Q`8+
- M]GP=]\<``W0%N``0ZP(SP(O7@>+_^`O"B][1XXF'E#:+QNL`7UZ+Y5W#58OL
- M5K`!BTX&]\$"`'4*L`+WP00`=0*P`(M6!+'P(DX&"L&T/<TA<A>+\(M&!B7_
- M^`T`@(O>T>.)AY0VB\;K!E#HDOCK`%Y=PU6+[(/L`E97BUX$BS>+QHE&_HM>
- M!/='`D``=`2+QNL?BUX$BW\*ZPN+WT>`/PIU`_]&_HO&3@O`=>Z+1O[K`%]>
- MB^5=P@(`58OL5HMV!%;HXPE9"\!T!;C__^M,@WX*`740@SP`?@M6Z)7_F2E&
- M!AE6"(%D`E_^QP0``(M$"(E$"O]V"O]V"/]V!HI$!)A0Z)T&@\0(@_K_=0H]
- M__]U!;C__^L",\#K`%Y=PU6+[(/L!%:+=@16Z'P)60O`=`BZ__^X___K/[@!
- M`%`SP%!0BD0$F%#H60:#Q`B)5OZ)1OR#/`!^&8M6_HM&_%)05N@0_YF+V(O*
- M6%HKPQO1ZP:+5OZ+1OSK`%Z+Y5W#5E>_%`"^5#7K$XM$`B4``ST``W4%5N@2
- M"5F#QA"+QT\+P'7F7U[#58OL5HMV!/=$`@`"=`/HR/__=`:+1`B)1`I0BD0$
- MF%#H<0.#Q`:)!`O`?@N!9`+?_S/`ZR/K'(,\`'4.BT0")7_^#2``B40"ZPG'
- M!```@4P"$`"X___K`%Y=P@(`58OL5HMV!/\$5N@&`%GK`%Y=PU6+[(/L`E:+
- M=@3_#'P._T0*BUP*BD?_M`#IU`#_!'P']T0"$`%T"X%,`A``N/__Z;X`@4P"
- M@`"#?`8`=!-6Z$__"\!T!KC__^FE`.N]Z:``@S[`-@!U.+A4-3O&=3&*1`28
- M4.C#`%D+P'4%@60"__VX``)0]T0"``)T!;@!`.L",\!0,\!05NBW`(/$".NC
- M]T0"``)T`^C0_K@!`%"-1O]0BD0$F%#H-P.#Q`8]`0!T)HI$!)A0Z&T'63T!
- M`'0'@4P"$`#K#(M$`B5__@T@`(E$`KC__^L9@'[_#74']T0"0`!TJX%D`M__
- MBD;_M`#K`%Z+Y5W#N%0U4.@$_UGK`,-5B^RT1(I&!HM>!(M."HM6",TA<@R#
- M?@8`=02+PNL(ZP90Z,?UZP!=PU6+[+@`1(M>!,TAN```<@31XM'0ZP!=PU6+
- M[%97BWX*BW8$BT0..\9U#(-^"`)_!H'__W]V!KC__^FJ`(,^PC8`=0^X9#4[
- MQG4(QP;"-@$`ZQ2#/L`V`'4-N%0U.\9U!L<&P#8!`(,\`'0/N`$`4#/`4%!6
- MZ`;]@\0(]T0"!`!T!_]T".C"#UF!9`+S_\=$!@``B\8%!0")1`B)1`J#?@@"
- M=#\+_W8[QP9&-%\8@WX&`'485^BW]UF)1@8+P'0'@4P"!`#K!;C__^L;BT8&
- MB40*B40(B7P&@WX(`74%@4P""``SP.L`7UY=PU6+[%97BW8$O___BT0..\9T
- M!(O'ZV:#?`8`=""#/`!]#5;H7`99"\!T!(O'ZT[W1`($`'0'_W0(Z"0/68!\
- M!`!\"XI$!)A0Z#8`68OXQT0"``#'1`8``,<$``#&1`3_@WP,`'03,\!0_W0,
- MZ",$4.B=!%G'1`P``(O'ZP!?7EW#58OL5HMV!`OV?`6#_A1\";@&`%#H0O3K
- M$8O>T>/'AY0V__]6Z`8`6>L`7EW#58OL5HMV!+0^B][-(7(,T>/'AY0V__\S
- MP.L&4.@-].L`7EW#5E>_#P"^I#7K#_=$`@,`=`56Z!K_68/&$$]U[E]>PU97
- MOP0`OE0UZQ#W1`(#`'0%5NA\!5E/@\80"_]U[%]>PU6+[(/L!%97BT8(0#T"
- M`'(-BUX$T>/WAY0V``)T!3/`Z9,`_W8(_W8&_W8$Z(T`@\0&B4;\BT;\0#T"
- M`'(-BUX$T>/WAY0V`(!T!HM&_.MFD(M._(MV!AX'B_Z+WORL/!IT+3P-=`6J
- MXO3K'.+P!E.X`0!0C4;_4/]V!.@^`(/$!EL'_(I&_ZH[^W4"ZY7K(%.X`@!0
- M]]D;P%!1_W8$Z,D!@\0(BUX$T>.!CY0V``);B\<KP^L`7UZ+Y5W#58OLM#^+
- M7@2+3@B+5@;-(7("ZP90Z/3RZP!=PU6+[('LB@!65XM&"$`]`@!S!3/`Z?8`
- MBUX$T>/WAY0V`(!T$O]V"/]V!O]V!.CC`(/$!NG7`(M>!-'C@:>4-O_]BT8&
- MB89\_XM&"(F&>/^-MG[_ZVW_CGC_BYY\__^&?/^*!XB&>_\\"G4$Q@0-1HJ&
- M>_^(!$:-AG[_B]8KT('Z@`!\/HV&?O^+_BOX5XV&?O]0_W8$Z'L`@\0&B89V
- M_SO'=!N#OG;_`',%N/__ZPV+1@@KAGC_`X9V_RO'ZT^-MG[_@[YX_P!T`^F)
- M_XV&?O^+_BOXB\<+P'8N5XV&?O]0_W8$Z"T`@\0&B89V_SO'=!>#OG;_`',%
- MN/__ZPF+1@@#AG;_*\?K!8M&".L`7UZ+Y5W#58OLBUX$T>/WAY0V``AT$+@"
- M`%`SP%!0_W8$Z&$`B^6T0(M>!(M."(M6!LTA<@]0BUX$T>.!CY0V`!!8ZP90
- MZ)OQZP!=PU6+[%8SP%#_=@3HA@)968OP@_[_=02+QNL<]T8&`@!T!O?&`0!U
- M!#/`ZPO'!MLO!0"X___K`%Y=PU6+[(M>!-'C@:>4-O_]M$**1@J+7@2+3@B+
- M5@;-(7("ZP=0Z#CQF>L`7<-5B^R#[")65P:+?@H>!XM>"(/[)'=8@/L"<E.+
- M1@R+3@X+R7T1@'X&`'0+Q@4M1_?9]]B#V0"-=M[C#Y$KTO?SD??SB!1&XPGK
- M\2O2]_.(%$8+P'7UC4[>]]D#SOQ.B@0L"G,$!#KK`P)&!*KB[[``J@>+1@KK
- M`%]>B^5=P@P`58OL@WX("G4&BT8$F>L%BT8$,])24/]V!O]V"+`!4+!A4.A<
- M_^L`7<-5B^S_=@;_=@3_=@C_=@JP`%"P85#H0/_K`%W#58OL_W8&_W8$_W8(
- M_W8*@WX*"G4%N`$`ZP(SP%"P85#H&?_K`%W#58OL5HMV!@OV=0.^A#K&!`"X
- MQ#905NA]`%E9N`H`4(O&!0,`4(M&!#/24E#HCO^#Q`BXR#905NA<`%E9B\;K
- M`%Y=P@0`58OL5HMV!%:#/H(Z_W4%N`(`ZP.X`0`!!H(ZH8(Z4.B9_XOP,\!0
- M5NA!_EE9/?__==6+QNL`7EW#58OLM$&+5@3-(7($,\#K!E#HMN_K`%W#58OL
- M5E?\BWX$'@>+US+`N?__\JZ-=?^+?@:Y___RKO?1*_F']_?&`0!T`J1)T>GS
- MI7,!I(O"ZP!?7EW#58OL5E<>!_R+?@0RP+G___*NB\'WT$CK`%]>7<-5B^Q6
- M5XS8CL#\,\"+V(M^!HOW,L"Y___RKO?1B_Z+=@3SIHI$_XI=_RO#ZP!?7EW#
- M58OL5E<>!_R+?@:+]S+`N?__\J[WT8M^!/.DBT8$ZP!?7EW#58OLM$.*1@:+
- M3@B+5@3-(7(#D>L&4.CK[NL`7<.ZSC;K`[K3-KD%`)"T0+L"`,TAN2<`D+K8
- M-K1`S2'I/N55B^R#[`2+7@31X_>'E#8``G0&N`$`ZU*0N`!$BUX$S2%R0?;"
- M@'4XN`%",\DSTLTA<C%24+@"0C/),]+-(8E&_(E6_EI9<ARX`$+-(7(5.U;^
- M<@QW!3M&_'(%N`$`ZPHSP.L&4.A>[NL`B^5=PU6+[%97BW8$BT0..\9T!;C_
- M_^MF@SP`?"WW1`((`'4,BT0*B]:#P@4[PG46QP0``(M$"HO6@\(%.\)U!HM$
- M"(E$"C/`ZS2+?`8#/$<I/%>+1`B)1`I0BD0$F%#H"ON#Q`8[QW01]T0"``)U
- M"H%,`A``N/__ZP0SP.L`7UY=PU6+[(M>!O\/_W8&BD8$F%#H!@"+Y>L`7<-5
- MB^R#[`)6BW8&BD8$B$;__P1]-HI&__]$"HM<"HA'__=$`@@`=!N`?O\*=`:`
- M?O\-=0]6Z#+_60O`=`:X___IZ0"*1O^T`.GA`/\,]T0"D`!U!_=$`@(`=0N!
- M3`(0`+C__^G&`(%,`@`!@WP&`'0F@SP`=!%6Z/#^60O`=`:X___IIP#K"KC_
- M_XM4!BO"B03I??_IE0"#/L(V`'4YN&0U.\9U,HI$!)A0Z%+W60O`=06!9`+_
- M_;@``E#W1`(``G0%N`(`ZP(SP%`SP%!6Z$;W@\0(Z8__@'[_"G4?]T0"0`!U
- M&+@!`%"X`#=0BD0$F%#H\?J#Q`8]`0!U&+@!`%"-1@10BD0$F%#HV?J#Q`8]
- M`0!T$?=$`@`"=0J!3`(0`+C__^L'BD;_M`#K`%Z+Y5W#58OL5HMV!+AD-5!6
- MZ,'^65GK`%Y=PU6+[(/L`E97BW8$BWX&1_=$`@@`="/K`NL`3XO'"\!T%5:+
- M7@C_1@B*!YA0Z(O^65D]__]UXNEU`/=$`D``=#>#?`8`=#&+1`8[QW,J@SP`
- M=`U6Z,W]60O`=`0SP.M33U?_=@B*1`284.@R^H/$!HE&_BM^_NLWZP+K`$^+
- MQPO`="S_!'T5BUX(_T8(B@?_1`J+7`J(1_^T`.L.5HM>"/]&"/\WZ/K]65D]
- M__]URXO'ZP!?7HOE7<(&`/\F-#I5B^R+5@2Y!`^["3?\BL;2Z->JBL8BQ=>J
- MBL+2Z->JBL(BQ=>JZP!=P@(`58OL@>R6`%97QT:J``#&1JU0ZSA7N?__,L#R
- MKO?125_#B`5'_DZM?B)345(&C4:N*_B-1JY05_]V"/]6"L9&K5`!?JJ-?JX'
- M6EE;PP;\C7ZNB;YL_XN^;/^+=@:L"L!T$3PE=!"(!4?^3JU_[^BY_^OJZ74$
- MB;9X_ZP\)73GB;YL_S/)B8YV_XF.:O^(CG7_QX9P____QX9R____ZP&L,N2+
- MT(O8@.L@@/M@<T>*GQDWB\,]%P!V`^D=!(O8T>,N_Z=Z(<4AK2$&(KDA*R(U
- M(G<B@2*1(NPAQB*A(J4BJ2)+(_TCGB.^(V$ECB6.)8XEV"'B(>GA`X#]`'?X
- M@XYJ_P'KFX#]`'?L@XYJ_P+KCX#]`'?@@+YU_RMT!(B6=?_I?/^#IFK_W[4%
- MZ7+_@XYJ_R"U!>EH_X#]`'=$]X9J_P(`=2CFK_"+4!Z5'_Z8@#BWX$BP6#
- M1@0"@/T"<PF)AG#_M0/I-_^`_01UX8F&<O_^Q>DI_X#]!'/3M03I'_^2+#"8
- M@/T"=QNU`H>&</\+P'S2T>"+T-'@T>`#P@&&</_I^_Z`_01UI8>&<O\+P'RT
- MT>"+T-'@T>`#P@&&<O_IW?Z#CFK_$+4%Z=/^@8YJ_P`!@Z9J_^^U!>G#_H.F
- M:O_O@8YJ_X``M07IL_ZW".L*MPKK"[<0L^D"VL:&=?\`QH9O_P"(EF[_BWX$
- MBP4STNL1MPK&AF__`8B6;O^+?@2+!9E'1XEV!O>&:O\0`'0$BQ5'1XE^!(V^
- M>_\+P'4S"])U+X.^<O\`=2V+OFS_BXYP_^,;@_G_=!:+AFK_)0@`=`2R,.L"
- MLB"*PNBV_>+YZ>G]@XYJ_P124%>*QYA0BH9O_U!3Z-KW%@>+EG+_"])_`^D4
- M`>DA`8B6;O^)=@:-OGK_BUX$_S=#0XE>!/>&:O\@`'0/_S=#0XE>!!8'Z!?]
- ML#JJ%@?H#_W&!0#&AF__`(.F:O_[C8YZ_ROYA\^+EG+_.]%_`HO1Z;X`B78&
- MB)9N_XM^!(L%@T8$`A8'C;Y[_S+DB06Y`0#IV`")=@:(EF[_BWX$]X9J_R``
- M=0R+/8-&!`(>!PO_ZPK$/8-&!`2,P`O'=04>![\"-^C:_#N.<O]V!(N.<O_I
- MF0")=@:(EF[_BWX$BXYR_PO)?0.Y!@!748V>>_]34K@!`".&:O]0BX9J_ZF`
- M`'0*N`(`QT;^!`#K%ZD``70*N`@`QT;^"@#K",=&_@@`N`8`4.@W_(M&_@%&
- M!!8'C;Y[__>&:O\(`'03BY9P_PO2?@OH6_PKT7X$B99V_XJ&=?\*P'04)H`]
- M+70.@ZYV_PEG;_`$\FB`7H-/R+]XN^;/^+GG#_N`4`(X9J_ST%`'46BJ9N
- M_X#\;W40@[YV_P!_!L>&=O\!`.L?D(#\>'0%@/Q8=12#CFK_0$M+@ZYV_P)]
- M!L>&=O\```..=O_WAFK_`@!U#.L&L"#HX?M+.]E_]O>&:O]``'0,L##HS_N*
- MAF[_Z,C[BY9V_PO2?B<KRBO:)HH$/"UT"#P@=`0\*W4')JSHJ/M)2X?*XP>P
- M,.B=^^+YA\KC$2O9)JR(!4?^3JU_`^B0^^+Q"]M^"8O+L"#H>_OB^>FN^XEV
- M!HM^!/>&:O\@`'4*BSV#1@0"'@?K!L0]@T8$!+A0`"I&K0-&JB:)!>E]^XNV
- M>/^+OFS_L"7H//NL"L!U^(!^K5!]`^@V^P>+1JKK`%]>B^5=P@@`58OL5E>+
- M=@2#/GXZ`'0<BQY^.HM_!HL>?CJ)=P:)=02)?`:A?CJ)1`3K"HDV?CJ)=`2)
- M=`9?7EW#58OL@^P"5E>+=@:+?@2+!`$%H7PZ.\9U!HD^?#KK#8L$`\:)1OZ+
- M7OZ)?P)6Z/3G65]>B^5=PU:A@#H[!GPZ=1+_-H`ZZ('I63/`HWPZHX`ZZSN+
- M'GPZBW<"]P0!`'4B5NC`YUD[-H`Z=0HSP*-\.J.`.NL&BT0"HWPZ5NA*Z5GK
- M#/\V?#KH0.E9B39\.E[#58OL@^P"5E>+=@3_#(L$`\:)1OZ+?`+W!0$`=10[
- M-H`Z=`Z+!`$%BU[^B7\"B_?K!5;H`O]9BU[^]P<!`'4)_W;^5N@J_UE97UZ+
- MY5W#58OL5HMV!`OV=0+K%XO&!?S_B_`[-GPZ=07H//_K!5;HC_]97EW#58OL
- MN,T?4/]V!/]V!HU&"%#HK?GK`%W#58OL5E>+?@17Z+GU68OP5U;_=@;HJ?@+
- MP'0%N/__ZPF+WP/>BD?_M`#K`%]>7<-5B^R-1@A0_W8&_W8$N`\O4+A<%5#H
- M!@"+Y>L`7<-5B^R#["I65\=&V```QT;:``#K&I"+?@SV1M<@=`?$/8-`3#
- MBST>!X-`+#!OR+=@JL"L!T73PE=%R8E_]&VO]V"/]6!%D+P'PE"_]X,H"]
- M>C<!=2N3"MMX&("_>C<!=1'_1MK_=@C_5@19"\!_YNE^`_]V"%/_5@996?].
- MVNNQ.\=TK?]V"%#_5@996?].VNEQ`^EN`\=&WO__QD;7`*R8B78*EPO_?$B*
- MG7HW,O^+PST5`'8#Z3<#B]C1XR[_IQXH32A-*$TH2BA0*%8H*2J>*)XHJ"AI
- M*6HH=BAP*)DHS2EG*HLHHRC\*'THA"CI2?_I$`.`3M<!ZZ6#[S"'?MX+_WR;
- MN`H`]^<!1M[KD8!.UPCKBX!.UP3KA8!.UP+I?O^`9M??Z7?_@$[7(.EP_XM&
- MVBO2]D;7`71/Z6+_O@@`ZPV^"@#K"+X0`.L#O@``]\<@`'4$@$[7!(U&W%"-
- M1MI0BT;>)?]_4(O&4/]V"/]V!O]V!.A:`X/$#H-^W`!^&/9&UP%U#_]&V.B'
- M_JOV1M<$=`*2J^F6_GP#Z6<"Z5`"Z```Z64"_W8(4/]6!EE9_T[:@6;>_W_H
- M``#I=`)2/#IT%0O`?@S_=@A0_U8&65G_3MI:C-OK&^@``.E4`EL+P'X04E/_
- M=@A0_U8&65G_3MI;6O9&UP%U"N@8_O]&V)*KDZOI*?Y\`^GZ`>GC`8U&W%"-
- M1MI0N/]_(T;>4/]V"/]V!O]V!.AO`H/$#(-^W`!^./9&UP%T`^LJD.C6_?]&
- MV/9&UP1T!;@$`.L-]D;7"'0%N`@`ZP(SP%!7Z#X"@\0$Z<O]Z#D"Z<7]Z#,"
- M?)SIDP'H``#IE`'V1M<!=0;HD_W_1MB!9M[_?W0I]D;7`74!JO]&V@;_=@C_
- M5@19!PO`?A(*P'@)DX"_>C<!DWX%_T[>?]<&_W8(4/]6!EE9!_].VO9&UP%U
- M`[``JNEA_?9&UP%U`^@]_8MVW@OV?0.^`0!T&O]&V@;_=@C_5@19!_9&UP%U
- M`:H+P'P/3G_F]D;7`74#_T;8Z2;]Z>4`*\#\%@>-?N"Y$`#SJZR`9M?O/%YU
- M!8!.UQ"LM`"*T(OXL0/3[[D'`2+*TN4(:^"L/`!T)CQ=="4\+77A.A1WW8`\
- M7738K"K"=.4"T-#%@]<`"&O@_LAU].O5Z9P`B78*@6;>_W^+=M[V1M<!=0/H
- ME_Q.?%#_1MH&_W8(_U8$60<+P'Q/EHO>L0/3[KD'`2++TN6$:N"6DW0(]D;7
- M$'0(ZP_V1M<0=`GV1M<!=<2JZ\$&_W8(4/]6!EE9!_].VD8[=MY]"?9&UP%U
- M!O]&V+``JNE0_$8[=MY]#/9&UP%U!K``JO]&V/]V"+C__U#_5@9968-^V`
- M7M@`!XM&V.F&`/]&VO]V"/]6!%D+P'X3"L!X"9.`OWHW`9-TY5F#P0/_X73X
- M6>N_*]*Y!`#_3MY\15)1_T;:_W8(_U8$65E:"\!^-?[)?#&*Z(#M,'(J@/T*
- M<A>`[1%R((#]!G(*@.T@<A:`_09S$8#%"M'BT>+1XM'B`M7KMBO`@/D$=`99
- M@\$#_^%9Z5__7UZ+Y5W#_R8V.O\F.#K_)CHZ4X#K,'(C@/L)=A*`^RIW!8#K
- M!^L#@.LG@/L)=@PZV7,(@\0"^+<`ZP1;^>OZPU6+[(/L!E97QD;[`,=&_```
- MQT;^`0`&OU,T_T;\_W8(_U8$60O`?&:8D_;#@'4%]@$!=>:3_TX,?%L\*W0'
- M/"UU%OY&^_].#'Q+_T;\_W8(_U8$60O`?#8K]HO^BTX*XTZ#^21W+X#Y`G(J
- M/#!U;(#Y$'5E_TX,?#/_1OS_=@C_5@19/'AT4CQ8=$[K=)#'1O[__^L%QT;^
- M``#_=@A0_U8&65G_3OPKP)GIIP#IE``\,,=&"@H`=2/_3@Q\[_]&_/]V"/]6
- M!%G'1@H(`#QX=`0\6'4MQT8*$`#K%XM."I/H\/Z3<K"6ZPJ6]V8*`_`3^G4L
- M_TX,?$S_1OS_=@C_5@19BTX*D^C*_I-SW>LJEO?AEX?*]^(#]Q/!EQ+6=4C_
- M3@Q\(/]&_/]V"/]6!%F+3@J3Z)[^DW/6_W8(4/]6!EE9_T[\B]>6@'[[`'0'
- M]]KWV(/:`(M^#HM>_`$=BWX0BU[^B1T'ZQ:X__^Z_W\"1ON`U`"#T@#'1OX"
- M`.O77UZ+Y5W#,\GK#;D!`.L(N0(`ZP.Y`P!55E>+[(OYBT8*BU8,BUX.BTX0
- M"\EU"`O2=&D+VW1E]\<!`'4<"])Y"O?:]]B#V@"#SPP+R7D*]]GWVX/9`(/W
- M!(OIN2``5S/_,_;1X-'2T=;1USO]<@MW!#OS<@4K\QO]0.+G6_?#`@!T!HO&
- MB]?1Z_?#!`!T!_?:]]B#V@!?7EW*"`#W\_?'`@!T`HO",]+K[(#Y$',0B]C3
- MX-/B]MF`P1#3ZPO3RX#I$(O0,\#3XLN`^1!S$(O:T^C3ZO;9@,$0T^,+P\N`
- MZ1"+PC/2T^C+58OL5J';+SL&0CA]$X,^VR\`?`R+'MLOT>.+M_HWZP.^%SI6
- M_W8$N"4Z4+AT-5#H,_B#Q`A>7<-5B^Q65Q[%=@;$?@K\T>GSI1/)\Z0?7UY=
- MR@@`58OL5E>+?@17Z.+M68OP`_?K#(H$.D8&=02+QNL)3COW<_`SP.L`7UY=
- MPU6+[%:+=@:#?@3_=#7_!(L$/0$`?A&*1@3_3`J+7`J(![0`ZR+K&X,\`744
- MB\8%!0")1`J*1@2(1`6T`.L)ZP+_#+C__^L`7EW#``````````````!4=7)B
- M;RU#("T@0V]P>7)I9VAT("AC*2`Q.3@X($)O<FQA;F0@26YT;"X`1&EV:61E
- M(&5R<F]R#0I!8FYO<FUA;"!P<F]G<F%M('1E<FUI;F%T:6]N#0H`````````
- M````````````````````````````````````````````DCJ2.I(Z````````
- M````````````````````````````````````````````````````````````
- M````````````````````````````````````````````````````````````
- M````````````````````````````````````````````````````````````
- M````````````````````````````````````````````````````````````
- M````````````````````````````````````````````````````````````
- M`````````````````0````````````````````````````````!(4$A0-#@M
- M)6,`)2I;)5U(4#HE*EM>.UTE8P`@0"5C`"4J6UX*70`E*C%;"ET`)6,`)2I;
- M7@I=`"4J,5L*70!T87-C.B!I;G9E;G1I;F<@9FEL96YA;64@(B5S(@H`2%!(
- M4#0X+44`)3%X`'1A<V,Z($%30RT^8FEN.B!W87)N:6YG.B!#4D,@:7,@:6YC
- M;W)R96-T"@!T87-C.B!!4T,M/F)I;CH@0EE415,Z(",E:%AH("5L9"5S"@`N
- M-0``)24E)4A0.B!4*#$I.PHB`"58`'1A<V,Z(&)I;BT^05-#.B!W87)N:6YG
- M.B!L87-T(&]B:F5C="!I;F-O;7!L971E"@!T87-C.B!B:6XM/D%30SH@0EE4
- M15,Z(",E:%AH("5L9"5S"@`N-0``)5@`(@H`+0!5<V4Z("5S(%MO<'0@+BXN
- M72!S;W5R8V4@6W1A<F=E=%T*;W!T"6%C=&EO;@H@+60)1F]R8V4@05-#+3YB
- M:6X@*$%30R!D96-O9&4I"B`M90E&;W)C92!B:6XM/D%30R`H05-#(&5N8V]D
- M92D*("UQ"5-U<'!R97-S(&YO;BUE<G)O<B!M97-S86=E<R`H<75I970I"E1H
- M92!F:6QE;F%M92`B+2(@<F5P<F5S96YT<R!T:&4@=&5R;6EN86PN"@!R8@!T
- M87-C.B``=&%S8SH@8V%N;F]T(&EN=F5N="!O=71P=70@9FEL96YA;64@9F]R
- M('-T9&EN"@!T87-C.B!!4T,M/F)I;B!M;V1E('=A<R!D:7-A;&QO=V5D"@!T
- M87-C.B!E;G1E<FEN9R!!4T,M/F)I;B!M;V1E"@`N8FEN`'=B`'1A<V,Z(`!T
- M87-C.B!B:6XM/D%30R!M;V1E('=A<R!D:7-A;&QO=V5D"@!T87-C.B!E;G1E
- M<FEN9R!B:6XM/D%30R!M;V1E"@`N87-C`'<`=&%S8SH@`'1A<V,Z('5N:VYO
- M=VX@:6YP=70@='EP90H`=&%S8SH@`'1A<V,Z(``````3`@($!08("`@4%043
- M_Q8%$0+_________________!07_____________________#_\C`O\/____
- M_Q/__P("!0\"____$___________(_____\C_Q/_`(,,@PR##````!`````@
- M("`@("`@("`A(2$A(2`@("`@("`@("`@("`@("`@(`%`0$!`0$!`0$!`0$!`
- M0$`"`@("`@("`@("0$!`0$!`0!04%!04%`0$!`0$!`0$!`0$!`0$!`0$!`0$
- M0$!`0$!`&!@8&!@8"`@("`@("`@("`@("`@("`@("`A`0$!`(```````````
- M````````````````````````````````````````````````````````````
- M````````````````````````````````````````````````````````````
- M````````````````````````````````````````````"0(`````````````
- M5#4```H"`0```````````&0U```"`@(```````````!T-0``0P(#````````
- M````A#4``$("!````````````)0U`````/\```````````"D-0````#_````
- M````````M#4`````_P```````````,0U`````/\```````````#4-0````#_
- M````````````Y#4`````_P```````````/0U`````/\````````````$-@``
- M``#_````````````%#8`````_P```````````"0V`````/\````````````T
- M-@````#_````````````1#8`````_P```````````%0V`````/\`````````
- M``!D-@````#_````````````=#8`````_P```````````(0V`2`"(`(@!*`"
- MH/_______________________________________P!`__\`````5$U0`"XD
- M)"0``'!R:6YT('-C86YF(#H@9FQO871I;F<@<&]I;G0@9F]R;6%T<R!N;W0@
- M;&EN:V5D#0H`#0`H;G5L;"D`,#$R,S0U-C<X.4%"0T1%1@`4%`$4%104%!0"
- M`!0#!!0)!04%!04%!04%%!04%!04%!04%!0/%P\(%!04!Q06%!04%!04%!04
- M#104%!04%!04%!00"@\/#P@*%!0&%!(+#A04$10,%!0-%!04%!04%````@("
- M`@("`@(!`0$!`0("`@("`@("`@("`@("`@("`@$"`@("`P("`@($`@("`@(%
- M!04%!04%!04%`@("`@("`@("`@<*%0H,"0(""P(4#@("`@(""`("$@("$`(0
- M`@("`@(&!PH*"@P)`@(-`A$.$P("#P((`@(2`@("`@("`D0X3#AD.'XXC3BA
- M.+,XPSC8..HX!SD;.2HY/CD``$LY6CF`.9`YGCFO.<`YTCD`````````````
- M`````````````.0Y\CD#.B0`17)R;W(@,`!);G9A;&ED(&9U;F-T:6]N(&YU
- M;6)E<@!.;R!S=6-H(&9I;&4@;W(@9&ER96-T;W)Y`%!A=&@@;F]T(&9O=6YD
- M`%1O;R!M86YY(&]P96X@9FEL97,`4&5R;6ES<VEO;B!D96YI960`0F%D(&9I
- M;&4@;G5M8F5R`$UE;6]R>2!A<F5N82!T<F%S:&5D`$YO="!E;F]U9V@@;65M
- M;W)Y`$EN=F%L:60@;65M;W)Y(&)L;V-K(&%D9')E<W,`26YV86QI9"!E;G9I
- M<F]N;65N=`!);G9A;&ED(&9O<FUA=`!);G9A;&ED(&%C8V5S<R!C;V1E`$EN
- M=F%L:60@9&%T80!.;R!S=6-H(&1E=FEC90!!='1E;7!T960@=&\@<F5M;W9E
- M(&-U<G)E;G0@9&ER96-T;W)Y`$YO="!S86UE(&1E=FEC90!.;R!M;W)E(&9I
- M;&5S`$EN=F%L:60@87)G=6UE;G0`07)G(&QI<W0@=&]O(&)I9P!%>&5C(&9O
- M<FUA="!E<G)O<@!#<F]S<RUD979I8V4@;&EN:P!-871H(&%R9W5M96YT`%)E
- M<W5L="!T;V\@;&%R9V4`1FEL92!A;')E861Y(&5X:7-T<P!5;FMN;W=N(&5R
- ;<F]R`"5S.B`E<PH``+`"L`*W`F$=9AUF'68=
- `
- end
- sum -r/size 9430/20213 section (from "begin" to "end")
- sum -r/size 19821/14652 entire input file
- END_UUE
-
- --
- Jon (jonhiga@phoenix.princeton.edu)
-
-