billr@saab.CNA.TEK.COM (Bill Randle) (02/24/90)
Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu> Posting-number: Volume 9, Issue 4 Archive-name: NetHack3/Patch7d Patch-To: NetHack3: Volume 7, Issue 56-93 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 4 (of 30)." # Contents: patch7.22 # Wrapped by billr@saab on Wed Feb 21 10:04:25 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'patch7.22' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'patch7.22'\" to \"'patch7.22.orig'\" mv -f 'patch7.22' 'patch7.22.orig' fi echo shar: Extracting \"'patch7.22'\" \(56824 characters\) sed "s/^X//" >'patch7.22' <<'END_OF_FILE' X*** src/Old/topten.c Mon Feb 19 19:03:06 1990 X--- src/topten.c Mon Feb 5 18:28:48 1990 X*************** X*** 1,9 **** X! /* SCCS Id: @(#)topten.c 3.0 89/11/15 X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X /* block some unused #defines to avoid overloading some cpp's */ X- #define MONATTK_H X #include "hack.h" X X #ifndef MACOS X--- 1,10 ---- X! /* SCCS Id: @(#)topten.c 3.0 89/12/31 X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X+ #define MONATTK_H /* comment line for pre-compiled headers */ X+ #define MONFLAG_H /* comment line for pre-compiled headers */ X /* block some unused #defines to avoid overloading some cpp's */ X #include "hack.h" X X #ifndef MACOS X*************** X*** 12,20 **** X--- 13,28 ---- X extern short macflags; X extern WindowPtr HackWindow; X #endif X+ X #ifdef NO_FILE_LINKS X #include <fcntl.h> /* Ralf Brown */ X #endif X+ #include <ctype.h> X+ X+ #ifdef LATTICE X+ static void FDECL(lattice_mung_line,(char*)); X+ static void FDECL(lattice_unmung_line,(char*)); X+ #endif X X #define newttentry() (struct toptenentry *) alloc(sizeof(struct toptenentry)) X #define NAMSZ 10 X*************** X*** 22,27 **** X--- 30,36 ---- X #define PERSMAX 3 /* entries per name/uid per char. allowed */ X #define POINTSMIN 1 /* must be > 0 */ X #define ENTRYMAX 100 /* must be >= 10 */ X+ X #ifndef MSDOS X #define PERS_IS_UID /* delete for PERSMAX per name; now per uid */ X #endif X*************** X*** 37,48 **** X char date[7]; /* yymmdd */ X } *tt_head; X X! static char *FDECL(itoa, (int)), *FDECL(ordin, (int)); X static void outheader(); X static int FDECL(outentry, (int,struct toptenentry *,int)); X X void X! topten(){ X int uid = getuid(); X int rank, rank0 = -1, rank1 = 0; X int occ_cnt = PERSMAX; X--- 46,67 ---- X char date[7]; /* yymmdd */ X } *tt_head; X X! static char *FDECL(itoa, (int)); X! static const char *FDECL(ordin, (int)); X static void outheader(); X static int FDECL(outentry, (int,struct toptenentry *,int)); X X+ /* must fit with end.c */ X+ static const char *killed_by_prefix[] = { X+ "killed by ", "choked on ", "poisoned by ", "", "drowned in ", X+ "", "crushed to death by ", "petrified by ", "", X+ "", "", X+ "", "", "" }; X+ X void X! topten(how) X! int how; X! { X int uid = getuid(); X int rank, rank0 = -1, rank1 = 0; X int occ_cnt = PERSMAX; X*************** X*** 57,63 **** X char *reclock = "record_lock;1"; X char recfile[] = RECORD; X #else X! char *recfile = RECORD; X #endif X #if defined(UNIX) || defined(VMS) X int sleepct = 100; X--- 76,82 ---- X char *reclock = "record_lock;1"; X char recfile[] = RECORD; X #else X! const char *recfile = RECORD; X #endif X #if defined(UNIX) || defined(VMS) X int sleepct = 100; X*************** X*** 99,106 **** X t0->uid = uid; X (void) strncpy(t0->name, plname, NAMSZ); X (t0->name)[NAMSZ] = 0; X! (void) strncpy(t0->death, killer, DTHSZ); X! (t0->death)[DTHSZ] = 0; X Strcpy(t0->date, getdate()); X X #ifdef LOGFILE /* used for debugging (who dies of what, where) */ X--- 118,138 ---- X t0->uid = uid; X (void) strncpy(t0->name, plname, NAMSZ); X (t0->name)[NAMSZ] = 0; X! (t0->death)[0] = 0; X! switch (killer_format) { X! default: impossible("bad killer format?"); X! case KILLED_BY_AN: X! Strcat(t0->death, killed_by_prefix[how]), X! (void) strncat(t0->death, an(killer), DTHSZ); X! break; X! case KILLED_BY: X! Strcat(t0->death, killed_by_prefix[how]), X! (void) strncat(t0->death, killer, DTHSZ); X! break; X! case NO_KILLER_PREFIX: X! (void) strncat(t0->death, killer, DTHSZ); X! break; X! } X Strcpy(t0->date, getdate()); X X #ifdef LOGFILE /* used for debugging (who dies of what, where) */ X*************** X*** 195,203 **** X if (!(rfile = fopen(recfile,"r"))) { X short i; X X! rfile = openFile(recfile); X X- t = (term_info *)GetWRefCon(HackWindow); X for (i = 0;i < t->maxRow; i++) { X MoveTo(Screen_Border, X t->ascent + (i * t->height) + Screen_Border); X--- 227,234 ---- X if (!(rfile = fopen(recfile,"r"))) { X short i; X X! rfile = openFile(recfile,"r"); X X for (i = 0;i < t->maxRow; i++) { X MoveTo(Screen_Border, X t->ascent + (i * t->height) + Screen_Border); X*************** X*** 226,251 **** X tprev = 0; X /* rank0: -1 undefined, 0 not_on_list, n n_th on list */ X for(rank = 1; ; ) { X! #ifdef OLD_TOS X! char k1[2],k2[2]; X! if(fscanf(rfile, "%6s %d %d %d %d %d %ld %1s%1s %s %s]", X #else X if(fscanf(rfile, "%6s %d %d %d %d %d %ld %c%c %[^,],%[^\n]", X! #endif X t1->date, &t1->uid, X &t1->level, &t1->maxlvl, X &t1->hp, &t1->maxhp, &t1->points, X- #ifdef OLD_TOS X- k1, k2, X- #else X &t1->plchar, &t1->sex, X! #endif X t1->name, t1->death) != 11 || t1->points < POINTSMIN) X t1->points = 0; X! X! #ifdef OLD_TOS X! t1->plchar=k1[0]; X! t1->sex=k2[0]; X #endif X if(rank0 < 0 && t1->points < t0->points) { X rank0 = rank++; X--- 257,279 ---- X tprev = 0; X /* rank0: -1 undefined, 0 not_on_list, n n_th on list */ X for(rank = 1; ; ) { X! #ifdef LATTICE X! if(fscanf(rfile,"%6s %d %d %d %d %d %ld%*c%c%c %s %s", X #else X if(fscanf(rfile, "%6s %d %d %d %d %d %ld %c%c %[^,],%[^\n]", X! #endif /* LATTICE */ X t1->date, &t1->uid, X &t1->level, &t1->maxlvl, X &t1->hp, &t1->maxhp, &t1->points, X &t1->plchar, &t1->sex, X! #ifdef LATTICE /* return value is broken also, sigh */ X! t1->name, t1->death) <1 || t1->points < POINTSMIN) X! #else X t1->name, t1->death) != 11 || t1->points < POINTSMIN) X+ #endif X t1->points = 0; X! #ifdef LATTICE X! lattice_unmung_line(t1->death); X #endif X if(rank0 < 0 && t1->points < t0->points) { X rank0 = rank++; X*************** X*** 314,324 **** X--- 342,360 ---- X if(!done_stopprint) outheader(); X t1 = tt_head; X for(rank = 1; t1->points != 0; rank++, t1 = t1->tt_next) { X+ #ifdef LATTICE X+ lattice_mung_line(t1->death); X+ if(flg) (void) fprintf(rfile,"%6s %d %d %d %d %d %ld %c%c %s %s\n", X+ #else X if(flg) (void) fprintf(rfile,"%6s %d %d %d %d %d %ld %c%c %s,%s\n", X+ #endif X t1->date, t1->uid, X t1->level, t1->maxlvl, X t1->hp, t1->maxhp, t1->points, X t1->plchar, t1->sex, t1->name, t1->death); X+ #ifdef LATTICE X+ lattice_unmung_line(t1->death); X+ #endif X if(done_stopprint) continue; X if(rank > flags.end_top && X (rank < rank0-flags.end_around || rank > rank0+flags.end_around) X*************** X*** 385,399 **** X register struct toptenentry *t1; X register int rank, so; X { X! register boolean quit = FALSE, iskilled = FALSE, starv = FALSE, X! isstoned = FALSE; X! char linebuf[BUFSZ]; X! linebuf[0] = 0; X if(rank) Sprintf(eos(linebuf), " %2d", rank); X! else Strcat(linebuf, " "); X! Sprintf(eos(linebuf), " %7ld %.10s", t1->points, t1->name); X Sprintf(eos(linebuf), "-%c ", t1->plchar); X if(!strncmp("escaped", t1->death, 7)) { X if(!strcmp(" (with the Amulet)", t1->death+7)) X Strcat(linebuf, "escaped the dungeon with the Amulet"); X else X--- 421,437 ---- X register struct toptenentry *t1; X register int rank, so; X { X! register boolean second_line = TRUE; X! char linebuf[BUFSZ], linebuf2[BUFSZ]; X! X! linebuf[0] = linebuf2[0] = 0; X if(rank) Sprintf(eos(linebuf), " %2d", rank); X! else Strcat(linebuf, " "); X! X! Sprintf(eos(linebuf), " %10ld %.10s", t1->points, t1->name); X Sprintf(eos(linebuf), "-%c ", t1->plchar); X if(!strncmp("escaped", t1->death, 7)) { X+ second_line = FALSE; X if(!strcmp(" (with the Amulet)", t1->death+7)) X Strcat(linebuf, "escaped the dungeon with the Amulet"); X else X*************** X*** 404,450 **** X Strcat(linebuf, "ascended to demigod"); X if (t1->sex == 'F') Strcat(linebuf, "dess"); X Strcat(linebuf, "-hood"); X #endif X } else { X if(!strncmp(t1->death,"quit",4)) { X- quit = TRUE; X Strcat(linebuf, "quit"); X! } else if(!strcmp(t1->death,"choked")) { X! Sprintf(eos(linebuf), "choked on %s food", X! (t1->sex == 'F') ? "her" : "his"); X } else if(!strncmp(t1->death,"starv",5)) { X Strcat(linebuf, "starved to death"); X! starv = TRUE; X! } else if(!strcmp(t1->death,"poisoned")) { X Strcat(linebuf, "was poisoned"); X! } else if(!strcmp(t1->death,"crushed")) { X Strcat(linebuf, "was crushed to death"); X! } else if(!strncmp(t1->death, "turned to stone by ",19)) { X! Strcat(linebuf, "was petrified"); X! isstoned = TRUE; X! } else { X! Strcat(linebuf, "was killed"); X! iskilled = TRUE; X! } X #ifdef ENDLEVEL X if (t1->level == ENDLEVEL) X Strcat(linebuf, " in the endgame"); X else X #endif X! Sprintf(eos(linebuf), " on%s level %d", X! (iskilled || isstoned || starv) ? "" : " dungeon", t1->level); X if(t1->maxlvl != t1->level) X Sprintf(eos(linebuf), " [max %d]", t1->maxlvl); X! if(quit && t1->death[4]) Strcat(linebuf, t1->death + 4); X } X- if(iskilled) Sprintf(eos(linebuf), " by %s", X- (!strncmp(t1->death, "trick", 5) || !strncmp(t1->death, "the ", 4) X- || !strncmp(t1->death, "Mr. ", 4) || !strncmp(t1->death, "Ms. ", 4) X- || !strcmp(t1->death, "contaminated water") X- || (!strncmp(eos(t1->death)-4,"tion",4) && *(eos(t1->death)-5)!='o') X- ) ? t1->death : an(t1->death)); X- if (isstoned) Sprintf(eos(linebuf), " by %s", an(t1->death + 19)); X Strcat(linebuf, "."); X if(t1->maxhp) { X register char *bp = eos(linebuf); X char hpbuf[10]; X--- 442,480 ---- X Strcat(linebuf, "ascended to demigod"); X if (t1->sex == 'F') Strcat(linebuf, "dess"); X Strcat(linebuf, "-hood"); X+ second_line = FALSE; X #endif X } else { X if(!strncmp(t1->death,"quit",4)) { X Strcat(linebuf, "quit"); X! second_line = FALSE; X } else if(!strncmp(t1->death,"starv",5)) { X Strcat(linebuf, "starved to death"); X! second_line = FALSE; X! } else if(!strncmp(t1->death,"choked",6)) { X! Sprintf(eos(linebuf), "choked on h%s food", X! (t1->sex == 'F') ? "er" : "is"); X! } else if(!strncmp(t1->death,"poisoned",8)) { X Strcat(linebuf, "was poisoned"); X! } else if(!strncmp(t1->death,"crushed",7)) { X Strcat(linebuf, "was crushed to death"); X! } else if(!strncmp(t1->death, "petrified by ",13)) { X! Strcat(linebuf, "turned to stone"); X! } else Strcat(linebuf, "died"); X #ifdef ENDLEVEL X if (t1->level == ENDLEVEL) X Strcat(linebuf, " in the endgame"); X else X #endif X! Sprintf(eos(linebuf), " on dungeon level %d", t1->level); X if(t1->maxlvl != t1->level) X Sprintf(eos(linebuf), " [max %d]", t1->maxlvl); X! /* kuldge for "quit while already on Charon's boat" */ X! if(!strncmp(t1->death, "quit ", 5)) X! Strcat(linebuf, t1->death + 4); X } X Strcat(linebuf, "."); X+ X if(t1->maxhp) { X register char *bp = eos(linebuf); X char hpbuf[10]; X*************** X*** 468,491 **** X else Sprintf(eos(bp), " [%d]", t1->maxhp); X } X } X! if(so == 0) (void) puts(linebuf); X! else if(so > 0) { X register char *bp = eos(linebuf); X if(so >= COLNO) so = COLNO-1; X while(bp < linebuf + so) *bp++ = ' '; X *bp = 0; X standoutbeg(); X! #ifdef MACOS X! puts(linebuf); X! #else X! (void) fputs(linebuf,stdout); X! #endif X standoutend(); X! #ifndef MACOS X! (void) putchar('\n'); X! #endif X } X! return(strlen(linebuf)); X } X X static char * X--- 498,531 ---- X else Sprintf(eos(bp), " [%d]", t1->maxhp); X } X } X! X! /* Line 2 now contains the killer name */ X! X! /* Quit, starved, ascended, and escaped contain no second line */ X! if (second_line) { X! Strcpy(linebuf2, t1->death); X! *linebuf2 = toupper(*linebuf2); X! Strcat(linebuf2, "."); X! } X! X! if(so == 0) { X! (void) puts(linebuf); X! if (second_line) X! (void) Printf(" %s\n", linebuf2); X! } else if(so > 0) { X register char *bp = eos(linebuf); X if(so >= COLNO) so = COLNO-1; X while(bp < linebuf + so) *bp++ = ' '; X *bp = 0; X standoutbeg(); X! (void) puts(linebuf); X! if(second_line) X! (void) Printf(" %s", linebuf2); X standoutend(); X! if(second_line) X! (void) putchar('\n'); X } X! return(strlen(linebuf)+strlen(linebuf2)); X } X X static char * X*************** X*** 499,505 **** X return(buf); X } X X! static char * X ordin(n) X int n; { X register int dd = n%10; X--- 539,545 ---- X return(buf); X } X X! static const char * X ordin(n) X int n; { X register int dd = n%10; X*************** X*** 512,525 **** X (dd==1) ? "st" : (dd==2) ? "nd" : "rd"); X } X X- char * X- eos(s) X- register char *s; X- { X- while(*s) s++; X- return(s); X- } X- X /* X * Called with args from main if argc >= 0. In this case, list scores as X * requested. Otherwise, find scores for the current player (and list them X--- 552,557 ---- X*************** X*** 530,540 **** X int argc; X char **argv; X { X! char **players; X int playerct; X int rank; X register struct toptenentry *t1, *t2; X! char *recfile = RECORD; X FILE *rfile; X register int flg = 0, i; X #ifdef nonsense X--- 562,572 ---- X int argc; X char **argv; X { X! const char **players; X int playerct; X int rank; X register struct toptenentry *t1, *t2; X! const char *recfile = RECORD; X FILE *rfile; X register int flg = 0, i; X #ifdef nonsense X*************** X*** 546,556 **** X #ifdef PERS_IS_UID X int uid = -1; X #else X! char *player0; X #endif X #ifdef MACOS X if(!(rfile = fopen(recfile,"r"))) X! rfile = openFile(recfile); X if (!rfile) { X #else X if(!(rfile = fopen(recfile,"r"))){ X--- 578,588 ---- X #ifdef PERS_IS_UID X int uid = -1; X #else X! const char *player0; X #endif X #ifdef MACOS X if(!(rfile = fopen(recfile,"r"))) X! rfile = openFile(recfile,"r"); X if (!rfile) { X #else X if(!(rfile = fopen(recfile,"r"))){ X*************** X*** 581,612 **** X #endif X } else { X playerct = --argc; X! players = ++argv; X } X if(outflg) (void) putchar('\n'); X X t1 = tt_head = newttentry(); X for(rank = 1; ; rank++) { X! #ifdef OLD_TOS X! char k1[2], k2[2]; X! if(fscanf(rfile, "%6s %d %d %d %d %d %ld %1s%1s %s %s]", X #else X if(fscanf(rfile, "%6s %d %d %d %d %d %ld %c%c %[^,],%[^\n]", X! #endif X t1->date, &t1->uid, X &t1->level, &t1->maxlvl, X &t1->hp, &t1->maxhp, &t1->points, X- #ifdef OLD_TOS X- k1, k2, X- #else X &t1->plchar, &t1->sex, X! #endif X t1->name, t1->death) != 11) X t1->points = 0; X if(t1->points == 0) break; X! #ifdef OLD_TOS X! t1->plchar=k1[0]; X! t1->sex=k2[0]; X #endif X #ifdef PERS_IS_UID X if(!playerct && t1->uid == uid) X--- 613,642 ---- X #endif X } else { X playerct = --argc; X! players = (const char **)++argv; X } X if(outflg) (void) putchar('\n'); X X t1 = tt_head = newttentry(); X for(rank = 1; ; rank++) { X! #ifdef LATTICE X! if(fscanf(rfile, "%6s %d %d %d %d %d %ld%*c%c%c %s %s", X #else X if(fscanf(rfile, "%6s %d %d %d %d %d %ld %c%c %[^,],%[^\n]", X! #endif /* LATTICE */ X t1->date, &t1->uid, X &t1->level, &t1->maxlvl, X &t1->hp, &t1->maxhp, &t1->points, X &t1->plchar, &t1->sex, X! #ifdef LATTICE X! t1->name, t1->death)<1) X! #else X t1->name, t1->death) != 11) X+ #endif X t1->points = 0; X if(t1->points == 0) break; X! #ifdef LATTICE X! lattice_unmung_line(t1->death); X #endif X #ifdef PERS_IS_UID X if(!playerct && t1->uid == uid) X*************** X*** 655,661 **** X--- 685,693 ---- X players[i][1] == t1->plchar && X players[i][2] == 0) || X (digit(players[i][0]) && rank <= atoi(players[i]))){ X+ #ifdef PERS_IS_UID X outwithit: X+ #endif X if(outflg) X (void) outentry(rank, t1, 0); X #ifdef nonsense X*************** X*** 721,727 **** X int rank; X register int i; X register struct toptenentry *tt; X! char *recfile = RECORD; X FILE *rfile; X X if (!otmp) return((struct obj *) 0); X--- 753,759 ---- X int rank; X register int i; X register struct toptenentry *tt; X! const char *recfile = RECORD; X FILE *rfile; X X if (!otmp) return((struct obj *) 0); X*************** X*** 728,734 **** X X #ifdef MACOS X if(!(rfile = fopen(recfile,"r"))) X! rfile = openFile(recfile); X if (!rfile) { X #else X if(!(rfile = fopen(recfile,"r"))){ X--- 760,766 ---- X X #ifdef MACOS X if(!(rfile = fopen(recfile,"r"))) X! rfile = openFile(recfile, "r"); X if (!rfile) { X #else X if(!(rfile = fopen(recfile,"r"))){ X*************** X*** 740,748 **** X rank = rnd(10); X pickentry: X for(i = rank; i; i--) { X! #ifdef OLD_TOS X! char k1[2], k2[2]; X! if(fscanf(rfile, "%6s %d %d %d %d %d %ld %1s%1s %s %s]", X #else X if(fscanf(rfile, "%6s %d %d %d %d %d %ld %c%c %[^,],%[^\n]", X #endif X--- 772,779 ---- X rank = rnd(10); X pickentry: X for(i = rank; i; i--) { X! #ifdef LATTICE X! if(fscanf(rfile, "%6s %d %d %d %d %d %ld%*c%c%c %s %s", X #else X if(fscanf(rfile, "%6s %d %d %d %d %d %ld %c%c %[^,],%[^\n]", X #endif X*************** X*** 749,768 **** X tt->date, &tt->uid, X &tt->level, &tt->maxlvl, X &tt->hp, &tt->maxhp, &tt->points, X- #ifdef OLD_TOS X- k1, k2, X- #else X &tt->plchar, &tt->sex, X! #endif X tt->name, tt->death) != 11) X tt->points = 0; X if(tt->points == 0) break; X! #ifdef OLD_TOS X! tt->plchar=k1[0]; X! tt->sex=k2[0]; X #endif X } X- (void) fclose(rfile); X X if(tt->points == 0) { X if(rank > 1) { X--- 780,797 ---- X tt->date, &tt->uid, X &tt->level, &tt->maxlvl, X &tt->hp, &tt->maxhp, &tt->points, X &tt->plchar, &tt->sex, X! #ifdef LATTICE X! tt->name, tt->death) <1) X! #else X tt->name, tt->death) != 11) X+ #endif X tt->points = 0; X if(tt->points == 0) break; X! #ifdef LATTICE X! lattice_unmung_line(tt->death); X #endif X } X X if(tt->points == 0) { X if(rank > 1) { X*************** X*** 770,776 **** X goto pickentry; X } X free((genericptr_t) tt); X! return((struct obj *) 0); X } else { X otmp->corpsenm = classmon(tt->plchar, (tt->sex == 'F')); X otmp->owt = weight(otmp); X--- 799,805 ---- X goto pickentry; X } X free((genericptr_t) tt); X! otmp = (struct obj *) 0; X } else { X otmp->corpsenm = classmon(tt->plchar, (tt->sex == 'F')); X otmp->owt = weight(otmp); X*************** X*** 779,784 **** X fobj = otmp; X level.objects[otmp->ox][otmp->oy] = otmp; X free((genericptr_t) tt); X- return otmp; X } X } X--- 808,830 ---- X fobj = otmp; X level.objects[otmp->ox][otmp->oy] = otmp; X free((genericptr_t) tt); X } X+ X+ (void) fclose(rfile); X+ return otmp; X } X+ X+ #ifdef LATTICE X+ /* Lattice scanf isn't up to reading the scorefile. What */ X+ /* follows deals with that; I admit it's ugly. (KL) */ X+ static void lattice_mung_line(p) X+ char *p; X+ { X+ while(p=strchr(p,' '))*p='|'; X+ } X+ static void lattice_unmung_line(p) X+ char *p; X+ { X+ while(p=strchr(p,'|'))*p=' '; X+ } X+ #endif X*** /dev/null Tue Feb 20 01:25:09 1990 X--- mac/NH3.rsrc.hqx Mon Feb 19 18:11:28 1990 X*************** X*** 0 X X--- 1,311 ----- X+ (This file must be converted with BinHex 4.0) X+ :#%j)-bjbFh*M!!!!!!!!!!!!)!!!!!!!!!!jaZRe!!!!!!%!!!!ddJ!!-p)!!!6 X+ d"!46DfP`!!!!!!#$!!`!P3%PL!K6BACP)'&c1J!!!!!)6NJc,R*cFQ-c!J!!!!! X+ !!!!!!!!!)!!!!!!!!!!!!!!!!!!!!!!!!!!J!!!!!!!!!!!!!!!!!!!!!!!!!!! X+ !!!#L"M0f!!!!!!!!1FB!!!!!!-S!$`$H!'S%#&0KGQ8J3@aX!!!!!!$+!0!!hJ% X+ U"!C$B@jMC@`!!!!!!,B!F`$)!-S%"d0[ERCPFR5!!!!!!!$+!(-!hJ$+"!Y$Efj X+ fCA*d)%&XE!!!!!"b!!%!!!!!!&8!%J"T!$m%!Np,!!!!!!!%!%J!C`%$L&&6Eh* X+ b!!!#6!*-!#!!H3!Z!C-4!D!!JU!!MJ%!#J!J!(%#d!*!Q!!N!!!!#!!1!5J!!!! X+ )!!i")J!J!(N!,J'6!!%K$rKq!!"r2i!!!H!!IJ!m!"lq!!B"i!!!2`2`qJ!#!H! X+ !)J8i'!!!(!lq!!EJ!1F!j`!rr3!)i!!!$`2!!!!Fr!!"i!!P"6`B!"`F$[i!"Z! X+ !ii$R!(Iq!!Y`i!!!$iI!!!!F!!Iq!!(J!#3&2KJ!("`1rJ!'i!!$JF1!F2i!"R$ X+ J!!!2Km$p!!!(rJ!"i!!N"6mB!"`F$[i!"Z!!!i($J($q!!C`i!!!$iI!r3!!"ri X+ !!H!!*5-h'$ir(!i(JI$[J!F"`i(mIMh!r2m(`!h0`2!q22q2aq(mr`!P)c1BGa` X+ IrKc$R1B!2J($J($R(m"`pilJ$Fh$Q(1FHmF1FjchJ#8M-pMMR"`1(1FFl!!(!F1 X+ !FF1H!($MR(!0cF1Fijaaaa`l$11!*5-af11F(!i!j`$i!!1"`i"a`j`!F11FF!c X+ j`"cJ((((($[!ii!P)c$irj`F$JIR!2J!!i($J(($R!"`ijr`$2R!r1!FFFFF1IM X+ MJ#8M-2MJ("`1(1F!r!!$JF1!FF1F!($MR!!-qF1Fi"aaaa`i211!*5-`H1'F(!i X+ ij`cZ!F1!j`"a`j`!F11F-!aaaacKR(((($X-ii!P)c!iFjfF$MRMR1F"aacR!($ X+ R(!"fiij`$(((2(1FFFGZFjcMJ#8Mr"Jr$hmrRr(jrm$q($`!q(iq!$hhaq!rGr2 X+ q2cllimIMqII!S!#2S!#$r`!!!#FQ6Q9d5'&MDb"@CA*cD@pZ)$-Z-'NJCQpb)(4 X+ SC5"0B@0TER4[FfJ!!!"-!'F!!!!!!!!!!2rrrrX%4@4TG!99EQ4[)!"D!!!",3! X+ !!!!%3h9d)!"B!!!&3fp`H5!!3`!!"P"KFh4P)!"@!!!&3faPBA)!!!!!!!!!!+S X+ !D!!!!!!!!!!!rrrrr`P*ERCPER4[FRN-4'mJD@jfC@jdEh*j!!!!!!K3BANJBQP X+ XE!!!!!!,4(*[F#"[BQTPBh3!!!!!&%4bEh!JFf9fCA*KE#"[BQTPBh4c!!!!!!j X+ 3D@0V)(9`)'pLDQ9MG!!!!!!09'pRCfaP)("TBfYeF!!!!!!25@4PER4TCRNJEf* X+ UC@0d!!!!!!a1B@eP)'e[ER0dCA)!!!!!!!!!!*-!D3!!!!!!!!!!rrrrr`C"Bh4 X+ TEfi33A"`E(N[GA0P)'pLDQ9MG!!!!!!+4@&d)'pLDQ9MG!!!!!!-8A9KCQBJF'p X+ dD@pZ!!!!!""5C@&N)(0MFQpXE#pLEfpV!!!!!"*8D(*[GbpcD'p[G#"hC@&`Efi X+ !!!!!#&TKF#"hB@jN!!!!!!T$BA0d)(0`C@aX!!!!!!!!!!$"!'S!!!!!!!!!!2r X+ rrrm%8(*PF!aAD@9XC#"hC@&`Efi!!!!!#e"eG#"[EL"bD@jR!!!!!!Y5C@e[GQ8 X+ JFQPZC`!!!!!-8Q9YEhCP)'&bE@pb!!!!!!TAC@&b)'&bE@pb!!!!!!j$GA*bC@j X+ d)(GPBA"[EJ!!!!!03h9bFQ9ZG#"KFQe[FJ!!!!!03h9bFQ9ZG#"bD@jRF`!!!!! X+ 13h9bFQ9ZG#"KEA9XCA3!!!!!$80eFR*PER3JG'p[E(-!!!!!!!!!!*J!D`!!!!! X+ !!!!!rrrrr`40EhCP#8p`C@iJC'p[FJ!!!!!+3fa[Ff8JC'p[FJ!!!!!*5fPMDb" X+ NEfpb!!!!!!C6C@&bBfJ!!!!!$%G[)(9`)(0dB@PbF`!!!!!14fmJC'phEL"cG'& X+ TFR-!!!!!#&4PE'9`Eh*d!!!!!!4AB@Pd!!!!!!p&EQGbBACP)'ePFh0KCf8!!!! X+ !!!!!!1S!E!!!!!!!!!!!rrrrr`K&H(4PEQ4PC!4$D'&d!!!!!!T%DA!JEf*UC@0 X+ d!!!!!""'Eh*MC5"MD'9cG#"XEf0V!!!!!!4+G@e`!!!!!!K-Efpd)'*[H!!!!!! X+ 69A0P)'e[ER0dCA)JB@*TE'PdH3!!!!!,6Q&YC5"[BQTPBh3!!!!!$dpQCQ9b)(0 X+ KBh*TCQPMC3!!!!!%8(*KH3!!!!!)8R9L)'aKEA!!!!!!#&0TG#"NEhGZ!!!!!!Y X+ 8GA*Z)(9ZC'9KC!!!!!!09@jdFQ&`)'pLDQ9MG!!!!!!*9fP`C5"QB@0P!!!!!!! X+ !!!'+!-J!JJ!!8Q9KE'aj)(&eDA3J2`!!!!4!!!-!!!$Frri!!!3m!!-!!!$drrm X+ !!!!!!!-!!!$qrrm!!!!!!!-!!!%+rrm!!!!!!!-!!!&-rrm!!!3i!!-!!!(@rrd X+ !!!!!!!-!!!*Drrd!!!!!!!-!!!+Hrri!!!-%!!-!!!6#rrm!!!3d!!-!!!6Drri X+ !!!4!!!-!!!6brri!!!3`!!-!!!8'rri!!!-%!!-!!!@Drri!!!-%!!-!!!DJrrl X+ rrrrm!!-!!!EXrri!!!3X!!-!!!G`rri!!!3X!!-!!!I3rri!!!3X!!-!!!Jdrri X+ !!!3S!!-!!!K!rri!!!3S!!-!!!Kbrri!!&PPF`!!!!QHrri!!!3m!!!!!!0brri X+ !!!FN!!!!!!0i6Qm!!!FB!!!!!!1'rri!!!FN!!!!!!13!2rq!!!('!!!!!!$Q[r X+ q!!!(*!!!!!!$T2rq!!!($!!!!!!$V[rq!!!!$!!!!!!$Z[rq!!!(-!!!!!!$d[r X+ q!!!(*!!!!!!$h!!"!!)!!!'+!2!!C!!!4'mJH@pe)(GKER3JG'mJD'&fC5"jEh9 X+ b)("[Ff9cFfP[ER-JD@4PER4TCQPPC#!r!!!CF!!!!!!!!#@i!!!!!!!!)i)!!!! X+ !!!!V#J!!!!!!!!Zi!!!!!!!!!8`!!!!!!!!"8MXH!$BJY!Tq!#MdXPBL!di!+25 X+ b9L)I8J!Sp,*@)J!!!!!!!!!!)p!!!!!!!!!CC!!!!!!!!!*X!!!!!!!!!83!!!! X+ !!!!KXJ!!!!!!!"pQ!!!!!!!!(QB!!!!!!!!HM!!!!!!!!#2S!!!!!!!!(CS!!!! X+ !!!!2BJ!!!!!2(J&@!#MdXPBL"F`!+25b9L)('!!Sp,)!)LH`!#MdXPPPF`!!+25 X+ b9L)3"J!!!!!!!!rS!!!!!!!!"TJ!!!!!6Qm!qJ!!!!!!!!XU!!!!!!!!!*i!!!! X+ !!!!!!!!!!!"4G@Pd!!!!!!!!)Ni!!!!!!!!@QJ!!!!!!!!Z'!!!!!!!!%$`!!!! X+ !!!!HJ!!!!!!!!",X!!!!!!!!'Y)!!!!!!!%!!`!!!3!!!!!!I`!2i&+!1VKHJ&9 X+ 83)$rUPk"!0C5JR`U8S5S&Rq*m"S!%!#5!$rKBJ"9FN)!UUR#!Ip9`J-"VX)%I&6 X+ ##%3SJJJ!-!B2rq!+#4%J$!S!S#J-lQ!3#N5JS!Nj)%!+JU+!$%4K!!UUUJ!)!$` X+ !$UVS!!S!X!!2rq!!!!!!!2q!$q$r`$rirm"rr2r!rrlr`Irrrm2rrrr(rrrrcrr X+ rrprrrrrrrrm!Irrr!2rrr`(rrrm$rrrr"rrrr`rrrrmIrrrr(rrrrarrrrmIrrr X+ q(rrrr"rrrrJIrrr`(rrri"rrrm!Irrq!(rrr!"rrrJ!Irr`!(rri!"rrm!!Irq! X+ !!!!"!)!!!!&!!!!#)!!!""!!!!J)!!!)"!!!#!)!!(J#!!$)!J!"5!2rrNJ#!!* X+ )!J!#5!)2mNJ##"*)!JJ55!))%NJ##"*)!JK55!))%NJ##"*)!JJ55!))%NJ$rrj X+ )!J!"5!)!!-J#!!"i"!!!#!J!!!J3!!!))!!!"%!!!!+!!!!"rrrrrrrrrrrrrrr X+ rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr`2rrrmlrrrr1r X+ rrra2rrrplrrrrUrrrrc[rrrmlrrrr+rrrrb[rrrm$rrrrrrrrrrrrrrrrrrrrrr X+ rrrrrrrrrrrrrrrrrrrrrrrrrrrm!!!%!!!!!!!!!!!!!!!!!!!&!!"rpArJ3!8! X+ )&reIk"3"3#J!!!!S(!(!+#)!)#JL!D!S*J1J+#)#S#JL)L)S2J(!+!!!!#J8!!! X+ S&!!!+"3!!#J8!!!S&###+"3!!#J8!!!S&!!!+"3!!#JArrrS%!!!#"rrrrJ!!!! X+ !!!!!!!!!!!!!!!!!!!!!!(rrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrr X+ qIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrr X+ qIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrqIrrrrRrrrrjrrrrq!!!!!!!!!3!!!!! X+ !#!!!)"`!!(!)!!!J2J!!q(m!!I`8!!"32J!!q#IrrkJU!!$)-U48Q#DUP+JUkTM X+ )-Uk8Q#DU8UJU!!$)-X6NQ#DU5UJUUNV)-Uj1Q#E+5UJU!!$)-rrrQ$i!!2J8!!" X+ 3I`!"r$i!!2J)!!!J(!!!F!J!!#!!!!!!!!!!!!J!!#!F!!"`2J!!q$i!!2Kr!!( X+ mri!$rRm!!IarrrrmIrrrr(rrrrarrrrmIrrrr(rrrrarrrrmIrrrr(rrrrarrrr X+ mIrrrr(rrrrarrrrmIrrrr(rrrrarrrrmIrrrr(m!!IcrJ!2qI`!"r$i!!2Jq!!$ X+ i(!!!F!J!!#!!!!!!!!!!!Mm!!!!!#8pf!")3!&-!83!!!!KTF'4%,%![3`!!!!G X+ KCA&bG(TD!!!!#RG38P4A+9XpA#J!!!!*Ef-%Fc`q&#j&!!!!"J!!!!!!!!!!!!j X+ MC'CUE'eZEh"bFh4eG`!!!#3JZXh*ZmLmcXV,ZFbca&`[X1lZlrU`2$jH)Rel)ea X+ I2$iM)`!!!!!q,Q`!!!"S!'S!!!"`Dfd!!!"TBQTZD'pXH3"VG3!!iq6QkZcYcZr X+ bmr6epiffa-E#YIDrU+HJk,F!!'KXDQX!!!!2!!!!!J!!J!!'6@pZB@0[!!!!"d& X+ 38%`!!!!!!!!(8d&@43!"!!!!!!GB8%a5!!)!!!!!"da&9N`!!`!!!!!(3Np143! X+ %!!!!#BL3!!!!!!$q!!B!!2rh!!B!#`1l!!N!!J!!!$m!!!!!!!!!!!!!!!!!!!! X+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$B!!!!!!!!&%%!!!! X+ !!#P!!!!`!!!D!!!#'%!&DeL*3!@J+83JJ%!%P8"3&!&#&!!9!"3JMm$rm!(i!!! X+ !Fi!J!!!!!!!J!!!1B!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! X+ !!!!!!!!!!!!!!!!!!!!!F!"3L!)B"!%#J+)!"!))J!!!B!"")K0X!!!#+)!!&IL X+ *3!@J+83JJ%!%P8"3&!&#&!!9!"3JMm$rm!d)!!!!*%"3![2!!!3J!`!*N!!!e6R X+ X6#!!"FZF,l[ZF!!1Flc[Iqk2$'%BZmlc[aM'-ImD!J3!%"JK--!!!!!#!!!!!+Q X+ Zq45K*!T3V9c[JHT4&%8k)*4m3N3PSZa!!NNJ"@YBL8!&S#P%))"!"*9!8"3"3K3 X+ !&3!8))r!rr!6!$i!0R4F3!Am)")D)!5!#5$ehpDbNUN!"MaLD%!aL##4M'-B`K' X+ +$+'maM'-54M&83d0!33!%#!J%%!!!!!#!!!!!+V4q!!!'!!!!#-B!S!!!!"'*)+ X+ L3!!!-c)!!US!!"AiL8!&S#P%))"!"*9!8"3"3K3!&3!8))r!rr!M!")!#DaL)$h X+ m2j%U*!bi18#9K9,8)A%!#QK#VhJaM9p"l'-)`K#+$5&DaM'-#4M%N45)!(qFph2 X+ p-ReRHICraM@-IUJ38jlh[FjcNQ-B1SjcSaM',ZILjmk0Uc*!!99J"@YBq8(p[qP X+ m))"!"29rhrIrIjAi&IJ9q)r!rrGP"mMmL+rLlF[m)(c))(0m+Ik9MlP))Dr2LUL X+ 0)-41L)!LVrd)qp2k$L%Cap(cL4M%LL5)!)aM'+4M0'ZBaMQ#4M9843339'-BaM' X+ -8Rrr9p'-BaM'0B%m50'1CZb2rKPTN!!9ripq)D%2arrrrrqA%!!3!!"q"rmRrLI X+ rrrriT3+&&)LXBaV,r,q4+$q)I%!1PB89Y5%K!"-T!r$%NAKI424M#-)4LSdK'-B X+ 4L%NBe)4%5!#-B4qNBcaV'-B`FNBe*%LS%(IM'-BIrp*M'(k4M'-BaM5(j%M4M') X+ "#!3KmNeV@2P,rEhi2%!#3!6eprphrhq"q8(p&IK2rr`)S`+*&)KdBah6r#!5'#" X+ `Id!1P3"@XK)"!")U)LM%N3JJJ)4M'-)4LSbK'-B4M%N9E85%5!#FB4JNBc*V'-B X+ `#Ne99&#S%53R1Fi3K"*M'&+4M'FiaM@*,NR4R'2r'!4!FNJ9q)P+*D8!!%!#3!5 X+ 8&!&8!8!!)8!P&#"2rr`)S`+6&)JN94"6r$q!##5!1)!!PB!k63`!%'(2h#FiMR8 X+ !"(4mlhi1Mh4r',S1LiML4L6q12a[R[HMic&V&hR`mE5+LrkS$L2DeVA[Hp*M(pl X+ ZFjVAZFla*%E1E')!i!"`DC9V@)P+*D8!!%!#3!58&!&8!8!!)8!P&#"2rr`(E3+ X+ qjdKcYZ!pr#"rq5!!!)!!p3!3!!!!%#!!!!!!!!%!!!!!!!!!!!!!!!!"!!!!!!! X+ !)!!!!!!!3#!!!%!J!!!!!%"`!R!!!!#!!!!!!!!!!!!!J!3!"N!!!!!!!!!!!!! X+ 9q)P+*D8!!%!#3!58&!&8!8!!)8!P&#"2rr`!)!!!"!!!!!!Krq!!#5!!!!!!!!! X+ !!!!!)!!!!!!!!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$J-!!!%!J!!!!!i! X+ !"!!!!!%!!!!!!!!!!!!(!!!!!B!!!!!!!!!!!!9V@)P+*D8!!%!#3!58&!&8!8! X+ !)8!P&#"2rr`!!!!!"!!!!!"!!!!!#-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! X+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! X+ !!!%!"!!*!!i!%`!B!"S!(3!J!#8!+J!X!$%!-J!f!$X!23"#!%F!6!"4!&B!@`" X+ J!'8!CJ"S!'X!F!"c!(J!I3##!)F!M!#4!*B!Q`#J!+8!U!#Y!,)!Y`#m!-%!aJ$ X+ ,!0!!e3$D!0m!j!$T!1i!m`$i!2d!r`%$!38"#!%1!4!"&3%D!4m"*!%T!5d"-J% X+ h!6J"1`&!!8)"4`&-!9%"9J&E!@!"C3&T!@i"F`&i!Ad"JJ'(!BS"L`'1!C-"N`' X+ B!Cd"SJ'R!D`"X3'f!EX"`!(&!FS"c3(3!G)"e`(F!H%"jJ(V!I!"p3(k!Im#"!) X+ *!Ji#%`)B!Kd#)J)R!L`#-3)c!MJ#23*#!NF#5`*2!P3#@3*H!Q3#DJ*V!R!#G3* X+ k!Rm#K!+&!SN#M3+5!TF#Q`+J!U-#U!+Y!V)#YJ+k!Vd#``,*!X`#dJ,B!YX#h`, X+ M!ZF#l3,c![F#r3-$!`N$$`-9!aX$(`-L!b8$+3-[!c8$13-m!d)$5!0,!di$9!0 X+ D!em$C30U!fm$G30k!i!$K31+!im$P!1C!jm$T31V!l%$YJ1j!l`$[`2$!mJ$c32 X+ 4!pB$e`2F!q!$j!2R!qd!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J! X+ '!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'"JB#"J%'!!B!"J!'!!B#"J% X+ '!JB!"J!'!3B!"J)'!3B!"J)'!!B!"J!'!!B!"J!'!!B!"J)'!3B""J!'!3B!"J! X+ '!!B!"J!'!!B!"J!'!!B!"J%'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J! X+ '!!B!"J)'!3B#"J%'!!B""J!'!!B!"J!'!!B""J!'!!B#"J!'!!B""J!'!!B!"J! X+ '!!B!"J!'!3B!"J!'!!B!"J!'!!B#"J)'!3B!"J!!!!B!"J!'!!B!"J!'!!B!"J! X+ '!!B!"J%'!3B""J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J! X+ '!JB!"J!'!!B!"J%'!3B!"J!'!!B!"J!'!`B!"J!'!!B!"J!'!`B!"J!'!!B!"J! X+ '!!B#"J!'!!B!"J!'!!B$"J!'!!B$"J!'!!B$"J)'!JB#"J!'!!B#"J!'!!B!"J! X+ '!!B!"J)'!`B$"J)'!!B!"J!'!`B!"J!'!!B$"J!'!!B!"J!'!!B!"J!'!!B!"J! X+ '!!B!"J!'!!B!"J!'!!B!"J!'!3B""J-'!!B!"J!'!3B!"J)'!!B!"J!'!3B!"[r X+ r!!!,hT!!!!!!!2m!"`!!rrd!"`!2"18!$!!$!!!!3J!!!!!!!!!!!!!!!!!!!!! X+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$J!!!! X+ !!!!!!!!!!!!'J!!!!!!!9DY@)P!"D!T4#"!#!!L+8!8!8!&""3!!T!!+#"$q!rr X+ i!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! X+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"84!!!!!!!T3!!!-!!!,!!! X+ !))!!!&Aq)P!"D!T4#"!#!!L+8!8!8!&""3!!T!!+#"$q!rri!!!!!!!!!!!!!m! X+ !!#!!!!TJ!!!3!!`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!F(!!!!!!!!! X+ !!!!!!!!!!!!!(!!!!!!'!!!!!%5!!!!!!!!!!!!3!!!!!!!!))!!9DY@)P!"D!T X+ 4#"!#!!L+8!8!8!&""3!!T!!+#"$q!rri!!!!!!!i!"J!p#!!!#!!!!f3!!$915a X+ 5)!!#jFiAcIFi!!(!1mlhrZM`aK',[1mlmBaM(mJ5!)%!"!B)6!!!!!!!!!!!!#T X+ VJ#)!L3%!J+Fli(X!JL!1L!dI%%L%f,h%!#++!!"9rL*3!@J+83J3!J!)LP!&!&! X+ "338!!+3!#JJ3rJ2rq!li2J!!%FiJ!I`J!#!J!`!j)(hIeV*5U!!$(M%d%"M%##) X+ J4M'-)4LJbKZ-BaM%NBaM%-J9!%%!"!J)6$!!!!!!J!!!!#Ud9%8S53+85eM'!+5 X+ 844&4L"#SN!#4#@M'*!!NNJ"9UeBL8!&S#P%)%!)!#)T3"3"3!8%&!!#N!!S)%2i X+ $rrJ45#)!'j)a)!Am)!4-)!5!+8p%e9,5BA%!"43K9#!Ba"!3,dBaM#%)S0)9c'- X+ B`*'-Ba$%')!"!!3)#!33!!!!!)!!!!!U"%!!!!B!!!!)aJ#J!!!!%BN4q*!!!!! X+ -aL!!##!!!&Aq)P!"D!T4#"!#!!L+8!8!8!&""3!!T!!+#"$q!rrlF8!3!#3k-4! X+ &r$mLNL3%J#Rr4)8ae#&a!!8d*THm*dDRb&$(d)`K#+$L%DaM'-#4M&844"!!(qF X+ ph2p-RhRHICh4M@-IUJ3Ljlh[FjcNQ-B1SjcSaM',N!")ZI1MDXBN!"C+@P@V9Mj X+ 3IfrkA`J3!J!)qPrprprrIq8rJ+Ii#Rm3rJ2rr**(b2a%4M&i(IdJ)9)J5cJJ$d5 X+ 2Q)JKVm!*9%(iBNM'`!5@rM#2[6qJ`K'FI4miNBa)SN)3!#-BaLNBc4V'-BjLNBe X+ 9%8N%)aM'-BaM&*M(eIaM'-BaMARr%M4MQEh%rqQDT3"9rq2IL'K$mIrrrrrrLm) X+ !!%!!!"r!Ira(riMrrrrrr**#K54%4r'1kr`rqM!rX(`J$d5&&93K)3q*P)%3BNL X+ m*mL@aM#-)4LJiK'-B4L%NBa84%)3!#-B4qNBcKV'-BaFNBe*%LS%)rM'-BIrp*r X+ q&k4M'-BaM4")%M4M')!)J%%V3Y@V9Mj5rfpq$a!!)J!)qRlrqprrIq!rP!Ip#Rm X+ )rrrm!h&#L54%4M'0Dr`J*"%J5(iJ$d3!&E+K!3!4&3%3BNL%%"!AaM#-)4LSdK' X+ -B4L%NBeL5%%3!#-B4JNBc4V'-B`#NBe*&#S%)`M'-B3K"*M'&+4M'-BaM4**%M4 X+ M'2r`J%*r3S"9rL*5L@P!!"!!)J!)LJ+!#P!"3!!%&!"&#JJ)rrrm!"&#N54%4LU X+ 1kr`r)2%NX(fJ$d5!9V%5!""4&K%8BNL+L##3!%BaM#%BU-S4M'%Ba*&@iNK"%!! X+ R'-BT'-bDaM'-)T0994JU"'FCcR1-B45BaK@NBaR1-Be55j*dCaL!%3!%#U99UeB X+ L8SPT3!!3!#)!#)S#J!T3!8!!""3!43S)#2rrr!!43U-Na$SUL#[m)!F3`!!iB!" X+ %J$T1NJ!3B1IZ%ja(-S!!MdI1pq$SpdIaLk$SZ)iNBNr!N!"r'qFpb2M-@XAHI"a X+ Y)U,rUJ1DjV@YFjlNQ-IZZjcQYHjc[%N4XjXBJ!i!$`TD!&Aq)P+*D8!!%!!L!!L X+ +!S!+8!&!!!38!%8+#!Mrrr`!&N+qad)4fh!Grq$i%!!!!#!!I3!3!!`!%#!!!!! X+ !!!#!!!!!!!!!!!!!!!!!3!!!!!!!F2!!!!!!!"!)!!!3#!!!!!!3(!%!!!!!)!! X+ !!!!!!!!!!#!"!!%3!!!!!!!!!!!!9DY@)P+*D8!!%!!L!!L+!S!+8!&!!!38!%8 X+ +#!Mrrr`!%!!!"!!3!!!4q!!!%!!!!!!!!!!!!!!!)!!!!!!!!!%!!!!!!!!!!!! X+ !!!!!)!!!!!!!!!!!!!!!!4!)!!!3#!!!!!%3!!%!!!!!)!!!!!!!!!!!!#!!!!( X+ J!!!!!!!!!!!!!&Aq)P+*D8!!%!!L!!L+!S!+8!&!!!38!%8+#!Mrrr`!!!!!"!! X+ i!!!3!!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! X+ !!!!!!1!`!!!!!!!!!!$J!!)!!!!!3!!!!!!!!!!!!F!!!!!!!!!!!!!!!!!!9DY X+ @)P+*D8!!%!!L!!L+!S!+8!&!!!38!%8+#!Mrrr`!!!!!!!!!!!!!!!!!%!!!!!! X+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! X+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!"!!*!!i!%`!C!"S!(3!J!#8!+J!X!$% X+ !-J!h!$`!2J"$!%J!63"5!&F!A!"K!'B!C`"T!'d!FJ"f!(X!J3#'!)X!N!!!P3# X+ D!*m!T!#T!+`!X3#f!,X!`!$&!-S!c`$8!0N!hJ$M!1J!l3$b!2F!r!%"!33"#3% X+ -!4%"'!%D!4m"*!%T!5i"-`%h!6`"33&#!88"5J&-!9%"9J&E!@!"C3&U!@m"F`& X+ i!Ad"JJ'(!B`"N3'8!C8"Q!'G!Cd"SJ'R!D`"X3'f!EX"`!(&!FS"c`(8!GF"fJ( X+ F!H%"jJ(V!I!"p3(k!Im#"!)*!Ji#%`)B!Kd#)J)R!L`#-3)f!MX#23*#!NF#6!* X+ 4!PB#@`*J!Q8#DJ*`!RB#G`*m!S%#L!+2!TB#P`+E!Tm#T!+T!Ud#XJ+e!VS#[`, X+ %!XJ#c!,3!YF#hJ,L!ZN#m!,d![N#rJ-$!`S$%3-@!ad$*!-V!c)$130!!d8$530 X+ 0!e)$@30J!f3$D!0[!hB$HJ0q!i8$L`13!!19!jS$R`1P!kS$X31f!lX$`!2&!mS X+ $c`29!pX$i!2P!qJ$k`2[!r-$q!2p"!%%"J3("!`%%!38""J%'!3I!!F!"`!(!!F X+ !"`!(!!F!"`!(!!F!"`!(!!F!"`!(!!F!"`!(!!F!"`!(!!F!"`!(!!F!"`!(!!F X+ !"`!(!!F!"`!(!`F#"`%(!3F""`!(!`F#"`)(!3F""`)(!3F$"`%(!3F#"`%(!3F X+ ""`%(!3F""`%(!3F$"`)(!3F""`)(!3F!"`%(!3F""`%(!3F""`%(!3F#"`%(!3F X+ ""`%(!3F""`%(!3F""`%(!3F""`%(!3F""`%(!3F#"`%(!JF""`!(!`F""`%(!3F X+ ""`%(!JF""`%(!`F""`%(!JF""`%(!3F""`%(!3F""`%(!3F""`%(!3F""`%(!JF X+ $"`)(!3F!!!%(!3F""`%(!3F""`%(!3F""`%(!3F#"`)(!JF""`%(!3F""`%(!3F X+ ""`%(!3F""`%(!3F""`%(!3F""`%(!3F""`-(!3F""`%(!3F""`%(!3F""`%(!3F X+ ""`-(!3F""`!(!!F!"`-(!!F!"`!(!!F!"`!(!JF!"`!(!!F!"`!(!`F!"`!(!`F X+ !"`!(!`F#"`)(!JF!"`!(!JF!"`!(!!F!"`!(!!F#"`-(!`F#"`!(!!F!"`-(!!F X+ !"`!(!`F!"`%(!3F""`%(!3F""`%(!!F""`%(!3F""`%(!3F""`%(!3F""`)(!JF X+ $"`!(!3F""`%(!3F$"`%(!!F!"`%(!!%!"rrr!!!!!!!!!%*J!!#A!!!!!!!!!!! X+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!%!#3!!5iN X+ !$!!!5i`!!!!9!$m!#J%(!@J!!3!!!!!!!!!!!)%!!!!!4!!!!3!$J!I!$q!Im!1 X+ !!i!$J!1!!i!$J!1!!i!!!!!!!3!$J!I!$q!Im$ri2rJ(`!I!"m!(`!I!"m!(`!I X+ !!!!!!3!(!!!!4!!!I`"q!(`!IJ"r!'q!4m!$i!(`!2!!B!!!!!!!!!!!ri$rJ2m X+ !rJ$r!2q!rm$[i-I`!rJ"q!$`!'!!!!!!!!!!!3!"!!!!4!!!!2i!IJ!q!(i!rJ( X+ f!q)(`!q!$`!'!!!!!!!!!!!!!Im"r`$r!(m!r`(r!rm(p`rM(m!IJ!m!"J!!!!! X+ !!!!!!3!1!!!!4!!!!!!!!!!J!$!!1$rm2rirr!!i!$!!)!!!!!!!!!!!!!!!!!" X+ J!(!!H(rmIrjrrhrqIr`!H!"`!'!!!!!!!!!!"`!1!!!!4!!!!!!!!!!!"J!2!!q X+ !"m!$iJ(f!2i!IJ!q!(i!rJ!!!!!!!!!!"J!2!"q!(m!2i`Ih!rm"r`$r!(m!r`( X+ r!Im!$J!1!!!!4!!!!!!$J!1!!i!$J!1!!i!$J!1!(r!2i!I!!i!"!!!!!!!(`!I X+ !"m!(`!I!"m!(`!I!2rJrq"r`$q!(`!1!!3!!$J!(!!!!4!!!!!!!!!!!!'!!m!( X+ `!q"(`'q!I`"q!(`!IJ"r!!!!!!!!!!!!!'!!m!(i!rM(m1rJrm$rJ2m!rJ$r!2q X+ !ri!!$J!"!!!!4!!!!!!!!!3!$!!F!$riIrJrq"`!$!!%!!!!!!!!!!!!!!!!!!B X+ !$J!H!$rmIrcrr(rm2r`H!!i!"J!!!!!!!!!!"`!"!!!!"d&9@%`!"3!!!!%!!!! X+ !!(JIm$c)j!iQV`)"kS3%%-,S$!NZ%")''"'"'"!Q33!))!!!@#$J$LJKm"m))rJ X+ rL$2i2jJam4mB%111%"#$J"!)48%J")eQ3!)*))!(M@2!$FI(B"MJ$M"af$FF3hI X+ GK&CG904N9qa-2&98H!![k!!!%"!!!!rJ!!!!!!"m(r"qr2rqIrrrrrrrrrrrrrr X+ rrrrrrrrrrrrr2rrrq(rrrrarrrrmIrrrr(rrrrarrrrmIrrrr(rrrr`rrrri2rr X+ rq"rrrr!Irrr`$rrri!rrrr!Irrri2rrrr2rrrrlrrrrqrrrrr[lrr[jqrrlq2(r X+ mH!!rq!!!(r!!!!rJ!!!!!3!3!!!!F!%!3,!(!2!`1`pJFFB83"S'-1!CANiJH3b X+ I)*S-T*!!$VfN8!iC4Q!m'F)!4hP!)!Ba`*!!$l-K4*2bS4"Kh4#SNZV34&Ke1+L X+ Q+SL#e9*i+$UR#%#Rb2!!e*!!%J!kNH3F$dRfF!$m[,B!!TN@!!*)'!!"3"!!!A! X+ m!!2SC(J"J%$i"i$`q$q2q2RrRr$rrcrJrrprm2rrrr$rrrr`rrrrq2rrrrMrrqr X+ `rrrRm2rrir$rrq(mrrrcr[rrmrcrrrRmrrrir[rrrIlrrrhrrrrmr[rrr1Mrrrp X+ !rrrr([rrrrirrrrq$rrrr`$rrrm!"rqq!!2m2!!(r(i!"rcq!!!!P`"Q!!!!!!! X+ !!!$rrrkr"%CTE'8-8f9d)'p`G'P[ER2*!!!!!!j@CA*cD@pZ)'jeE@*PFJ!!!!! X+ 05@jfCA*d)&0MFQ9PEJ!!!!!08Q9NFQ&h)(0MFQ9PEJ!!!!!68Q9`C@&d)'aKFh3 X+ JE@9cFf&RC3!!!!!",3!!!!!*8f&fC5"RB@eP!!!!!!%Y!!!!!!44G@Pd!!!!!!! X+ !!!%!J)!!!0'!!!#UJ!!!e)!!!+5!!!$BJ!!!URrrr0P!!!DS!!!'dNbG4U%!!!E X+ 859f'T!!!"Y*0bfDK!!!'e%!!"U30[qE43$$QT!-[CY*!,@DJ#M0Qm8!mjPJ0-kB X+ N3$rQ'J!!"JY!!!B%P99@!fUUUJ)Irri"i!!!!!!!!!!!!!#!J!!!mB!!!2Z!!!$ X+ rJ!!!ri!!!2q!!!$rrrrmrrrrr[rrrrlrrrrqrrrrr[rrrrlrrrrqrrrrr[rrrrl X+ rrrrqrrrrr[rrrrlrrrrqrrrrr[rrrrlrrrrqIrrrrMrrrriIrrrq$rrrrJIrrri X+ $rrrq!rrrrJ(J!!!!!!!!!!!!!!!!!%aZD$-`!!!!!8P$6L-!"J!!!)!!!3#"!!) X+ !JJ!$!)-!"!#%!!8!K3!'!)C'8N9'!!B!!!#!!!%!J3!#!))!!`#$!!3!K!!&!)8 X+ !"J#'!!!!"e4&@&3!"J!!!!!F!"`!'J&@!IJ!!3!!!!!!!!!"!))(6h"dD@pZF`! X+ !!"`!)J!N!6B"C!!"!2m!!!!!!!!!J`GKFfYZB@eP!!!$ZJ!M!!!!!!%G!@!"-3' X+ `"!P8C@e`Eh*KFRRq!!!!!!%G!#%"-3"a"!46BACP!!!!!!%G!-J"-3%B"!C$B@j X+ MC@`!!!!!!'-!%3"c!)%&$%9iF'a[FQ8JE@pNC3!!!!!!B`##!(-!bJ8'4Q9YB@a X+ P!!!!!!"M!-`!F`(-"5&%DA0`E'&j)%jPGh-JBA3J3Q9RD@jZD@jR)'pQ)%GKE@8 X+ -!!!!!!#-!!J!R!#)"3p'DAKPC#"*ERCPER4[FRP!!!!!!!#F!!J!V!#J"4&%DA0 X+ `E'&j)(4[E@*cG'pZC3J!!!!!!+`!#!#m!)JZSEhFJG'PYCAN!!!!!!,`!#!$ X+ -!*J&%&CPFQ*[Ff8JE@9cFf&RCA-!!!!!!-`!#!$F!*J&%90TE'9ZG#!SEQmJBQ9 X+ PF(-T%!!!!!!!h!!)!1`!Z!896A9XG'PQD@jNCA)J3A9dEbekEfpY9J!!!!!!l!! X+ )!2`!J!8-5@jfCA*cC5"8CAKd!!!!!!#-!,J!R!%-"3P6Eh*d)&"KBfZB!!!!!!# X+ F!,J!V!$i"39$Efa[FJJ!!!!!!+`!Z!#m!B`&(&"TBfYeF#"[BQTPBh4c)'&eG'p X+ YBA4TBf&XE(N!!!!!!,`!Z!$-!6!&$d0[EQCTFQdJB@0dD@pZFdJ!!!!!!-`!Z!$ X+ F!4%ZKCQ8JF'9dFjJ!!!!!!0`!Z!$X!6%&$9*PFh3JEfiJFh"KBf9d!!!!!!! X+ C!*J!+3'F%!4-DA0K!!!!!!!b!*J!3J'F%!9'FQPdHT`!!!!!!%X!Q!"E!C`3"9* X+ [GQ9bc!!!!!!""!#J!43"T"!%8'9KFJ!!!!!!M!&T!*`"`4!+)LPE*6mV)5mS+J! X+ !!!!!l!#i!2`"&SJ28f0[FQ8JE'PcG$SJG'p`$`!!!!!!l!%D!2`",K!"-aB!!!! X+ !!1`"9J$m!@S3!6)@!!!!!!!&!+S!&3%dL"01CA4)B@0V)$-Z-#"2F(4TEfjc!!! X+ !!!!!'3![!#N!M)J-8'aKH@9b)%jKE@8k!!!!!!!a!#m!33"rL!P$BA3J6Q&YC6V X+ X!!!!!!"+!#m!@J#(L!P%EfFJ6Q&YC6ST!!!!!!"h!!S!L3%BL#C8D'9cC5"[F(4 X+ TEfjc)(4KDf8JC@CQC@0d)'PYE@9ND@&dC@aj1J!!!!!!l!%b!2`"8SJ$B@jNF!! X+ !!!!!M!%)!*`"C)J0)#dJF'&MDfpbC'9b1QN!!!!!!33!4!%8!*H)#dCbG@Pd)%j X+ KE@8k5`!!!!!!l!&[!2`"[iJ+BA*[G@jN)'eP,J!!!Mi!&J!!!!!!k!$L!2`"(J3 X+ #6dX!!!!!!!8!#!!C!'X)$&GSEb"KFQ8JH@pe2`!!!!!!(3!+!#d"1"!+4'&bE@& X+ bB@jdD!!!!!!!0J!)!%B!i!JI9fKKG#"VD@jN)'pQ)'0SBA*KBh4PFL"KFQ8JH@p X+ e2f8!!!!!!%J!#!"B!(-'$%&bBfKPEfa[CfPcG!!!!!!!A!!)!'`!F`B*3Q&bBQ& X+ bD@&Z!!!!!!!!G!!)!)3!F`B)3f&fC5eYB@i!!!!!!)`!#!#F!(-'!d9XCS-!!!! X+ !!%J!H!"B!-X'"NKPB@aPFJ!!!!!!A!"i!'`!bJB'5fjTCfKd!!!!!!"d!(J!K!$ X+ 0"JC3FQPPFh3!!!!!!)`!H!#F!-d'"9*[Ch9P!!!!!!!!5!$B!&J",3B(8f&YGA* X+ KDA%!!!!!!&`!f!"`!5d'"e4[GA*TFh3!!!!!!!"d!0J!K!%Y"JK@B@aVHA*TC3! X+ !!!!!M!$B!*`",3B'9fPkBA*N!!!!!!#N!!J!Y!$!"K4-CA3JG'KP)'GKE@8JBfK X+ [Eh0P)!!!!!!!c!#3!!$F!8J&%d4PBR9R)#KA59T"8N3T)%e[C'@#!!!!!!$-!!J X+ !h!"i"3a&H("XEh*P)'e[C'8!!!!!!+3!f!#d!5!&"NCPE@&XC3!!!!!!hJ!)!1i X+ !d!8B4'PcF'aKH5"ZCAGc)'*PCQpbC5"RB@eP!!!!!!$`!!J"!!#3!!835R9cG#" X+ cD'ph)(0MEh*PF`!!!!!![!!)!-d!8`J)6h"dD@pZFcS!!!!9!!!!!!%%!AF!!3! X+ !!!!!!!!!m'!!!!!!l!!+!!!!!!#r!4i!d3&Z"!42F'9Z!!!!!!!!!MX!8!*0"!C X+ )D@4NC@i!!!!!!0S"(`$X!@m%"N0KEQ0PE!!!!!!!*`%D!$S"Fi!!!!!!!!"%!5! X+ !9J&`"!9&DQ9MG&m!!!!!!&d")!"[!A!%"84bDACPi!!!!!!!3`!-!28"&`!!!!! X+ !!!!$!'d!&3#G!!!!!!!!!*B"'`#A!A1!!!!!!!!!!!)8!'8#G)J!!!!!!!!#!$! X+ !*J&'#$03E'9KFf8JE'pMBA4PAM!JCQPXC9ia)&ib$@pb)("bCA0c)%0KEQ0PE#" X+ dEb"KBQpbG#lA!!!"D!!(!!!!!!#E!$`!V`"i"!*25`!!!!!!Q`#i!+m"%J3*6@p X+ bC5"*EQC[ZJ!!!!!!#J!F!"S"0N!#!'3!!!!!!%N!E3"E!1%)'&0PC5"XD@0PER0 X+ P)'C[FL"NCA4KD@ac,J!!!!!!)`!h!$-")3JY3fp`HA*TCfKd)$%j1$8X)$%j1$B X+ X)$%j1$FX)$%j1$JX)$%j1$NX)$%j16!Z1J!!!!!!-`!P!%8"3`Jf3RNJ8h4TBfK X+ dD@jR)%eKG'KPE@&dDA0MD#"$C@jdFR9Y)'&ZC#"0D@YP)&0dCA"SC@jcEfiZ!!! X+ !!!"G!$)!E`%P#$0#G@FJFQ9`Eh*dFb!Y)'9YB@PX)'jPG'KKBfXYBR9RFd"XD@j X+ M,Q0TFbjeF'9ZELjPC(8Z!!!!!!"d!#-!K!%fL$K#FQpeCfKd)(4[)(P[G5"LH5" X+ +EfKZERNX)%T[EL`J3@jNH5`J5f9fD@iX)%eTDf8JB@jN)&4[E3!!!&X!@`#8!,i X+ !Z3%I%3'J&0kK&0i!+!!$k(`!!qJJ!*3![J#j!4m!"3!"!!!!!`!B!"J`'!!-!!! X+ !!!"e)&m"!!S!P!#q!,N"(`F!"3!&#`!B!"K!!*3![J#j!4rr!!!"!!!!00)!!$2 X+ 5!!!%p!!`ca!)&J!!!"`$2J!-8%P$9!!"!'TZD$-`!!!!JNe&6P8!"J#168&XG!! X+ "!1**3diM!!B!qNK%9%%!#J&14P*&4J!'!G*'6dj8!!)#*NC26N3!!!*+4%a24`! X+ $!PC%594-!!-#KN098P-!"`+f3Nj%6!!!!aB!C2rr!!!!!!!!!!!6M[rr!!!cF`! X+ aG&J!!2rr!!!#8!!!!!!!CJ!!!!!Sa!!!!!!!C`!&!!!#H`!!!!!!D!!+!!!#b`! X+ !!!!!D3!8!!!$H3!!!!!!DJ!E!!!%%!!!!!!!D`!J!!!%e3!!!!!!E!!P!!!&F3! X+ !!!!!J!!h!!!'A`!!!!!!J3!m!!!(l3!!!!!!J3"#)!!*H`!!!!!!JJ"0)!!+I`! X+ !!!!!J`"D)!!,J`!!!!!!K3&l)!!-K`!!!!!!K!&M)!!Q[!!!!!!!J!&[)!!R`!! X+ !!!!!KJ'+!!!TA`!!!!!!b3"Q!!!0L`!!!!!!bJ"a!!!0N3!!!!!!c!"l!!!0RJ! X+ !!!!!c3#+!!!0UJ!!!!!!cJ#A!!!0Y3!!!!!!c`#T!!!0``!!!!!!b`#h!!!0d!! X+ !!!!!d!$"!!!0fJ!!!!!!CJ$6!!!0l!!!!!!!C`$F!!!1&!!!!!!!C2rr!!!19J! X+ !!!!!J!$M!!!1D3!!!!!!J3$[!!!1G!!!!!!!JJ$q!!!1I`!!!!!!J`%,!!!1LJ! X+ !!!!!K!%E!!!1P3!!!!!!K3&8!!!QX3!!!!!!KJ'8!!!UX`!!!!",LIrr)!!1S!! X+ !!!",M2rr!!!B,!!!!!",!!%Q!!!N$J!!!!!!P`%Y"!!N%J!!!!!!J3%f!!!N@!! X+ !!!!!JJ'H!!!U[J!!!!!!J`'Z!!!UhJ!aG&$`B2rr!!!`rJ!!!!!!JIrr!!!b"`! X+ !!!!!J[rr!!!UrJ!!!!!!J`'Q!!!Z[!!!!!$`B2rr!!!a&`!!!!!!C2rr!!!NF3! X+ !!!!!Drrr!!!NZ3!!!!!!CIrr!!!P!3!!!!!!C[rr!!!P53!!!!!!Crrr!!!PN3! X+ !!!!!D2rr!!!Pf3!!!!!!DIrr!!!Q)3!!!!!!D[rr!!!QD3!!!!!!J!&%!!!UB`! X+ !!!!%4QPXC34&C'Pd#8PZGQ9ZG'pbH3C"Bh4TEfi%8(*PF!40EhCP%89iG'9ZC'9 X+ N)%0[E@eKEQ4c"&P1+#N&@8j4+#N+8f&fC@3J4f&YC3a&H("XEh*P)%GKE@8,8f& X+ fC@3J6'9fC@`+3A"`E'8JE@9ZG3P'D@aP)'ePER815@jfC@jdEh*j)'ePER8-3@0 X+ dD@pZFb"YC@je%9"bCA"KFQ&dD@pZFb"YC@je$8e[GQ9YC@jd)'ePER8*4@4TG#" X+ YC@je%89iG'9ZC'9N)%0[E@eKEQ4c#'GbBA"SD@0c"QYPH@eKF!Y"F("XD@0KG'P X+ [EJj6BACP)%0SBA)J4QPXC3a&H("XEh*P)'CTE'826'9fC@`J9'9YF#"'D@aP#N* X+ [EQ9c)%CTE'8'HR3YD@*Y#%KKBfY'Efjd$8&LEh9d)%jPG%KKBfX26Q9d5'&MDb" X+ QEh)J6@&M$N&eH'PXD@&bH5"'D@aP#d*[EQ9c)%aPGQ9X#d&`F'aTBf&dD@pZ$N& X+ eH'PXD@&bH5"'D@aP#94&@&3JCQPXC3P849K8)'CTE'8(6h"dD@pZF`GKFfYZB@e X+ P"f&cDfjKE@9&6!: X*** /dev/null Tue Feb 20 01:29:52 1990 X--- auxil/MacHelp Tue Feb 6 16:33:54 1990 X*************** X*** 0 X X--- 1,35 ----- X+ y k u 7 8 9 UP X+ \|/ \|/ | X+ h-.-l 4-.-6 LEFT<- ->RIGHT X+ /|\ /|\ | X+ b j n 1 2 3 DOWN X+ numberpad cursor keys X+ Move commands: X+ yuhjklbn: go one step in specified direction X+ YUHJKLBN: go in specified direction until you X+ hit a wall or run into something X+ g<dir>: run in direction <dir> until something X+ interesting is seen X+ G<dir>, X+ [SHIFT]<dir>: same, except a branching corridor isn't considered X+ interesting X+ m<dir>: move without picking up objects X+ X+ If the window title shows "[MOVE]", the number keys move your character, X+ otherwise they act as a numeric keypad. X+ The 'g', 'G', '[SHIFT]' and 'm' modifiers may also be used with the X+ numberpad and the cursor keys. X+ The mouse cursor shows which direction you will try to move if you X+ press the mouse button when the mouse is in the Nethack window. You may X+ use the 'g', 'G', '[SHIFT]' and 'm' modifiers with the mouse button too. X+ The '5' key on the numberpad invokes the "open door" command. X+ The '0' key on the numberpad invokes the "do inventory" command. X+ X+ For pre-ADB keyboards (Mac+ keyboards and earlier), use the Command key X+ for the Control key and the "`" (backquote) key for the escape key. X+ X+ Press the clear key (on the numberpad) to switch between movement mode X+ and numeric keypad mode. X+ X+ The option key is the meta-key. For option-n, press option-shift-n and X+ for option-u, press option-shift-u. X*** Old/Files Sun Nov 19 20:58:09 1989 X--- ./Files Mon Feb 19 14:07:54 1990 X*************** X*** 5,12 X X X (files in top directory) X! Files Install.dos Install.unix Makefile.top Porting X! README X X X amiga: X X--- 5,12 ----- X X X (files in top directory) X! Files Install.ami Install.dos Install.mac Install.unix X! Install.vms Makefile.top Porting README X X amiga: X (files for Amiga version) X*************** X*** 8,14 X Files Install.dos Install.unix Makefile.top Porting X README X X- X amiga: X (files for Amiga version) X Install.ami Makefile.ami NetHack.cnf ami.lnk amidos.c X X--- 8,13 ----- X Files Install.ami Install.dos Install.mac Install.unix X Install.vms Makefile.top Porting README X X amiga: X (files for Amiga version) X Makefile.ami NHScore.uu NHinfo.uu NetHack.cnf NewGame.uu X*************** X*** 11,19 X X amiga: X (files for Amiga version) X! Install.ami Makefile.ami NetHack.cnf ami.lnk amidos.c X! amifont.uu amifont8.uu amimenu.c amitcap.c amitty.c X! amiunix.c amiwind.c fcntl.h signal.h stdio.h X X X auxil: X X--- 10,19 ----- X X amiga: X (files for Amiga version) X! Makefile.ami NHScore.uu NHinfo.uu NetHack.cnf NewGame.uu X! ami.lnk amidos.c amifont.uu amifont8.uu amimenu.c X! amitcap.c amitty.c amiunix.c amiwbench.c amiwind.c X! compact.lat dflticon.uu X X auxil: X (files for all versions) X*************** X*** 15,21 X amifont.uu amifont8.uu amimenu.c amitcap.c amitty.c X amiunix.c amiwind.c fcntl.h signal.h stdio.h X X- X auxil: X (files for all versions) X Guidebook.mn castle.des cmdhelp data.base endgame.des X X--- 15,20 ----- X amitcap.c amitty.c amiunix.c amiwbench.c amiwind.c X compact.lat dflticon.uu X X auxil: X (files for all versions) X Guidebook.mn castle.des cmdhelp data.base endgame.des X*************** X*** 23,28 X oracles rumors.fal rumors.tru tower.des X (files for UNIX versions) X Makefile.auxil lev_comp.6 nethack.6 nethack.sh X X X others: X X--- 22,29 ----- X oracles rumors.fal rumors.tru tower.des X (files for UNIX versions) X Makefile.auxil lev_comp.6 nethack.6 nethack.sh X+ (file for Macintosh version) X+ MacHelp X X include: X (files for all versions) X*************** X*** 24,29 X (files for UNIX versions) X Makefile.auxil lev_comp.6 nethack.6 nethack.sh X X X others: X (files for MSDOS version) X X--- 25,44 ----- X (file for Macintosh version) X MacHelp X X+ include: X+ (files for all versions) X+ MacAlert.h amiconf.h artifact.h attrib.h color.h X+ config.h coord.h decl.h def_os2.h edog.h X+ epri.h eshk.h extern.h flag.h func_tab.h X+ global.h gold.h hack.h lev.h macconf.h X+ mfndpos.h mkroom.h monattk.h mondata.h monflag.h X+ monst.h monsym.h msdos.h obj.h objclass.h X+ patchlevel.h pcconf.h permonst.h prop.h rm.h X+ sp_lev.h spell.h system.h termcap.h tosconf.h X+ tradstdc.h trampoli.h trap.h unixconf.h vault.h X+ vmsconf.h wseg.h you.h youprop.h X+ (file for special level compiler (STRONGHOLD option)) X+ lev_comp.h X X mac: X (files for Macintosh version) X*************** X*** 25,30 X Makefile.auxil lev_comp.6 nethack.6 nethack.sh X X X others: X (files for MSDOS version) X Make.ini Makefile.msc Makefile.os2 Makefile.ovl Makefile.pc X X--- 40,50 ----- X (file for special level compiler (STRONGHOLD option)) X lev_comp.h X X+ mac: X+ (files for Macintosh version) X+ MD.rsrc.hqx MacAlert.c NH3.proj.hqx NH3.rsrc.hqx Segments.mac X+ mac.c macfile.c macinit.c X+ X others: X (files for MSDOS version) X Makefile.lib Makefile.msc Makefile.os2 Makefile.ovl Makefile.pc X*************** X*** 27,35 X X others: X (files for MSDOS version) X! Make.ini Makefile.msc Makefile.os2 Makefile.ovl Makefile.pc X! Makefile.tcc Maketcc.ini NetHack.cnf ovlmgr.asm ovlmgr.doc X! ovlmgr.uu termcap termcap.uu trampoli.c X (files for MSDOS, Amiga, and Atari versions) X pcmain.c pctty.c pcunix.c X (file for MSDOS and new Atari versions) X X--- 47,55 ----- X X others: X (files for MSDOS version) X! Makefile.lib Makefile.msc Makefile.os2 Makefile.ovl Makefile.pc X! Makefile.tcc NetHack.cnf ovlmgr.asm ovlmgr.doc ovlmgr.uu X! termcap termcap.uu trampoli.c X (files for MSDOS, Amiga, and Atari versions) X lev_lex.c pcmain.c pctty.c pcunix.c X (file for MSDOS and Atari versions) X*************** X*** 31,38 X Makefile.tcc Maketcc.ini NetHack.cnf ovlmgr.asm ovlmgr.doc X ovlmgr.uu termcap termcap.uu trampoli.c X (files for MSDOS, Amiga, and Atari versions) X! pcmain.c pctty.c pcunix.c X! (file for MSDOS and new Atari versions) X msdos.c X (files for new Atari version) X Makefile.st atari.cnf atarifnt.uue X X--- 51,58 ----- X Makefile.tcc NetHack.cnf ovlmgr.asm ovlmgr.doc ovlmgr.uu X termcap termcap.uu trampoli.c X (files for MSDOS, Amiga, and Atari versions) X! lev_lex.c pcmain.c pctty.c pcunix.c X! (file for MSDOS and Atari versions) X msdos.c X (files for Atari version) X Makefile.st atari.cnf atarifnt.uue X*************** X*** 34,40 X pcmain.c pctty.c pcunix.c X (file for MSDOS and new Atari versions) X msdos.c X! (files for new Atari version) X Makefile.st atari.cnf atarifnt.uue X (file for old Atari version) X oldtos.c X X--- 54,60 ----- X lev_lex.c pcmain.c pctty.c pcunix.c X (file for MSDOS and Atari versions) X msdos.c X! (files for Atari version) X Makefile.st atari.cnf atarifnt.uue X (Berkeley random number file, which may be included in any version) X random.c X*************** X*** 36,43 X msdos.c X (files for new Atari version) X Makefile.st atari.cnf atarifnt.uue X- (file for old Atari version) X- oldtos.c X (Berkeley random number file, which may be included in any version) X random.c X X X--- 56,61 ----- X msdos.c X (files for Atari version) X Makefile.st atari.cnf atarifnt.uue X (Berkeley random number file, which may be included in any version) X random.c X X*************** X*** 41,62 X (Berkeley random number file, which may be included in any version) X random.c X X- X- include: X- (files for all versions) X- amiconf.h artifact.h attrib.h color.h config.h X- coord.h decl.h def_os2.h edog.h epri.h X- eshk.h extern.h flag.h func_tab.h global.h X- gold.h hack.h lev.h macconf.h mfndpos.h X- mkroom.h monattk.h mondata.h monflag.h monst.h X- monsym.h msdos.h obj.h objclass.h patchlevel.h X- pcconf.h permonst.h prop.h rm.h sp_lev.h X- spell.h system.h termcap.h tosconf.h tradstdc.h X- trampoli.h trap.h trapname.h unixconf.h vault.h X- vmsconf.h wseg.h you.h youprop.h X- (file for special level compiler (STRONGHOLD option)) X- lev_comp.h X- X src: X (files for all versions) X allmain.c alloc.c apply.c artifact.c attrib.c X X--- 59,64 ----- X (Berkeley random number file, which may be included in any version) X random.c X X src: X (files for all versions) X allmain.c alloc.c apply.c artifact.c attrib.c X*************** X*** 84,90 X X vms: X (files for VMS version) X! Install.vms spec_lev.com vmsbuild.com vmsmain.c vmsmisc.c X vmstty.c vmsunix.c X (GNU termcap files that support VMS version) X vmstermcap.c vmstparam.c X X--- 86,92 ----- X X vms: X (files for VMS version) X! Install.com spec_lev.com vmsbuild.com vmsmain.c vmsmisc.c X vmstty.c vmsunix.c X (GNU termcap files that support VMS version) X vmstermcap.c vmstparam.c X*************** X*** 88,95 X vmstty.c vmsunix.c X (GNU termcap files that support VMS version) X vmstermcap.c vmstparam.c X- X- mac: X- (files for Macintosh version) X- Install.mac Makedefs.rma Nethack.rma Segments.mac hackfont.hqx X- mac.c macfile.c macinit.c makedefs.r nethack.r X X--- 90,92 ----- X vmstty.c vmsunix.c X (GNU termcap files that support VMS version) X vmstermcap.c vmstparam.c X*** Old/mac/Segments.mac Sun Nov 19 21:01:33 1989 X--- mac/Segments.mac Mon Jan 29 23:49:38 1990 X*************** X*** 20,26 X cmd.c X getline.c X mac.c X- macfile.c X MacTraps X pcmain.c X prisym.c X X--- 20,25 ----- X cmd.c X getline.c X mac.c X MacTraps X pcunix.c X random.c X*************** X*** 22,29 X mac.c X macfile.c X MacTraps X! pcmain.c X! prisym.c X random.c X rnd.c X termcap.c X X--- 21,27 ----- X getline.c X mac.c X MacTraps X! pcunix.c X random.c X rnd.c X termcap.c X*************** X*** 27,32 X random.c X rnd.c X termcap.c X X ===== Seg 2 ===== X apply.c X X--- 25,31 ----- X random.c X rnd.c X termcap.c X+ topl.c X X ===== Seg 2 ===== X mkobj.c X*************** X*** 29,37 X termcap.c X X ===== Seg 2 ===== X! apply.c X! attrib.c X! do.c X X ===== Seg 3 ===== X dog.c X X--- 28,40 ----- X topl.c X X ===== Seg 2 ===== X! mkobj.c X! mkroom.c X! mon.c X! mondata.c X! monmove.c X! track.c X! were.c X X ===== Seg 3 ===== X engrave.c X*************** X*** 34,44 X do.c X X ===== Seg 3 ===== X! dog.c X! dogmove.c X! dokick.c X! dothrow.c X! do_name.c X hack.c X X ===== Seg 4 ===== X X--- 37,43 ----- X were.c X X ===== Seg 3 ===== X! engrave.c X hack.c X invent.c X mthrowu.c X*************** X*** 40,45 X dothrow.c X do_name.c X hack.c X X ===== Seg 4 ===== X do_wear.c X X--- 39,46 ----- X ===== Seg 3 ===== X engrave.c X hack.c X+ invent.c X+ mthrowu.c X X ===== Seg 4 ===== X dbridge.c X*************** X*** 42,49 X hack.c X X ===== Seg 4 ===== X! do_wear.c X! eat.c X shk.c X shknam.c X X X--- 43,55 ----- X mthrowu.c X X ===== Seg 4 ===== X! dbridge.c X! dog.c X! dogmove.c X! pri.c X! priest.c X! X! ===== Seg 5 ===== X shk.c X shknam.c X trap.c X*************** X*** 46,51 X eat.c X shk.c X shknam.c X X ===== Seg 5 ===== X engrave.c X X--- 52,58 ----- X ===== Seg 5 ===== X shk.c X shknam.c X+ trap.c X X ===== Seg 6 ===== X stdio [LIB] X*************** X*** 47,60 X shk.c X shknam.c X X- ===== Seg 5 ===== X- engrave.c X- exper.c X- extralev.c X- fountain.c X- invent.c X- vault.c X- X ===== Seg 6 ===== X lock.c X makemon.c X X--- 54,59 ----- X shknam.c X trap.c X X ===== Seg 6 ===== X stdio [LIB] X storage [LIB] X*************** X*** 56,65 X vault.c X X ===== Seg 6 ===== X! lock.c X! makemon.c X! mcastu.c X! mhitm.c X X ===== Seg 7 ===== X mhitu.c X X--- 55,65 ----- X trap.c X X ===== Seg 6 ===== X! stdio [LIB] X! storage [LIB] X! strings [LIB] X! Math [LIB] X! unix [LIB] X X ===== Seg 7 ===== X makemon.c X*************** X*** 62,69 X mhitm.c X X ===== Seg 7 ===== X! mhitu.c X! uhitm.c X X ===== Seg 8 ===== X mklev.c X X--- 62,71 ----- X unix [LIB] X X ===== Seg 7 ===== X! makemon.c X! mkmaze.c X! prisym.c X! read.c X X ===== Seg 8 ===== X artifact.c X*************** X*** 66,75 X uhitm.c X X ===== Seg 8 ===== X! mklev.c X! mkobj.c X! mkroom.c X! mon.c X X ===== Seg 9 ===== X mondata.c X X--- 68,79 ----- X read.c X X ===== Seg 8 ===== X! artifact.c X! attrib.c X! search.c X! sounds.c X! timeout.c X! wizard.c X X ===== Seg 9 ===== X mhitu.c X*************** X*** 72,82 X mon.c X X ===== Seg 9 ===== X! mondata.c X! monmove.c X! mthrowu.c X! music.c X! objnam.c X X ===== Seg 10 ===== X pager.c X X--- 76,82 ----- X wizard.c X X ===== Seg 9 ===== X! mhitu.c X X ===== Seg 10 ===== X do_name.c X*************** X*** 79,85 X objnam.c X X ===== Seg 10 ===== X! pager.c X pickup.c X polyself.c X potion.c X X--- 79,85 ----- X mhitu.c X X ===== Seg 10 ===== X! do_name.c X pickup.c X weapon.c X X*************** X*** 81,88 X ===== Seg 10 ===== X pager.c X pickup.c X! polyself.c X! potion.c X X ===== Seg 11 ===== X pray.c X X--- 81,87 ----- X ===== Seg 10 ===== X do_name.c X pickup.c X! weapon.c X X ===== Seg 11 ===== X mcastu.c X*************** X*** 85,93 X potion.c X X ===== Seg 11 ===== X! pray.c X! pri.c X! priest.c X X ===== Seg 12 ===== X read.c X X--- 84,92 ----- X weapon.c X X ===== Seg 11 ===== X! mcastu.c X! mhitm.c X! polyself.c X X ===== Seg 12 ===== X lock.c X*************** X*** 90,103 X priest.c X X ===== Seg 12 ===== X! read.c X! restore.c X! rumors.c X! save.c X! search.c X! sit.c X! sounds.c X! spell.c X X ===== Seg 13 ===== X sp_lev.c X X--- 89,96 ----- X polyself.c X X ===== Seg 12 ===== X! lock.c X! vault.c X X ===== Seg 13 ===== X decl.c X*************** X*** 100,128 X spell.c X X ===== Seg 13 ===== X- sp_lev.c X- steal.c X- timeout.c X- topl.c X- track.c X- trap.c X- weapon.c X- were.c X- wield.c X- X- ===== Seg 14 ===== X- Math [LIB] X- unix [LIB] X- worn.c X- write.c X- zap.c X- X- ===== Seg 15 ===== X- stdio [LIB] X- storage [LIB] X- strings [LIB] X- X- ===== Seg 16 ===== X decl.c X macinit.c X monst.c X X--- 93,98 ----- X vault.c X X ===== Seg 13 ===== X decl.c X macfile.c X macinit.c X*************** X*** 124,129 X X ===== Seg 16 ===== X decl.c X macinit.c X monst.c X objects.c X X--- 94,100 ----- X X ===== Seg 13 ===== X decl.c X+ macfile.c X macinit.c X monst.c X objects.c X*************** X*** 129,134 X objects.c X options.c X o_init.c X u_init.c X version.c X X X--- 100,107 ----- X objects.c X options.c X o_init.c X+ pcmain.c X+ pctty.c X u_init.c X version.c X X*************** X*** 132,137 X u_init.c X version.c X X ===== Seg 17 ===== X end.c X pctty.c X X--- 105,125 ----- X u_init.c X version.c X X+ ===== Seg 14 ===== X+ apply.c X+ exper.c X+ X+ ===== Seg 15 ===== X+ dothrow.c X+ sit.c X+ wield.c X+ worn.c X+ write.c X+ X+ ===== Seg 16 ===== X+ pager.c X+ rumors.c X+ X ===== Seg 17 ===== X demon.c X do.c X*************** X*** 133,138 X version.c X X ===== Seg 17 ===== X end.c X pctty.c X pcunix.c X X--- 121,132 ----- X rumors.c X X ===== Seg 17 ===== X+ demon.c X+ do.c X+ steal.c X+ worm.c X+ X+ ===== Seg 18 ===== X end.c X rip.c X topten.c X*************** X*** 134,141 X X ===== Seg 17 ===== X end.c X- pctty.c X- pcunix.c X rip.c X topten.c X X X--- 128,133 ----- X X ===== Seg 18 ===== X end.c X rip.c X topten.c X X*************** X*** 139,146 X rip.c X topten.c X X! ===== Seg 18 ===== X! artifact.c X bones.c X dbridge.c X demon.c X X--- 131,156 ----- X rip.c X topten.c X X! ===== Seg 19 ===== X! fountain.c X! potion.c X! X! ===== Seg 20 ===== X! pray.c X! X! ===== Seg 21 ===== X! sp_lev.c X! X! ===== Seg 22 ===== X! mklev.c X! restore.c X! save.c X! X! ===== Seg 23 ===== X! music.c X! spell.c X! X! ===== Seg 24 ===== X bones.c X MacAlert.c X X*************** X*** 142,149 X ===== Seg 18 ===== X artifact.c X bones.c X! dbridge.c X! demon.c X! mkmaze.c X! wizard.c X! worm.c X X--- 152,176 ----- X X ===== Seg 24 ===== X bones.c X! MacAlert.c X! X! ===== Seg 25 ===== X! do_wear.c X! X! ===== Seg 26 ===== X! extralev.c X! X! ===== Seg 27 ===== X! dokick.c X! X! ===== Seg 28 ===== X! zap.c X! X! ===== Seg 29 ===== X! eat.c X! X! ===== Seg 30 ===== X! uhitm.c X! X! ===== Seg 31 ===== X! objnam.c X END_OF_FILE if test 56824 -ne `wc -c <'patch7.22'`; then echo shar: \"'patch7.22'\" unpacked with wrong size! fi # end of 'patch7.22' echo shar: End of archive 4 \(of 30\). cp /dev/null ark4isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 30 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0