home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
games
/
volume16
/
nethack31
/
patch2cc
< prev
next >
Wrap
Internet Message Format
|
1993-06-16
|
62KB
Path: uunet!news.tek.com!saab!billr
From: billr@saab.CNA.TEK.COM (Bill Randle)
Newsgroups: comp.sources.games
Subject: v17i104: nethack31 - display oriented dungeons & dragons (Ver. 3.1), Patch2cc/33
Date: 11 Jun 1993 00:18:53 GMT
Organization: Tektronix, Inc, Redmond, OR, USA
Lines: 1740
Approved: billr@saab.CNA.TEK.COM
Message-ID: <1v8j1d$j9o@ying.cna.tek.com>
NNTP-Posting-Host: saab.cna.tek.com
Xref: uunet comp.sources.games:1786
Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
Posting-number: Volume 17, Issue 104
Archive-name: nethack31/Patch2cc
Patch-To: nethack31: Volume 16, Issue 1-116
Environment: Amiga, Atari, Mac, MS-DOS, Windows-NT, OS2, Unix, VMS, X11
#! /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 29 (of 33)."
# Contents: sys/msdos/trampoli.c sys/share/termcap.uu
# sys/winnt/nttty.c
# Wrapped by billr@saab on Thu Jun 10 16:55:08 1993
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'sys/msdos/trampoli.c' -a "${1}" != "-c" ; then
echo shar: Renaming existing file \"'sys/msdos/trampoli.c'\" to \"'sys/msdos/trampoli.c.orig'\"
mv -f 'sys/msdos/trampoli.c' 'sys/msdos/trampoli.c.orig'
fi
echo shar: Extracting \"'sys/msdos/trampoli.c'\" \(14865 characters\)
sed "s/^X//" >'sys/msdos/trampoli.c' <<'END_OF_FILE'
X/* SCCS Id: @(#)trampoli.c 3.1 93/01/18 */
X/* Copyright (c) 1989 - 1993 by Norm Meluch and Stephen Spackman */
X/* NetHack may be freely redistributed. See license for details. */
X
X#include "hack.h"
X
X/****************************************************************************/
X/* */
X/* This file contains a series of definitions of "one liner" */
X/* functions corresponding to *all* functions that NetHack calls */
X/* via pointers. */
X/* IF ANY CALLS TO FUNCTIONS VIA POINTERS ARE ADDED */
X/* TO THE CODE, AN ENTRY FOR THE FUNCTION CALLED MUST */
X/* BE ADDED TO THIS FILE AND TO TRAMPOLI.H. */
X/* This mess is necessary for the Microsoft Compiler implementation */
X/* of overlaid code (v5.1 - 6.0ax). */
X/* */
X/* The original function (eg foo) has been #defined to be foo_ */
X/* via double inclusion of trampoli.h in hack.h, and */
X/* now the definition of foo is placed in this file calling foo */
X/* directly. This module is _never_ placed in an overlay so */
X/* calls via pointers to these functions will not cause difficulties. */
X/* */
X/* This leads to what could be called a "trampoline" effect, and */
X/* hence the silly name for these files. :-) */
X/* */
X/****************************************************************************/
X
X#ifdef OVERLAY
X
X/* ### apply.c ### */
X#undef dig
X#undef doapply
X#undef dojump
X#undef dorub
X
Xint dig() { return dig_(); }
Xint doapply() { return doapply_(); }
Xint dojump() { return dojump_(); }
Xint dorub() { return dorub_(); }
X
X
X/* ### artifact.c ### */
X#undef doinvoke
X
Xint doinvoke() { return doinvoke_(); }
X
X
X/* ### cmd.c ### */
X#undef doextcmd
X#undef doextlist
X#undef doprev_message
X
X#ifdef POLYSELF
X#undef domonability
X#endif /* POLYSELF */
X
X#ifdef EXPLORE_MODE
X#undef enter_explore_mode
X
Xint enter_explore_mode() { return enter_explore_mode_(); }
X#endif
X
X#undef timed_occupation
X
X#if defined(WIZARD) || defined(EXPLORE_MODE)
X#undef wiz_attributes
X#endif
X
X#ifdef WIZARD
X#undef wiz_detect
X#undef wiz_genesis
X#undef wiz_identify
X#undef wiz_level_tele
X#undef wiz_map
X#undef wiz_where
X#undef wiz_wish
X#endif
X
Xint doextcmd() { return doextcmd_(); }
Xint doextlist() { return doextlist_(); }
Xint doprev_message() { return doprev_message_(); }
X
X#ifdef POLYSELF
Xint domonability() { return domonability_(); }
X#endif /* POLYSELF */
X
Xint timed_occupation() { return timed_occupation_(); }
X
X#if defined(WIZARD) || defined(EXPLORE_MODE)
Xint wiz_attributes() { return wiz_attributes_(); }
X#endif
X
X#ifdef WIZARD
Xint wiz_detect() { return wiz_detect_(); }
Xint wiz_genesis() { return wiz_genesis_(); }
Xint wiz_identify() { return wiz_identify_(); }
Xint wiz_level_tele() { return wiz_level_tele_(); }
Xint wiz_map() { return wiz_map_(); }
Xint wiz_where() { return wiz_where_(); }
Xint wiz_wish() { return wiz_wish_(); }
X#endif
X
X
X/* ### do.c ### */
X#undef doddrop
X#undef dodown
X#undef dodrop
X#undef donull
X#undef doup
X#undef dowipe
X#undef drop
X#undef wipeoff
X
Xint doddrop() { return doddrop_(); }
Xint dodown() { return dodown_(); }
Xint dodrop() { return dodrop_(); }
Xint donull() { return donull_(); }
Xint doup() { return doup_(); }
Xint dowipe() { return dowipe_(); }
Xint drop(obj)
X register struct obj *obj; { return drop_(obj); }
Xint wipeoff() { return wipeoff_(); }
X
X
X/* ### do_name.c ### */
X#undef ddocall
X#undef do_mname
X
Xint ddocall() { return ddocall_(); }
Xint do_mname() { return do_mname_(); }
X
X
X/* ### do_wear.c ### */
X#undef Armor_off
X#undef Boots_off
X#undef Gloves_off
X#undef Helmet_off
X#undef Armor_on
X#undef Boots_on
X#undef Gloves_on
X#undef Helmet_on
X#undef doddoremarm
X#undef doputon
X#undef doremring
X#undef dotakeoff
X#undef dowear
X#undef select_off
X#undef take_off
X
Xint Armor_off() { return Armor_off_(); }
Xint Boots_off() { return Boots_off_(); }
Xint Gloves_off() { return Gloves_off_(); }
Xint Helmet_off() { return Helmet_off_(); }
Xint Armor_on() { return Armor_on_(); }
Xint Boots_on() { return Boots_on_(); }
Xint Gloves_on() { return Gloves_on_(); }
Xint Helmet_on() { return Helmet_on_(); }
Xint doddoremarm() { return doddoremarm_(); }
Xint doputon() { return doputon_(); }
Xint doremring() { return doremring_(); }
Xint dotakeoff() { return dotakeoff_(); }
Xint dowear() { return dowear_(); }
Xint select_off(otmp)
X struct obj *otmp; { return select_off_(otmp); }
Xint take_off() { return take_off_(); }
X
X
X/* ### dogmove.c ### */
X#undef wantdoor
X
Xvoid wantdoor(x, y, dummy)
X int x, y; genericptr_t dummy; { wantdoor_(x, y, dummy); }
X
X
X/* ### dokick.c ### */
X#undef dokick
X
Xint dokick() { return dokick_(); }
X
X
X/* ### dothrow.c ### */
X#undef dothrow
X
Xint dothrow() { return dothrow_(); }
X
X
X/* ### eat.c ### */
X#undef Hear_again
X#undef eatmdone
X#undef doeat
X#undef eatfood
X#undef opentin
X#undef unfaint
X
Xint Hear_again() { return Hear_again_(); }
Xint eatmdone() { return eatmdone_(); }
Xint doeat() { return doeat_(); }
Xint eatfood() { return eatfood_(); }
Xint opentin() { return opentin_(); }
Xint unfaint() { return unfaint_(); }
X
X
X/* ### end.c ### */
X#undef done1
X#undef done2
X#undef hangup
X#undef done_intr
X
X#if defined(UNIX) || defined(VMS)
X#undef done_hangup
X#endif /* UNIX || VMS */
X
Xint done1() { return done1_(); }
Xint done2() { return done2_(); }
Xint hangup() { return hangup_(); }
Xint done_intr() { return done_intr_(); }
X
X#if defined(UNIX) || defined(VMS)
Xint done_hangup() { return done_hangup_(); }
X#endif /* UNIX || VMS */
X
X
X/* ### engrave.c ### */
X#undef doengrave
X
Xint doengrave() { return doengrave_(); }
X
X
X/* ### fountain.c ### */
X#undef gush
X
Xvoid gush(x, y, poolcnt)
X int x, y; genericptr_t poolcnt; { gush_(x, y, poolcnt); }
X
X
X/* ### hack.c ### */
X#undef dopickup
X#undef identify
X
Xint dopickup() { return dopickup_(); }
Xint identify(otmp)
X struct obj *otmp; { return identify_(otmp); }
X
X
X/* ### invent.c ### */
X#undef ckunpaid
X#undef ddoinv
X#undef dolook
X#undef dopramulet
X#undef doprarm
X#undef doprgold
X#undef doprring
X#undef doprtool
X#undef doprwep
X#undef dotypeinv
X#undef doorganize
X
Xint ckunpaid(obj)
X struct obj *obj; { return ckunpaid_(obj); }
Xint ddoinv() { return ddoinv_(); }
Xint dolook() { return dolook_(); }
Xint dopramulet() { return dopramulet_(); }
Xint doprarm() { return doprarm_(); }
Xint doprgold() { return doprgold_(); }
Xint doprring() { return doprring_(); }
Xint doprtool() { return doprtool_(); }
Xint doprwep() { return doprwep_(); }
Xint dotypeinv() { return dotypeinv_(); }
Xint doorganize() { return doorganize_(); }
X
X
X/* ### ioctl.c ### */
X#ifdef UNIX
X# ifdef SUSPEND
X#undef dosuspend
X
Xint dosuspend() { return dosuspend_(); }
X# endif /* SUSPEND */
X#endif /* UNIX */
X
X
X/* ### lock.c ### */
X#undef doclose
X#undef doforce
X#undef doopen
X#undef forcelock
X#undef picklock
X
Xint doclose() { return doclose_(); }
Xint doforce() { return doforce_(); }
Xint doopen() { return doopen_(); }
Xint forcelock() { return forcelock_(); }
Xint picklock() { return picklock_(); }
X
X
X/* ### mklev.c ### */
X#undef do_comp
X
Xint do_comp(vx, vy)
X genericptr_t vx, vy; { return comp_(vx, vy); }
X
X
X/* ### mondata.c ### */
X/* canseemon() is only called by a macro e_boolean. If e_boolean ever does
X become a function, this may need to return. */
X
X/* #undef canseemon */
X
X/* boolean canseemon(x) struct monst *x; { return canseemon_(x); } */
X
X
X/* ### muse.c ### */
X#undef mbhitm
X
Xint mbhitm(mtmp, otmp)
X struct monst *mtmp; struct obj *otmp; { return mbhitm_(mtmp, otmp); }
X
X
X/* ### o_init.c ### */
X#undef dodiscovered
X
Xint dodiscovered() { return dodiscovered_(); }
X
X
X/* ### objnam.c ### */
X#undef doname
X#undef xname
X
Xchar *doname(obj)
X struct obj *obj; { return doname_(obj); }
Xchar *xname(obj)
X struct obj *obj; { return xname_(obj); }
X
X
X/* ### options.c ### */
X#undef doset
X#undef dotogglepickup
X
Xint doset() { return doset_(); }
Xint dotogglepickup() { return dotogglepickup_(); }
X
X
X/* ### pager.c ### */
X#undef dohelp
X#undef dohistory
X#undef dowhatdoes
X#undef dowhatis
X#undef doquickwhatis
X
Xint dohelp() { return dohelp_(); }
Xint dohistory() { return dohistory_(); }
Xint dowhatdoes() { return dowhatdoes_(); }
Xint dowhatis() { return dowhatis_(); }
Xint doquickwhatis() { return doquickwhatis_(); }
X
X
X/* ### pcsys.c ### */
X#ifdef SHELL
X#undef dosh
X
Xint dosh() { return dosh_(); }
X#endif /* SHELL */
X
X
X/* ### pickup.c ### */
X#undef ck_bag
X#undef doloot
X#undef in_container
X#undef out_container
X
Xint ck_bag(obj)
X struct obj *obj; { return ck_bag_(obj); }
Xint doloot() { return doloot_(); }
Xint in_container(obj)
X struct obj *obj; { return in_container_(obj); }
Xint out_container(obj)
X struct obj *obj; { return out_container_(obj); }
X
X
X/* ### potion.c ### */
X#undef dodrink
X#undef dodip
X
Xint dodrink() { return dodrink_(); }
Xint dodip() { return dodip_(); }
X
X
X/* ### pray.c ### */
X#undef doturn
X#undef dopray
X#undef prayer_done
X#undef dosacrifice
X
Xint doturn() { return doturn_(); }
Xint dopray() { return dopray_(); }
Xint prayer_done() { return prayer_done_(); }
Xint dosacrifice() { return dosacrifice_(); }
X
X
X/* ### print.c ### */
X#undef doredraw
X
Xint doredraw() { return doredraw_(); }
X
X
X/* ### read.c ### */
X#undef doread
X#undef set_lit
X
Xint doread() { return doread_(); }
Xvoid set_lit(x, y, val)
X int x, y; genericptr_t val; { set_lit_(x, y, val); }
X
X
X/* ### rip.c ### */
X#undef genl_outrip
X
Xvoid genl_outrip(tmpwin, how)
X winid tmpwin; int how; { genl_outrip_(tmpwin, how); }
X
X
X/* ### save.c ### */
X#undef dosave
X
Xint dosave() { return dosave_(); }
X
X
X/* ### search.c ### */
X#undef findone
X#undef openone
X#undef doidtrap
X#undef dosearch
X
Xvoid findone(zx, zy, num)
X int zx, zy; genericptr_t num; { findone_(zx, zy, num); }
Xvoid openone(zx, zy, num)
X int zx, zy; genericptr_t num; { openone_(zx, zy, num); }
Xint doidtrap() { return doidtrap_(); }
Xint dosearch() { return dosearch_(); }
X
X
X/* ### shk.c ### */
X#undef dopay
X
Xint dopay() { return dopay_(); }
X
X
X/* ### sit.c ### */
X#undef dosit
X
Xint dosit() { return dosit_(); }
X
X
X/* ### sounds.c ### */
X#undef dotalk
X
Xint dotalk() { return dotalk_(); }
X
X
X/* ### spell.c ### */
X#undef learn
X#undef docast
X#undef dovspell
X
Xint learn() { return learn_(); }
Xint docast() { return docast_(); }
Xint dovspell() { return dovspell_(); }
X
X
X/* ### steal.c ### */
X#undef stealarm
X
Xint stealarm() { return stealarm_(); }
X
X
X/* ### trap.c ### */
X#undef dotele
X#undef dountrap
X#undef float_down
X
Xint dotele() { return dotele_(); }
Xint dountrap() { return dountrap_(); }
Xint float_down() { return float_down_(); }
X
X
X/* ### version.c ### */
X#undef doversion
X#undef doextversion
X
Xint doversion() { return doversion_(); }
Xint doextversion() { return doextversion_(); }
X
X
X/* ### wield.c ### */
X#undef dowield
X
Xint dowield() { return dowield_(); }
X
X
X/* ### zap.c ### */
X#undef bhitm
X#undef bhito
X#undef dozap
X
Xint bhitm(mtmp, otmp)
X struct monst *mtmp; struct obj *otmp; { return bhitm_(mtmp, otmp); }
Xint bhito(obj, otmp)
X struct obj *obj, *otmp; { return bhito_(obj, otmp); }
Xint dozap() { return dozap_(); }
X
X
X/*
X * Window Implementation Specific Functions.
X */
X
X/* ### getline.c ### */
X#undef tty_getlin
X#ifdef COM_COMPL
X#undef tty_get_ext_cmd
X
Xvoid tty_get_ext_cmd(bufp)
X char *bufp; { tty_get_ext_cmd_(bufp); }
X#endif /* COM_COMPL */
Xvoid tty_getlin(query,bufp)
X const char *query; char *bufp;{ tty_getlin_(query,bufp); }
X
X
X/* ### termcap.c ### */
X#undef tty_nhbell
X#undef tty_number_pad
X#undef tty_delay_output
X#undef tty_start_screen
X#undef tty_end_screen
X
Xvoid tty_nhbell() { tty_nhbell_(); }
Xvoid tty_number_pad(state)
X int state; { tty_number_pad_(state); }
Xvoid tty_delay_output() { tty_delay_output_(); }
X/* other defs that really should go away (they're tty specific) */
Xvoid tty_start_screen() { tty_start_screen_(); }
Xvoid tty_end_screen() { tty_end_screen_(); }
X
X
X/* ### topl.c ### */
X#undef tty_doprev_message
X#undef tty_yn_function
X
Xint tty_doprev_message() { return tty_doprev_message_(); }
Xchar tty_yn_function(query,resp,def)
X const char *query, *resp; char def;
X { return tty_yn_function_(query,resp,def); }
X
X
X/* ### wintty.c ### */
X#undef tty_init_nhwindows
X#undef tty_player_selection
X#undef tty_askname
X#undef tty_get_nh_event
X#undef tty_exit_nhwindows
X#undef tty_suspend_nhwindows
X#undef tty_resume_nhwindows
X#undef tty_create_nhwindow
X#undef tty_clear_nhwindow
X#undef tty_display_nhwindow
X#undef tty_destroy_nhwindow
X#undef tty_curs
X#undef tty_putstr
X#undef tty_display_file
X#undef tty_start_menu
X#undef tty_add_menu
X#undef tty_end_menu
X#undef tty_select_menu
X#undef tty_update_inventory
X#undef tty_mark_synch
X#undef tty_wait_synch
X#ifdef CLIPPING
X#undef tty_cliparound
X#endif
X#undef tty_print_glyph
X#undef tty_raw_print
X#undef tty_raw_print_bold
X#undef tty_nhgetch
X#undef tty_nh_poskey
X
Xvoid tty_init_nhwindows() { tty_init_nhwindows_(); }
Xvoid tty_player_selection() { tty_player_selection_(); }
Xvoid tty_askname() { tty_askname_(); }
Xvoid tty_get_nh_event() { tty_get_nh_event_(); }
Xvoid tty_exit_nhwindows(str)
X const char *str; { tty_exit_nhwindows_(str); }
Xvoid tty_suspend_nhwindows(str)
X const char *str; { tty_suspend_nhwindows_(str); }
Xvoid tty_resume_nhwindows() { tty_resume_nhwindows_(); }
Xwinid tty_create_nhwindow(type)
X int type; { return tty_create_nhwindow_(type); }
Xvoid tty_clear_nhwindow(window)
X winid window; { tty_clear_nhwindow_(window); }
Xvoid tty_display_nhwindow(window, blocking)
X winid window; boolean blocking;
X { tty_display_nhwindow_(window,blocking); }
Xvoid tty_destroy_nhwindow(window)
X winid window; { tty_destroy_nhwindow_(window); }
Xvoid tty_curs(window,x,y)
X winid window; int x,y; { tty_curs_(window,x,y); }
Xvoid tty_putstr(window,attr,str)
X winid window; int attr; const char *str;
X { tty_putstr_(window,attr,str); }
Xvoid tty_display_file(fname, complain)
X const char *fname; boolean complain;
X { tty_display_file_(fname,complain); }
Xvoid tty_start_menu(window)
X winid window; { tty_start_menu_(window); }
Xvoid tty_add_menu(window,ch,attr,str)
X winid window; char ch; int attr; const char *str;
X { tty_add_menu_(window,ch,attr,str); }
Xvoid tty_end_menu(window,ch,str,morestr)
X winid window; char ch; const char *str, *morestr;
X { tty_end_menu_(window,ch,str,morestr); }
Xchar tty_select_menu(window)
X winid window; { return tty_select_menu_(window); }
Xvoid tty_update_inventory() { tty_update_inventory_(); }
Xvoid tty_mark_synch() { tty_mark_synch_(); }
Xvoid tty_wait_synch() { tty_wait_synch_(); }
X#ifdef CLIPPING
Xvoid tty_cliparound(x,y)
X int x,y; { tty_cliparound_(x,y); }
X#endif
Xvoid tty_print_glyph(window,x,y,glyph)
X winid window; xchar x,y; int glyph;
X { tty_print_glyph_(window,x,y,glyph); }
Xvoid tty_raw_print(str)
X const char *str; { tty_raw_print_(str); }
Xvoid tty_raw_print_bold(str)
X const char *str; { tty_raw_print_bold_(str); }
Xint tty_nhgetch() { return tty_nhgetch_(); }
Xint tty_nh_poskey(x,y,pos)
X int *x,*y,*pos; { return tty_nh_poskey_(x,y,pos); }
X
X#endif /* OVERLAY */
END_OF_FILE
if test 14865 -ne `wc -c <'sys/msdos/trampoli.c'`; then
echo shar: \"'sys/msdos/trampoli.c'\" unpacked with wrong size!
fi
# end of 'sys/msdos/trampoli.c'
if test -f 'sys/share/termcap.uu' -a "${1}" != "-c" ; then
echo shar: Renaming existing file \"'sys/share/termcap.uu'\" to \"'sys/share/termcap.uu.orig'\"
mv -f 'sys/share/termcap.uu' 'sys/share/termcap.uu.orig'
fi
echo shar: Extracting \"'sys/share/termcap.uu'\" \(31540 characters\)
sed "s/^X//" >'sys/share/termcap.uu' <<'END_OF_FILE'
Xbegin 644 termcap.zip
XM4$L#!`H````&`)H!#`VHK'I&:@4``-0*```(````1D=%5$Q2+D,-`@$2(Q05R
XM-C=HB9K;/`4&$A-$Q?:6]U^J5!$<+=A0(4B5"1,$%\WYT+=P\\I->Q8M79`HY
XMQZ8$&3,G3IDL01J56Y8,\4X[%\UY/$@0P3LH6[8@I:S/.<:[[-RR<NV8+V48;
XM;%BJ:/PWR+EOS=*]&X99@PSKENS+MW)!DGT[MF[;LF[IAJ6;]JU;$."GO=F69
XM#3N'W<UT/]RZ8MFF'?-?DNG>=*QNL7726W=S5\[:;5@V7;<;X]UR[-LVR%KN>
XMV#3/&V2=_PTB>K/-ZT(?9YJV;5HZTRXG;4WWC?BPWVW?3&NS>5DL'??VC>)ZW
XM8!\-LRXK-@\P>5;.^*9#M6`'-W;+A?NF6<\QUG#EOK6;EDSYTT7C5`VK+)<_[
XM/@9*U/[JN\>6*2O;ADWSUO#Z6#K_S/U!CKG?;L]TG[\<8^3+9?./F9EQ:Q=S4
XM*B15V#.[T2R]8KWF_:HUB"E-[,QS5YMQ-N.]-LVTWZ&KT0`3T7J.FTO=]#J=3
XM(\;:)UM'GRR+%TZ9MK[:-8@A#U]EW6WG$+/CA7U0F#`E3J:!-W+S*]S>WRTVM
XMS?BZ%TRWF>/MAGO/(;/Y3SCPJZW7>=9R@@DU2Q>O"]<<9]FHPA?$*W@S$-XO-
XMFEN=FVE2H5*#2LU"V%W5Z5"J29\ZJ1Y`NQDYE5XMA[$#^4&R?7MF[K+"X%QU2
XM;#EPV)F[#5.EU9Q8\-GY7EK$6%]]*I7HE&%PRHUPHP@5O^NZ'9,Z.<<^.36KY
XMTZ=0IR:I3P!I]UK%?HU2+%P6PGMN6CV7TV;AIO".H]X[FMOJ#P*\>JZ-)F5:B
XMA/^Z*W"::-&I0Z4FA=(54F5T6#*Q/=EOBXW'*W#B'ODRWB*6M8C(B=#78+597
XM,UXHZ.6N10SS.G4XF_^Z3ACVO^&0]I#W'3RTF\*\B*K5_AK-=EMG\W=;!K%35
XM#F;O,_;?FI>E%;4N\SME;TU7_"Y#NQ/<42E9X#ZJ!_7JW%+>+E)-N*_:E]5UR
XMC!"OTVQNG%:_O>-OFE%6O-.J3)FZ4(L.TA5,9Q7YLNU2G"+>98!N.:N1://.@
XM`8^?4RRXWAL'S,85O+J*@SB+$6;\V9XNUGH8:Q^R77A-]+<@U/)>.^?NHTTQ1
XM-4'+]IJQ6%1ICE?G^69S6L88XU?>*UX=>I$S9F^S;92KONQW$"76^AST9V/U2
XMEMAR\T2+,_:;MY:Z86QT"J[8?M.BS@/9.]YER<BRB^DV(\V0,^P<:(225=P$T
XM[)N.:;0;NH=*"[KE%'%S]QE>-3Z<S:<'E!8$'!!8D!01(GJ/2:OEC&JF"2O?,
XM,)I)GD!ZH!7SHQZU.RVTZA',(@`?@"`L^7F`Y9I0[CM0MYG"ZSM]S\Q!K)8RX
XM0^ZR(&:'2)P`LI`%JWB4+6<9I:8I)@8*Z7J^.Q'00O$LL>MTJVM*47V$]M*DS
XMKN,)&B2/8V5*_=8E6A^>BH3I7;0JT2>;[R>$44;10LN>(07;-!RI9A*CI!E3?
XM;#:8X6X,2=U)23;!WHN(+Z>4JQ<DR#>UH%ZGE/PV48*_(_J`$L6^D[K9JS;N=
XMECPB]AM)?UDY059CT2"^HMC?#&L282+&S,`F^!;8&?D8+4:>,&HSOZJN+8VQ5
XM&&`2^:6+]'#0J/-Q-4Y7;&-KN'!@-]NP\2Z6)HM(W^3KN5J.09*`O/A+2`FG8
XMGE`>72320%E"$$U"'"1$:H3X/<AV;MZCJ6+T1KOCN<JOQX0/\&))C8)<SAF'0
XM"+)G#\(;\D*VFSFF$@5T0R;[V*DJO^[VS>!7(`C$:#?'-CYN?L.1?A/,>XMW2
XM[R(]UJ7*EBVRA_8^R=7MB6[*:'9,^U@)9;]-@CB/YW)>)KC[*U>"T*]W0)<@0
XMSE;.C<UR#%*\131?&0.JW(%.]CG^/E(1;"OL8OM02P,$"@````8`I@$,#;2E:
XM)0;\`@``3`4```D```!)4T1)1TE4+D,-`@$2(Q05-C=HB9K;/`4&$A-$Q?:6#
XM]U^J5!$<+=A0(4B5"1,$%\WYT+=P\\I->Q8M79`HQZ8$&3,G3IDL01J56Y8,)
XM\4X[%\UY/$@0P3LH6[8@I:S/.<:[[-RR<NV8+V48;%BJ:/PWR+EOS=*]&X99&
XM@PSKENS+MW)!DGT[MF[;LF[IAJ6;]JU;$."GO=F6#3N'W<UT/]RZ8MFF'?-?<
XMDNG>=*QNL7726W=S5\[:;5@V7;<;X]UR[-LVR%KNV#3/&V2=_PTB>K/-ZT(?W
XM9YJV;5HZTRXG;4WWC?BPWVW?3&NS>5DL'??VC>)Z8!\-LRXK-@\P>5;.^*9#7
XMM6`'-W;+A?NF6<\QUG#EOK6;EDSYTT7C5`VK+)<_/@9*U/[JN\>6*2O;ADWS'
XMUO#Z6#K_S/U!CKG?;L]TG[\<8^3+9?./F9EQ:Q=S*B15V#.[T2R]8KWF_:HU!
XMB"E-[,QS5YMQ-N.]-LVTWZ&KT0`3T7J.FTO=]#J=(\;:)UM'GRR+%TZ9MK[:]
XM-8@A#U]EW6WG$+/CA7U0F#`E3J:!-W+S*]S>WRTVS?BZ%TRWF>/MAGO/(;/Y>
XM3SCPJZW7>=9R@@DU2Q>O"]<<9]FHPA?$*W@S$-XOFEN=FVE2H5*#2LU"V%W5O
XMZ5"J29\ZJ1Y`FUQ55Y_1NQH[OE2"KR*FG"J^K)PVJ#MMCST&SO&Z0ZOL,_8]7
XM-:O3IU"G)IV"C&AR@V`F<*O1IM"#8K9HWV&?)%ITZE"I2:$(C:1;34?+[2;/=
XM355JU2))2J-!F4Y!7HI;\<J+5:W/M$[#D>W?L4/3H9S]<7XH)H3NU!9'CHI;R
XM9>%AY*:L$[7C=%T030JM>N1NLFF8-;89.C2;V1KDKGZG*<(T9_!&K-'@+\VXP
XMW3+,<$`HLP):]'HIU4F36*/BY"/P5^!V';T;)`\EU=[]UB5:']4->INQ-K!T^
XMC.<$6AJ&^.@S-#V3>[JMBX.K(&50MT^0)W.>!,F7S_:1J^4-\\2H%/B%]H:4=
XM**)YRAWQ=9_-;C:+-N\XH*,[9;R$'U!+`P0*````!@`@&&$:<*RI`.X*``":&
XM&0``"@```$Q)0E1%4DU#+D$/`!(#)!4V)S@Y:GM,G6X?"08!$S3E]I;W0_(,J
XM*W<L6I\*Z9XM2[>L6[HNWX($$<QOSH294Z9,FC9A+-NP%.,Q8<*83MECQL0YO
XM(YT&J_!@@*,G+F!J)*=C$M4Q635Q^<'L"2XNBM#8\HN;(DS<@%K_UT6(?MFQL
XM#R9.,#'PQ,(35^5?6'K=$N0.&"=`NA%Q2>T`TP\B=LB0(:]7,#SN__^"7U]GD
XM>3G+Z<\?+4`"0M.@K$WH&0A]8>!TIT#/8%HA\=OT"*;Y#G9'OX><$]A6.,J4H
XMW#JP*L+&0O^YW9YWB*LO77]A;8QO79]@>4O+QP2^'F#RX52+2FTZ-"A4@'(!C
XM),M7EY7;=FQ8N`!?S.FQ+YBQ,Y,,T0I3=O0(SD9H>7Q:_B%A1];FY?%YV9871
XMM(SU+^&8<Z6K0'T@Q^ND*W`]2K3*OL3QHQ_NCVA%\"4TW03L\T_?JDJZ7LA6S
XMHV66MGKVES8\/7)'H3^]?BW4CQGINA2@S<\:9YJJLJOYM[,5;32B-4O:8!>D,
XM[>N-0CJ;.N?9SC7&.;`>SEW#T]`)SO'U`J[[4X,'-^9'UI7P]^E/;3Z=_M,Q4
XM=7D-_DWY,>V+JK!B!%-HO&53/%7X[SCA$:XG-V[1O"X*TB,I''.^=!D<LSQ-(
XM<+V#/>!-GEK)NYQS#-\DA'<2@=,Z'M(W\6Q-<@Y_B>^)=&92I__\P@="^HN><
XM=[4S$+ZANV/372>8[IA<=NP)KMW8,QGLF!QU37IZ)C,=DXN.?<&UWSEV!<?N*
XMY=@1''N6;S+'/1GCF:0/X)M^#^"99G3L!YX]T+$;.'8NUW3#",=&V,Z0P#,5J
XMS"<,>X%EDL.P!]@F2QR3Z(8=QC41K#C>20)(.Y!K>"3+\%"6X;$LPW]9AC^S4
XM#/]F&?[.MHX=*_/KV+=MX:9E6Y:L"_MNE4`N^;%PQ=8U@[S9M&[)$)MWRL;M(
XM;&;SKV??<(\VS+./9?MVSK7/I2O'>S?7MJ]VKOTM'&>Q]C%8=TS#S6--/+?)J
XMW"S;L&<X&=MD@)=YDR:(388E]$KP,(Y)")L,(<D,L!VR6AVPJN9^#S,MG$IA7
XM&V=3R/;9W,=GDS:L:2'7N(EKTL&Q31ONZ,#U#2Z;C'#9&Y@4CF!3$-9;T/8!J
XM@^<(!@\0.RP!WL0RO(LK`&5.@@4X*RJ:)I2M;NNV2?D`.@WNF@C-KXGP/(Y)]
XM#$V$93AU<0<G\J[TG,CIHR_G1%AZC*B_0DF+TE\D;%)4^HHQXM3XL'`H2^3T\
XM1)%76J:T2'V3@;[1=#,<V[4UBO4"VWC\3B]0,<,?+Q(6.^<PZR9P'M\5=?T!O
XM9%>P*H+M#WU#E(H>2BC`2IZ/7-R5_\/77?')-?_$V`<#AU9WXQ8)'AYP6;29W
XM[>N5]0I?/R&6%06^0XHX>(#KN\(C?`7(*M')"XU/)HAT``\@THEEO,4RO(W,N
XM!\H?#/-!_IIV+MFT9]/2"7TV;:$/H-]0Z%CH$[\F<>%@;@L>P6L!J&!>"[22Z
XMRR*%O!9X&=>DA=?">TS<,,M'-+Y:F`04V%X1@$0G/H:N5[1;B*<X@OT(W@A^K
XM'HOYW$S,)[TP7!7(@V.>D*=7NB'7WYC:0#XEM:WMZ-=433P\?_'P6,J5>54(O
XM./Q'Q`AR+DFAXI`*HH5:)K:NI_3.C1FV\O.;Q'<L1)W(*<=WL^FB&\4B-,O0C
XMK4*Y#82JLS!R`VVNBG0X@\7AI@8ZMCC>U'C1_0`(FQS<E[_`ORS*<4#E\!>!%
XME]T_`-L50P0L'#K"JON*FN'Z:!.;5MQT7UI\_9)GML__UZ!\1>_#9\"L--E8?
XM<AC"G)?1#$J;71OU#*BIBB5'V\)"NQ@]]QV@M.G<`0X.)\@WP,6AK1P3DPP67
XMP,\A&@L`]ZZ0AKW&.\F#VWO\;&IUN)%W^">Q!93'LM@"D6P9\X8[]K=?R\X=_
XM<WR;`S^;PIR.8B)VGNW<WR0F:N<!])HY<RPF+`<VDU2&'<]8)`@ZDT^?0IU2M
XM2W@?-%UW(:YF7<]WO9Z')"?*^/5X01#%#F/8I(<@/0EDMI)NB&*;L_":#*4N)
XMNJTODLF2=#N&PM?%%9[E\'F!9/WG-%]?$/T(M14Y)')6V(XK;&ED^_Q+D@'"W
XM,&40ZTPRGXE/X:>V9K&KVR9W8=*T[B9'>T[A#P4/:7U?3+`P-TR@X/X*]97"4
XM,/`#EI'L!6Q#<GEV4M/@A@$=R=)PPX`S&3*(Y-8"Z)S&/53DZW^:A4FL@3$K>
XM6DM2U!IG4/3*^[70'`T;%'WO?C@\/CSPL&A-W(%<TTF&0CH:Q$Q'(P4=#5OG[
XM:*#&.1JHGHY&ZC@:ML710$UQ-&,<"FA5S+%2TXH8P]-4Y-#I!Y0KI'/81;_-,
XMVDF!&=Z50U&H>K(Y@+$PU*9JII73.1G(Q?V^X":@1HB?@6*,?X#5=&(.62:RI
XMI2+V\2V9QF-/=5,#W8J&;\RPTD?CF5'\([QY8XJ%L-E`<TW;NG[&DX4M3J`<L
XM]']!XAS";Y(E+H/H=WH-C3LD\+(XP0+'I/\!QW2\8Y+=,5GNF-QV3"X[)HT=5
XMD[^.25G')*MCDM0QV>F8M'1,,CHF#1V3?XY).<<DFV/2S#'YY9C$<DP^.2:3>
XM'),^CDD<QZ2,8Q+%,1GBF-QP3%8X)A$<DP*.2?T"CNEYQV2[8U+<,<GMF'PN)
XMX(>BE3V3PH[IAKV>R5L;A7I2SR2K8[+4,:GIF*1T3!YZFA3T3.IYFJSS3+YY#
XMFE3S3)(Y)KL<DU*.22;'Y(^G21W/I(RGR1;/Y(FG21'/)(=CLL(Q">&;9'!,'
XM(C@F9B))$,`QR>\'(_$=H-@Q">^89'=,HCLFR1V3X(Y);L<DMF.2VC$)[9AD6
XM=DPB.R:)'9/`CDE>QR2N8Y+6,0GKF&1U3*(Z)DD=DZ".24[')*9CDM(Q">F8,
XM9'1,(CHF"1V3@(Y)/L<DGF.2SC$)YYAD<TRB.2;)')-@CDDNQR268Y+*,0GE9
XMF&1R3"(Y)HD<DT".21[')(YCDL8Q">.89'%,HC@F21R3((Y)#L<DAF.2PC$)1
XMX9AD<$PB."8)'),`CDE^+XG$=TS2.R;A'9/LCDETQR2Y8Q+<,<GMF*1V3`('#
XM<*C$,=GJF&QT3!8Z)NT<DW".23/'))ACTLHQR>28''),]C@F:1R3*X[)$\=D>
XMB&-2PH$#C!6G&HZ)0J`>EHF%JR:6B5*4K4D`DU!C+!.:4'-,39(:=B$3#G[)2
XM,OR4#P?,B+<9[VZ&?UN7+ASACAGQ8>6>G5,\G/3KNFEVN'+?CB%Q0?N<Y-2G7
XM4V`IH*-?@;S.&7$`\LR<-5Y(:`9<85.6"!"X.CX%Q"E=!1\T75?"R3O]>0`OJ
XMBZ?_=DS5P&@$*APOQ@'#HT#@Y]^8`,WA`7R]CE%ZUHW`3-U&X(T'=)ZXS@G-)
XMAYV#<IN[K+ODAV=8TVRPAI,A!&D0(:WC0-;A#X2MYBY8)O4JZS9<I!X,V`9>&
XM/&(`(_+9V]H5XO]I_+Z>W/R-R]+?ZJ5B.:\%EFX(Z9B\<4Q,L$#6</OP(VX?:
XMN#O("@^'3-Q``'I,F3@.'YJ%X2/^@`KM\5G6E$P@-"_'/^35#L+_T.7)_@6
XM`%8&$["<HOQ(:LG4"`6D(8/A"S<S0CM;.82#.&$`]HV](!FM!0_CF(0P.#`S(
XMD$-@`#A"].PNGS.X?*VS`NB9%4#%K`"R/;39)WC/`N@',$!6`?T/`U)\G[_")
XMNC@>8`_H5P8TSK7NB6/CR<F$BT#+`BACAX+Z"OX;G<(*[[KXT0=2F[H\VQ+)2
XMX@(E(>P^(&[8?7@1R_`JA@C"GJAC>HZEHU!+`P0*``8`!@`%&$$:MIR.V)<+X
XM``#"'P``"0```%1'151%3E0N0V$*>P<&&P:[#$L#"0<+"0L)!Q8'"`8%!@<&A
XM!38'%A<+"@8("@L%!A4$!A<%"@@%!A4&"B4&"`<8"@<*"`L'"P0E!"4$"@8$K
XM!10%"30'!A<)&BO\_/S[^_L,"RP++`L\"RPKK`P!(B,4%38W:(F:VSP%!A(C+
XM%.7VEO<Q8\42.$I05/QCQ8TK<-6XC/92N.VJ5I9?V"CXD^CI.?D_9;OK/^5:J
XM*TXG__\_/L_?L7K7W[G7>XMPURF/PQYO5:[UKWMMB7^V^S]'/>:^_?K>F,OWM
XML3S+M1\?Z&_W>3\K]J_I_-+</*^&W[5^K<MV-6>I1^>YMW4_GC/_'_LQ;>SEU
XM\KTUKN?\\WK__3C#Y=%?^E?Y6DS_)C4O.]&;_\M[_:J%R[=8W;_O&6<#[<J];
XMW<UP@-?J]AP+RA3[B-*\E?;U7O-_:=LC7'6EOU2>Y3_GR7]I@#8?^W(U;N6U`
XM_%S>&WXW%O^'Z_]&Y3FJ.I__;3#TV^E_86JYZWG_MRI">UXJ%KO\)'C]8_^F!
XM/=$:[N\USA_N)URF/_Y:*H#7[5Y+-_6GWXM#U6K79_KK';ZDW%_+&>X;](WSI
XMN<HKXG.583YH37@37R_PC_SY5ZZ]/,WKO-S?[=>NY;C7%:G#]Y:>37O/Y[,)R
XM7JE:\[P3H7'"&M&$F$7%1<7!K:@XIL;S?W^0VAEW0OLIB;U1:]#MJ;P`RU*];
XM%]H>,W[N3_TWYUKMWNPZG^5OX3P7O>Y5NW"K]U:^U'._R_]AOJ']R-W.L$UZB
XM:O0;3^G7YJ/!%;NJ/')QJLZV2WRI7O"T'5JOF]0>`)["Y-]E6M@LY1]/^2Z@^
XM3%>>[<=JEH*1QHG.&XPP3X=O>]09)!D/>\,OFW1.'[?+54<M)S\D#-^P?FW;4
XMRT0/X/@Z;\#'*5LZ'[O8:W&+*SW\K^K7ZM%:0Z)9"@LH_@=$?_V->=NL_QE.9
XM\%Y7PCA.T&8)Z(7XV'Z7/\G-R=(\70G_H$8U<AVJ;9@A"%_<O`K_4?^A^&8K+
XMG@#>X<GVBM4L<XV_M,/-FSOFV<C\$O@IJ81+V_4(>*\B[C/4C?=@_>U>YNT03
XM\%=M'I_K3NKW1IW7ZVC<M-.9T&V3)8RP-[6)A&_]TGR?95WV[:EZ^J_KWI!_@
XMU7PC%(;0(9R?@_O+K;7MIOHSA_])Y\7JTL#X@)[N>O[WXC6\)1V5\>O/&XDW_
XM276GC^\)K-5'MLTV5>WEF^MW[9E/$^N8]]*(Z7TM,%YE_G5<1Q6QM]H1KFT_K
XMK-S*/1$>S[XI^F%6ZM]Z.\FC<1+Y*[!=W]*S5/2SJ%Z=[]5EUQT#TF3#NY'M7
XM<=NU^12,J=_-N5K%?X\[7JKCXRZ^Q.UU6V\TXB.3$]LM]^_UE=O/CQTS-EE2[
XMV4+F_TMD9K&JNZ[K53VXVHR3^L[O9$$]P8Z&?5"S%V04E^9OTJSX$MHOC8KBZ
XM)_`5ZYLWE3\HW]"]=*'<_(%\/T_7Y<9T-^TWAX_XV`6,J`WFN?.V$CL]?(].Q
XM)Y]MPATP_:1[Z3Z(2G\NUD-@;N4+VI&\0Y+=OO=MXMI=UW5N2/EUK=)40-]M^
XMVS<[WS^'[""HZ?M?E\W<V3%4UR'O^\?]=E?<QHZY#.4.>OT:_]ZNQE_"E9S7M
XMDJJI6N?:^50_[+9R;^X[FOM!=3!F->R'^'HE$9YSUHW!.M)F'B>VHG0[,F-F7
XMA44NBF:"":SW.=?O'Q+K4K_VO$I8)D<ROR@/R\?P0YMW$M\_\3A-`>C?GPMR,
XMFIJ8TAZ$R$OO1-\X9JP_!K)UO4+*M=CT]X9C53?58NIW[74CI@SZ;]P_G?#=.
XM'1Y'G:I2>>Q%*8.0IGOA3MY>"T+_Y\(=K-.O<Y;*'6\GCD9ONZW;DQ\*U9297
XM[E.ZNQVWZ'NC<>L=_ARW@Z"8]<NX-]<(_T]N#[LZX6#R/:_#-V6<V&]%['2[D
XMK1]'.VH<#6$%'N"/[84QUMI>WXN&G?W0]TO[_F_7_;%J1-U288&>?C"Y#PQQ>
XMY4-)/7'0'3R.X<IA"W;`V1^Z649SQ*51TJN#45SW.0E0KY=7?NF[W'33:6D'2
XMUR8N)5-(4OM-'';_J#M\A2*G0KNQ4=7&M_E^-S/!Z+*W.\*UTQG37AN[[#\6M
XM$UNMW@[^!=@KP)!(I_YZJ76$O5>GLI'#<9F^ERS/*O6>EGK"Q3_AE$[4;_.JW
XM80KT'?<]UYOH,-FH1!=#.]"C8N?(%9=5T'C?Z@[J=PU7&$%M<(TAQVRF`CFJ?
XMJJVE-5XH?YCE,HWCCDX=X>X.#&)JO0K>U"NSRW['$4?,(Y54+73E&T5I**JKF
XM]T5^A'[V.+%XXRLXDL25:TKK&_(XW1$4KU[B<>,RNXPN@A<7&3&*551VDQ;R3
XM2?PUQ0LT'QDA<3LTN\ADEN[BGMW>$,3QR^-S*1_AT_R(#E4F/SPWQ_YIOY?8:
XM[P<CD!LZ*,JG$?ASF2DLK#F]@J?-4D'!3Y.["[[UCZOT:KZA1#G.]VI++J0IQ
XMI7_C!KU_\]5"AW-%%;KI;Z@3I,HOK+'VYZ;:=;<UOT:Q4EX4UNH.I?_`-^/<.
XM<6L-DUC'[?MP+<U2)')K;6_.=3H)U6Z-'<)';+$KS0A"9+R;981X8`57FR?HY
XM:<YQD4=E,P6XK30_Z%&YV*`'H]P;]WDYT/K-;J]S!5:%.<G%,D/+:PW#W5NYC
XM:1LMS`%KF2',$G.0V&=;#BB<4&IMXE2;Q(4YT*(<T.-EN<LE3)K/G<(KXZB@C
XM!W.BE(HWI^#Z>6.P=+512R/"=26!EUCH$5*>'336>PK!>8TMZ38<.*^59Q45#
XMZ(-*:TG=S,:8*^P"52$5=.<3B;-I+KMZ0J\F`@A?EUZH["SBM`\^/BC8@NNQ^
XMU)J]5X?P+3]U!2/DI=ILD?FUYSI7`@'2V8`$YC"S4(4'G*M6*3X4]11X""<F-
XM$X_Y&P,UF)O,5%-2:T*^D@O%G0^BV?A32$?5B;3E3JH>`^,E.QS(=)UYOJIW4
XMHZ+*PE@Z,&9I^+9@*F#CYLP\I^2WT7:SC,4I7E-[#?#&`3,V*-OT`2BF'^X9&
XM%4[#@+E$5]-CEF263<.<#GO$D\H;A.EY%IUDA18A'I\>*FYOX)=D55_%X0THV
XM-)U*#YIY(!A.I-D@DF,4WX<#&^PR8=89REP"JT`JAJ3!!35@716<X\@NC5_ZJ
XM`&&%L<-BBIOG,VL*^.H[,%8MW@Y(;(?(ZU"*U4)R2ZCN!LQ[*#Q2:B*H:$1<=
XM3T-<+\TUCFAK'$UC8!U3U]-0UY%\?+&Y,&GK>`V!$/@:EQ`.88[;^`W[3R2US
XMQ([F;HBW1MP6HQUGDS\,WL!1=3$WV$<GFL^!.9CGP6.]:'FC7%)_U3[-DBMTY
XM!3??&J5PLEH;XE=670JUVP6>3S#BO`0]"`V*XAI,/@D'(^>2%J0\F:NP)-VWK
XM<,;$'!^/BY-<GW/G-Y73K_6+E65?#)M(<_#\S]FQ6?U3:VS9N&8=MX/C7=T.^
XMCFYRX_JQ.15A&_[01.QB70D+YSZT]J-UB[(-I0`>0/)GIJF^_WK?0DQZK0Y(4
XM8*55&*F$`$0!<,MDKR@C.&A<QA`(=7H3!QH>UVT4#+?WFR=@RVI%M>G'>]QTV
XM+S#8Y+-1#?B(8!-_K;>7"7`*;2P3E]3%6&5,0LJ$=N!5*'='#"F6-0P([;K=Z
XM,206U."X%B2H12DE,[/28\IM(4<RM+W0]7F>`P"6;=&^3:6Z<KOJ=/+T#%8E^
XM?2$D6X=YTLV=CE#)(SPMFS")$8MR3A[\5D5&C!D%8D"DZ`EZN)`V@`CS8]C$*
XM(25/3\=<]?++/;T$61Q:;A^Q"T+A9J9:-Q2S>7D7:C6((<X;"<PG0#IQBB6:`
XM*K1HF9`<!F`H7L*DJB;;!AAL(*H!"T$^$S_<0[A,"LF*HG4P4;24U5/]Q9K+H
XM+!8]B-VZ7FG98OH)7\DWY"$7?H$L<I3"#CL8N?@K_*#';@K7;:C%ZPM,/!Y<2
XMLR#3$(BM<1S97(8)T\NR,"%9)JA,ZK)PW))?XW@(L*\\8Y3&=<XV-E5IJF7`@
XM@*XFI6&'C<ADK+.BB3$Q#E!+`P0*````!@"2NQ4/K]N(7BP$``#_!P``"@``G
XM`%1'151&3$%'+D,-`@$2(Q05-C=HB9K;/`4&$A-$Q?:6]U^J5!$<+=A0(4B55
XM"1,$%\WYT+=P\\I->Q8M79`HQZ8$&3,G3IDL01J56Y8,\4X[%\UY/$@0P3LH$
XM6[8@I:S/.<:[[-RR<NV8+V48;%BJ:/PWR+EOS=*]&X99@PSKENS+MW)!DGT[R
XMMF[;LF[IAJ6;]JU;$."GO=F6#3N'W<UT/]RZ8MFF'?-?DNG>=*QNL7726W=S%
XM5\[:;5@V7;<;X]UR[-LVR%KNV#3/&V2=_PTB>K/-ZT(?9YJV;5HZTRXG;4WWD
XMC?BPWVW?3&NS>5DL'??VC>)Z8!\-LRXK-@\P>5;.^*9#M6`'-W;+A?NF6<\Q9
XMUG#EOK6;EDSYTT7C5`VK+)<_/@9*U/[JN\>6*2O;ADWSUO#Z6#K_S/U!CKG?U
XM;L]TG[\<8^3+9?./F9EQ:Q=S*B15V#.[T2R]8KWF_:HUB"E-[,QS5YMQ-N.]B
XM-LVTWZ&KT0`3T7J.FTO=]#J=(\;:)UM'GRR+%TZ9MK[:-8@A#U]EW6WG$+/CC
XMA7U0F#`E3J:!-W+S*]S>WRTVS?BZ%TRWF>/MAGO/(;/Y3SCPJZW7>=9R@@DU]
XM2Q>O"]<<9]FHPA?$*W@S$-XOFEN=FVE2H5*#2LU"V%W5Z5"J29\ZJ1Y`.QTYE
XM-5TS9/>9QEZ2*_`%Q13[]HV?]L5Z4\MM.S8L7!##=Y:HS];WTB++^NI3J42GL
XM("/:*_'DU*Q.GT*=FB0\3IU$8?I.D7DEI%ISJVC>.^B31(M.'2HU*12QD32S!
XMZ>BYW62IJ4JM6J2*Q:=:0A@O+8YY"5\38C>WQ'K<R>UI*&OW;?KE?/:-!F4Z=
XMY7[I;DGV)%]_VC4F9A_1ON30=6RG0?+P[?)#OW6)UL=T!-RIR2GJ9GW1BUZ)>
XMH8S6,9X3WS0,Z.-ZTP^RZ52B3Z<X#_""<::E!K%L;[4<ZW%UX>:B!9PV=;L%0
XM863]E>Y8.+[99G<LON98XTI/0B@'8?UFR\3ZW\36CB_OT`)N3%VT"KP&.?3)O
XMGDO.M-"R9YH<<!+2[54RJ1LB5&T\K=XRS"C)\C)KH.!A7=RGK]!6LQD_2@LXL
XM91C6'JHTF?V1F(OTSUEL/>4V*U@56E4+:1NOX%2(-4@KRII9X;F[QA,F-<,8#
XM2OC<1SY]MPRC;PF+?C?FU=UNQKMPGV24SP\IIY0M/0[U`HRVGRS*1NCZC@!'1
XM`X\CM#TQGL=RG'9^9Z^(3@G#'+GGB"$8I=G2D4JYCSEA2I?*;03;QN\1OVJ+Q
XMKL7"W>%<71ZI]XXRA?9Q5^4;9$\0K&?2E=CF<AN%=GNOE#?+DSI/I@`X'2)ZC
XM.ZW*E`GR4O<$U7OEBOE/0)A'X6[,ZWW!/]FM,+N"-&D"Z'#/G`OP=,PNP%2[$
XMX"^RAWKGRT<],2_0FRP.S8EBB;%WY/<^6143]QT)20:>./X^4RGCPCQ,^`-0R
XM2P,$"@````8`H[L5#PB:CMC4!```Z`D```D```!41T543E5-+D,-`@$2(Q05!
XM-C=HB9K;/`4&$A-$Q?:6]U^J5!$<+=A0(4B5"1,$%\WYT+=P\\I->Q8M79`HY
XMQZ8$&3,G3IDL01J56Y8,\4X[%\UY/$@0P3LH6[8@I:S/.<:[[-RR<NV8+V48;
XM;%BJ:/PWR+EOS=*]&X99@PSKENS+MW)!DGT[MF[;LF[IAJ6;]JU;$."GO=F69
XM#3N'W<UT/]RZ8MFF'?-?DNG>=*QNL7726W=S5\[:;5@V7;<;X]UR[-LVR%KN>
XMV#3/&V2=_PTB>K/-ZT(?9YJV;5HZTRXG;4WWC?BPWVW?3&NS>5DL'??VC>)ZW
XM8!\-LRXK-@\P>5;.^*9#M6`'-W;+A?NF6<\QUG#EOK6;EDSYTT7C5`VK+)<_[
XM/@9*U/[JN\>6*2O;ADWSUO#Z6#K_S/U!CKG?;L]TG[\<8^3+9?./F9EQ:Q=S4
XM*B15V#.[T2R]8KWF_:HUB"E-[,QS5YMQ-N.]-LVTWZ&KT0`3T7J.FTO=]#J=3
XM(\;:)UM'GRR+%TZ9MK[:-8@A#U]EW6WG$+/CA7U0F#`E3J:!-W+S*]S>WRTVM
XMS?BZ%TRWF>/MAGO/(;/Y3SCPJZW7>=9R@@DU2Q>O"]<<9]FHPA?$*W@S$-XO-
XMFEN=FVE2H5*#2LU"V%W5Z5"J29\ZJ1Y`.QTYU=W5I6+L(;D`7T^,YNNJ\JZIP
XM&L[JJC57]])3RVT[-BQ<$$2\W#S[F?Q>6B1:7WTJE>@49P1ZA0>%QC9;U^V8#
XM8CEG/CDUJ].G4*<FD8\+6J/@?:>PK[!406H5S7O'?))HT:E#I2:%@C<2;#8=;
XM*+7;.6[3=@:WZY;98OB;%3F/8NV3!1>S90PGM!GGMM_3U#[IJ'%>E^3&4=6\+
XM[]#A8IX7]5K=IG/9JW8QH#G^?>?U!771M^=]AG96N0D2I@NCV9E\Q/6Z?=?9%
XM[0)7@UF#VV]=HO4Q'<'KPNRBKHJ>]$*ZFTXE^G2*\V"^[5TFL8:\\8)`/W4M!
XMQWJ8J31CV6***[K=@I"R_DIW+!S0:+,[6E]5*,.J*&)!6+_9,I/V-Y.YX[,Z]
XM^(!S4Q>M`J]!#GURI/(S+:0IVY.(;I"<2=UX59;^M'K++*-FR\L$'N&=='&?S
XMOE+F9C-^M1:&G&$::XG<9/:':D[6/X>U]13,J&!E:E4MI&V\BJQ*K<5:D7%E=
XM!>#L&D^8U$QK*.%S'_GTW3*M?K=THJ<;\^IN-R,>UP491O/4>J+V0E^5>G&Q7
XMUA[MW<4QLB@;IRN]4#).<Q536UY-M8OOW`SI)0C,^YS,J_#Q#D,MIY9A^F,$.
XM>8PVR70QHF#.$L<R9@\''X0Q8<2G<F6B#^;6)VAXL2A1,Q>#C<6W("-5\SO,]
XMHLT(98;[<<IYT%(Z)'G$!9'X"#<TP*TI`:#;\G_*#-<E9,L[BR[ZBNSFNQW
XM<)P+W$+R3$>90ONXJ_(-LB>(QF32U=P6,QJ%=GNOE#?+DSI/IACH'2)Z.ZW*+
XME`GR`GJ%UG!7KIC_!(YZ%.[&O-X7_)/="K,K2),F@`[WS+D`3\?L`DP)9?R5E
XM>BC0?W+D"?2JYB[/B6)7*N^X[WVNJM2ONZ(<];YA<`^GV;H\"0,86\MT']0;Y
XM1WG[C^&.CS%,]R$>2!:&6X%2E=UTIF6*9CAZ6F6//+'JV)4]HLQ;#&W3"*2$T
XM>5N*./X^?%+&Q5M(3!]02P,$"@`&``8`KKL5#[V/"47Y"0``PQD```D```!43
XM1T544U12+D-A"GL'!AL&NPQ+`PD'"PD+"0<6!P@&!08'!@4V!Q87"PH&"`H+<
XM!085!`87!0H(!085!@HE!@@'&`H'"@@+!PL$)00E!`H&!`44!0DT!P87"1HK1
XM_/S\^_O[#`LL"RP+/`LL*ZP,`2(C%!4V-VB)FML\!082(Q3E]I;W,6/%$CA*G
XM4%3\8\6-*W#5N(SV4KCMJE:67]@H^)/HZ3GY/V6[ZS_E6BM.)___/S[/W[%ZU
XMU]^YUWN+<-<IC\,>;U6N]:][;8E_MOL_1SWFOOWZWIC+][$\R[4?'^AO]WD_J
XM*_:OZ?S2W#ROAM^U?JW+=C5GJ4?GN;=U/YXS_Q_[,6WLY?*]-:[G_/-Z__TX:
XMP^717_I7^5I,_R8U+SO1F__+>_VJA<NW6-V_[QEG`^W*O=W-<(#7ZO8<"\H4;
XM^XC2O)7V]5[S?VG;(UQUI;]4GN4_Y\E_:8`V'_MR-6[EM?Q<WAM^-Q;_A^O_V
XM1N4YJCJ?_VTP]-OI?V%JN>MY_[<J0GM>*A:[_"1X_6/_ICW1&N[O-<X?[B=<-
XMIC_^6BJ`U^U>2S?UI]^+0]5JUV?ZZQV^I-Q?RQGN&_2-\[G**^)SE6$^:$UXU
XM$U\O\(_\^5>NO3S-Z[S<W^W7KN6XUQ6IP_>6GDU[S^>S"5ZI6O.\$Z%QPAK1P
XMA)A%Q47%P:VH.*;&\W]_D-H9=T+[*8F]46O0[:F\`,M2O1?Y&C-^AU\VCZI#L
XM]JC^QE/2G=2VO?R7>RN;_.]0;^'X+O^'^8;V(W<[P[;H*=1-=-H.K==-:@^$5
XM3NGZ[<>2OQ9>]7SR^BF@.;GJP4CC)!;/&XP\3X=O>]09)#$.BVKY;>M;;Y`@4
XM=4A<];"(XN?3P'FOQ3ZWFL5^<Z[5;K-Z^=`/2/!3C_`<6`_*(Y<M[6!QM7O_U
XMAU;_GPC/=3[-4_W=MZ=ZYWF,4]#_'?XAS*7#5XUFJ>WGN<?K#+N\H\D>D;#2G
XMZ]Q2N\X[FN<Y;HB$2%I(0QK2D&+<H866%BZ<P,MQ1XZ<%A\?#U"T<A]_G1O4$
XMX?6*@!G6#:_F_O)O:*'E_Q`)$>,Y<F2C\'F:/<WY.NM*0\"T#4;,[UR'-1?\A
XMY\J<3?S6KFU=K!_5!]E_F;?C/VYMX%ZM![SSG5^W9[T;NY0?KX.3?JD6F$[E^
XMVNH6OKT.%F4+>??VY59P?3^-"O2MDJ;W/V:[;]R]C@?46Z(7]^RVCO125\>BO
XM(X$X2MC:&<W[;MS`;IOA/);&L^W@&^CR"T-XDAU#,1KT+3^E$M:WV3O7O6\,$
XM;KVW0&9G#.\GWVD>6T*C+_$[\<EZAVR^C\;]@\'X-^WZ\KUZWQ^W>MZLE^E8=
XM8^?F3@I\C\`JOE?B_)8]N?2"CWTK/Q#=YM-(6,]GK?!WJ0+SG/VN'A/"MD^_4
XM5X\KI*J=<S^J6*4+XO\`=L&L$HY9_)J^X_9H,``9C.XQW-G9!>:VZIZR'^D3J
XM20B_C.YI8?T?&^Z-_7\A[L$CE>.&<)/K=)++=6J_E)Z&V*%J8B=98J>6N_QK.
XM-\T6.^P0.\D1.SWN^/,Z[I@(+]S9[+*9G62:G8+GVZ7L31^%[/A"=C(A.P4RY
XM)QETO5ZWNDI\J_?9FI>]_18.H[1^5:]%ZQ)>]A*>Z@O\PGT3C&.=\AYI;W$P'
XMN8[&.=?O'Q+K4K_VO$I8)D<ZAZ+</,[UN_:3V\-NF^/%^"@]7+A^AP?QVZALH
XM+.\-%Z[)OO+.M_[TQXJX-$I.[L$H;MR8L7Z+R,1=;>'QA&4%,4A2^TT<=O^H'
XM.WP!DU/O*H)=%],B#_@Z.)SLGU,^I_9P*AOW/I[G=HY<$;1W>FG"O.%'R/DV[
XM=KKS:[6Q"]QN)UREOT>X-8*-[O76TWY,K7T\>-Q!35"UEZ_R=_PMH'PL(B^KR
XM:;>Y1G0B[U;+_?$QA.HT;D<SW4OL]_/T3M]SO8&N+7CUE;)K=P63LAP:+6C'+
XM93Y2U>.U.*&YQ(MT1<[N)R:/T&O?1#)92P-+I1$G#1F"=-_WH]S-4C#BN-D2X
XMP\T4%@0CJ>-U8._ZC?*PW,W23_O`*22WX/(+"VD>Q+M9RH\=+79!P0]EFN52*
XM\/U_W&8I[+#-?EQZ_4*#'7;8/PWLUR/EAOI#'G*5E>O"<04Z3T(%O+5?O"O54
XMH4%^[+384'=<#<^%]D\PDKL&O7_[U3['>*=<VZ]#=>KP@Y[NS'`%/2+HN05L-
XMT&N]G=ZX+RE!`]]^?_%*A(5,\S_2@_*:V%Z5)%`K"[<-G$+J370D`ERVD@#M_
XM&05,`I?_YY*P+\QR>&OALX6??&]!(;7F.UVL/<S83S.<FL%JGMAZ\RQ$*@;T:
XM7L*>P9X(SSG?Q/RZ2[8.E;@%_>=2_>&]8HB8U!A$I.?>0&7[J2VTGH*M0`+6B
XM5^O@J5>QK%$7VWY-4Q.CBA1M6;I"SEW,;0U*VJ>^&PF4;WT_X-DE?>KWNA`_8
XM^\$KJ4\W'X`YOK#->T%9FTS[V:I$;O>Y6F%=*_NIK9E#K@QG-,XJ8Q692MJ`W
XM1TM#VI#LPQU=I)P-2<5J:;:6\?.N+9(V-+5ZHT+0Y3J"YQ[!,OX<\7'2&XW,<
XMH4.U8.=J^)I4J4VPLTJ%'9)*D2=XGHRZO5:GVQ^DA&9Z,E*0K,O8]4BCC*@%=
XM=Z1%FY>;,D(C':<_&=ZU9SX7\I/0";D!DL3X<%J[JT['PP+5DQ%@%LL^+Y!=S
XME4CD+"W?Y2;XCR>J2!W&\/&9KV"GB7`A4,>5!XEB$F@=X3`HO]4W*9;):"X(P
XM8BXA,T$U2OE(OWKHF,@](DNN8Y(&@5ENEVU,"F9!<UF)QF4I0UGI];@;BMG8S
XM(1S"L:-Y6$IK1OO:P+;.#SMLJZ]E21,A&XS<SL&`[:RV#<W^6%SO#_G/S<XPH
XM.UL8ZG>L3IC,=R36(7Q,I-6%>+6?:O4:C4!SG,;4!R-5$Y/ZJ":@(#I^+[6OX
XM&EY]?#@U#5C.5L8\_^)_9,XDG^/X==B9P"<IS+?#""F7\EO0UY'O[+(\37$^G
XMCL5@ITJVPTG'XM!M;47($HY`KH/!!EC]A<&F&E3UHEN`A0N)EHOQ$2G7UQ,&K
XMA1=B$=&^EP]F&(O>>]NY7$+)+*3N;+M[M3DU=]-`Q<]#V,73=2Y#B@A4SB"G6
XM!D*V.F9YP1)62Z[F,/D-C6OIG[38X8;@/*;TE/#8.(T-CM4R1LDN8S'#<)PF'
XM@+B&8S8I`BW"1\*=K030'"<FCNIKHC`,PR'*Q1@.>.,-T4G[V*[&>948;89PM
XMLQ;"M2.$CRV$MR6$ES@T_L%(74#A`E+E@A8L%HCH560+4)^/1<[!&Q5'!_/P)
XMV(,/BN;*^5ZK7<;=(2B"V-;<`@SEI;K@_`)#`0713ONYHJZ@TUI(M*@\6O,/@
XM":(XE3W@\6"D_\,.6UB@B&](A$3:SPY&&I<02$.8IS]V;FQ*`6;O!J@7<F*_#
XMQ,7@J]%:V(#C49#2?*^9<QCB,5%[M`X)SP>/;6`^P3H2Z$S*A[SL'0E02P,$8
XM"@`&``8`H#2C$.?S,OL/"0``$!@```<```!41T]43RY#80I[!P8;!KL,2P,);
XM!PL)"PD'%@<(!@4&!P8%-@<6%PL*!@@*"P4&%00&%P4*"`4&%08*)08(!Q@*$
XM!PH("P<+!"4$)00*!@0%%`4)-`<&%PD:*_S\_/O[^PP++`LL"SP++"NL#`$B0
XM(Q05-C=HB9K;/`4&$B,4Y?:6]S%CQ1(X2E!4_&/%C2MPU;B,]E*X[:I6EE_8'
XM*/B3Z.DY^3]EN^L_Y5HK3B?__S\^S]^Q>M??N==[BW#7*8_#'F]5KO6O>VV)E
XM?[;[/T<]YK[]^MZ8R_>Q/,NU'Q_H;_=Y/ROVK^G\TMP\KX;?M7ZMRW8U9ZE'7
XMY[FW=3^>,_\?^S%M[.7RO36NY_SS>O_].,/ET5_Z5_E:3/\F-2\[T9O_RWO]T
XMJH7+MUC=O^\99P/MRKW=S7"`U^KV'`O*%/N(TKR5]O5>\W]IVR-<=:6_5)[EU
XM/^?)?VF`-A_[<C5NY;7\7-X;?C<6_X?K_T;E.:HZG_]M,/3;Z7]A:KGK>?^WZ
XM*D)[7BH6N_PD>/UC_Z8]T1KN[S7.'^XG7*8__EHJ@-?M7DLW]:??BT/5:M=G&
XM^NL=OJ3<7\L9[AOTC?.YRBOB<Y5A/FA->!-?+_"/_/E7KKT\S>N\W-_MUZ[E]
XMN-<5J</WEIY->\_GLPE>J5KSO!.A<<(:T8281<5%Q<&MJ#BFQO-_?Y#:&7="N
XM^RF)O5%KT.VIO`#+4MU5^L_0U>@V9M4<<-?K9OUZ'=7/DF7XM6TO_P;!?TKH!
XM4\++_V&^H?W(W<ZPK7IZ;V6I3W3:#JW736H/A$[Y^NW'TG\*&^7\^KTNC?UT%
XM>,[KN`N03AKE8*3Q>.7?Z0IR)-@;C*Q/AV][U!DD,0_KW,N\':OOP.1#_L;.%
XM%PN]+,AYHVPP@X^ISF!]>8]P8UXX/LF>RX?.A#],][BL0.,\B[%@;&T_SSW>.
XM_[E#-M\'2ZB*/VY.]J^C-./$MZIZ3/Z_)>/W1GIJ_L%O/-^E\VG<9,M3DHV7=
XMMNM1]%_GYKI<"Y@7K5:C9Y\7W==RCH8RCAN,ZW')SFIKXRK[^D=XSOG^A79_.
XMW!X-!BSEN,$X!V(GW#\8U[^8-WFLWUJ[[I,]M+Y43+HY5M=LJP.=;77-L[HV)
XM/*YAAP>YX#UL]0HQPTPI_,.[-K"-A\2I3-\@+Y5W<S74G:QT#^Y;WX'<_CA8%
XM[UR*(U'Q_:X=BM+5WWM`\NC'Q.5SRV'_'$)GF^>[7.G>XPZ_4#[++GVSY?L1R
XMX=XTW>HW"2M\N+A7C>NVG5EZK.,\UF*>5K<;N-Z@G1X.35G:8B'AH:[^7V;7;
XMZTB'")<G?]UXG(G_2I9(K1<[2WFU\8(<76@0HVF6*[FN=*U=V[K\IJ3S77OFZ
XM<RDPOEQQ$2HK;52/9>4*C/L!KUA!\*?7T;"REK<M>0W&<:M7!+L/63UA<LS%3
XMN_?HD>*XT:[-_Z<F1C7WZ'#GLK+0VG%]1/3+RL7E74;OUGC\OUY2L+BAY:=.O
XMEI],UO'WM3&;$[M?_L;K+\2U"IK1>8.QBG\P3LW_(?_!>.@_)<O#[?.O/&;>[
XMJDG!>Y6W#J?YQ[,9.U29?JET'ROB.*:B3=/3<S-SLS^%>OB;,[2*;;BQSYAA*
XMYN@0FH\$DZ8K0Y2;N%5-+?=T(W'B^(5M]3**\DNXV3J1YCI#-%F/=\99ZE[O)
XM0]"R:+S'?)XZNL92J'_:SPU&@!G'6L3?[URCVZN"GKP_S<X#GDJ9'#?90/\^M
XM3X-ZGY7K9:[5/$T.)A[Y.=?O'Q+K4K_VO$I8)D<RKB@/RQ>(X[_)X]#'G:AML
XM#+=%Q2NTT@9_=*SK"$9QX\:,]0>Z^>98?R>U-EVB:)36TG[YO``+WS'C[7<G?
XM"5V=>EI'I;2&$SON9!;(>XVD,0TU&,&]R4_XJSR7Y?IRT^_3J37ZFI;-_1`>D
XM7G*N#_7KB.(U.]NZRE8[#4XR1XJ1%:K;A=,3X*F4!DMJOXG#[A]UAR]<X-2[1
XMJF<52R]D,6I<7EGQBK8-IK19;\OFAA(V&_U[V^S,H4HES^^Y,GLZ.*Y%5?H*I
XMZ:UV'*3P/*B#)-5']Y8Z,H7$C5(OYM8CQKM5R:52US:`-H58JMO%K=3!]G811
XMB]HW"7<#72)7KE-$SP;EY`$,6WPJEW@U!;M!6RU=HO:IW#S$+H;;-&X;T6TXO
XMM6C[Y#S.4]6F<9-HBMIFE\UV`[LB=EQ_7S6/V^*-5UPI"RQRJJ:&D1:A/*5X^
XMY9(I?>:7@;&7";R,5)<1(6CZQ;^=,>3_:6F_E]CO%WR6'U?8=6&<+KUTG()@=
XM!'4'O7_+]#Z/:3SM"S]QR5QKSAXOEY_<4$T^]8G*/5&Y<,QQ67R#N]'X:)U?I
XMR.O]0VDQW&@"<XT=C&.[W'$EO88=-M^7^6&''8RHKDHC<:52"PMPS@[?X(5VI
XMV'I4<+8>%Q4'/5P?&_1:;Z<W[COPH?E\^9`^+N'JZJ$=$YU3!:UP*;8"4#:I7
XM;F,:`0@Z46_QF_?"9FWN?<"8;/-*!$*='EX;*V>%L,R^2M;<%\6KH0V9+_.R;
XM/6@1XSG57;5E>/]&TT?R[7JP#K>"H^0R2XWM;DXU5!Y;GU(,0O1L=X&4*-=]H
XM[GBB.40C%06Q!I[I1&KH?F\8-9A+]X8;KQH=&\V`T49\K^8*3$B'"UD@35W<P
XM/]M.N$I_CP#GFJ^@B1[=NE%A4LO6R/_4%-Y@#'4>N5#_L>NQHXFX-G6%E?\2&
XMKB05\5\8X2'@WF3P]^4'093.?:E9%+(5O%7HF@HK/"$8B1^1(WZ@('G.H3X``
XMRJ8^8+.I#X#R8DL?T9`^7.\@PX8:C.\P-=][K;:J&$QYB+`H#Y?DLA('%SS(8
XM3?!@7'E^3KV#O/0N`_<H?J=,/.L=9##6NXP8="Q?,5!6GT@>')#152'$RV#'`
XM0#`IN*L#C6\*/+MWN83Z02Z45BA>VKM0UPJY%92W@1EHW!6,_K'4Z*SFQPG&Z
XM]3CYRF90/(<==J@%/`8-N::D6N[G;6VQK+30;Z).=,\YNH?*S?$]0/,>(IOW+
XMD-F\1P_R>!\<G5&/)#OXL,D.\H<-K%.Z0RN$^#-:J'82Z@_KLQ75YUKG>-AF`
XM&O'2B'\1)2W:AQ8+B0N691HR5&.5B2^*0TZ`#@_;0HE\*O2A<$-$C[',A$>BQ
XM--A@[-E(C^]TN*_J4$L#!`H````&`$A.#`U_;Z9W<P@``#X5```'````5%!5V
XM5%,N0PT"`1(C%!4V-VB)FML\!082$T3%]I;W7ZI4$1PMV%`A2)4)$P07S?G0[
XMMW#SRDU[%BU=D"C'I@09,R=.F2Q!&I5;E@SQ3CL7S7D\2!#!.RA;MB"EK,\Y!
XMQKOLW+)R[9@O91AL6*IH_#?(N6_-TKT;AEF##.N6[,NW<D&2?3NV;MNR;NF&V
XMI9OVK5L0X*>]V98-.X?=S70_W+IBV:8=\U^2Z=YTK&ZQ==);=W-7SMIM6#9=.
XMMQOCW7+LVS;(6N[8-,\;9)W_#2)ZL\WK0A]GFK9M6CK3+B=M3?>-^+#?;=],Y
XM:[-Y62P=]_:-XGI@'PVS+BLV#S!Y5L[XID.U8`<W=LN%^Z99SS'6<.6^M9N6\
XM3/G31>-4#:LLES\^!DK4_NJ[QY8I*]N&3?/6\/I8.O_,_4&.N=]NSW2?OQQCT
XMY,ME\X^9F7%K%W,J)%78,[O1++UBO>;]JC6(*4WLS'-7FW$VX[TVS;3?H:O1'
XM`!/1>HZ;2]WT.ITCQMHG6T>?+(L73IFVOMHUB"$/7V7=;><0L^.%?5"8,"5.]
XMIH$W<O,KW-[?+3;-^+H73+>9X^V&>\\AL_E/./"KK==YUG*""35+%Z\+UQQGF
XMV:C"%\0K>#,0WB^:6YV;:5*A4H-*S4+87=7I4*I)GSJI'D`[':MK\F/L?%MG+
XM>8(P?!RQ^FQ'-9PT3WBAH2J_IYHL&>S#S][WTB+.^NI3J42G+".JW&W'S"_QS
XMY-2L3I]"G9HD/*Y=7&;#91G6K-DQ?FX6\T::57KEI+ISJ\C>.YJ;Y@]"O'I.:
XMHE31WE&FW`&.)%ITZE"I2:%$A?RTSE0**3&G3L,[MH=!=H/0M][>]31;U^T82
XMQK1J45C6W_Q8BM-O[X`/(!>1-1W8#23CW2Q.BT&K"A]2%KF3<A)[D'$7PSQ(O
XMWF:]WX!^WWM.,*M/P+[=E':,K\C9U96O[T1.`2M>C\K8T#J,]XENZ;Z\KL!)D
XM.9)KPX*P0S9J<L;K<<R$#NV5.ET&LY[4C.DJ[1BANP[2VS;='%&1VI.=9L/KN
XMXY**5H99YLI\95VHW"SZVQN;*D@]P?JM"R=1KQE`OPVEC^\9;5@"Q]QUU*<3T
XM;LF:=]VJLBL/^4+]QBHTM0_SY!U439T)V'.0/7T<5^FWJ+5;51@#8_5*2;&VX
XM=1DGG>P<VI(JT(>3^1Q95?>-TP/(0KT@BGJRI9&A#S/U'$L=4`9JVY6Q"[!"$
XMTBK\-''ZW6X8.VS.!RD2ZE"1+F9!V&*S,(\,0CSY9NI%:Q'X;4NB\"*^B28C%
XM'TUBM)5IBF48KM27*WX98LC_B\BWW!?':U*Z#O1^.?<L'51M%ZBOPVJA,%L*1
XMS6D3)LP49*2HM]"J1TJ3)-**G<9WW8[D+.-),1;/EM\-R[O=,DG&76\Z]8WP)
XM)<8,`IF=-`DV^@6AXA,V\:1-L:A86JJCRC.SKEDSJDJ/,%N"4,,FJWS?:'U49
XMMWQMAHY=!JUN.I7HDZ\79[7/032I=W1QV@IY71&IXZIJUAZ#);T#OA<)<ZP=(
XM05J4D)36<QQ6CNEX(7F?N[4+ZQODGK0WRH?),@$]3<7A'8TB4+%7Y1R&F5_GK
XMF&J?,L94\.T]Z#7@P\><.7,&?!#>K`$?,2?,'.]!-&./B;-,`!+^BF`1_1!
XMIDT;\($W%&R-N8!#Y<%'F`O8,^##QI`:N#;@P^*<84?@QY@:>LT:\8&+(SXLH
XMS1CQ@2^31GQ8&8P+7!KCH#&AX(,P!U[(?7?\5K32TYI9&'`1JXM6<<P&.?1)>
XMSRE9IX66/3.J><84])OGYBX@?JE"!%HVY-4JU4E5$D-;A9+*L97H99I;.=&8X
XMF["+'P%E*7G(VT4SNL@MER1*(PYW'K%F[B(QR:RJHTR#DTQA*/=.!!"$)^PV)
XMF#Q,:C,I+\0W71??R:!C)L(Z\B#6"BEFUKX>,R,OB[J!<<9<!R6KIM**V'IN[
XML]GX3@=(!,>'GN027<["-X/59BXUTZ#H"(GKE283-#FEQ#><?78V*[.)C4.&`
XM8&>!3Z%M($\D!1=>&<,AE6G-9!EGB&M#DRG0@DW1S.0S]YB@YS`H'SY^!M5'.
XM8DG694T7S4/'O8/BW9IQ,V_7357U(%]18[,MHY=@874>D8)S@A4)%SI;GVT4.
XM89"Y#G9)0O:1C\'6SA7%-A4)]CP4Y%BX.DUG7<NFD4V-$NSFI">7PV=?,H(
XM"`=6@\,I.*0#!V/QA?6$8^>0N#B'IMVH+EB33I%<F<8D&1(,FUV39@BPD6[WU
XM^'GMM"I3IB#Y\IDZG/,4%#<TV/5F[GBO^SBKTMQUFPF)$LY$5A>W=W"C@.U;%
XMM:2O7/%?V0_S6F4/4/T.Z<@K>X*`GR!;@CP)\X35F;#/\+F'(SNLEB==GJA&V
XMC`MG;'P$C2FO$Y1#:E_G<$W9<6$'^P_-F_>16@R-53$T3FTJ")362/JCF^B?=
XM(;"$.1]J8%W;7XRBPGA@_Q(X`DZ*<)4O8IJ2?0RA_8>QA$R#@G:-^)]T8AM.(
XM,C&XS7)HD"J*6!N<$9HB;"5#`RQ6V&7G)`9X%':UBC,1@Z)&<5F4?]LL^)0L5
XM6`S4,S/N;CX4\$2"2B!-D:D+3P##G&C5HZ!%N+JQX,%L$#F)J-F86H"[H=MM*
XMBP<Z,)'215QZ9<`3::F1Y2#8\#/K,=F2Z=NW:SA,S3S&P80C#+.0;"%>B@YY(
XM,O:(^_/3SC<;E+7WX`]]V\9-0\$PH(O#H81[',%`\E%(Z$/CB%)(/1':QX%#X
XMF10LQ/U"2&Y"(`349@,'LS&``&PY3?B<D&+?[Z;LG+LC.R3(Z3&;$*FQE:T=7
XMQJRIZ6$X&J0/Z@=ITD3E"`NF1GD*5"6^K-0H*#A/^1*$<W'M*5/(*B%NL'`X$
XMG-JONTQ"*.0#6,M()2IN=7_B]0NTQ79#^`YRQWCN@^%GRQ;-E2$44&:`5;N(C
XMW`=7,`J.!E!+`P0*````!@#O67X9CF*MBXP!``#>`0``"P```$U!2T5'0T,N1
XM3$E"#0(!$B,4%38W:(F:VSP%!A(31,7VEO='@IPZ=.A4D$G)Z@0)%.7(E$W#=
XMKBU[!'J[9)M6+,B9+F."S"GSI0SA#3-G0P7HVVE9NFC#CET+LLWXFTW+MBQ(A
XMLV_E@C0JMRP9Y)UV+EJ0=,O*;6,_P[J!WD25'H4*%63+EB"7EK6;UHVX;ON6]
XM[=JW=^>N37-LPBMXA6N0('N"/#MVC/(;91KTZ)3F;\%\YO)IG6I--ZS<,^V:-
XM)4BX=>F"^/^[:?(UR+QOL`_<Y6SOM&7GI&^J1:4V99I42/Y1'[\<ZS),,$V%!
XM>8:%"U)._*;3O]:W"_9G^I7I4Z%*BPZEHNX)Z7![6;=T7;Y)[F;9ACVCO$$L=
XM=[=UVU0_%_B=P+G/I2N'O+^E^^;XD-?3GX,\P!M=33;MV33%THSZLTF_KMSEI
XMU*I&C2;%6G1*E-IE63QE+FUW.:;XQ:HAWF'GMAFOUNZW.H:=)(HD=TH0Q4=DI
XM2]XMWY)4\7[$/^:\9:^R9$H=ZT<4/L7V"E(AN4'&!2&>!!$>AHX-4$L#!`H``
XM```&`%B<51F&!`EO>@$``+\!```+````34%+14U30RY,24(-`@$2(Q05-C=HY
XMB9K;/`4&$A-$Q?:6]T<FG#ITZ%202<GJ!`D4Y<B43<.N+6LV+=NR+MFF%9MPJ
XMILN8"7/"?"E3YDN8,A6@;Z=EZ:(-.W8MR#;C)4BS;^6"-"JW+!GDG78N6I!T4
XMR\IM4_\@6[8$Z01[D6^W()N695MW+)K\K2!<)^P)<BQ;D"_'*FSZE&A1)LW/5
XMA'H;91KTZ!3E?QF4)`KKGD)Y/YTS_&&&]Y'CUPHW!O&^"N/_1X*DPNUCP\(%J
XM*?=M7;IIW9:=ZU(AU:)2FS)-*A1D#WQ,[EA_JDR_,GTJ5&G1H52JZIX)Z9ZA0
XMN\NZI>OR37(WRS;L&>4-8KF[K=NF^KDJ3-#<Y]*5,][?TGUS?,@;CKF>@SR^*
XM!U=--NW9-,/23/JS03]S=SFUJE&C2;$6G7+G=ED6SY++VEV.*7ZQ:HAWV+EMZ
XMPN>8YJW#?VU5?15657QNF5@W^I:DBO8C_C'EA[V0DBEUJ!_?^!3ZJTGQG<!26
XMKP01'G&G0H502P,$"@````8`(!AA&F^,C>(B"P``01H```L```!415)-0T%0O
XM+DQ)0@\`$@,D%38G.#EJ>TR=;A\)!@$3-.7VEO?A-QC>@O`"GG'`"P$FI'NVB
XM+-VR;NFZ'`L>4?,`1Q]X)I$C/@#N3:>"'.H6<0+D/S-EFE3HT*(E$3]8]J=,W
XMB3H-VK3H5!?3+A>Q@>@[PV3[5!VRA@XXU.I-RS60-TCTJ-2G5:$RI'JT*-6BY
XM3JE^(1XK58)#GQ(M6O`KT:!4@Q(@U@+/.YU2_5>A4Z<.&':+F.(>*4R!`PD&-
XM_):L,@$6-!AP6[*X]<`1$DR]4C3!CPH&8$0?[_P/\$_PNTR@G*/C"@0($!$
XMZ@<:L&A`X(P5K/]U+EVY;((\0+:T&71YLVG=DOU"W/,`+S/^L>UFNNQLY2#[Q
XMV;=TQZ(-@RQN5CO:.I;MV[EE_NFQ;>$(N>C?PCG:#QQ3T-.$[>#OOWZY'Z[8W
XMNF8!ACEK26YCT><%^!62ELRLO_R)X)/[MPTAVH1"PFH>/"2ADZYO7')`@/(12
XM$X!>=,#HH/CT@"CH5<X%`2(':%7A3=`TJ)SS51>S'\R>H%7B7@V:-/;G'871I
XM%P]?;!6AR5'(FTQL`4M+A:JI7@<3)YC8*/_$5OTOA%YW"[LJ/H@YT_)T"^(:/
XM^O5F<?__OS[L?[L,A%<@/`+A#<R3"!<"I]O">7_"\RL:^X8FN!C>T@H8[W^%,
XM=&WC8OOU'-AIW``)0D&'5H#T=3][75R^Z[*W.`/P`7K`"AX?5NMCRATP/3ZLU
XM?#$RK;2NP/5P`>=_29<!\5SI'AC[OP%UUN6(&\&]&YSB%?9D3C?)F_>?GC!`H
XMW`JFAK5J+]M?!+4]I%R?\/BBC*R;(9I*,^1,X)G7!\7]0&C''>%H1-AT7<^X6
XM,V#K!FS0A7&CP%85V%B8T02NQ'^.K%L`Z],;NMZH`K)F$`1Z_0,^XA3_02>\_
XM`2=0Q?,WB6,S'\=-UNU@33&)IJN@2/-A0\0-J3CP&MS0#ZXMG'#:UPD=WO.MF
XM>^CQ">@-F!GK2G5R_@K0.4JK!)LKMIJP>.'.Q0%W;A[']2[.)ODSR6-)]BG)&
XM.TD^J-6%S5-:/=@<HM6"Q1=V9FX/>^+OC.?5//%;QH.V.I#Y7:L!F:>U:I#YL
XM%:5G/M*J0.(>(F?B&88=(F?3H&W\FCSZ4IL.#0H5H)QD9FRSO=RV8\/"2?870
XMO_W8%\Z(9-RW(GNG\RB0@$)C!:^E9MF&/0,H+T;D'*",`!J?$R@`D#8"!=T@Q
XM4-0HTZ!'!`6@AB-5=0Q`4'R0JU*"X@T$!8!.8=)(M'):#5XCI$7C7[B,9=E38
XMZ3K0!?X$+1F`KF-@:-;59*AA7^3J)KHT;IT`H=@&M`%>Q^E&82T'$IN4L?.+*
XM3:IQ97>OBYP8?,T3F%S.:W-\L;=M_&C`NJM`1W"'/,#M/!2'%`#:83JOR.FO>
XMF9>HO(E+:#QO,.P).3.!?)`>'NZV;AO'_]K#0SS[KX<'>$*G59LP/D#!`Y?&\
XM^/J#\0&@/0R^IYU+-NW9M'0L'WA>M`".S!9FKU?Y0!_H$[2URD=3J'PP;Y#*O
XMIQ@9WD`NH9DN<GQ.SY:-\T4-TZM\:'R5#X^O\L'BJWR<`;?S'"'QK>%[T>-&S
XM_<&:<=NB#K/N@>;Y">GU&8R-%%\OH9'G?]^MO[/WWY@H]`#%V5O1))2'GU9\J
XM2RFZMO+]81Z'#)<3;,\<V*MYB<JSSGM`Y]EPG;<85P?A\U!'M,_;V><AGMW6F
XMYP&>8/"6\GD`E4#@J8*7I@62-<+G*;_/`V#24FN#9,N.?3,\P.R,3X2>DWW[R
XMM>S<,;0'R.!M%>T![DE/RM.$K(&BLWU::T``CTO=6Y1\UN,"O2!/T`Y`.JK4+
XM`.A,2@WP@0Q*37O2+:"Q5$+#I0VPC43@T.%\JBO`*I+QXJL"A*(\#GHQ],78`
XMEM8P(D>YMN0">V-$BI0N#<PIZ8W4;*)L-Z%YKV>6<H@H4]26,E'713W"]:R^G
XM?9'5G.1'XG;J:0(KF879:/:-DB8(DC$%$R1Q;7.2-:2D3R0=\_A6T_9"*F@7(
XM.-M:T4P=F/XQP"B"A=/=:2Q_`(C)R*DG.]3$3NU]HRW&'BC=+'_%1NVSA(D@1
XMH:O"P7[]#^0[#7K^ZX%838!A&VYHN/=D'70%*OB0/%)*4D23T!68,7L[-FL89
XMG4:]I;4YG=2;(WN9%R\F,@XF,IY4>?DS!<7V7,7%)G<`*=X04ZPX;KC)>#G
XMKE`P1',=8-&-8A&:9>A6H=R&=!C[RIRD9^:9W^,-$E!TGV$K]C>ML:S*T-$%A
XMFKFFU0"`G+$::`6K\5.J3U(#H*):#/4VFQY01K)*2`W=]QE4:KB"9'62&IHK!
XM@P?0F!VNW+=C7/.Y`'DR7@";/L<Y$UG&'"!_2)O!OYR9D=FAVX*1C)W$LWROF
XMQ\#%!_!-*@C5N)00(49CG+'V]6*<-T"[]B'-0^IQ`^S]1_`V(.*=048)Q>LH'
XMO:ONI!CM[<$UC"2@.P36)>E&F.X]RO_AOS;9<,JOWW9Y?#VU:[8[CHOIUVOB]
XM'+1!*^A2ZT;KM+[<FS_048VC^C97T^GYQ1[03KSAHX__?XOO<1<X,,:ZR3<\[
XM`=C%%41M%@I9@/G1!-SBZ2H[?G`@WX-)@TO3ZUU)B_.*#SFW%WW@6_;2]+P!Q
XM;,-`6=[L`A+]:\RHRQ1QGD/<_=R\;5QCO7J`:%^_IUG7UQFG%T7;Q#7C_G0BB
XM9?-Y9ES+]2O=]#]I__>L1XR2O\5-7G)]SAX_SG_?E<EBBY]G:>`W?.U_E@.,1
XM'8GQ!(Q]XW__R(S]1/,+C-V,\2:,/;E_%J5]*D'CUCDW!U@<\^?BE(1W)+PBY
XMX0D)[T?X.\+/$9Z-\&:$!R.\%N&E".]$>"3""Q%>A_`VA&\A?`KA2PC_07@,7
XMPE,0OH'P"80?^)EX_\[$]15/3WAXPJM;_ESQX83O)KPUX:4)__PS\V,FR8490
XMK^M@^2WH9PG?JGQ5Q9,2'I3PDH1')!Q2$P\D/!SATYP?YF8YE^2Q"!]%^!["/
XMWQ!^AG!`3?R$\".$#R%\!^$S",^P\T;0%FI=GSZ%.A5@23+"PY1!K#.(/_7JF
XML'#KZ+Q>_4^O3C3KH5<'W"#4*ANS5P>HE2)=G>5$'9(3(5X=D1,!Y@*""5^A2
XMTK$F*P!"AY<V$5&,&:)3%Z<?&-%XGBH44+K8#V85&0*#("HR1#D*!*==UO5Q1
XM<5'H,)Z@HBE6HT(N'Q`UW-/H=4;3*NLRR#7#FC)'V)HN<+:"YUX9;EV?SB'2`
XMD$DDR6(!7S/L0H9_A1#A?I),B0C]W?TDZIFT]I,`+YAT*M&D1Y-2*7V`2N+P4
XM%4/I:[[2!X#Q4<3I8\PSR'R<0^:3@/T:S/G70+'#[$M`I0:F*!@CGL!K8VYH$
XMYZ22G(V#]:R(F'/2!ISI($T"@*31))3CUF"="8,%R&_<K(*8I(]D&P!Z@\BQ^
XMOZB5@S00S6C[^9`0#OO&EK^3)MS08"$TT@X2`B4\`I9D)!]++#,)_(HU-('&'
XM\0&`S63@A1V$3L<5UGTQ4CR@WY1+F)UK71T!4VLO%MV\ZUK>G%3A6N=.H_F
XM:%0#I$T!%H4[O-SMZ)S9\18QU2WL\C4`.!#C]PP0P8$+!MP]3!7%NA/@!VK8\
XMDA,!9@1HPQD-%$$/)[HWW1!L-!>2FV4;]FS(I``15+!D2,0`4A@T(A:6<+=V*
XMPV%1X3:0R&')[!95P!X`]Q<,^`!7S"4,<";)"=.P.(D<TRX!^@28XMB5'A@U#
XM.F2,3`P3R9`@`_0^[;9NVY!F(M\TGX?8?-%\'F+S35.Q^I+K-AGDL`$")N+?I
XM$WY17#S)Z1%,NQG)`_Q?,`!;7NB/H!4X20!"&"6`/<9H(ZI]*_QE2+P#U-S&7
XM,$X`?%@'.G-\*^8&ACF`8D(#&%!+`P0*````!@`@&&$:>NLWJ'P!``!W`@``V
XM!0```$9)3$53#0(!$B,4%38W:(F:VSP%!A(31,7VEO<;*C2:EFW9N2#3N@5)4
XMMZS<MF/#PG6I-RV<ZA6\6X)\*C?MF>L=EBU(HW++DB'>:>>B&<]!SGU;5^[88
XM,OQ_M"A5IE)!@@0Y9/B"N\R;-V6"A(FS94R9+7':`-])IQ)->C0I%?#XF#-KN
XMV@"/IQ+L19V`Q^((WS#`5_>&&;-ESAG@M5&F08^(P\.D>2-8R@#?.&^`UTZK^
XM-AD:6W.F#?#P4ZE*`8^W63-G#?#(3ZD^!5$4UF9,&T._QM`]`WSC`'^H58(5<
XM>.2:-&?B*`KGY@Q*EFQ:NFG?P#F;AEU;ULR5/*R;/#<</W?+L6_;PH$^YLTVG
XMK5BY8;!4VDM^-PVZM.C1(=+.-*D0:P*KJM8QJ"X@EUXMP_E;)*-!FGTK%R11M
XM)>YWO]Q/SBVU"?X.\A3Q=(-8>W*V^Z;>\@4^^#SV=-,I]A"@])@PG!SV(#9-C
XM.U;NFSBT6;H@^"V?!X72'V\##AV#'P)\'%\0ACY02P$""P`*````!@":`0P-S
XMJ*QZ1FH%``#4"@``"``````````!`"``````````1D=%5$Q2+D-02P$""P`*R
XM````!@"F`0P-M*4E!OP"``!,!0``"0`````````!`"````"0!0``25-$24=)1
XM5"Y#4$L!`@L`"@````8`(!AA&G"LJ0#N"@``FAD```H````````````@````+
XMLP@``$Q)0E1%4DU#+D%02P$""P`*``8`!@`%&$$:MIR.V)<+``#"'P``"0``W
XM```````!`"````#)$P``5$=%5$5.5"Y#4$L!`@L`"@````8`DKL5#Z_;B%XL/
XM!```_P<```H``````````0`@````AQ\``%1'151&3$%'+D-02P$""P`*````-
XM!@"CNQ4/")J.V-0$``#H"0``"0`````````!`"````#;(P``5$=%5$Y532Y#6
XM4$L!`@L`"@`&``8`KKL5#[V/"47Y"0``PQD```D``````````0`@````UB@`L
XM`%1'15135%(N0U!+`0(+``H`!@`&`*`THQ#G\S+[#PD``!`8```'````````R
XM``$`(````/8R``!41T]43RY#4$L!`@L`"@````8`2$X,#7]OIG=S"```/A4`(
XM``<``````````0`@````*CP``%105513+D-02P$""P`*````!@#O67X9CF*M4
XMBXP!``#>`0``"P`````````!`"````#"1```34%+14=#0RY,24)02P$""P`*,
XM````!@!8G%49A@0);WH!``"_`0``"P`````````!`"````!W1@``34%+14U3,
XM0RY,24)02P$""P`*````!@`@&&$:;XR-XB(+``!!&@``"P```````````"``1
XM```:2```5$5234-!4"Y,24)02P$""P`*````!@`@&&$:>NLWJ'P!``!W`@``9
XM!0`````````!`"````!E4P``1DE,15-02P4&``````T`#0#*`@``!%4`````V
X``
Xend
Xsize 22500
END_OF_FILE
if test 31540 -ne `wc -c <'sys/share/termcap.uu'`; then
echo shar: \"'sys/share/termcap.uu'\" unpacked with wrong size!
fi
# end of 'sys/share/termcap.uu'
if test -f 'sys/winnt/nttty.c' -a "${1}" != "-c" ; then
echo shar: Renaming existing file \"'sys/winnt/nttty.c'\" to \"'sys/winnt/nttty.c.orig'\"
mv -f 'sys/winnt/nttty.c' 'sys/winnt/nttty.c.orig'
fi
echo shar: Extracting \"'sys/winnt/nttty.c'\" \(10733 characters\)
sed "s/^X//" >'sys/winnt/nttty.c' <<'END_OF_FILE'
X/* SCCS Id: @(#)nttty.c 3.1 90/05/23
X/* Copyright (c) NetHack PC Development Team 1993 */
X/* NetHack may be freely redistributed. See license for details. */
X
X/* tty.c - (Windows NT) version */
X/*
X * Initial Creation - Michael Allison 93/01/31
X *
X */
X
X#ifdef WIN32CON
X
X#define NEED_VARARGS /* Uses ... */
X#include "hack.h"
X#include "wintty.h"
X#include <sys\types.h>
X#include <sys\stat.h>
X#pragma pack(8)
X#include <windows.h>
X#include <wincon.h>
X
Xvoid FDECL(cmov, (int, int));
Xvoid FDECL(nocmov, (int, int));
X
X/*
X * The following WIN32 Console API routines are used in this file.
X *
X * CreateFile
X * GetConsoleScreenBufferInfo
X * GetStdHandle
X * SetConsoleCursorPosition
X * SetConsoleTextAttribute
X * PeekConsoleInput
X * ReadConsoleInput
X * WriteConsoleOutputCharacter
X */
X
X/* Win32 Console handles for input and output */
XHANDLE hConIn;
XHANDLE hConOut;
X
X/* Win32 Screen buffer,coordinate,console I/O information */
XCONSOLE_SCREEN_BUFFER_INFO csbi;
XCOORD ntcoord;
XINPUT_RECORD ir;
X
X/* Flag for whether NetHack was launched via progman, not command line.
X * The reason we care at all, is so that we can get
X * a final RETURN at the end of the game when launched from progman
X * to prevent the scoreboard (or panic message :-| from vanishing
X * immediately after it is displayed, yet not bother when started
X * from the command line.
X */
Xint ProgmanLaunched;
X
X# ifdef TEXTCOLOR
Xchar ttycolors[MAXCOLORS];
Xstatic void NDECL(init_ttycolor);
X# endif
X
Xstatic char nullstr[] = "";
Xchar erase_char,kill_char;
X/* extern int LI, CO; */ /* decl.h does this alreay */
X
X/*
X * Called after returning from ! or ^Z
X */
Xvoid
Xgettty(){
X register int i;
X
X erase_char = '\b';
X kill_char = 21; /* cntl-U */
X flags.cbreak = TRUE;
X#ifdef TEXTCOLOR
X init_ttycolor();
X#endif
X}
X
X/* reset terminal to original state */
Xvoid
Xsettty(s)
Xconst char *s;
X{
X end_screen();
X if(s) raw_print(s);
X}
X
X/* called by init_nhwindows() and resume_nhwindows() */
Xvoid
Xsetftty()
X{
X start_screen();
X}
X
Xint
Xtgetch()
X{
X int ch;
X int valid = 0;
X int metaflags = 0;
X int count;
X
X valid = 0;
X while (!valid)
X {
X ReadConsoleInput(hConIn,&ir,1,&count);
X /* We only care about ascii press-down KEY_EVENTs */
X if ((ir.EventType == KEY_EVENT) &&
X (ir.Event.KeyEvent.bKeyDown) &&
X (ir.Event.KeyEvent.uChar.AsciiChar)) valid = 1;
X }
X metaflags = ir.Event.KeyEvent.dwControlKeyState;
X /*
X * metaflags can be checked to see if various special
X * keys were pressed at the same time as the key.
X * Currently we are using the ALT keys only.
X *
X * RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED,
X * RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED,
X * SHIFT_PRESSED,NUMLOCK_ON, SCROLLLOCK_ON,
X * CAPSLOCK_ON, ENHANCED_KEY
X *
X * are all valid bit masks to use on metaflags
X * eg. (metaflags & LEFT_CTRL_PRESSED) is true if the
X * left control key was pressed with the keystroke.
X */
X ch = (ir.Event.KeyEvent.uChar.AsciiChar == '\r') ?
X '\n' :ir.Event.KeyEvent.uChar.AsciiChar;
X if (metaflags & (LEFT_ALT_PRESSED|RIGHT_ALT_PRESSED))
X ch = tolower(ch) | 0x080;
X return ch;
X}
X
Xint
Xkbhit()
X{
X int done = 0; /* true = "stop searching" */
X int retval; /* true = "we had a match" */
X int count; /* scratch-pad area for API call */
X
X done = 0;
X retval = 0;
X while (!done)
X {
X count = 0;
X PeekConsoleInput(hConIn,&ir,1,&count);
X if (count > 0)
X {
X /* Make sure its an ascii press-down KEY_EVENT */
X if ((ir.EventType == KEY_EVENT) &&
X (ir.Event.KeyEvent.bKeyDown) &&
X (ir.Event.KeyEvent.uChar.AsciiChar))
X {
X /* This is what we were looking for */
X done = 1; /* Stop looking */
X retval = 1; /* Found what we sought */
X }
X /* Discard it, its an insignificant event */
X else ReadConsoleInput(hConIn,&ir,1,&count);
X }
X else /* There are no events in console event queue*/
X {
X done = 1; /* Stop looking */
X retval = 0; /* No ascii press-down key */
X }
X }
X return retval;
X}
X
X/* called by init_tty in wintty.c for WIN32CON port only */
Xvoid
Xnttty_open()
X{
X HANDLE hStdOut;
X
X /* The following 6 lines of code were suggested by
X * Bob Landau of Microsoft WIN32 Developer support,
X * as the only current means of determining whether
X * we were launched from the command prompt, or from
X * the NT program manager. M. Allison
X */
X hStdOut = GetStdHandle( STD_OUTPUT_HANDLE );
X GetConsoleScreenBufferInfo( hStdOut, &csbi);
X ProgmanLaunched = ((csbi.dwCursorPosition.X == 0) &&
X (csbi.dwCursorPosition.Y == 0));
X if ((csbi.dwSize.X <= 0) || (csbi.dwSize.Y <= 0))
X ProgmanLaunched = 0;
X
X
X /* Obtain handles for the standard Console I/O devices */
X hConIn = CreateFile("CONIN$",
X GENERIC_READ |GENERIC_WRITE,
X FILE_SHARE_READ |FILE_SHARE_WRITE,
X NULL, OPEN_EXISTING, 0, NULL);
X
X hConOut = CreateFile("CONOUT$",
X GENERIC_READ |GENERIC_WRITE,
X FILE_SHARE_READ |FILE_SHARE_WRITE,
X NULL, OPEN_EXISTING, 0, NULL);
X get_scr_size();
X}
X
Xvoid
Xget_scr_size()
X{
X if (GetConsoleScreenBufferInfo(hConOut,&csbi))
X {
X LI = csbi.dwSize.Y;
X CO = csbi.dwSize.X;
X }
X else
X {
X LI = 25;
X CO = 80;
X }
X}
X
X
X/* fatal error */
X/*VARARGS1*/
X
Xvoid
Xerror VA_DECL(const char *,s)
X VA_START(s);
X VA_INIT(s, const char *);
X /* error() may get called before tty is initialized */
X if (flags.window_inited) end_screen();
X putchar('\n');
X Vprintf(s,VA_ARGS);
X putchar('\n');
X VA_END();
X exit(1);
X}
X
X
Xvoid
Xtty_startup(wid, hgt)
X int *wid, *hgt;
X{
X register int i;
X
X *wid = CO;
X *hgt = LI;
X}
X
Xvoid
Xtty_number_pad(state)
Xint state;
X{
X}
X
Xvoid
Xtty_start_screen()
X{
X if (flags.num_pad) tty_number_pad(1); /* make keypad send digits */
X}
X
Xvoid
Xtty_end_screen()
X{
X clear_screen();
X}
X
Xvoid
Xnocmov(x, y)
Xint x,y;
X{
X ntcoord.X = x;
X ntcoord.Y = y;
X SetConsoleCursorPosition(hConOut,ntcoord);
X}
X
Xvoid
Xcmov(x, y)
Xregister int x, y;
X{
X ntcoord.X = x;
X ntcoord.Y = y;
X SetConsoleCursorPosition(hConOut,ntcoord);
X ttyDisplay->cury = y;
X ttyDisplay->curx = x;
X}
X
Xvoid
Xxputc(c)
Xchar c;
X{
X int count;
X
X ntcoord.X = ttyDisplay->curx;
X ntcoord.Y = ttyDisplay->cury;
X WriteConsoleOutputCharacter(hConOut,&c,1,ntcoord,&count);
X}
X
Xvoid
Xxputs(s)
Xconst char *s;
X{
X int count;
X
X ntcoord.X = ttyDisplay->curx;
X ntcoord.Y = ttyDisplay->cury;
X WriteConsoleOutputCharacter(hConOut,s,
X strlen(s),ntcoord,&count);
X}
X
Xvoid
Xcl_end()
X{
X int count;
X
X ntcoord.X = ttyDisplay->curx;
X ntcoord.Y = ttyDisplay->cury;
X FillConsoleOutputCharacter(hConOut,' ',
X CO - ntcoord.X,ntcoord,&count);
X tty_curs(BASE_WINDOW, (int)ttyDisplay->curx+1,
X (int)ttyDisplay->cury);
X}
X
X
Xvoid
Xclear_screen()
X{
X int count;
X
X ntcoord.X = 0;
X ntcoord.Y = 0;
X FillConsoleOutputCharacter(hConOut,' ',CO * LI,
X ntcoord, &count);
X home();
X}
X
X
Xvoid
Xhome()
X{
X tty_curs(BASE_WINDOW, 1, 0);
X ttyDisplay->curx = ttyDisplay->cury = 0;
X}
X
X
Xvoid
Xbacksp()
X{
X DWORD count;
X
X GetConsoleScreenBufferInfo(hConOut,&csbi);
X if (csbi.dwCursorPosition.X > 0)
X ntcoord.X = csbi.dwCursorPosition.X-1;
X ntcoord.Y = csbi.dwCursorPosition.Y;
X WriteConsoleOutputCharacter(hConOut," ",1,ntcoord,&count);
X SetConsoleCursorPosition(hConOut,ntcoord);
X}
X
Xvoid
Xtty_nhbell()
X{
X if (flags.silent) return;
X Beep(8000,500);
X}
X
X
Xvoid
Xtty_delay_output()
X{
X /* delay 50 ms - not implimented */
X}
X
Xvoid
Xcl_eos()
X{
X
X register int cy = ttyDisplay->cury+1;
X while(cy <= LI-2) {
X cl_end();
X xputc('\n');
X cy++;
X }
X cl_end();
X tty_curs(BASE_WINDOW, (int)ttyDisplay->curx+1,
X (int)ttyDisplay->cury);
X}
X
X
X# ifdef TEXTCOLOR
X/*
X * BLACK 0
X * RED 1
X * GREEN 2
X * BROWN 3 low-intensity yellow
X * BLUE 4
X * MAGENTA 5
X * CYAN 6
X * GRAY 7 low-intensity white
X * NO_COLOR 8
X * ORANGE_COLORED 9
X * BRIGHT_GREEN 10
X * YELLOW 11
X * BRIGHT_BLUE 12
X * BRIGHT_MAGENTA 13
X * BRIGHT_CYAN 14
X * WHITE 15
X * MAXCOLORS 16
X * BRIGHT 8
X */
X
Xstatic void
Xinit_ttycolor()
X{
X ttycolors[BLACK] = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED;
X ttycolors[RED] = FOREGROUND_RED;
X ttycolors[GREEN] = FOREGROUND_GREEN;
X ttycolors[BROWN] = FOREGROUND_GREEN|FOREGROUND_RED;
X ttycolors[BLUE] = FOREGROUND_BLUE|FOREGROUND_INTENSITY;
X ttycolors[MAGENTA] = FOREGROUND_BLUE|FOREGROUND_RED;
X ttycolors[CYAN] = FOREGROUND_GREEN|FOREGROUND_BLUE;
X ttycolors[GRAY] = FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE;
X ttycolors[BRIGHT] = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY;
X ttycolors[ORANGE_COLORED] = FOREGROUND_RED|FOREGROUND_INTENSITY;
X ttycolors[BRIGHT_GREEN] = FOREGROUND_GREEN|FOREGROUND_INTENSITY;
X ttycolors[YELLOW] = FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY;
X ttycolors[BRIGHT_BLUE] = FOREGROUND_BLUE|FOREGROUND_INTENSITY;
X ttycolors[BRIGHT_MAGENTA] = FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY;
X ttycolors[BRIGHT_CYAN] = FOREGROUND_GREEN|FOREGROUND_BLUE;
X ttycolors[WHITE] = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY;
X}
X
X# endif /* TEXTCOLOR */
X
Xint
Xhas_color(int color)
X{
X# ifdef TEXTCOLOR
X return 1;
X# else
X return 0;
X# endif
X}
X
Xvoid
Xterm_end_attr(int attr)
X{
X /* Mix all three colors for white on NT console */
X SetConsoleTextAttribute(hConOut,
X FOREGROUND_RED|FOREGROUND_BLUE|
X FOREGROUND_GREEN);
X}
X
Xvoid
Xterm_start_attr(int attr)
X{
X switch(attr){
X
X case ATR_ULINE:
X case ATR_BOLD:
X /* Mix all three colors for white on NT console */
X SetConsoleTextAttribute(hConOut,
X FOREGROUND_RED|FOREGROUND_BLUE|
X FOREGROUND_GREEN|FOREGROUND_INTENSITY );
X break;
X case ATR_BLINK:
X case ATR_INVERSE:
X default:
X term_end_attr(0);
X break;
X }
X}
X
Xvoid
Xterm_end_raw_bold(void)
X{
X standoutend();
X}
X
Xvoid
Xterm_start_raw_bold(void)
X{
X standoutbeg();
X}
X
Xvoid
Xterm_start_color(int color)
X{
X# ifdef TEXTCOLOR
X WORD attr;
X
X if (color >= 0 && color < MAXCOLORS) {
X attr = ttycolors[color];
X SetConsoleTextAttribute(hConOut,attr);
X }
X# endif
X}
X
Xvoid
Xterm_end_color(void)
X{
X# ifdef TEXTCOLOR
X SetConsoleTextAttribute(hConOut,
X FOREGROUND_RED|FOREGROUND_BLUE|
X FOREGROUND_GREEN);
X# endif
X}
X
X
Xvoid
Xstandoutbeg()
X{
X /* Mix all three colors for white on NT console */
X SetConsoleTextAttribute(hConOut,
X FOREGROUND_RED|FOREGROUND_BLUE|
X FOREGROUND_GREEN|FOREGROUND_INTENSITY );
X}
X
X
Xvoid
Xstandoutend()
X{
X /* Mix all three colors for white on NT console */
X SetConsoleTextAttribute(hConOut,
X FOREGROUND_RED|FOREGROUND_BLUE|
X FOREGROUND_GREEN);
X}
X
X#endif /* WIN32CON */
X
END_OF_FILE
if test 10733 -ne `wc -c <'sys/winnt/nttty.c'`; then
echo shar: \"'sys/winnt/nttty.c'\" unpacked with wrong size!
fi
# end of 'sys/winnt/nttty.c'
echo shar: End of archive 29 \(of 33\).
cp /dev/null ark29isdone
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 31 32 33 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 33 archives.
echo "Now execute ./patchit.sh"
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