home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!master!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v14i023: xpilot - Multiplayer gravity war game hand-shake program, Part21/24
- Message-ID: <3318@master.CNA.TEK.COM>
- Date: 4 Aug 92 19:31:33 GMT
- Sender: news@master.CNA.TEK.COM
- Lines: 1363
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: Bjoern Stabell <bjoerns@staff.cs.uit.no>
- Posting-number: Volume 14, Issue 23
- Archive-name: xpilot/Part21
- Environment: X11, ANSI C
-
-
-
- #! /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 21 (of 24)."
- # Contents: man6/xpilots.6 maps/cave.uue.1 maps/whirlpools+war.uue
- # src/update.c src/version.h
- # Wrapped by billr@saab on Tue Aug 4 10:38:59 1992
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'man6/xpilots.6' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man6/xpilots.6'\"
- else
- echo shar: Extracting \"'man6/xpilots.6'\" \(8087 characters\)
- sed "s/^X//" >'man6/xpilots.6' <<'END_OF_FILE'
- X.\" -*-Text-*-
- X.\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- X.\"
- X.\" File: xpilots.6
- X.\" Description: XPilots man page
- X.\" Author: Bjoern Stabell & Ken-Ronny Schouten
- X.\" Modified: 910520
- X.\" Language: Text
- X.\" Package: xpilot
- X.\"
- X.\" (c) Copyright 1991, UiT, all rights reserved.
- X.\"
- X.\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- X.TH XPILOTS 6 "Version 1.2" "BS & KRS"
- X.ad b
- X.SH NAME
- Xxpilots \- XPilot/UX Multiplayer gravity war game server
- X
- X.SH SYNOPSIS
- X
- X.BR xpilots
- X[\fB-map \fImap-file\fP]
- X[\fB-robots \fInumber\fP]
- X[\fB-rawmode\fP]
- X[\fB-noquit\fP]
- X[\fB-help\fP]
- X[\fB-version\fP]
- X
- X.SH DESCRIPTION
- XThis manual explains the following topics:
- X.IP
- X.B - Setting up a server.
- X.IP
- X.B - Owner-only commands.
- X.IP
- X.B - Creating new maps.
- X.PP
- XComplete coverage of the game basics and how to connect to a server are
- Xgiven in the manual pages for \fIxpilot(6)\fP.
- X
- X.SS Options
- X.TP 15
- X.B -map \fImap-name\fP
- XThis option allows you to select the map you will use for this server. If
- Xit is omitted, you will have to manage with a computer generated random
- Xmap. For instructions on how to create a map, see below.
- XFor example if
- X.B -map blackhole
- Xor the equivalent
- X.B -map blackhole.map
- Xis passed as command line arguments, the server will try to locate a file
- Xcalled \fBblackhole.map\fP in the current directory, or in a predefined
- Xdirectory (default is /usr/local/games/lib/xpilot/maps/).
- X
- X.TP 15
- X.B -help
- XPrints a short help, including the supported commandline options.
- X
- X.TP 15
- X.B -version
- XPrints the current version.
- X
- X.TP 15
- X.B -noquit
- XIf this option is specified, xpilots won't quit when the last human player
- Xexits.
- X
- X.TP 15
- X.B -rawmode
- XIf this option is specified, xpilots doesn't go to sleep when there are no
- Xhuman players logged into the game. The \fBnoquit\fP option must be
- Xspecified for this to have any effect after the first player joins the
- Xgame.
- X
- X.TP 15
- X.B -robots \fInumber\fP
- XTells the server that you want \fInumber\fP robots instead of the default -
- Xnumber-of-bases/2. A value of -1 will fill the entire server with robots.
- XNote however that there will always be room for one new player, the robots
- Xwill be kicked out of the game to accomodate for new players, they will
- Xalso enter the game when there is space for them.
- X
- X.SS Prompt options (owner only)
- XIf you are the owner of a server you have successfully connected to (with
- X\fIxpilot(6)\fP), you have several special commands available, all of which
- Xapplies to the current server only:
- X.TP 15
- X.B m
- XSend a message to the players.
- X.TP 15
- X.B k
- XKick a player out of the game. Currently, this command does not stop the
- Xplayer from re-joining the game. Hopefully, however, he or she would have
- Xlearned their lesson.
- X.TP 15
- X.B l
- XLock/unlock the game. This prevents other users from joining the game.
- X.TP 15
- X.B d
- XShutdown/cancel shutdown. This command will ask for a reason and a
- Xshutdown delay (in ticks) and transmit these to the server. A timer will
- Xappear showing how much time is left before the game goes down. If you
- Xdon't specify a delay, you will be canceling an already initiated shutdown.
- X
- X.SH MAPS
- XMaps are currently implemented as plain ASCII-text files with the letters
- Xhaving special meanings. The required \fB.map\fP suffix is not allowed to
- Xexist in any other part of the name.
- X
- X.SS Format
- XThe format of the map file is as follows:
- X.RS 6
- X.TP
- X.PD 0
- X\fIx-width\fPx\fIy-width\fP (dimensions)
- X.TP
- X\fIrule-number\fP
- X.TP
- X\fImap-name\fP
- X.TP
- X\fIauthor-name\fP
- X.TP
- X\fImap-data\fP
- X.PD 1
- X.RS -6
- X
- X.SS Contents
- XThe \fIdimensions\fR are in blocks, with each character in the map-data
- Xcorresponding to one block. If the x-dimension specification is smaller
- Xthan the actual map size, the map is cut off at that x-coordinate. If it
- Xis larger, the map is padded with blanks. A similar rule applies in the
- Xy-direction.
- X
- XThe following \fIrule\fR numbers are available:
- X.RS 6
- X.TP 6
- X.B 0
- XCustom. Player killings, shield and limited visibility all enabled.
- X.TP
- X.B 1, 2
- XReserved for future expansion.
- X.TP
- X.B 3
- XRace. No player killings.
- X.TP
- X.B 4
- XDogfight. As custom but not with limited visibility.
- X.TP
- X.B 5
- XDogfight (limited). As for normal dogfight, but with limited lives. When
- Xa player gets \fBgame over\fP, he or she will not (re)enter the game until
- Xthe game declares and honors a winner. The \fBdefault mode\fP for new
- Xplayers is \fBgame over\fP.
- X.RS -6
- X.TP 0
- XThe \fImap name\fR should be no longer than 60-80 characters and may
- Xconsist of spaces. Though, a short and concise name is preferred.
- X.TP
- XThe \fIauthor name\fR shouldn't need any explanation. Please use real
- Xname, nothing more, nothing less.
- X.TP
- X\fIMap data\fR contains the geography of the world. Each character
- Xrepresents a block in the world, and unknown characters are interpreted as
- X\fBspace\fP. Avoid the use of \fBTAB\fP as the program will interpret it
- Xas one character, while the normal editor will usually do an expansion.
- X.TP
- X\fINB!\fP This implementation will not handle auto-wraparound, a player
- Xthat leaves the play-field will be destroyed. The best way to handle this
- Xis to implement a frame of filled blocks around the playing area. Also
- Xnote that you will have to comply with the maximum settings of the server,
- Xso have a look at the map.h file in the distribution.
- X
- X.SS Character descriptions
- XThe following characters (case sensitive) have special interpretations:
- X.RS 8
- X.TP 4
- X.B x
- XA filled square/block.
- X.TP
- X.B q w s a
- XFilled triangles. They are filled in these corners (same order as above):
- Xdown-right, down-left, up-left and up-right.
- X.TP
- X.B *
- XStarting position. The number of starting positions determine how many
- Xplayers the world can take.
- X.TP
- X.B F
- XFuel station. Obviously, this is a place where you can refuel.
- X.TP
- X.B + - < >
- XPositive, negative, curl anti-clockwise and curl clock-wise 'grav'
- X(gravitational source). These will push or pull your fighter, depending on
- Xthe sign of the grav (positive/negative), or in the case of the curl gravs
- X- push your fighter around as if it were in a whirlpool (try it or ask some
- Xphysicist).
- X.TP
- X.B W
- XWormhole, works much like the famous SciFi term 'teleporting'. Note that
- Xit is not possible to have only one wormhole on a map, you must have none
- Xor more than one.
- X.TP
- X.B d r f c
- XCannons. They are pointing in the following directions (same order as
- Xabove): left, up, right and down. These tend to make life difficult for a
- Xnovice player, go easy on them, will ya?
- X.TP
- X.B 0..9
- XControl posts. These are only applicable in the \fBrace mode\fP. The
- Xtrack starts at 0, and the final posts are 9 and 0, thereby completing a
- Xlap.
- X.TP
- X.B space (and every other characters)
- XBlanks.
- X
- X.SH EXAMPLE
- XThis is is an example of a small map: (The dots may be substituted by
- Xspaces)
- X.IP
- X.PD 0
- X.B 6x6
- X.IP
- X.B 0
- X.IP
- X.B Micro cosmos
- X.IP
- X.B A. N. Other Jr.
- X.IP
- X.B xxxxxx
- X.IP
- X.B xF..dx
- X.IP
- X.B x....x
- X.IP
- X.B xw.*.x
- X.IP
- X.B xxxxxx
- X.PD 1
- X.PP
- XIf this is saved to a file with a \fB.map\fP suffix, you may try it with
- Xthe command:
- X.IP
- X.B xpilots -map <filename>
- X.PP
- X
- X.SH NOTES
- XThere are even special fonts which make editing maps even simpler. They
- Xare called \fBmap-5\fP, \fBmap-7\fP and \fBmap-9\fP.
- X.TP 0
- XTo use them, you will probably have to add their directory to your
- X\fBfont-path\fP. This is usually done with the \fIxset(1)\fR command, i.e.:
- X.PP
- X.IP
- X.B xset fp+ /usr/local/lib/X11/fonts
- X.IP
- X.B xset fp rehash
- X.PP
- XTo use it with for example the \fIemacs(1)\fR editor, you will have to use
- Xa command like:
- X.IP
- X.B emacs -fn map-9 mapfile.map
- X.PP
- XRemember though, that editing text with this font is virtually impossible.
- X
- X.SH WARNINGS AND BUGS
- XSee \fIxpilot(6)\fP.
- X
- X.SH AUTHORS
- XThe \fIxpilot\fP product was developed by Bjoern Stabell and Ken Ronny
- XSchouten at the University of Tromsoe, Norway.
- X
- X.SH CREDITS
- XSee the provided CREDITS file.
- X
- X.SH FILES
- X.PD 0
- X.TP 40
- X.B /usr/local/games/lib/xpilot/maps/*.map
- XMiscellaneous maps.
- X.TP 40
- X.B /usr/local/games/lib/xpilot/log
- XLog file.
- X.TP 40
- X.B /usr/local/lib/X11/fonts/map-?.scf
- XFonts to ease map making.
- X.PD
- X
- X.SH SEE ALSO
- Xxpilot(6), xset(1), emacs(1)
- END_OF_FILE
- if test 8087 -ne `wc -c <'man6/xpilots.6'`; then
- echo shar: \"'man6/xpilots.6'\" unpacked with wrong size!
- fi
- # end of 'man6/xpilots.6'
- fi
- if test -f 'maps/cave.uue.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'maps/cave.uue.1'\"
- else
- echo shar: Extracting \"'maps/cave.uue.1'\" \(28477 characters\)
- sed "s/^X//" >'maps/cave.uue.1' <<'END_OF_FILE'
- Xbegin 644 cave.map
- XM,C`Q>#(P,0HT"E1H92!#879E"DME;B!2;VYN>2!38VAO=71E;@IX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X"G@@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@
- XM("H@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`J("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("!X"GAX>'AX>'AX>'AX>'AX>'<@("`@("`@("`@<7AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AW("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@("`@
- XM("!A>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@
- XM("`@("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>`IX>'AX>'AX>'AX
- XM>'AX>'AS("`@("`@("`@<7AX>'AX>'AX>'AX>'AS("`@("`@(&%X>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>&8@("`@("`@>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AW("`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@('%X>'AX>'AX
- XM>'AX>'AX>'AX>'@*>'AX>'AX>'AX>'AX>'AS("`@("`@("!R<7AX>'AX>'AX
- XM>'AX>'AS("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AW("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("`@
- XM("`@87AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX"GAX>'AX>'AX>'AS
- XM("`@("`@("`@('%X>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@87AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX=R`@("`@("`@("`@("!A>'AX>'@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>`IX>'AX>'AX<R`@("`@("`@("`@('%X>'AX>'AX>'AX>'AS
- XM("`@("`@("`@("`@("`@("`@("`@("!C87AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AW("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@
- XM("`@('AX>'AX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@*>'AX>'AX>&8@("`@
- XM("`@("`@("!X>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@87AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@(&%X>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'<@("`@("`@("`@("!X>'AX>'<@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX"GAX>'AX>'AX>'<@("`@("`@("`@87AX>'AX<R`@("`@("`@
- XM("`@("!X>'<@("`@("`@("`@("`@("`@("`@("`@("`@(&%X>'AX>'AX>'AX
- XM>'@@("`@("`@("`@("`@("`@87AX>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@
- XM("`@>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>`IX>'AX>'AX>'AX("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@87AX=R`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@87AX>'AX>'AX>'AX("`@("`@("`@("`@("`@("!A>'AX
- XM>'AX<R`@("!A>'AX>'@@("`@("`@("`@('AX>'AX>'AW("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@87AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'@*>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@87AX>'AX>'AX>'AX>'<@("`@("`@("`@("`@("!X>'AX>'AX>'AX
- XM>"`@("`@("`@("`@("`@("`@(&%X>'AX>"`@("`@(&%X>'AX=R`@("`@("`@
- XM("!X>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX"GAX>'AX>'AX>'AX>'AX
- XM=R`@("`@("`@("`@("`@('%X>'<@("`@("`@("!A>'AX>'AX>'AX>'AX=R`@
- XM("`@("`@("`@("!Q>'AX>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@("!A
- XM>'AW("`@("`@87AX>'AX=R`@("`@("`@>'AX>'AX>'@@("`@("`@("`@("!X
- XM>'AX>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@("`@("`@("!A>'AX>'AX
- XM>'AX>'AX>`IX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@("`@("!X>'AX=R`@
- XM("`@("`@("!A>'AX>'AX>'AX>'AW("`@("`@("`@("`@>'AX>'AX>'AX>'AX
- XM=R`@("`@("`@("`@("`@("`@("`@('AX>'<@("`@("!A>'AX>'AW("`@("`@
- XM('AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX>'AX>"`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@(&%X>'AX>'AX>'AX>'@*>'AX>'AX>'AX>'AX>'AX
- XM>"!R("`@("`@("`@('AX>'AX>'AW("`@("`@("`@(&%X>'AX>'AX>'AX>'<@
- XM("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@('%X
- XM>'AX=R`@("`@(&%X>'AX>'<@("`@("!A>'AX>'AX>'<@("`@("`@("`@('AX
- XM>'AX>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@("`@("`@("`@(&%X>'AX
- XM>'AX>'AX"GAX>',@("`@(&%X>'AX>'AX>'AW("`@("`@("!X>'AX>'AX>'<@
- XM("`@("`@("`@87AX>'AX>'AX>'AX=R`@("`@("`@(&1X>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'@@("`@("`@(&1X>'AX>'AW("`@("`@87AX>'AX=R`@("`@
- XM("!A>'AX>'AX("`@("`@("`@("!X>'AX>'AX>'AX>'AX("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@87AX>'AX>'AX>`IX>'@@("`@("`@87AX>'AX
- XM>'AX>"`@("`@("`@>'AX>'AX>'AX>'<@("`@("`@("!A>'AX>'AX>'AX>'AW
- XM("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@87AX
- XM>'AX>'<@("`@("!A>'AX>'AW("`@("`@(&%X>'AX>'<@("`@("`@("`@>'AX
- XM>'AX>'AX>'AX>"`@("`@("`@<7AX>'AX>'AX=R`@("`@("`@("`@("`@87AX
- XM>'AX>'@*>'AX("`@("`@("!A>'AX>'AX>'AW("`@("`@('AX>'AX>'AX>'AX
- XM>'<@("`@("`@<7AX>'AX>'AX>'AX>'<@("`@("`@('AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX9B`@("`@("!X>'AX>'AX("`@("`@(&%X>'AX>"`@("`@
- XM("`@87AX>'AX=R`@("`@("`@('AX>'AX>'AX>'AX>'@@("`@("`@('AX>'AX
- XM>'AX>'AW("`@("`@("`@("`@("!X>'AX>'AX"GAX>"`@("`@("`@("!A>'AX
- XM>'AX>'<@("`@("!X>'AX>'AX>'AX>'AS("`@("`@('AX>'AX>'AX>'AX>'AX
- XM=R`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@87AX
- XM>'AX>"`@("`@("`@87AX>'@@("`@("`@("`@(&%X>'@@("`@("`@("!X>'AX
- XM>'AX>'AX>'AX("`@("`@("!X>'AX>'AX>'AX>'<@("`@("`@("`@("`@>'AX
- XM>'AX>`IX>'@@("`@("`@("`@("!A>'AX>'AX("`@("!A>'AX>'AX>'AX>'AX
- XM("`@("`@('%X>'AX>'AX>'AX>'AX>'AW("`@("`@(&%X>'AX>'AX>'AX>'AX
- XM>'AX>'AS("`@("`@("`@("`@("!X>'AX>'AW("`@("`@("!X>'AS("`@("`@
- XM("`@("`@87AX=R`@("`@("`@>'AX>'AX>'AX>'AX>"`@("`@("`@>'AX>'AX
- XM>'AX>'AX=R`@("`@("`@("`@<7AX>'AX>'@*>'AX("`@("`@("`@("`@('AX
- XM>'AX>'<@("`@(&%X>'AX>'AX>'AX1B`@("`@("!X>'AX>'AX>'AX>'AX>'AX
- XM>&8@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@87AX
- XM>'AX>"`@("`@("`@87AS("`@("`@("`@("`@("!X>'@@("`@("`@('AX>'AX
- XM>'AX>'AX>'@@("`@("`@('AX>'AX>'AX>'AX>'AW("`@("`@("`@<7AX>'AX
- XM>'AX"GAX>"`@("`@("`@("`@("!X>'AX>'AX=R`@("`@87AX>'AX>'AX>'@@
- XM("`@("`@>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("!X>'AX>'AF("`@("`@("`@("`@("`@("`@
- XM("`@("`@>'AX("`@("`@("!X>'AX>'AX>'AX>'AX("`@("`@("!X>'AX>'AX
- XM>'AX>'AX>"`@("`@("`@('AX>'AX>'AX>`IX>'@@("`@("`@("`@("`@>'AX
- XM>'AX>'@@("`@("!A>'AX>'AX>'AS("`@("`@('AX>'AX>'AX>'AX>'AX>',@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX
- XM>'AX=R`@("`@("`@("`@("`@("`@("`@("`@<7AX>"`@("`@("`@>'AX>'AX
- XM>'AX>'AX>"`@("`@("`@>'AX>'AX>'AX>'AX>'@@("`@("`@("!X>'AX>'AX
- XM>'@*>'AX=R`@("`@("`@("`@<7AX>'AX>'AX=R`@("`@(&%X>'AX>',@("`@
- XM("`@('%X>'AX>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@('%X>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@
- XM("!Q>'AX>'@@("`@("`@('AX>'AX>'AX>'AX>'@@("`@("`@('AX>'AX>'AX
- XM>'AX>'AX("`@("`@("`@>'AX>'AX>'AX"GAX>'AW("`@("`@("`@(&%X>'AX
- XM>'AX>'AW("`@("`@87AX>',@("`@("`@("!X>'AX>'AX>'AX>'AX>',@("`@
- XM("`@("`@('%X>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@('%X>'AX>'AX
- XM>'AX("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX("`@("`@("!X>'AX>'AX
- XM>'AX>'AX("`@("`@('%X>'AX>'AX>'AX>'AX>"`@("`@("`@('AX>'AX>'AX
- XM>`IX>'AX>'<@("`@("`@("`@87AX>'AX>'AX>'<@("`@("!A<R`@("`@("`@
- XM("!Q>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX>'AX>'@@("`@("`@
- XM("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'<@("`@("`@("`@("`@("`@("!Q
- XM>'AX>'AX>"`@("`@("`@>'AX>'AX>'AX>'AX>"`@("`@("!A>'AX>'AX>'AX
- XM>'AX>'@@("`@("`@("!X>'AX>'AX>'@*>'AX>'AX=R!R("`@("`@("`@("!A
- XM>'AX>'AX=R`@("`@("`@("`@("`@(')Q>'AX>'AX>'AX>'AX>'AX("`@("`@
- XM("`@("`@>'AX>'AX>'AX=R`@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX
- XM>'AX=R`@("`@("`@("`@("`@("`@87AX>'AX>'@@("`@("`@($9X>'AX>'AX
- XM>'AX>'@@("`@("`@(&%X>'AX>'AX>'AX>'AX("`@("`@("`@>'AX>'AX>'AX
- XM"GAX>'AX>'AX>'AW("`@("`@("`@(&%X>'AX>'AW("`@("`@("`@("`@('%X
- XM>'AX>'AX>'AX>'AX>'AX1B`@("`@("`@("`@('AX>'AX>'AX>'@@("`@("`@
- XM("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@
- XM87AX>'AX9B`@("`@("!X>'AX>'AX>'AX>'AX("`@("`@("`@87AX>'AX>'AX
- XM>'AX>"`@("`@("`@('AX>'AX>'AX>`IX>'AX>'AX>'AX<R`@("`@("`@("`@
- XM>'AX>'AX>'<@("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@
- XM("`@("!X>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX
- XM>'AX>"`@("`@("`@("`@("`@("`@("!X>'AX>&8@("`@("`@>'AX>'AX>'AX
- XM>'AX>"`@("`@("`@("!X>'AX>'AX>'AX>'@@("`@("`@("!X>'AX>'AX>'@*
- XM>'AX>'AS("`@("`@("`@("`@("`@(&%X>'AX>'AX=R`@("`@("`@('%X>'AX
- XM>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX1B`@("`@("`@
- XM("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@
- XM>'AX>'AF("`@("`@('AX>'AX>'AX>'AX>'@@("`@("`@("`@>'AX>'AX>'AX
- XM>'AX("`@("`@("`@>'AX>'AX>'AX"GAX>',@("`@("`@("`@("`@("`@("`@
- XM("!A>'AX>'@@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@
- XM("`@('AX>'AX>'AX>'@@("`@("`@("!Q=R`@("`@("`@>'AX>'AX>'AX>'AX
- XM>'AX>'<@("`@("`@("`@("`@("`@('AX>'AX9B`@("`@("!X>'AX>'AX>'AX
- XM>'AX("`@("`@("`@('AX>'AX>'AX>'AX>"`@("`@("`@('AX>'AX>'AX>`IX
- XM>'AW("`@("`@("`@("!Q>'AW("`@("`@(&%X>'AX=R`@("`@("`@('AX>'AX
- XM>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX>'AX>'AX("`@("`@("!Q
- XM>'AW("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@("`@("`@("!X
- XM>'AX>"`@("`@("`@>'AX>'AX>'AX>'AX>"`@("`@("`@("!X>'AX>'AX>'AX
- XM>'@@("`@("`@("!X>'AX>'AX>'@*>'AX>'<@("`@("`@("!Q>'AX>'<@("`@
- XM("`@87AX>',@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@
- XM("`@>'AX>'AX>'AX<R`@("`@("`@>'AX>"`@("`@("`@87AX>'AX>'AX>'AX
- XM>'AX>'@@("`@("`@("`@("`@("`@>'AX>'@@("`@("`@('AX>'AX>'AX>'AX
- XM>'@@("`@("`@("`@>'AX>'AX>'AX>'AX("`@("`@("`@>'AX>'AX>'AX"GAX
- XM>'AX("`@("`@("!Q>'AX>'AX("`@("`@("`@("`@("`@("`@("`@(&%X>'AX
- XM>'AX>'AX>'AX>'AS("`@("`@("`@("`@('AX>'AX>'AX>"`@("`@("`@<7AX
- XM>'AW("`@("`@("!A>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@("`@('AX
- XM>'AX("`@("`@("!X>'AX>'AX>'AX>'AX("`@("`@("`@('AX>'AX>'AX>'AX
- XM>"`@("`@("`@('AX>'AX>'AX>`IX>'AX>"`@("`@("!Q>'AX>'AX>"`@("`@
- XM("`@("`@("`@("`@("`@("`@87AX>'AX>'AX>'AX>',@("`@("`@("`@("`@
- XM("!X>'AX>'AX>'AW("`@<B`@<7AX>'AX>"`@("`@("`@(&%X>'AX>'AX>'AX
- XM>'AX>"`@("`@("`@("`@("`@("!X>'AX>"`@("`@("`@>'AX>'AX>'AX>'AX
- XM>"`@("`@("`@("!X>'AX>'AX>'AX>'@@("`@("`@("!X>'AX>'AX>'@*>'AX
- XM>'@@("`@("`@>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@("`@("`@("!A
- XM>'AX>'AX<R`@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'@@("`@("`@("`@("!X>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@>'AX
- XM>'@@("`@("`@('AX>'AX>'AX>'AX>'@@("`@("`@("`@>'AX>'AX>'AX>'AX
- XM("`@("`@("`@>'AX>'AX>'AX"GAX>'AX("`@("`@('AX>'AX>'AX=R`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@<7AX>'AX("`@("`@("!X>'AX>'AX>'AX>'AX
- XM("`@("`@("`@('AX>'AX>'AX>'AX>"`@("`@("`@('AX>'AX>'AX>`IX>'AX
- XM>"`@("`@("!X>'AX>'AX>'AX>'AX>'AX>"`@("!X>'AX>'AX>'<@("`@("`@
- XM("`@("`@("`@<7AX>'@@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX
- XM>"`@("`@("`@>'AX>'AX>'AX>'AX<R`@("`@("`@("!X>'AX>'AX>'AX>'@@
- XM("`@("`@("!X>'AX>'AX>'@*>'AX>'@@("`@("`@>'AX>'AX>'AX>'AX>'AX
- XM>'@@("`@>'AX>'AX>'AX=R`@("`@("`@("`@("`@<7AX>'AX("`@("`@>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@<7AX>'AX>'AX>'@@("`@("`@('AX>'AX>'AX>'AX<R`@
- XM("`@("`@("`@>'AX>'AX>'AX>'AX("`@("`@("`@>'AX>'AX>'AX"GAX>'AX
- XM=R`@("`@('AX>'AX>'AX>'AX>'AX>'AX("`@('AX>'AX>'AX>'AW("`@("`@
- XM("`@("`@<7AX>'AX>"`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX
- XM("`@("`@("!X>'AX>'AX>'AX>"`@("`@("`@("`@<7AX>'AX>'AX>'AX>"`@
- XM("`@("`@('AX>'AX>'AX>`IX>'AX>'AX=R`@("!A>'AX>'AX>'AX>'AX>'AX
- XM>"`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('AX>'AX>'AX>'AX>"`@("`@("`@>'AX>'AX>'AX>'@@("`@
- XM("`@("`@<7AX>'AX>'AX>'AX>'@@("`@("`@("!X>'AX>'AX>'@*>'AX>'AX
- XM>'@@("`@("`@>'AX>'AX>'AX>'AX>'@@("`@>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>',@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX>'@@
- XM("`@("`@('AX>'AX>'AX>'AX("`@("`@("`@<7AX>'AX>'AX>'AX>'AS("`@
- XM("`@("`@>'AX>'AX>'AX"GAX>'AX>'AX("`@("`@('AX>'AX>'AX>'AX>'AX
- XM("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("!X>'AX
- XM>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX
- XM=R`@("`@("`@>'AX>'AX>'AX>'AX("`@("`@("!X>'AX>'AX>'AX<R`@("`@
- XM("`@(&%X>'AX>'AX>'AX>'AS("`@("`@("`@('AX>'AX>'AX>`IX>'AX>'AX
- XM>"`@("`@("!X>'AX>'AX>$9X>'AX>"`@("!X>'AX1GAX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX("`@("`@("`@87AX>'AX>'AX>',@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@87AX>'AX>'AX>'AW("`@("`@('AX>'AX>'AX>'AX>"`@
- XM("`@("`@>'AX>'AX>'AX<R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("!X>'AX>'AX>'@*>'AX>'AX>'@@("`@("`@>'AX>'AX<R`@("`@("`@
- XM("`@("`@("`@87AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!A>'AX>'AX>'AX
- XM>'<@("`@("!X>'AX>'AX>'AX>'@@("`@("`@('AX>'AX>'AX<R`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>'AX>'AX>'AX"GAX>'AX>'AX
- XM("`@("`@('AX>'AX>&8@("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AF("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@('AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX("`@
- XM("`@("!X>'AX>'AX<R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@('AX>'AX>'AX>`IX>'AX>'AX>"`@("`@("!X>'AX>'AW("`@("`@("`@
- XM("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX
- XM>"`@("`@('AX>'AX>'AX>'AX>"`@("`@("`@>'AX>'AX>"`@("`@("`@('%X
- XM>'AW("`@("`@("`@("`@("`@("`@("`@("!X>'AX>'AX>'@*>'AX>'AX>'AW
- XM("`@("`@87AX>'AX>'AW("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX
- XM>'AX>'AS("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("!Q>'AX>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX>'@@("`@
- XM("`@(&%X>'AX>'@@("`@("`@("!X>'AX>'<@("`@("`@("`@("`@("`@("`@
- XM("!Q>'AX>'AX>'AX"GAX>'AX>'AX>'<@("`@("!X>'AX>'AX>'<@("`@("`@
- XM("`@("!R("!X>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("!Q>'AX
- XM>'AX>'AX=R`@("`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM("`@("`@>'AX>'AX>'AX>'AX("`@("`@("`@87AX>'AS("`@("`@("`@>'AX
- XM>'AX>'<@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX>`IX>'AX>'AX>'AX
- XM=R`@("`@87AX>'AX>'AX>'<@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AS("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@('AX>'AX>'AX>'AX>"`@("`@
- XM("`@("!A>'AS("`@("`@("`@('AX>'AX>'AX=R`@("`@("`@("`@("!A>'AX
- XM>'AX>'AX>'AX>'@*>'AX>'AX>'AX>'AW("`@("`@87AX>'AX>'AX("`@("`@
- XM("`@>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@("!Q>'AX>'AX
- XM>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@
- XM("`@("!X>'AX>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@("`@('%X>'AX
- XM>'AX>'AX=R`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX"GAX>'AX>'AX>'AX
- XM>'<@("`@("!X>'AX>'AX>"`@("`@("`@('AX>'AX>'AX>'AX>'AS("`@("`@
- XM("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>"`@("`@("`@("`@('AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@87AX>'AX>'AX>'AX("`@("`@
- XM("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AW("`@("`@("`@("`@87AX
- XM>'AX>'AX>'AX>`IX>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'@@("`@("`@
- XM("!X>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX
- XM>'AX>'@@("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@
- XM("`@("`@(&%X>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX
- XM>'AX>'AX>'AW("`@("`@("`@("!A>'AX>'AX>'AX>'@*>'AS("!A>'AX>'AX
- XM>"`@("`@('AX>'AX>'AX("`@("`@("`@>'AX>'AX>'AX>',@("`@("`@("`@
- XM("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX
- XM>'AX>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@>'AX>'AX>'@@("`@("`@
- XM("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@(&%X
- XM>'AX>'AX>'AX"GAS("`@(&%X>'AX>'AW("`@("!A>'AX>'AX>"`@("`@("`@
- XM('AX>'AX>'AX>',@("`@("`@("`@("`@("`@("`@('%X>'AX>'AX>'AX>'AX
- XM>'AX>"`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@
- XM("`@("`@(&%X>'AX>'AX=R`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX
- XM>'AX>'AX>'AW("`@("`@("`@("`@>'AX>'AX>'AX>`IX("`@("`@87AX>'AX
- XM>'<@("`@(&%X>'AX>',@("`@("`@("!A>'AX>'AX>',@("`@("`@("`@("`@
- XM("`@("`@<G%X>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@(&1X>'AX>'AX
- XM>'AX<R`@("`@("`@("`@("`@("`@("`@("`@("`@87AX>'AX>'@@("`@("`@
- XM("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("`@('AX
- XM>'AX>'AX>'@*>"`@("`@("!A>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX("`@("`@("`@("!Q>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("!A>'AX>'AX=R`@("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX=R`@("`@("`@("!X>'AX>'AX>'AX"G@@("`@("`@(&%X>'AX
- XM>'AW("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('%X>'AX>'AX>'AX
- XM>'@@("`@("`@("`@('%X>'AX>'AW("`@("`@("`@('AX>'AX>'AW("`@("`@
- XM("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@>'AX
- XM>'AX>'AX>`IX("`@("`@("`@>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS
- XM("`@("`@("`@("!X>'AX>'AX>'AX>'AX=R`@("`@("`@("!X>'AX>'AX>'<@
- XM("`@("`@("!X>'AX>'AX>'<@("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX("`@("`@("`@('AX>'AX>'AX>'@*>"`@("`@("`@(&%X>'AX
- XM>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@*B`@("!Q>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX
- XM>'AW("`@("`@("`@>'AX>'AX>'AX("`@("`@("`@>'AX>'AX>'AX>'<@("`@
- XM("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("!X>'AX
- XM>'AX>'AX"G@@("`@("`@("`@(&%X>'AX>'AX>'AW("`@("`@('%X>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@
- XM("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@('AX>'AX>'AX>'<@
- XM("`@("`@('AX>'AX>'AX>'AX=R`@("`@("`@("`@87AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'@@("`@("`@("`@>'AX>'AX>'AX>`IX("`@("`@("`@("`@>'AX
- XM>'AX>'AX>"`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX=R`@("`@("!X>'AX>'AX>'AX("`@("`@("!X>'AX>'AX>'AX>'AX=R`@
- XM("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@('AX>'AX
- XM>'AX>'@*>"`@("`@("`@("`@('AX>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@
- XM("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@>'AX>'AX>'AX>"`@
- XM("`@("`@>'AX>'AX>'AX>'AX>'AW("`@("`@("`@>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>"`@("`@("`@("!X>'AX>'AX>'AX"G@@("`@("`@("`@("!X>'AX
- XM>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AS("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>',@("`@("`@('AX>'AX>'AX>'AW("`@("`@('AX>'AX>'AX>'AX>'AX>'<@
- XM("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@>'AX>'AX
- XM>'AX>`IX("`@("`@("`@("`@>'AX>'AX>'AX>"`@("`@('AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@("`@<7AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@("!X>'AX>'AX>'AX>'<@
- XM("`@("!X>'AX>'AX>'AX>'AX>'AX=R`@("`@("!A>'AX>'AX>'AX>'AX>'AX
- XM>'AX>',@("`@("`@("`@('AX>'AX>'AX>'@*>"`@("`@("`@("`@('AX>'AX
- XM>'AX>'@@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>"`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@
- XM("`@("`@("`@>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AW
- XM("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX>'AX
- XM>'AX"G@@("`@("`@("`@("!X>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("!R<7AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@("`@('AX>'AX>'AX>'AX>"`@
- XM("`@('AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("!X>'AX>'AX>'AX>'AX>'AX
- XM>'AX("`@("`@("`@("`@>'AX>'AX>'AX>`IX("`@('AW("`@("`@87AX>'AX
- XM>'AX>"`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@
- XM("`@("`@("!X>'AX>'AX>'AX>'AW("`@("!X>'AX>'AX>'AX>'AX>'AX>'@@
- XM("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@('AX>'AX>'AX
- XM>'@*>"`@("!X>'<@("`@("!A>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("!Q>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>"`@
- XM("`@>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@('AX>'AX>'AX>'AX>'AX>'AX
- XM>'@@("`@("`@("`@("!&>'AX>'AX>'AX"G@@("`@>'AX=R`@("`@("!A>'AX
- XM>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'@@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@
- XM("`@("`@<7AX>'AX>'AX>'AX>',@("`@('AX>'AX>'AX>'AX>'AX>'AX>"`@
- XM("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX
- XM>`IX("`@('AX>'@@("`@("`@(&%X>'AX<R`@("`@(&%X>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX<R`@("`@("`@("`@("`@('AX>'AX>'AX>'AX>',@("`@
- XM("!X>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX
- XM>"`@("`@("`@("`@('AX>'AX>'AX>'@*>"`@("!X>'AX=R`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>"`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@
- XM("`@("!X>'AX>'AX>'AX>'@@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX("`@
- XM("`@('AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX>'AX>'AX
- XM"G@@("`@>'AX>'@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AS("`@("!X
- XM>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX
- XM("`@("`@("`@("`@>'AX>'AX>'AX>`IX("`@('AX>'AX=R`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX("`@("`@87AX>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@("`@
- XM("`@('AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@
- XM("!X>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@('AX>'AX>'AX>'@*
- XM>"`@("!X>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('%X
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("!A>'AX>'AX>'AX>'A&
- XM>'AX>'AX>',@("`@("`@("`@("`@("`@('%X>'AX>'AX>'AX>"`@("`@<7AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'@@
- XM("`@("`@("`@("!X>'AX>'AX>'AX"G@@("`@>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AW("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AS("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<7AX>'AX
- XM>'AX>'AX>'AX>'AX>',@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@
- XM<7AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX>`IX
- XM("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@("`@>'AX
- XM>'AX>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("!X>'AX
- XM>'AX>'AX>'AX>'AX>'AX<R`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@
- XM("`@("`@("`@('AX>'AX>'AX>'@*>"`@("!A>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AW("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX<R`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<7AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@('%X
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX>'AX>'AX"G@@
- XM("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("`@("!A>'AX
- XM>'AS("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@('AX>'AX
- XM>'AX>'AX>'AX>'AX<R`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@
- XM("`@("`@("`@>'AX>'AX>'AX>`IX("`@("`@("`@("`@87AX>'AX>'AX>'AX
- XM>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('%X>'AX=R`@("`@("`@("`@("`@("`@("`@>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@('AX>'AX>'AX>'@*>"`@
- XM("`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('%X>'AX>'AW("`@("`@
- XM("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@
- XM("`@("`@("!X>'AX>'AX>'AX"G@@("`@("`@("`@("`@("`@("!A>'AX>'AX
- XM>'AX>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@<7AX>'AX>'AX>'<@("`@("`@("`@("`@("`@(&1X>'AX>'AX>'AX
- XM>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX>`IX("`@
- XM("`@("`@("`@("`@("`@("`@("`@(&%X>'AX>'AX>'AX=R`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=R`@("`@
- XM("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@
- XM("`@("`@('AX>'AX>'AX>'@*>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@
- XM>'AX>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@("`@("`@('AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@('%X>'AX>'AX>'AX"GAX>'AX
- XM>'AX>'<@("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AW("`@("`@("`@
- XM("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@
- XM("`@("!R("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@('AX>'AX>'AX
- XM>'AX>'AX=R`@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@
- XM("`@('%X>'AX>'AX>'AX>`IX>'A&>'AX>'AX>'<@("`@("`@("`@("`@<7AX
- XM>'AX>'AX>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX<R`@("`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX>'AX>'@@("`@("`@("`@(&%X>'AX
- XM>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@('%X>'AX>'AX>'AX>'@*>"`@("`@
- XM87AX>'AX=R`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@
- XM("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@("`@
- XM("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX
- XM>'AX>'AX=R`@("`@("`@("`@87AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@
- XM("!A>'AX>'AX>'AX>'AX"G@@("`@("!A>'AX>'AW("`@("`@("`@("`@("`@
- XM("!A>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AS("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>"`@("`@('AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@("!A>'AX
- XM>'AX>'AX>'AX>'AX>'AX("`@("`@("`@(&%X>'AX>'AX>'AX>`IX("`@("`@
- XM(&%X>'AX>'<@("`@("`@("`@("`@("`@("!A>'AX>'AX>'AX>'AX>'AW("`@
- XM("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@
- XM('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX
- XM>'AX>'AX>'<@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@
- XM("!Q>'AX>'AX>'AX>'@*>"`@("`@("`@(&%X>'AX=R`@("`@("`@("`@("`@
- XM("`@(&%X>'AX>'AX>'AX>'AX<R`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX
- XM>'AX>'AS("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX=W(@("`@("`@("`@87AX
- XM>'AX>'AX>'AX>'AX>'@@("`@("!Q>'AX>'AX>'AX>'AX>'AX"GAW("`@("`@
- XM("`@87AX>'AW("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@("`@
- XM('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@('AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX=R`@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX("`@("`@87AX
- XM>'AX>'AX>'AX>'AX>`IX>'<@("`@("`@(&1X>'AX>'<@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX
- XM>',@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@(&%X
- XM>'AX>'AX>'AX>'AX<R`@("`@("!A>'AX>'AX>'AX>'AX>'@*>'AX=R`@("`@
- XM("`@87AX>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@87AX>'AX>'AS("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(&%X
- XM>'AX>'AX>'AX>'AX"GAX>'AR("`@("`@("!X>'AX>'AX>'@@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@87AX>'AX>'AX>'AX>`IX>'AX>'<@("`@
- XM("`@87AX>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!A
- XM>'AX>'AX>'AX>'@*>'AX>'AS("`@("`@("!A>'AX>'AX>'AX>'AX>'AX=R`@
- XM("`@<7AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX"GAX>'AS("`@("`@
- XM("`@('AX>'AX>'AX>'AX>'AX>'@@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'<@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`J("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('%X
- XM>'AX>'AX>'AX>`IX>'AS("`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX("`@
- XM("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@("!Q>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('%X>'AX>'AX>'AX>'@*>'AS("`@("`@("`@
- XM<7AX>'AX>'AX>'AX>'AX>'AX>"`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'<@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'@@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX<R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX
- XM>'AX>'AX>'AX"GAS("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'@@("`@
- XM('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@
- XM('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@('AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>`IX("`@("`@("`@("!X
- END_OF_FILE
- if test 28477 -ne `wc -c <'maps/cave.uue.1'`; then
- echo shar: \"'maps/cave.uue.1'\" unpacked with wrong size!
- fi
- # end of 'maps/cave.uue.1'
- fi
- if test -f 'maps/whirlpools+war.uue' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'maps/whirlpools+war.uue'\"
- else
- echo shar: Extracting \"'maps/whirlpools+war.uue'\" \(8865 characters\)
- sed "s/^X//" >'maps/whirlpools+war.uue' <<'END_OF_FILE'
- Xbegin 644 whirlpools+war.map
- XM,3$P>#4W"C0*5VAI<FQP;V]L<RP@5V%R($%N9"!7;W)M:&]L97,@+2!!;B!%
- XM>&5R8VES92!I;B!-87-O8VAI<VTN(`I"96X@4F]B8FEN<PIX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>`IX("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AS("`@("`@("`@86-S("`@(&,@("`@(&%C8W,@("`@("`@87AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>`IX("`@("`@("!A>'AX
- XM>'AX>'AX1D9X>'AX>'A&1GAX>'AX>'AS("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("!A>&-X8WAC>'AC>'AX>'AX>'AX
- XM>'AX>'AX>`IX("`@("`@("`@87AX>'AX>'AS("`@>'AX>',@("!X>'AX<R`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@9'AX>'AX>'AX>'AX>`IX("`@("`@("`@("!A8W,@
- XM("`@("`@(&%C<R`@("`@86-S("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(&1X>'AX
- XM>'AX>`IX("`@("!7("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<7AX("`@("`@
- XM("`@("`@("`@("`@("`@("`@(&1X>'AX>`IX("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('%X>'AF("`@("`@("`@("`@("`@("`@("`@("`@("!D>'AX
- XM>`IX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AF("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@(&1X>`IX9B`@("`@("`@("`@('(@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!7("`@("`@("`@
- XM("`@('%X9B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(&1X>`IX
- XM<R`@("`@("`@("`@9',@("`@("`@("`@("`@("`@9'<@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@('AX9B`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@(&1X>`IX("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@(&,@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM<7AF("`@("`@("`@("`@("`@("`@("`@("`@5R`@("`@("`@(&1X>`IX("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@>&8@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@(&1X>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>&8@
- XM("`@("`@("`@("`@("`@/B`@("`@("`@("`@("`@("`@(&1X>`IX("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@>&8@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@(&1X>`IX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@87AF("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX>'AW("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@(&%X9B`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM9'AX>"`@("!D>`IX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@('%X<GA&=R`@("`@("`@("`@("`@("`@("!A>&8@("`@
- XM("`@("`@("`@("`@("`@("`@(&1X>'AF("`@("!D>`IX>'AX>'AF("`@("`@
- XM('%X<GAW("!Q>')X=R`@("`@("`@("`@("`@("`@("`@('AX>'AX>"`@("`@
- XM("`@("`@("`@("`@("`@87AX9B`@("`@("`@("`@("`@("`@("`@9'AX<R`@
- XM("`@("`@>`IX>'AX<R`@("`@("`@('AX>'AX>'AX>'AX>"`@("`@("`@("`@
- XM("`@("`@("`@<7AX>'AS("`@("`@("`@("`@("`@("`@("`@(&%X>'AF("`@
- XM("`@("`@("`@(&1X>'AX>'AS("`@("`@("`@>`IX>'AX("`@("`@("`@>'AX
- XM>'AX>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@>'AX>'@@("`@("`@("`@
- XM("`@("`@("`@("`@("!A>'AX>&8@("`@("`@9'AX>'AX>'AX<R`@("`@("`@
- XM("`@>`IX>'AS("`@("`@("`@>'AX>'AS("`@(&%X>'AW("`@("`@("`@("`@
- XM("`@("`@>'AX>',@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@>`IX>'@@("`@("`@("`@("`@("`@
- XM("`@("!X>'AX("`@("`@("`@("`@("`@("`@>'AX<R`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>`IX>',@("`@("`@("`@("`@("`@("`@("`@87AS("`@("`@("`@("`@("`@
- XM("`@>'A&("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@>`IX<R`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@87AX>'<@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>`IX
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM(&%X>'AX9B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("!D>`IX("`@("`@("`@("`@("`@("`@("`@("!X
- XM>'AW("!Q>'AX=R`@("`@("`@("`@("!A>'AX>'<@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!A>`IX("`@
- XM("`@("`@("`@("`@("`@("!Q>'AX>'AX<G)X>'AX>'AX("`@("`@("`@("`@
- XM87AX>'@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>`IX("`@("`@("`@("`@("`@("`@("!A>'AX>'AX
- XM>'AX>'AX>'AX=R`@("`@("`@("`@(&%X>'AW("`@("`@("`@("`@("`@("`@
- XM("`@('(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX("`@("`@
- XM("`@("`@("`@("`@("!Q>'AX>'AX>&-C>'AX>'AX>"`@("`@("`@("`@("!X
- XM>'AX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@>`IX=R`@("`@("`@("`@("`@("`@>'AX>'A&>'AS("`@
- XM("!A>'AX>"`@("`@("`@("`@("!X>'AX=R`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX9B`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@(&%X>"`@("`@("`@("`@("!A>'AX
- XM9B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>`IX<R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("!A<R`@("`@("`@("`@("`@>'AX<R`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@87AX("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@8R`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@>`IX("`@("`@("`@("`@("`@("!7("`@("`@("`@("`@("`@("`@
- XM("`@("`@("!&("`@("`@("!C("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!D=R`@("`@
- XM("`@>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@8R`@("`@("`@>`IX("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@(&1X>'AX>'AX=R`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>`IX("`@("`@("`@("`@('%X>'<@('%X>'AX=R`@("`@("`@("`@(')X>'AX
- XM>'AX>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@>`IX("`@("`@("`@("`@(&%X>'AX>'AX
- XM>'AX>"`@("`@("`@("`@('AX>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX
- XM("`@("`@("`@("`@('%X>'AX>'AX>'AX<R`@("`@("`@("`@("`@(&%X>'AX
- XM>'@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@>`IX("`@("`@("`@('%X>'AS(&%X>'AX>',@
- XM("`@("`@("`@("`@("`@("`@(&%X>'AW("`@("`@("`@("`@("`@("`@("`@
- XM("`@<B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX("`@
- XM("`@("`@(&%X>',@("`@("`@("`@("`@("`@('(@("`@("`@("`@("!A>'AX
- XM("`@("`@("`@("`@("`@("`@("`@("!D>&8@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@9$9F("`@("`@("`@("`@87AX("`@("`@("`@("`@("`@("`@("`@("`@
- XM8R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX=R`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@(&,@("`@("`@("`@("`@('AX("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@>`IX9B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@(&%X("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX<R`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!&("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("!Q>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>`IX("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@('%X>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@('AX>`IX("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM9'AX>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@('AX>`IX("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('AX
- XM>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<B`@("`@
- XM("`@("`@("`@("`@("`@("`@('AX>`IX("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<7)W("`@("`@
- XM("!Q>'<@("`@("`@("`@("`@("`@("`@("`@("`@<B`@<B`@("`@(&%X>`IX
- XM("`@("`@("`@("`@("`@("`@("`@("`@('%X=R`@<7AW("`@("`@('(@("`@
- XM('(@("`@("`@('%X>'AX>'<@("`@<7AX>'AW("`@("`@("`@("`@("`@("`@
- XM("`@<7AX>'AX>'AX=R`@("!A>`IX1BI&*D8J1BI&*D8J1BI&*D8J1BI&*D8J
- XM1GAX>$9&>'AX>'AW("`@<49W("`@<49W("!Q>'AX>'AX>'AX>'AX>$9X>'AX
- XM>'AX>'<@("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'<@("`@>`IX>$9X
- XM1GA&>$9X1GA&>$9X1GA&>$9X1GA&>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- X2>'AX>'AX>'AX>'AX>$9X>`H*
- X`
- Xend
- END_OF_FILE
- if test 8865 -ne `wc -c <'maps/whirlpools+war.uue'`; then
- echo shar: \"'maps/whirlpools+war.uue'\" unpacked with wrong size!
- fi
- # end of 'maps/whirlpools+war.uue'
- fi
- if test -f 'src/update.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/update.c'\"
- else
- echo shar: Extracting \"'src/update.c'\" \(8207 characters\)
- sed "s/^X//" >'src/update.c' <<'END_OF_FILE'
- X/* $Id: update.c,v 1.11 1992/07/11 02:08:40 bjoerns Exp $
- X *
- X * This file is part of the XPilot project, written by
- X *
- X * Bjxrn Stabell (bjoerns@stud.cs.uit.no)
- X * Ken Ronny Schouten (kenrsc@stud.cs.uit.no)
- X *
- X * Copylefts are explained in the LICENSE file.
- X */
- X
- X#include "global.h"
- X#include "map.h"
- X#include "score.h"
- X#include "draw.h"
- X
- X#ifndef lint
- Xstatic char sourceid[] =
- X "@(#)$Id: update.c,v 1.11 1992/07/11 02:08:40 bjoerns Exp $";
- X#endif
- X
- X
- X
- X#define speed_limit(obj) { \
- X if (ABS((obj).velocity>SPEED_LIMIT)) { \
- X double theta = atan2((obj).vel.y, (obj).vel.x); \
- X (obj).vel.x = cos(theta)*SPEED_LIMIT; \
- X (obj).vel.y=sin(theta)*SPEED_LIMIT; \
- X } \
- X}
- X
- X#define update_object_pos(obj) { \
- X int x=(int)((obj).pos.x/BLOCK_SZ), y=(int)((obj).pos.y/BLOCK_SZ); \
- X if (x<0 || x>=World.x || y<0 || y>=World.y) { \
- X LIMIT((obj).pos.x, 0.0, BLOCK_SZ*World.x-1.0); \
- X LIMIT((obj).pos.y, 0.0, BLOCK_SZ*World.y-1.0); \
- X } else { \
- X if (!BIT((obj).status, GRAVITY)) { \
- X (obj).pos.x += (obj).vel.x += (obj).acc.x; \
- X (obj).pos.y += (obj).vel.y += (obj).acc.y; \
- X (obj).velocity = LENGTH((obj).vel.x, (obj).vel.y); \
- X } else { \
- X (obj).pos.x += (obj).vel.x += (obj).acc.x + World.gravity[x][y].x; \
- X (obj).pos.y += (obj).vel.y += (obj).acc.y + World.gravity[x][y].y; \
- X } \
- X /* speed_limit(obj); */ \
- X (obj).velocity = LENGTH((obj).vel.x, (obj).vel.y); \
- X } \
- X}
- X
- X
- X
- Xstatic char msg[MSG_LEN];
- X
- Xextern unsigned long loops;
- X
- X
- X
- X/********** **********
- X * Updating objects and the like.
- X */
- Xvoid Update_objects(void)
- X{
- X int i, j;
- X player *pl;
- X
- X
- X
- X /*
- X * Update robots.
- X */
- X Update_robots();
- X
- X /*
- X * Special items.
- X */
- X j = rand();
- X for (i=0; i<NUM_ITEMS; i++)
- X if ((j%World.items[i].chance) == 0)
- X if (World.items[i].num < World.items[i].max) {
- X World.items[i].num++;
- X Place_item(i);
- X }
- X
- X /*
- X * Let the fuel stations regenerate some fuel.
- X */
- X for(i=0; i<World.NumFuels; i++) {
- X World.fuel[i].left += STATION_REGENERATION*NumPlayers;
- X if (World.fuel[i].left > MAX_STATION_FUEL)
- X World.fuel[i].left = MAX_STATION_FUEL;
- X }
- X
- X /*
- X * Update shots.
- X */
- X for (i=0; i<NumObjs; i++) {
- X update_object_pos(*Obj[i]);
- X
- X if (Obj[i]->type == OBJ_SMART_SHOT)
- X Move_smart_shot(i);
- X }
- X
- X /*
- X * Updating cannons, maybe a little bit of fireworks too?
- X */
- X for (i=0; i<World.NumCannons; i++) {
- X if (World.cannon[i].dead_time > 0) {
- X World.cannon[i].dead_time--;
- X continue;
- X }
- X if (World.cannon[i].active) {
- X if ((rand()%20)==0)
- X Cannon_fire(i);
- X }
- X World.cannon[i].active = false;
- X }
- X
- X
- X /* * * * * *
- X *
- X * Player loop. Computes miscellaneous updates.
- X *
- X */
- X for (i=0; i<NumPlayers; i++) {
- X pl = Players[i];
- X
- X /* Limits. */
- X LIMIT(pl->power, MIN_PLAYER_POWER, MAX_PLAYER_POWER);
- X LIMIT(pl->turnspeed, MIN_PLAYER_TURNSPEED, MAX_PLAYER_TURNSPEED);
- X LIMIT(pl->turnresistance, 0.0, 1.0);
- X
- X if (pl->control_count>0)
- X pl->control_count--;
- X if (pl->fuel_count>0)
- X pl->fuel_count--;
- X
- X if (pl->count>0) {
- X pl->count--;
- X if (!BIT(pl->status, PLAYING)) {
- X pl->vel.x = (BLOCK_SZ*World.base[pl->home_base].x
- X + BLOCK_SZ/2 - pl->pos.x) / (pl->count+1);
- X pl->vel.y = (BLOCK_SZ*World.base[pl->home_base].y
- X + BLOCK_SZ/2 - pl->pos.y) / (pl->count+1);
- X goto update;
- X }
- X }
- X
- X if (pl->count == 0) {
- X pl->count = -1;
- X
- X if (!BIT(pl->status, PLAYING)) {
- X SET_BIT(pl->status, PLAYING);
- X Go_home(i);
- X }
- X if (BIT(pl->status, SELF_DESTRUCT)) {
- X sprintf(msg, "%s has comitted suicide.", pl->name);
- X Set_message(msg);
- X Kill_player(i);
- X pl->check = 0;
- X pl->round = 0;
- X pl->time = 0;
- X }
- X }
- X
- X if ((!BIT(pl->status, PLAYING)) || BIT(pl->status, GAME_OVER))
- X continue;
- X
- X#ifdef THRUST_TURN
- X if (pl->turnacc != 0.0)
- X Turn_thrust(i);
- X#endif
- X
- X /*
- X * Compute turn
- X */
- X pl->turnvel += pl->turnacc;
- X pl->turnvel *= pl->turnresistance;
- X pl->double_dir += pl->turnvel;
- X
- X if (pl->double_dir < 0)
- X pl->double_dir += RES;
- X if (pl->double_dir >= RES)
- X pl->double_dir -= RES;
- X
- X/* if (pl->double_dir < 0)
- X pl->double_dir -= RES * (((int)pl->double_dir)/RES);
- X if (pl->double_dir >= RES)
- X pl->double_dir -= RES * (((int)pl->double_dir)/RES);
- X*/
- X pl->dir = pl->double_dir;
- X pl->dir %= RES;
- X
- X
- X /*
- X * Compute energy drainage
- X */
- X if (BIT(pl->used, OBJ_SHIELD))
- X pl->fuel += ED_SHIELD;
- X
- X if (BIT(pl->used, OBJ_CLOAKING_DEVICE))
- X pl->fuel += ED_CLOAKING_DEVICE;
- X
- X#define UPDATE_RATE 100
- X
- X for (j = 0; j < NumPlayers; j++)
- X {
- X if (pl->forceVisible)
- X Players[j]->visibility[i].canSee = 1;
- X
- X if (i == j || !BIT(Players[j]->used, OBJ_CLOAKING_DEVICE))
- X pl->visibility[j].canSee = 1;
- X else
- X if (pl->updateVisibility || Players[j]->updateVisibility ||
- X rand() % UPDATE_RATE <
- X ABS(loops - pl->visibility[j].lastChange)) {
- X
- X pl->visibility[j].lastChange = loops;
- X pl->visibility[j].canSee = rand() % (pl->sensors + 1) >
- X (rand() % (Players[j]->cloaks + 1));
- X }
- X }
- X
- X if (BIT(pl->used, OBJ_REFUEL)) {
- X if ((LENGTH((pl->pos.x-World.fuel[pl->fs].pos.x),
- X (pl->pos.y-World.fuel[pl->fs].pos.y)) > 90.0)
- X || (pl->fuel > pl->max_fuel)) {
- X CLR_BIT(pl->used, OBJ_REFUEL);
- X } else
- X if (World.fuel[pl->fs].left > 5.0) {
- X World.fuel[pl->fs].left -= 5.0;
- X pl->fuel += 5.0;
- X } else {
- X pl->fuel += World.fuel[pl->fs].left;
- X World.fuel[pl->fs].left = 0.0;
- X CLR_BIT(pl->used, OBJ_REFUEL);
- X }
- X }
- X if (pl->fuel <= 0.0) {
- X pl->fuel = 0.0;
- X CLR_BIT(pl->used, OBJ_SHIELD|OBJ_CLOAKING_DEVICE);
- X CLR_BIT(pl->status, THRUSTING);
- X }
- X if (pl->fuel > MAX_PLAYER_FUEL) {
- X pl->fuel = MAX_PLAYER_FUEL;
- X CLR_BIT(pl->used, OBJ_REFUEL);
- X }
- X
- X /*
- X * Update acceleration vector etc.
- X */
- X if (BIT(pl->status, THRUSTING)) {
- X pl->acc.x = pl->power * tcos(pl->dir) / pl->mass;
- X pl->acc.y = pl->power * tsin(pl->dir) / pl->mass;
- X pl->fuel -= pl->power * 0.02; /* Decrement fuel */
- X } else {
- X pl->acc.x = pl->acc.y = 0.0;
- X }
- X
- X pl->mass = pl->emptymass + (pl->fuel*0.005);
- X
- X if (BIT(pl->status, WARPING)) {
- X int dest;
- X
- X dest = rand() % World.NumWormholes;
- X pl->pos.x = World.wormhole[dest].x * BLOCK_SZ +
- X (pl->vel.x < 0.0 ? -BLOCK_SZ : BLOCK_SZ) * 1.5;
- X pl->pos.y = World.wormhole[dest].y * BLOCK_SZ +
- X (pl->vel.y < 0.0 ? -BLOCK_SZ : BLOCK_SZ) * 1.5;
- X CLR_BIT(pl->status, WARPING);
- X }
- X
- X update:
- X if (!BIT(pl->status, PAUSE))
- X update_object_pos(*pl); /* New position */
- X
- X if (BIT(pl->status, THRUSTING))
- X Thrust(i);
- X
- X /*
- X * Updating time player has used. Only used when timing
- X */
- X if (pl->round != 0)
- X pl->time++;
- X
- X if (pl->round == 4) {
- X if ((pl->time < pl->best_run) || (pl->best_run == 0))
- X pl->best_run = pl->time;
- X Players[i]->last_lap_time = Players[i]->time
- X - Players[i]->last_lap;
- X Kill_player(i);
- X pl->round = 0;
- X pl->check = 0;
- X pl->time = 0;
- X }
- X
- X switch (pl->lock.tagged) {
- X case LOCK_PLAYER:
- X pl->lock.distance = LENGTH(pl->pos.x -
- X Players[GetInd[pl->lock.pl_id]]->pos.x,
- X pl->pos.y -
- X Players[GetInd[pl->lock.pl_id]]->pos.y);
- X pl->sensor_range = MAX(pl->fuel*ENERGY_RANGE_FACTOR,
- X VISIBILITY_DISTANCE);
- X break;
- X
- X default:
- X break;
- X }
- X
- X pl->used &= pl->have;
- X
- X pl->world.x = pl->pos.x-CENTER; /* Scroll */
- X pl->world.y = pl->pos.y-CENTER;
- X }
- X
- X for (i = 0; i < NumPlayers; i++)
- X {
- X Players[i]->updateVisibility = 0;
- X
- X if (Players[i]->forceVisible)
- X {
- X Players[i]->forceVisible--;
- X
- X if (!Players[i]->forceVisible)
- X Players[i]->updateVisibility = 1;
- X }
- X }
- X
- X /*
- X * Checking for collision, updating score etc. (see collision.c)
- X */
- X Check_collision();
- X
- X
- X /*
- X * Kill players that ought to be killed.
- X */
- X for (i=NumPlayers-1; i>=0; i--)
- X if (BIT(Players[i]->status, KILLED))
- X Kill_player(i);
- X
- X /*
- X * Kill shots that ought to be dead.
- X */
- X for (i=NumObjs-1; i>=0; i--)
- X if (--(Obj[i]->life) <= 0)
- X Delete_shot(i);
- X
- X /*
- X * Compute general game status, do we have a winner?
- X */
- X Compute_game_status();
- X}
- END_OF_FILE
- echo shar: 1 control character may be missing from \"'src/update.c'\"
- if test 8207 -ne `wc -c <'src/update.c'`; then
- echo shar: \"'src/update.c'\" unpacked with wrong size!
- fi
- # end of 'src/update.c'
- fi
- if test -f 'src/version.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/version.h'\"
- else
- echo shar: Extracting \"'src/version.h'\" \(532 characters\)
- sed "s/^X//" >'src/version.h' <<'END_OF_FILE'
- X/* $Id: version.h,v 1.11 1992/07/10 23:20:00 bjoerns Exp $
- X *
- X * This file is part of the XPilot project, written by
- X *
- X * Bjxrn Stabell (bjoerns@stud.cs.uit.no)
- X * Ken Ronny Schouten (kenrsc@stud.cs.uit.no)
- X *
- X * Copylefts are explained in the LICENSE file.
- X */
- X
- X#ifndef VERSION_H
- X#define VERSION_H
- X
- X#define MAJOR "1"
- X#define MINOR "2"
- X#define PATCHLEVEL "1"
- X
- X#define VERSION MAJOR "." MINOR " PL" PATCHLEVEL
- X#define TITLE "XPilot " VERSION
- X#define COPYRIGHT "(C) 1991-92 by Bjxrn Stabell & Ken Ronny Schouten"
- X
- X#endif
- END_OF_FILE
- echo shar: 2 control characters may be missing from \"'src/version.h'\"
- if test 532 -ne `wc -c <'src/version.h'`; then
- echo shar: \"'src/version.h'\" unpacked with wrong size!
- fi
- # end of 'src/version.h'
- fi
- echo shar: End of archive 21 \(of 24\).
- cp /dev/null ark21isdone
- 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 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 24 archives.
- echo "\nNow run 'bldmaps.sh' to build the map files"
- 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
-