home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-09-03 | 54.0 KB | 1,241 lines |
- Newsgroups: comp.sources.x
- From: jck@kimba.catt.citri.edu.au (Justin Kibell)
- Subject: v20i117: xboing - a simple blockout type game, Part10/26
- Message-ID: <1993Sep3.123254.7383@sparky.sterling.com>
- X-Md4-Signature: 72cc1dbc78a5d0111424fcedc4f14aa3
- Sender: chris@sparky.sterling.com (Chris Olson)
- Organization: Sterling Software
- Date: Fri, 3 Sep 1993 12:32:54 GMT
- Approved: chris@sterling.com
-
- Submitted-by: jck@kimba.catt.citri.edu.au (Justin Kibell)
- Posting-number: Volume 20, Issue 117
- Archive-name: xboing/part10
- Environment: X11, xpm, color
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # Contents: bitmaps/kibell.xpm init.c sounds/evillaugh.au.uue
- # Wrapped by chris@sparky on Fri Sep 3 07:14:45 1993
- PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 10 (of 26)."'
- if test -f 'bitmaps/kibell.xpm' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'bitmaps/kibell.xpm'\"
- else
- echo shar: Extracting \"'bitmaps/kibell.xpm'\" \(10951 characters\)
- sed "s/^X//" >'bitmaps/kibell.xpm' <<'END_OF_FILE'
- X/* XPM */
- Xstatic char * kibell_xpm[] = {
- X"260 40 16 1",
- X" s None c None",
- X". c #F0F0F0F0F0F0",
- X"X c #E0E0E0E0F0F0",
- X"o c #D0D0D0D0F0F0",
- X"O c #C0C0C0C0F0F0",
- X"+ c #B0B0B0B0F0F0",
- X"@ c #A0A0A0A0F0F0",
- X"# c #90909090F0F0",
- X"$ c #80808080F0F0",
- X"% c #60607070F0F0",
- X"& c #50506060F0F0",
- X"* c #40405050F0F0",
- X"= c #30304040F0F0",
- X"- c #20202020F0F0",
- X"; c #10101010F0F0",
- X": c #00000000F0F0",
- X" ... .. ... ............ ............ ... ... ",
- X" XXXXXXX XXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXX ",
- X" XXXXXXXXX XXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX ",
- X" XXXXXXXXXX XXXXXXXX XXoXXXoXXX XXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoX XoXXXoXXXoXXXoXXXoXXXoXXXoXXX oXXXoXXXo XXXoXXXoX ",
- X" ooooooooo oooooooooo ooooooooo ooooooooooooooooooooooooooooooooo ooooooooooooooooooooooooooooo oooooooooo oooooooooo ",
- X" oooooooooo oooooooooo oooooooooo oooooooooooooooooooooooooooooooooo oooooooooooooo oooooooooo oooooooooo ",
- X" OoOoOoOoOo OoOoOoOoOo oOoOoOoOoO OoOoOoOoOo OoOoOoOoO oOoOoOoOoOo oOoOoOoOoO OoOoOoOoOo ",
- X" OOOOOOOOOO OOOOOOOOOOO OOOOOOOOO OOOOOOOOO OOOOOOOO OOOOOOOOOO OOOOOOOOOO OOOOOOOOOO ",
- X" O+O+O+O+O+ O+O+O+O+O+O +O+O+O+O+O O+O+O+O+ O+O+O+O+ +O+O+O+O+O +O+O+O+O+O O+O+O+O+O+ ",
- X" ++++++++++ +++++++++++ ++++++++++ +++++++++ +++++++++ +++++++++ ++++++++++ ++++++++++ ",
- X" ++++++++++ ++++++++++++ +++++++++ +++++++++ ++++++++++ +++++++++ ++++++++++ ++++++++++ ",
- X" @+@+@+@+@+@ @+@+@+@+@+@ @@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@ ",
- X" @@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@ ",
- X" @@@@@@@@@@@ @@@@@@@@@@@@@ @@#@@@#@@ @@#@@@#@@@ #@@@#@@@#@@@ @#@@@#@@@# @#@@@#@@@# #@@@#@@@#@ ",
- X" ##@###@###@# @###@###@###@ ########## ######### ############# ########### ########## ########## ",
- X" ########################## ######### ########## ############# ############ ########## ########## ",
- X" $#$#$#$#$#$#$#$#$#$#$#$#$ #$#$#$#$# $#$#$#$#$#$#$#$#$#$#$#$#$#$ $#$#$#$#$#$#$#$#$#$#$# $#$#$#$#$# #$#$#$#$#$ ",
- X" $$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$ $$$$$$$$$$ ",
- X" $$$$$$$$$$$$$$$$$$$$$$ $%$%$%$%$% %$%$%$%$%$%$%$%$%$%$%$%$%$ %$%$%$%$%$%$%$%$%$%$%$%$% %$%$%$%$%$% $%$%$%$%$%$ ",
- X" %%%%%%%%%%%%%%%%%%%%% %%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% %%%%%%%%%% ",
- X" %%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% %%%%%%%%%% ",
- X" %%%%%%%%%%%%%%%%%%%%% %%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% %%%%%%%%%% %%%%%%%%%% ",
- X" %%&%%%%%%% %%%%&%%% %&%&%&%&%& &%&%&%&%&%&% %&%&%&%&%& &%&%&%&%&%& &%&%&%&%&% %&%&%&%&%& ",
- X" &&&&&&&&&&& &&&&&&&&& &&&&&&&&&& &&&&&&&&&&&& &&&&&&&&& &&&&&&&&&&& &&&&&&&&&& &&&&&&&&&& ",
- X" &&&&&&&&&& &&&&&&&&& &&&&&&&&&& &&&&&&&&&&&& &&&&&&&&& &&&&&&&&&& &&&&&&&&&& &&&&&&&&&& ",
- X" &&&*&&&*&&& &&*&&&*&& ********** *********** ********* *********** ********** ********** ",
- X" *********** ********* ********** *********** ********** ********** ********** ********** ",
- X" ********** ********* *=*=*=*=*= *=*=*=*=*=* *=*=*=*=*= =*=*=*=*=*= =*=*=*=*=* *=*=*=*=*= ",
- X" =*=*=*=*=*= =*=*=*=*= =========== =========== =========== =========== ========== ========== ",
- X" =========== ========= ========== ========== =========== =========== ========== ========== ",
- X" =========== ========== ========== ========== =========== ========== ========= ========= ",
- X" =========== ========= ========== =========== ============ =========== ========== === ========== === ",
- X" =========== ========== =-=-=-=-=- -=-=-=-=-=-= =-=-=-=-=-=- =-=-=-=-=-= -=-=-=-= =-=-=-=-=- -=-=-=-=-= -=-=-=-=-= =-=-=-=-=- ",
- X" ---=---=--- --=---=-- ---------- ------------------------------ ----------------------------- --------------------------- --------------------------- ",
- X"----------- ---------- ----;----- -;-------;-------;-------;---- -----;-------;-------;------- ----;-------;-------;---- ---;-------;-------;----- ",
- X"---------- ---------- ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;; ",
- X";-;;;;;;; ;;;;;;-;;;; ;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;; ",
- X" ;;;;;;;; ;;;;;;;;;;; ;:;;;:; ;;;:;; :;;;:;;;:;;; ;;:;;;:;;;:;;;:;;;: :;;;:;;;:;;;:;; ;;;:;;;:;;;:;;; ",
- X" ;:;:;:;:;: ::::: ::: ::::::: ::::::::: ::::::::: ::::::::: ",
- X" ::::::::: "};
- END_OF_FILE
- if test 10951 -ne `wc -c <'bitmaps/kibell.xpm'`; then
- echo shar: \"'bitmaps/kibell.xpm'\" unpacked with wrong size!
- fi
- # end of 'bitmaps/kibell.xpm'
- fi
- if test -f 'init.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'init.c'\"
- else
- echo shar: Extracting \"'init.c'\" \(21321 characters\)
- sed "s/^X//" >'init.c' <<'END_OF_FILE'
- X#include "copyright.h"
- X
- X/*
- X * Include file dependencies:
- X */
- X
- X#include <stdio.h>
- X#include <stdlib.h>
- X#include <stddef.h>
- X#include <sys/time.h>
- X#include <X11/Xlib.h>
- X#include <X11/Xutil.h>
- X#include <X11/Xos.h>
- X
- X#include "score.h"
- X#include "presents.h"
- X#include "special.h"
- X#include "main.h"
- X#include "version.h"
- X#include "error.h"
- X#include "mess.h"
- X#include "ball.h"
- X#include "gun.h"
- X#include "sfx.h"
- X#include "blocks.h"
- X#include "level.h"
- X#include "bonus.h"
- X#include "stage.h"
- X#include "paddle.h"
- X#include "intro.h"
- X#include "inst.h"
- X#include "highscore.h"
- X#include "keys.h"
- X#include "audio.h"
- X#include "misc.h"
- X
- X#include "init.h"
- X
- X/*
- X * Internal macro definitions:
- X */
- X
- X#define TITLE_FONT "-adobe-helvetica-bold-r-*-*-24-*-*-*-*-*-*-*"
- X#define COPY_FONT "-adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*"
- X#define TEXT_FONT "-adobe-helvetica-medium-r-*-*-18-*-*-*-*-*-*-*"
- X
- X/*
- X * Internal type declarations:
- X */
- X
- X#if NeedFunctionPrototypes
- Xstatic void ParseCommandLine(char **argv, int argc);
- Xstatic void InitialiseSettings(void);
- Xstatic int compareArgument(char *arg1, char *arg2, int minMatch);
- Xstatic void HandleDisplayErrors(char *displayName);
- Xstatic void PrintVersion(void);
- Xstatic void PrintUsage(void);
- Xstatic void PrintHelp(void);
- Xstatic void InitialiseGraphics(Display *display, Window window);
- Xstatic void InitialiseColourNames(Display *display, Colormap colormap);
- Xstatic void InitialiseFonts(Display *display);
- Xstatic void ReleaseGraphics(Display *display);
- Xstatic void ReleaseFonts(Display *display);
- Xstatic void ExitProgramNow(int value);
- Xstatic void TurnOnSynchronise(Display *display);
- X#else
- Xstatic void ExitProgramNow();
- Xstatic void ParseCommandLine();
- Xstatic void InitialiseSettings();
- Xstatic int compareArgument();
- Xstatic void HandleDisplayErrors();
- Xstatic void PrintVersion();
- Xstatic void PrintUsage();
- Xstatic void PrintHelp();
- Xstatic void InitialiseGraphics();
- Xstatic void InitialiseColourNames();
- Xstatic void InitialiseFonts();
- Xstatic void ReleaseGraphics();
- Xstatic void ReleaseFonts();
- Xstatic void TurnOnSynchronise();
- X#endif
- X
- X/*
- X * Internal variable declarations:
- X */
- X
- Xint red, tann, yellow, green, white, black, blue, purple;
- XGC gc, gcxor, gcand, gcor;
- XXFontStruct *titleFont, *copyFont, *textFont;
- XColormap colormap;
- Xstatic XVisualInfo visual_info;
- Xstatic unsigned long event_mask;
- Xstatic char *displayName = (char *) NULL;
- Xstatic int syncOn;
- Xstatic int grabPointer;
- Xint noSound;
- X
- X#if NeedFunctionPrototypes
- Xstatic void InitialiseGraphics(Display *display, Window window)
- X#else
- Xstatic void InitialiseGraphics(display, window)
- X Display *display;
- X Window window;
- X#endif
- X{
- X XGCValues gcv;
- X
- X /* Create a graphics context using copy mode */
- X gcv.function = GXcopy;
- X gcv.fill_style = FillTiled;
- X gcv.graphics_exposures = False;
- X if (!(gc = XCreateGC(display, window,
- X GCFunction | GCFillStyle | GCGraphicsExposures, &gcv)))
- X ShutDown(display, 1, "Cannot create GXcopy graphics context.");
- X
- X /* Create a graphics context using xor mode */
- X gcv.function = GXxor;
- X gcv.graphics_exposures = False;
- X if (!(gcxor = XCreateGC(display, window,
- X GCFunction | GCGraphicsExposures, &gcv)))
- X ShutDown(display, 1, "Cannot create GXxor graphics context.");
- X
- X /* Create a graphics context using and mode */
- X gcv.function = GXand;
- X gcv.graphics_exposures = False;
- X if (!(gcand = XCreateGC(display, window,
- X GCFunction | GCGraphicsExposures, &gcv)))
- X ShutDown(display, 1, "Cannot create GXand graphics context.");
- X XSetForeground(display, gcand, 0);
- X XSetBackground(display, gcand, ~0);
- X
- X /* Create a graphics context using or mode */
- X gcv.function = GXor;
- X gcv.graphics_exposures = False;
- X if (!(gcor = XCreateGC(display, window,
- X GCFunction | GCGraphicsExposures, &gcv)))
- X ShutDown(display, 1, "Cannot create GXor graphics context.");
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void InitialiseColourNames(Display *display, Colormap colormap)
- X#else
- Xstatic void InitialiseColourNames(display, colormap)
- X Display *display;
- X Colormap colormap;
- X#endif
- X{
- X /* Obtain the colour index of several colours from colourmap */
- X red = ColourNameToPixel(display, colormap, "red");
- X tann = ColourNameToPixel(display, colormap, "tan");
- X yellow = ColourNameToPixel(display, colormap, "yellow");
- X green = ColourNameToPixel(display, colormap, "green");
- X white = ColourNameToPixel(display, colormap, "white");
- X black = ColourNameToPixel(display, colormap, "black");
- X purple = ColourNameToPixel(display, colormap, "purple");
- X blue = ColourNameToPixel(display, colormap, "blue");
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void InitialiseFonts(Display *display)
- X#else
- Xstatic void InitialiseFonts(display)
- X Display *display;
- X#endif
- X{
- X /* Create all required font structures */
- X
- X /* Font used for titles */
- X if (!(titleFont = XLoadQueryFont(display, TITLE_FONT)))
- X {
- X ErrorMessage("Cannot open the title font. Using fixed.");
- X titleFont = XLoadQueryFont(display, "fixed");
- X }
- X
- X /* Very small font used for copyright message etc. */
- X if (!(copyFont = XLoadQueryFont(display, COPY_FONT)))
- X {
- X ErrorMessage("Cannot open the copyright font. Using fixed.");
- X copyFont = XLoadQueryFont(display, "fixed");
- X }
- X
- X /* Font used for general text everywhere */
- X if (!(textFont = XLoadQueryFont(display, TEXT_FONT)))
- X {
- X ErrorMessage("Cannot open the text font. Using fixed.");
- X textFont = XLoadQueryFont(display, "fixed");
- X }
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void ReleaseFonts(Display *display)
- X#else
- Xstatic void ReleaseFonts(display)
- X Display *display;
- X#endif
- X{
- X /* Free all the fonts used */
- X if (titleFont) XFreeFont(display, titleFont);
- X if (copyFont) XFreeFont(display, copyFont);
- X if (textFont) XFreeFont(display, textFont);
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void ExitProgramNow(int value)
- X#else
- Xstatic void ExitProgramNow(value)
- X int value;
- X#endif
- X{
- X /* Return to the shell with error code */
- X exit(value);
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void ReleaseGraphics(Display *display)
- X#else
- Xstatic void ReleaseGraphics(display)
- X Display *display;
- X#endif
- X{
- X /* Free the graphics contexts */
- X if (gc) XFreeGC(display, gc);
- X if (gcxor) XFreeGC(display, gcxor);
- X if (gcand) XFreeGC(display, gcand);
- X if (gcor) XFreeGC(display, gcor);
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid ShutDown(Display *display, int exit_code, char *message)
- X#else
- Xvoid ShutDown(display, exit_code, message)
- X Display *display;
- X int exit_code;
- X char *message;
- X#endif
- X{
- X /* This is the last function called when exiting */
- X
- X /* Remove the colour map */
- X if (colormap) XUninstallColormap(display, colormap);
- X
- X /* Close the audio device if available and wanted */
- X if (noSound == False)
- X FreeAudioSystem();
- X
- X FreeMisc(display); /* Free backing store pixmap*/
- X FreeKeyControl(display); /* Free key control */
- X FreeHighScore(display); /* Free high score memory */
- X FreeInstructions(display); /* Free instructions */
- X FreeBonus(display); /* Free bonus memory */
- X FreeIntroduction(display); /* Free introduction memory */
- X FreeMessageSystem(display); /* Free message system */
- X FreePaddle(display); /* Free paddle pixmaps */
- X FreeLevelInfo(display); /* Free level pixmaps */
- X FreeScoreDigits(display); /* Free digit pixmaps */
- X FreeBlockPixmaps(display); /* Free all block pixmaps */
- X FreeBall(display); /* Free the ball animation */
- X FreeBullet(display); /* Free the bullet */
- X ReleaseGraphics(display); /* Free graphics contexts */
- X ReleaseFonts(display); /* Unload fonts used */
- X
- X /* Output an error message if required */
- X if (message[0] != '\0')
- X ErrorMessage(message);
- X
- X /* Exit with the error code */
- X ExitProgramNow(exit_code);
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic int ErrorHandler(Display *display, XErrorEvent *err)
- X#else
- Xstatic int ErrorHandler(display, err)
- X Display *display;
- X XErrorEvent *err;
- X#endif
- X{
- X char msg[80];
- X char string[256];
- X
- X /* Obtain the error message from the server */
- X XGetErrorText(display, err->error_code, msg, 80);
- X sprintf(string, "Xlib Error: %s", msg);
- X
- X /* Close down the system */
- X ShutDown(display, 1, string);
- X
- X /* Not reached but makes the compiler happy */
- X return True;
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void HandleDisplayErrors(char *displayName)
- X#else
- Xstatic void HandleDisplayErrors(displayName)
- X char *displayName;
- X#endif
- X{
- X char string[256];
- X
- X /* Check if the DISPLAY variable is set and write correct message */
- X if (getenv("DISPLAY") == NULL)
- X ErrorMessage("Your X-Window system display variable is not set.");
- X else
- X {
- X sprintf(string, "Cannot connect to display called <%s>.", displayName);
- X ErrorMessage(string);
- X }
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void PrintVersion(void)
- X#else
- Xstatic void PrintVersion()
- X#endif
- X{
- X /* Print version for program to user for command line help */
- X fprintf(stdout,
- X "XBoing by Justin Kibell (jck@citri.edu.au)\n");
- X fprintf(stdout,
- X "Version %d.%d %s\n", VERSION, REVNUM + buildNum, dateString);
- X fprintf(stdout, "(c) Copyright 1993, All Rights Reserved\n");
- X
- X /* Exit now */
- X ExitProgramNow(0);
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void PrintUsage(void)
- X#else
- Xstatic void PrintUsage()
- X#endif
- X{
- X /* Print usage to user for command line help */
- X
- X fprintf(stdout, "%s%s",
- X "Usage: XBoing [-version] [-usage] [-help] [-sync] ",
- X "[-display <displayName>]\n");
- X fprintf(stdout, "%s%s\n%s\n",
- X " [-speed <1-9>] [-scores] [-keys] [-sound] [-setup]",
- X " [-nosfx]",
- X " [-pointergrab] [-maxvol <1-100>] [-startlevel <1-MAX>]");
- X
- X /* Exit now */
- X ExitProgramNow(0);
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void PrintSetup(void)
- X#else
- Xstatic void PrintSetup()
- X#endif
- X{
- X /* Print setup information about xboing */
- X char *str;
- X
- X fprintf(stdout, "xboing: Setup Information\n");
- X fprintf(stdout, " Audio: %s\n",
- X AUDIO_AVAILABLE ? "Available" : "Not available");
- X fprintf(stdout, " Version: %d.%d\n", VERSION, REVNUM + buildNum);
- X fprintf(stdout, " Compiled: %s\n", dateString);
- X
- X /* If the environment variable exists - use it */
- X if ((str = getenv("XBOING_SCORE_FILE")) != NULL)
- X fprintf(stdout, " Score File: %s\n", str);
- X else
- X fprintf(stdout, " Score File: %s\n", HIGH_SCORE_FILE);
- X
- X /* If the environment variable exists - use it */
- X if ((str = getenv("XBOING_LEVELS_DIR")) != NULL)
- X fprintf(stdout, " Level directory: %s\n", str);
- X else
- X fprintf(stdout, " Level directory: %s\n", LEVEL_INSTALL_DIR);
- X
- X fprintf(stdout, "Number of levels: %d\n", MAX_NUM_LEVELS);
- X
- X /* If the environment variable exists - use it */
- X if ((str = getenv("XBOING_SOUND_DIR")) != NULL)
- X fprintf(stdout, "Sounds directory: %s\n", str);
- X else
- X fprintf(stdout, "Sounds directory: %s\n", SOUNDS_DIR);
- X
- X /* Exit now */
- X ExitProgramNow(0);
- X}
- X
- X
- X#if NeedFunctionPrototypes
- Xstatic void PrintHelp(void)
- X#else
- Xstatic void PrintHelp()
- X#endif
- X{
- X /* Print help for program to user for command line help */
- X fprintf(stdout,
- X "XBoing by Justin Kibell (jck@citri.edu.au)\n");
- X fprintf(stdout, "Version %d.%d %s\n", VERSION, REVNUM + buildNum,
- X "(c) Copyright 1993, All Rights Reserved\n");
- X
- X fprintf(stdout, "Help: \n");
- X fprintf(stdout, "%s%s%s%s%s%s%s%s%s%s%s%s%s",
- X " -speed <n> - The game speed, 1 - 9. 9 = fast\n",
- X " -maxvol <n> - The maximum volume as percentage.\n",
- X " -startlevel <n> - The starting level for game.\n",
- X " -help - Produce this help message.\n",
- X " -sync - Turn on X synchronisation.\n",
- X " -usage - Print a brief help message.\n",
- X " -version - Print out the current version.\n",
- X " -scores - Print out the current highscores.\n",
- X " -keys - Use keys instead of mouse control.\n",
- X " -sound - Turn audio ON for game.\n",
- X " -setup - Print setup information.\n",
- X " -nosfx - Do not use special effects.\n",
- X " -grabPointer - Turn on pointer grab.\n",
- X " -display <display> - Set the display for the game.\n");
- X
- X /* Exit now */
- X ExitProgramNow(0);
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic int compareArgument(char *arg1, char *arg2, int minMatch)
- X#else
- Xstatic int compareArgument(arg1, arg2, minMatch)
- X char *arg1;
- X char *arg2;
- X int minMatch;
- X#endif
- X{
- X if ((strlen(arg1) < minMatch) || (strlen(arg2) < minMatch))
- X return 1;
- X if (strlen(arg1) > strlen(arg2))
- X return 1;
- X
- X /* Return true or false basically */
- X return (strncmp(arg1, arg2, strlen(arg1)));
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void TurnOnSynchronise(Display *display)
- X#else
- Xstatic void TurnOnSynchronise(display)
- X Display *display;
- X#endif
- X{
- X /* Turn the X synchronisation on to flush all calls each frame */
- X XSynchronize(display, True);
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void InitialiseSettings(void)
- X#else
- Xstatic void InitialiseSettings()
- X#endif
- X{
- X /* Initialise some variables */
- X syncOn = False;
- X grabPointer = False;
- X
- X /* The audio is off by default */
- X noSound = True;
- X
- X /* So the audio code will use system default */
- X SetMaximumVolume(0);
- X
- X /* Always start on level one */
- X SetStartingLevel(1);
- X SetLevelNumber(1);
- X
- X /* Not so fast */
- X SetUserSpeed(7);
- X
- X useSpecialEffects(True);
- X score = 0L;
- X}
- X
- X#if NeedFunctionPrototypes
- Xstatic void ParseCommandLine(char **argv, int argc)
- X#else
- Xstatic void ParseCommandLine(argv, argc)
- X char **argv;
- X int argc;
- X#endif
- X{
- X /* Parse the command line options */
- X int i, l;
- X char str[80];
- X
- X /* Initialise variables */
- X InitialiseSettings();
- X
- X for (i = 1; i < argc; i++)
- X {
- X if (argv[i][0] != '-')
- X {
- X PrintUsage();
- X break;
- X }
- X
- X if (!compareArgument(argv[i], "-display", 7))
- X {
- X /* Set the display name for later connection */
- X i++;
- X if (i < argc)
- X displayName = argv[i];
- X else PrintUsage();
- X
- X } else if (!compareArgument(argv[i], "-help", 4))
- X {
- X /* Print out the help information and quit */
- X PrintHelp();
- X
- X } else if (!compareArgument(argv[i], "-setup", 5))
- X {
- X /* Print out information on setup */
- X PrintSetup();
- X
- X } else if (!compareArgument(argv[i], "-sync", 4))
- X {
- X /* Turn on X protocol synchronisation */
- X syncOn = True;
- X
- X } else if (!compareArgument(argv[i], "-version", 7))
- X {
- X /* Print out the version information and quit */
- X PrintVersion();
- X
- X } else if (!compareArgument(argv[i], "-sound", 5))
- X {
- X /* Enable the sound in the game */
- X noSound = False;
- X
- X } else if (!compareArgument(argv[i], "-keys", 4))
- X {
- X /* Set the paddle control mode to use keys */
- X SetPaddleControlMode(CONTROL_KEYS);
- X
- X } else if (!compareArgument(argv[i], "-scores", 6))
- X {
- X /* List all the highscores */
- X CommandlineHighscorePrint();
- X ExitProgramNow(0);
- X
- X } else if (!compareArgument(argv[i], "-usage", 5))
- X {
- X /* Print out the usage and quit */
- X PrintUsage();
- X
- X } else if (!compareArgument(argv[i], "-nosfx", 5))
- X {
- X /* Turn off special effects then */
- X useSpecialEffects(False);
- X
- X } else if (!compareArgument(argv[i], "-pointergrab", 6))
- X {
- X /* Turn on pointer grabbing */
- X grabPointer = True;
- X
- X } else if (!compareArgument(argv[i], "-speed", 5))
- X {
- X /* Set the speed for the game */
- X i++;
- X if (i < argc)
- X {
- X /* Obtain the speed setting */
- X l = atoi(argv[i]);
- X if ((l > 0) && (l <= 9))
- X SetUserSpeed(10 - l);
- X else
- X {
- X ErrorMessage("The speed setting range is [1-9]");
- X PrintUsage();
- X }
- X } else PrintUsage();
- X
- X } else if (!compareArgument(argv[i], "-startlevel", 10))
- X {
- X /* Set the starting level */
- X i++;
- X if (i < argc)
- X {
- X /* Obtain the start level setting */
- X l = atoi(argv[i]);
- X if ((l > 0) && (l <= MAX_NUM_LEVELS))
- X SetStartingLevel(l);
- X else
- X {
- X sprintf(str, "The starting level range is [1-%d]",
- X MAX_NUM_LEVELS);
- X ErrorMessage(str);
- X PrintUsage();
- X }
- X } else PrintUsage();
- X
- X } else if (!compareArgument(argv[i], "-maxvol", 6))
- X {
- X /* Set the maximum volume to use for the game */
- X i++;
- X if (i < argc)
- X {
- X /* Obtain the maximum volume setting */
- X l = atoi(argv[i]);
- X if ((l >= 1) && (l <= 100))
- X SetMaximumVolume(l);
- X else
- X {
- X ErrorMessage("Maximum volume range is [1-100]");
- X PrintUsage();
- X }
- X } else PrintUsage();
- X
- X } else PrintUsage();
- X }
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid UnGrabPointer(Display *display)
- X#else
- Xvoid UnGrabPointer(display)
- X Display *display;
- X#endif
- X{
- X /* Ungrab the pointer */
- X if (grabPointer == True)
- X XUngrabPointer(display, CurrentTime);
- X}
- X
- X#if NeedFunctionPrototypes
- Xvoid GrabPointer(Display *display, Window window)
- X#else
- Xvoid GrabPointer(display, window)
- X Display *display;
- X Window window;
- X#endif
- X{
- X Cursor cursor;
- X XColor colour;
- X Pixmap cursorPixmap;
- X
- X /* Create a cursor with nothing inside it */
- X colour.pixel = WhitePixel(display, DefaultScreen(display));
- X XQueryColor(display,
- X DefaultColormap(display, DefaultScreen(display)), &colour);
- X cursorPixmap = XCreatePixmap(display, window, 1, 1, 1);
- X
- X cursor = XCreatePixmapCursor(display,
- X cursorPixmap, cursorPixmap, &colour, &colour, 0, 0);
- X if (cursorPixmap) XFreePixmap(display, cursorPixmap);
- X
- X if (grabPointer == True)
- X {
- X /* Grab the pointer so you cannot move the mouse out of the main
- X * window. Also set the cursor to a new cursor with no shape.
- X */
- X if (XGrabPointer(display, window, True,
- X ButtonReleaseMask | ButtonPressMask,
- X GrabModeAsync, GrabModeAsync, window,
- X cursor, CurrentTime) != GrabSuccess)
- X {
- X /* Error while grab - not too bad but let user know. */
- X ErrorMessage("Warning: Pointer grab unsuccessful.");
- X }
- X }
- X else
- X XDefineCursor(display, window, cursor);
- X}
- X
- X#if NeedFunctionPrototypes
- XDisplay *InitialiseGame(char **argv, int argc)
- X#else
- XDisplay *InitialiseGame(argv, argc)
- X char **argv;
- X int argc;
- X#endif
- X{
- X int screen_num;
- X static Display *display;
- X
- X /* Setup the default speed for game */
- X SetUserSpeed(5);
- X
- X /* Set the paddle control mode to mouse */
- X SetPaddleControlMode(CONTROL_MOUSE);
- X
- X /* Parse all command line arguments - may exit here */
- X ParseCommandLine(argv, argc);
- X
- X /* Open a display connection */
- X if (!(display = XOpenDisplay(displayName)))
- X {
- X /* Handle display connection errors */
- X HandleDisplayErrors(displayName);
- X ExitProgramNow(1);
- X }
- X
- X /* User wants synchronisation turned on so do it */
- X if (syncOn == True) TurnOnSynchronise(display);
- X
- X /* Set the error handlers to point to mine */
- X XSetErrorHandler(ErrorHandler);
- X
- X /* Seed the random number generator */
- X srand(time(NULL));
- X
- X /* Obtain the screen number for this display */
- X screen_num = XDefaultScreen(display);
- X
- X /* Make sure that we are using a colour visual */
- X if (!XMatchVisualInfo(display, screen_num,
- X DefaultDepth(display, screen_num), PseudoColor, &visual_info))
- X {
- X if (!XMatchVisualInfo(display, screen_num,
- X DefaultDepth(display, screen_num), DirectColor, &visual_info))
- X {
- X if (!XMatchVisualInfo(display, screen_num,
- X DefaultDepth(display, screen_num), TrueColor, &visual_info))
- X {
- X ErrorMessage("Sorry, your display must be colour.");
- X ExitProgramNow(1);
- X }
- X }
- X }
- X
- X /* Create our own colour map for the game to use */
- X colormap = XCreateColormap(display, RootWindow(display, screen_num),
- X visual_info.visual, AllocNone);
- X
- X
- X /* Be polite */
- X fprintf(stdout, "Please wait, initialising xboing ...\n");
- X
- X /* Initialise the audio system if possible */
- X if (noSound == False)
- X {
- X /* Try to turn audio on */
- X if (SetUpAudioSystem(display) == False)
- X {
- X /* Audio failed - let user know */
- X noSound = True;
- X ErrorMessage("Warning: Audio unavailable or not supported.");
- X }
- X }
- X
- X /* Find out some colours */
- X InitialiseColourNames(display, colormap);
- X
- X /* Create all windows */
- X CreateAllWindows(display, colormap, argv, argc);
- X
- X InitialiseGraphics(display, playWindow);
- X InitialiseFonts(display);
- X
- X SetBackgrounds(display, colormap);
- X
- X /* Initialise all pixmaps and objects and setup special screens etc. */
- X InitialiseMessageSystem(display, messWindow, colormap);
- X InitialiseBlocks(display, playWindow, colormap);
- X InitialiseBall(display, playWindow, colormap);
- X InitialiseBullet(display, playWindow, colormap);
- X InitialiseScoreDigits(display, scoreWindow, colormap);
- X InitialiseLevelInfo(display, levelWindow, colormap);
- X InitialisePaddle(display, playWindow, colormap);
- X
- X SetUpPresents(display, mainWindow, colormap);
- X SetUpKeys(display, playWindow, colormap);
- X SetUpInstructions(display, playWindow, colormap);
- X SetUpIntroduction(display, playWindow, colormap);
- X SetUpBonus(display, mainWindow, colormap);
- X SetUpHighScore(display, playWindow, colormap);
- X
- X DisplayLevelInfo(display, levelWindow, level);
- X SetLevelTimeBonus(display, timeWindow, 180);
- X DrawSpecials(display);
- X
- X event_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask |
- X ButtonReleaseMask | ExposureMask | StructureNotifyMask;
- X XSelectInput(display, mainWindow, event_mask);
- X
- X event_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask |
- X ButtonReleaseMask;
- X XSelectInput(display, playWindow, event_mask);
- X
- X /* Actually map the main window */
- X XMapWindow(display, mainWindow);
- X
- X /* Install our new colormap into the server list */
- X XInstallColormap(display, colormap);
- X
- X /* Return the new display */
- X return display;
- X}
- END_OF_FILE
- if test 21321 -ne `wc -c <'init.c'`; then
- echo shar: \"'init.c'\" unpacked with wrong size!
- fi
- # end of 'init.c'
- fi
- if test -f 'sounds/evillaugh.au.uue' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'sounds/evillaugh.au.uue'\"
- else
- echo shar: Extracting \"'sounds/evillaugh.au.uue'\" \(18655 characters\)
- sed "s/^X//" >'sounds/evillaugh.au.uue' <<'END_OF_FILE'
- Xbegin 664 evillaugh.au
- XM+G-N9 " #2N 0 'T ! #KZU]?W__/[^=5ZW??
- XM[_??9\?O[T+?6=OO77=;XU5C66OGT]]=55OOU>]KV=G_7V_WSV?3]U-KU5-C
- XM:TWWV>M77TOKU>?W7>OGV=O)4=_9W5U.[TQKW=-=5\I33?__8]WO64]CS-M)
- XM=\GG:U5;[\SKU6_?Y_?K[V=GU]WK]TEG8]U;8UGOZV=3_TQOW><_7]O9:]=C
- XM8^?/Y__(]VM=5^/-=\]C75G=U5E,RUW;6UM-9U_KR5=C3]%GV^_%3M_W5UO_
- XM7]'93$K5Z^]1X]W9:^-+0\'W7^MWS=E+5U?&W]].9^_/:W=&Y]/+2TA7Z[YC
- XMY^?7/N_-[]?76]]$65G,S&=KWTA7T5_O5\GK;U]?3<YGPN<_W?=/T]-37<MW
- XM[TS#4^_1V4WWP,M%:\[+6V?;R4953=GK9^]&3-/?/LE.QS[$4=]GV\I5V5/G
- XM=V_9=]-W;TWK2'=1R6<\=]G)SE%(VTW"75-,QW?7XU]K7=?=5T??U]]39TO'
- XM;]W?T5G)9]U(T]/K6UW-0555V\%O3<]9=V_.5\_?4^=WS4];S%5GY]E3/T^_
- XM0\Q-1?_':T;-6>_/TUE-]\WCV^M?Z]G$3O_5O4)(T?<_S5M9SDS=55G 2$!W
- XMPU'=WUE/_UM97UG&Q]](7^=9R-_;9[] 2MF_3D?,U\K?0%OWY^//4U]!S=?,
- XM9U'-_V-WYTW7Q43;1LE&2]/1UUG&4]59RTG=6]E-_]%-74W9R-="W=-GW6,Y
- XM]TNU0<UW4]_7SU5K4\U9;U/'7<[)4>==6]'%:T)C7[HXU^?5YW=3U=536TG'
- XM2T_O_T]'O^O.7U5*W??'8^]G7>.^5UM/6=O$ZT%WS\Y,V4[*RUU'1%/ S5E%
- XM1U?+VU'_T;]/TV?.2??*U5MCSCQ/_[7"36]7T]/W9TUO3[L_7TCO9[Y!0T]3
- XMS_=G2<W)UT3G7U-?O=]-TV?OR<M#WV>^8\U+ZU71[VM#[^?.6V=/4V/%TU5.
- XMV^-?V7=93\#10%]=U[[C1TQCY\Q!5>?.P4Y/6]G=_TW)SUE3NDQC25M'Q,%+
- XM/]_#WU?W6\G?655;;U7$UUU*SO]=9U-&N[G74W<^SLK13,5=U6-,0-'?3<[O
- XM6U'#:S]5Z[Q%2>>[/DC=]TK#R>=CPM-G45'G8]O'3S[,ST4^;\=OU4OOR[Y=
- XMY^O_SL[C54I(P\M&.\2WW\I!-S"YPM$^=[W7:SI(.]E?5SG=R[C*Q<?,S\G9
- XM3W?KS./G7U%;66\ZME%*+DV^OU==8[[=N#DY3V/?.TQW:\7+PD-OW[C"T]/=
- XM;UGC5W?WZ^=;2TIC:^-3455-_U]=3\OC=T].W__G]]GO65G#O,O)S<#)S5O?
- XMR^_53%E9;U-+34U10#U+3D='4UU&=^/7U<O+T^?5S+_)S,C7S,K/ZVO;V6]3
- XM255,4UU,26OW5U%;5U_K=W?W[]_5Y^?GW6=GXW?K_V]5;^_K;VO?W]G==VMO
- XMU<[9]]_=[]U7655W=UU3:V-/3%%O[VMO9U=K8V]OZV_9U]_OV]W-=_?3U]O9
- XMV>OKX]WK75MG;^MW45M1]V=74>MC2$_OW>]C9V-#24MKS=/$S]7;]U5+_W?;
- XMSN?'W]-WZV_OSM-O]V===SY,P3-'7[2Y8S4X-\A-9\VZK+I$+RI5OKZPLSPC
- XM5;JEO,LU-38],K_+N:7'NS([,C<ZQ\VUP[EW-B]1NZZPMUFRNB$H0*NHQ2\G
- XM,4\W4=^ZH*W.+3$IW^^NP;1#6SK=J*A/(%E?G\S$(3 KU2^N2JI?;SHZ16=G
- XM1V=3M,K',S?9L;.CJ40C/;6LK4TT*CXO-^OOKK+12RHU3#L^T:NJKDPO*MFE
- XMGZ\B)T^BH^,M*#1K63'&1:Y!/BPZ=[PXWT^UU=TORL.@K;Z^+,T[H\.I,#@G
- XM9S9WV;^Q9S4K,SC5P<"_S.='64#,O+2@+SDNL[&^+24R6[<^V<Z[SS,N.,&T
- XMO=%%RMO'.N?_I;ZB32DM_Y].21_++:\E3,VYK2\]+KQ5KCF\0L)+PE^YP[V?
- XM,25,NZ8]31]O-;)/1,4QKR=)*[]9JCS.,LXU=\VINY\J(KJSGS](-4FS8]$I
- XMM2BW(#@TQ].N0M4V42Y&8ZRFIA\N7Y^?WRO".*4XP#&@3[<@,4TXO$C)-F<G
- XM4S7;NJ4_)^NPGZHL6\_GN"FUV:$_QQ]-.._W_SHW=RK+*,:HKA]OO9^G[R2]
- XM,Z4Y.:VHJ%DV'[T]V\\].6<A0S=+H[(?1-N@HS@@N3:H1MFLLKDOO1^U:VO+
- XM,DQO-CY=6:8Y'SJWGZ$Z'[ MIDU1J+JN*\4@K?<_1"MKX]4L/JNL(T'WH*"P
- XM'[1!M;,OM+VLW_\I*ZPPV2Q5+L,K.R^F2R-,I**H*":Z/*6[2*JYJ3U=)[RS
- XMTRY&*;Y?+KZQ(B[1KZ.K(%])+:0J6:NVL#%"+J-WWR;"+;TN0:[+(3&YGZC_
- XM(%&_2J@OJ[3#.SM93:&U+BT_-LTQR:\M,,^LG\H@MV^ZJ">VM:T_.4$TIL)=
- XM2^\L;R]!I:LA/<"CT4,AO,-7US3=ICDQ1ZZ_O54FMC=+2..?KR"_S*^R-B2E
- XM[[75([>XZRW-3%.F1#LU)RB^MJI"'T*VH5<G'ZRVM3HHO;5K,&^YJ:FZ/"!5
- XM-*C7OKXH++JAK6<?,ZHKLSB^YS8J7:R^L,8M)SKWM+FS,"0[QJ&J*BFL4[,M
- XMRCFSOBK$M\^OM3 L0+1(R[VZ+3K1HZ1O'SC-M<E#32Z[+DFLRRW*3%LJ,^>Y
- XMW<B\*K^^OZ>I*D%9U_>O7<Q-.$K,N:JM2B8I+F>SO+DM*;Q,KJ0]T]M'2D['
- XMQ\J_-C(\MJFM."0JO+ZS1;G7*CV]Q)_(-B7_SB_;QN_;,4-"NJ'=)SL[9ZA-
- XM/$JRJ\\N2=N?JT(E7\.^*BXYIK]%1;Y"/B@HO+L[0LG'3\<S-U?!HZ2_/2A-
- XM-W?9K;>[0"5?O+5"=R5KV[P\..N[NE-G.^^SJM&J2295O%.N/T4TN+^W.R#_
- XMRN<K-CZU[]W*NL#KL+$ZQ#C*N,FRS#0X1+^Q.BXE*+[,Z[[/2=57;ZVO+4O5
- XMN;RJOCY16S)#Q[NJN^\F*43,O\-K,2]&MJ7#9SDU_[/!KL3+.R8KLZ2R/"4R
- XM/F]KQ;M)-"U LZC)TSU;N4"MN[&O]RI'LM>L+2]*2D^KV3-C+S/$TSC Q4--
- XM-SI/M[;,+TF]ND9'7\'31S.OK;/'.2^]]SS&O<LS-,*[.$D]8ZZ^-K\T7U51
- XMM+Y*Q+]ORS8\OL3-/DTU6;3'U^=(,6N[N5M".;[OUU.U]S>[5;,U2$O9S<'K
- XM2DA$;TA9O.-"R;;CU2PQY[ZKST>_VW>V4RM,V<#.PCW;,7?K=],^S:E;/S5,
- XMVZ\Y6[;=/],ZSJ[ +S-W3+KK43SO,\.ZZTMO54+$LF,TZ^>OMME*1\G=O2QC
- XMO,KG,4GKU^.X+'<DM;7!-BNZL+([9T?3K3\PT<BZKC,VX_^RORLOL,#!-RC!
- XM0[Q-+KVW4],Z,,1'YZG*4S<_W:]'.C[=I_= --O!S%,V][*ZW2XM5[C)04MG
- XMV[_7.$]-S[RX/]?GKC@]XZ_OR4PMOC?$R4;GR+[W2C_CU;LWV\:^S#_3,4+7
- XML4?$.5O1-5_G/[:[0=5G7[PX.]O#K\U._^.]7T*WT[/K0&]!P]4IR6O1OE4Y
- XMQ;_G*RQ9R:E)2C<XLL%GO#Y?JS[/,]^_0.--S;9/Q48ZUS#*M$FO8T'-Z[7%
- XM-6MWN\ XZT+_;RS/1T2K2DE%.\UCS3M+NCW..+FL1L++Q\T\7<B]NBZ^O%^\
- XM+D7W:ZTR.UW*VS5=8]>P/#S=2+]?.F]WP]6X3+I#.&M3PL-10-//54W1N;D_
- XM1>>OL3-7/Z\W.O?(6\<JR\]%P34[YS7,2\FV_\8VW<[)M;=-/2[ NJE;5SQ=
- XM2CHWO#ZRN^>W-RTX.]',Y[NUS3H[:^^MV;MWQ[XO24-GK, _,C$^VRQ9Z[.O
- XMRE]C+O_G5:A/SC_5O:VX42O%0*UG1#+11DXZ57>OST>[*=,ZW]/',[OCNULL
- XMWT[#ZZ6M*V]1YZM/3$](ORQ90\W7Y[4Z/4K;ODO+OM-52C3,QZN\0"Q RJBZ
- XM0"HRRL\]0%.VS4Q"2$2\1C=K3<"V2$K*L,+)V>>[_TZSND=*ZSE5_\^WR3Y9
- XM-#XT1LO#S<AK15U"NL7!NM7++<B\LT]#/&?1.T);KD(X1SM+M%NY2TEK3,Q/
- XM/J^[RLDO0T:E0$LTT;%O+2^][ZTRT4_W53:].&]ONLQ/8UUKI.,N_SNHNLTR
- XM/DK1S#V^2ZTW.SU%/\)'V4-/25$_O6.L_RNU4ZK -S5,H/_K*..^=S0J/;ZI
- XMQ$HYT3]"-#VZNK(U,+BYK],]RSRQP\),Q+$RLRC'(4G9ZUE*26N[2\3.Q2<R
- XMZZ^IQS7*2[%%=\.UOF<R/SM,9TNX,<X?.#<KOJ];R;RJJ[<ZRF._O>_ON:YG
- XMMRY9/B_9P2\^/B,^+;"T-B4K]["X-[;1J+A,O[^FQ+PS+ZL\ND(]/T]K/[I9
- XM*SHQI*9;.!_K.3_%6Z*PW3(\S,.S.]=)PU^N*TXZM;E;(ZI+I3LW;S^MOSG7
- XM:[)5,"G.2Z]G_T'?1D] OK,LRJI7Q6LEJ"-+O#6TT;]?4U\WVU<_V[I&R$A5
- XMN%4XX[6KI"\GGR:@+A^I/,A=,3C(MDXB[S?WKR_+NS,J:ZZJM5'*5RBB/*>I
- XM([(]-L5+MT#-21^^5S>@.S355[Z[.5^SR)\Q(J^\I[LI)J=OS3=G1[/+'[>M
- XM*V]#M++W)#J[LF,[VY\G*JZZHLLF*: S0;= J* B([K=LKH?SZ[OV2L\I*XG
- XMQ*TN6:Y"M#P?.I^YR3A"SI_$'RJOGT,Y+S^ESB=?I+]$YY\G,+5(I;PO,[5;
- XML*^^,T_('RFLO,L^(DNFM#G_LC<H2U6MGRL?,K"?JR CMJE#-VO MKP?)JVP
- XML;HL+S?+S+9.N/?)[SK+H"T?R[^?R"D?2Z[1,K=,_],O*^NJV;A59R[7O[FR
- XMU4="N,G7NNO_KC<IQKVAJ$,?-CK)5U&Q12XW5\*DQ-U"2C<RR[2^OSTJ6;:Y
- XML,DZ*%_,2K;$,4@XT;"P/SH]M\$S-+JUK3XR/L>OR#A)6TUC.F_WNJO9+=/'
- XMQJ]7)M>XP5<M):V]PE% 54O$+K6^35,U.<Z^O\Q,-M^NLE<]-$[G:[W"_\$J
- XM4ZRQ/L@X/;'34SG&1<5K-]>\R[Y13[LI+JW7N]\S/KIOP[HA,\^^OVL\,4/,
- XM2;F^QL#%5U%7N+U%X\4V4^?%KLXL*35*QLNLODL^*CK!L^=35\VZP=TXVUM/
- XM05^PM+S_+2OOS,ZYO3TP+=6PL3(S9TZXV\R^M#8V+^NJK^,M/4I51;RY34T[
- XM+LROQ<31*37OQ[6UN4-*-4F^OG<SU6-.NK<_0D QQJO9[VM(-3M.1^>MOSP]
- XM_]._7]4YV<H^O[[;U^\\T[OW3<+%0S+?8TO/3CZXN#=&5U_"SV]1R5O31]M=
- XM=\M.XV=?+U_7QL!K1C=36\.X.CO&[T_"R6-16]?*W4M"_]_?PKYC2E4UU<_?
- XM/,G&W\%//<[1_VO,R,5'Y[<^/D9WP;5#.,X_RT9+4\V\:U=K.<];.#:N4]7/
- XM6SW%PSE$[U?CQ5DSO3G54<A3:^=)[[^[4?=,1+;7O4=KZ\M..;UCOC9//??)
- XMQKM+.#+_R6M5T^_1RCM 2;_+Z^O;SZ\X/3?(R*TW,-_+R>LI_\S?QS-3M*\\
- XM64'-ZT>^Q;I9.S^RRCX[.J^O1S/?R;I&/4+=MLCC-F-C6T!$U6>XR.L_/5VZ
- XMOU/O6;['+6O#XV_C,L-=R?\_T???S%E.WTW3S6OCZ]6]R40Z3K3$55,[V>\T
- XM2T#!L\<]3N?_S#!;S\BX:_].O4QGP<+-P5\XVT_9+N?'=\A"2M7"W3LZ:U6]
- XMO#C..<C/T]'#T=M77>]KPT)+R3Z[3]G37W<^/EUCO+M$Q<S&V3Y(Y\^_4>/O
- XM.^=145]!P<](SS[.9_]76\9 ]UM=QKY;Q-EW=T3OU[=)3_=WR6\X:]NWUSM3
- XM=[X^3M,]MU5 7_?GS41+SD3/YVN^ZSUWVU'&W4??S\M7S5?%;U=OW[M/SE7?
- XM3CW34?]G04+,/=.Y.6M!7U7+M$[3__?+Q>?5Q$0\4;R]RME 44A=.,193\5;
- XMQTE .3O!R5G;O\_?0$-)P,S/QFO$,V_C6;B_7SM'.MU556_+KTC.43U3O#ZO
- XMO.=O0=W'N<X^4UOCPTM,8U-1WT3;U[\_M#%/2FO;QCM%PM7'/-]WVW=)KCCK
- XMW6>YOT=?9\D_2$5-P&^_W3]?3U]K5[C,X_<YR\K.RN-%9__!PO]'-]WO2%%C
- XMR;Q-4TQ1U4L\8UOGQ_]1S]6^4^O"7U-7S:_'0ME;X^_-RLU#:S8]14G5QO_=
- XMS%E;2.NZS&O/W5,Y45>YO3\W5]5W1JTEW3B_SM'/U;157^O?5UE/=SS!74EG
- XMNLY94U?%O4\^XSE?XUW-//]KOSW;+JA+M"Y,SKFL8\QWQ[1//#]GY\$Z8UW1
- XM;T!38\U?ZTX\35<_M"\T1ZA9JRTQ:\]=;ZZEQ\ U:V?,76M-O/==.N]/RT=$
- XM,W?CQ#^N4R>[YS>M*C+*O]M7W[\WT2\GM[RS3<]1U4A/R[;)0U'?Q+A7O27G
- XMI#RMOBM%MC-7.KC_;^<N/3NK,$*P4T3#L[VZ6]7/:V.[]R-*J<S-12,?K]L[
- XM-*TW,S7=P+W+QR^VN$['K;_9N;'OZ[FS)A^JN,_3+!\^JLTLO\](*>.LQKQ#
- XM42H[P$3*HTM;3,4YTZP](3ZNI%\V*32JH34OKZG%(S2]M,M"0BVUN^LO0[O/
- XMS#4_NK0T(\^?KSM$-C>CO#118[(F)J^JN,PQ)SO?NW?",4'.R+Q.Y[8V1["?
- XM7U$R1\XUH$<?LT-3,46L]\QC).M/NZ/C'S&KI=^RSR@KH:_$K2]=R3:G,41?
- XMRT8C.;.TJLXE2]O*LK\Z8\JIOS(TO+&XXR8^JD0P-ZNQ[R(YO3C%O^^T8RA"
- XM9]W(J&]G,SNHOZ]&.BS%M]^\W4*QRC0D*ZR?OBPN-KI&7\"U4SZW.2^KN:MO
- XM+B;!N.O.V6>TNR<RP*K/24(VO[8V0+FZ-5>RW3AO/\O W4G_R[Z]4\Y;9RXP
- XMJ<(Z13Y,MK!59[Q9+T?%SL(_*T17N[=5-$6I63$]KK?(.3]/N+JXYT$X8T-G
- XM:\>_6=5++:RE,"[5N;,_*CZUOCCKZ^NUO&\L1].\4^M'1L)/NME"1]^VOKQ%
- XM.:_$*5O9K*77+2\NS+[&PL Q*N/?M=&_P#DU..^ZN\E7,3;$OL#/O,\Z43_"
- XMM>]-.#VVJKHI4[S7.33&N+7*+T==OM/OT=U,64D_2.^[Q, ^/$*UM#EO3MG*
- XM]T1-Y^/;.G=GZT;+:T#CYT)CP=O%:S@VL+%;1D!;P]%CWSBROCS5OLA*3TO*
- XM7<KO2$QOZU5WM^?_3S3*0CN^P\?*-SAOU=&N.RQ/O,]!9SXTS^?'Q\S-65?1
- XMSDS%S$*_SF-76[R\6SXV[\[?V7=OXU$_6=/_4<^\OT3-/D:[:T!1]\+(WTDY
- XMW6=O_[MC1SQ&P;=?05%WR5M+;ZE*,TH_V;VU2S-*5UE.K\$WXUMK=\R]R48U
- XM8U/(SL3=1ST^R,^\46M3Y\6SSS+O0/>WR=-!V3XT=V?.QL%5/?=1[]'!2S;%
- XM2/^Z1,GOU?=O_T#_QF=G6=])0\='T[S;2,Y.2&?1_\A5=TQ5X^/$4U7/Q6<[
- XM1LW-9U5)3F_(SUM1[]5)7[W-;SY7PM],0TW/V;MG]U>\[T1K7VM"T]/&R4'=
- XM:^_?8\R^:TW+0CS?Z^?;54._4<Y'/<S1R4U=T3!9P5LWPLU*U5UGQ<=*-?_?
- XMZ\G=755#0G>]LN](1M?$ZUE/UT7%V4[76^/9_^M9:__K44A-S,O'/4(^Y[_!
- XM7TO,U<@^/?_KRL1!54K!P3X_P+O;4T!!R\7'0SS+1U]$P<F]W4<]7]M?R,^Z
- XM4UE18\QGUT;,N4Y78]W;3W=31K)K54UK;T?+06],S,E'WU-*P-O_1$[.QC=-
- XMO.=1P34^N\Z].,_55<M;8\==XTG9W\_OX\M51E/?O]59=S_,/3[*V<OKWU-9
- XM5\Y30V//OEW_2=W*4V/7S<;+.^_C455-SDK3U5-;TTW?;V-=7:PV0&MWSTW3
- XMS^?O=UO&0V-?7;M-X]/-RS[K55-W[^?_5\[1UV]34]U99\SO9TY3;U7_3/?(
- XMTUU52_?C3&/(9V_W2D7(O,_O2UWW9]O=65EK[^O.45'*T\U14\_,5T;/8W??
- XM:V?_8]WC2=]%Z\M-;\)'3&--U\A=9U7507?/Z\Y,V>-?8V_5QTX^Q'?G9UE$
- XMU]U5P45$2O_/6\==_\M%7\_-9\M5157&S,;?0TACQ_]OVU7W2\_W548_T\UG
- XM3M'.QTI+=UG7=\=1VT-+[V?+Z__OU4-?S4O;:[M9:V]33-M;S[K.XTKOV]''
- XM6TU33\QO=U5;0\]G_T;7V\3_1%%+X\91/L9CWV-WZV?'7\CG2MWOS;]7YV]K
- XM3UO%35M7W=M)6U%1WU79X]WK0-O!U\[=7VOG_\'58TOG=T-)T\+%5SKGU]_K
- XM-3]?Y]/70__KT]W91N=WZ\.\RD-19__9S^/)T5\]-DA-:^-W_\UW8_]OQ\'_
- XMZ]G31UE;U_]30U?-WV/1-SS13=7KR<3&_S="RV_+=W=?7>/;.6?"T=^S/4A;
- XM0,_.V<E9XU%%3-'W_S^]1O=&:^.[M[]GSE_+]TH_[\S364%.3-7W2V_;W]WG
- XM+C:G5<BN)2NLK\E;/+S_/D)-Q[3#6TM=P,]3=]7(RE].3.M944]/Z_]/]]<_
- XM5[8]O44E1I^S/-M7+-.L/$>\JT\U2?_37<1C/CS'Z]^[6TA7-L=GM\MC->--
- XM2FO3LULM)J"MX_\Z.4"[JU$]KJI#+/_3RK?5+UMKVT,\+[S+/D5O/$?K-U>W
- XM4<Q*N5\HK9_+3UO;.[VGN"TLJZDQ-;E*)ZVI)C[&2#)!L+U?7S] []E,2;IW
- XM]]VP-".\G]$F9[[O3+OW4<JXR%TQL^M.,*9G,4$TQ,??Q3 TW;-7+DVL6R=K
- XMJ:DT(D*HJ4PO5T5GL<HZ4:FJ*Q]GJ[Q$3S]$1<B_S..V7S ^J:YC/#3;3;ZO
- XM-]T^+#FOI; @)S3%S;^G[ROC2$K7O:;O*2R\/]FR2\9.U\9-S-]G,U>YQN/G
- XM+K"I)"ZLP+W?3CT^9[.O9TC+.F,]0DRLM?\^)SM(V[6_O<(N.%6[9]7(T^,U
- XMP;R_;]TW-JG,-;*]U[#3*BEGK:3;,2>WS3_)Q5$YT<@[6].WOTT\3<C,T4-C
- XMOKLT0\S*Q$Y/2M&V_SM7MCTYO*W -SU$V>M&/>O,O<[=/#U+,W>RQ=-W/TC#
- XMOL/%]U5/W_=OT4_O3E'_[TE"LK=)+UW/S&L^0-6ZL.,Y.4'WV;[5P>M?43G,
- XMK>\[[U.Z8S4SOK4_9]U3RO?)VV_#OU4U6TK.]]O(9W=(WU]OVU/GNT%'7]FW
- XMRTE91U7,UV/)ZSE/=\?*3]W_8T1CR]/?XV<]76O,[]?,/5=CS+W(1TX^8[>T
- XM/E7(YT1"2[Z]N&]"25OKS]_'8TUC24Y1Z]?*WU=)3\=7_VOWPO=;5V=/U_]7
- XMWW?O[^M)56-OZ\M;:]-//^>[T6--3]_?]V-.Y[U17=V_3V=,SNO?S%EK7_?K
- XM3]7+W^<_4>].X]OWRE=%]^-1S^\X/]/!;TM-1%-55<O%S&OW=]5/U]-CQ+[3
- XM6TO1O]U#/TW,[__/6VMC:T-"W5%=Q<#+24(\R<]%[__+R6]?0=WCV=7=R$;C
- XM.$2UXT5)4^=;3^^]QC]734/=O=-$]^O_5=&[1F?GZ]O;RUU-3E?=W7?K6>M!
- XM2,G?ON-);_?1QK@_6V<_P]OW;UWO.TG=4]G-YTA*V?_WXUE(;]7_R-MOZUGG
- XMWV]CX]579W?C8TC)YUMWUTW746MW[]?CW5UW_TIKQ\EW2,S*2$7_S5WW54UK
- XM=\['449C6^?=S^M;ZW?13D]?3]7%SL_K[]MG73[76]_)5]T_7^-.UV/7RO]G
- XM6]_O3^/?Q%E!V>_CPTU73\M90=M-]\OK43W3;UOG2-&Z64P_YW?3SN-W:S]O
- XM;\O/5U?WR=?O45%?SN]/[]-K4^OW:\I9V4]K6>O1RV/?24KCW=--;]?_7495
- XM46?-35%O=[Y32E/'S/=+6=7*X_=,V?=/3-W=S]-G3E_*5=GO=\-754?5V573
- XM7>OC7UOCXW=O=TW/T4G574I?SG=-_^?73?=?5\C,TUM7]]%K3,OK3==-/\]O
- XMS%-3W>_5]UW+X]M$;]O=WU?5[TE?7\S12%E?V5-3S/]O:]'5;^/GZU%.]\K5
- XM;TO_R$9WZ]?9W^M%9T[_6?=W9]]K37=55]E?WU&^VT/55]7=7<K;[]%CS5E)
- XMYU'3ZTW;:\]53^--6U/GTT_3SN?576-W9__7VV=W3E'K;U];S<U/8U5KRW=K
- XMV6MWX_]+7[W/YU5+WU]KU]UC4]MG_^M(W]G.W4IK]^M3Y]E=9VMG9TKCS5O?
- XM44_/66O74U'O7V/,Y^-=ZV=5Y^O9V5=?=UUKYW?33.]WW=M57_?+6^OK5V]=
- XMR^MG[U??3E/=T>__ZUM1U]G1V>M98^?37]=G:U5CRE%?2V_/_U_KW\GW25U;
- XM[^OG=UU72F/CS]WK8V-;5^M.:^?-W4YC37?=W6_3S=MO[]WGRN-C7^_WWV-7
- XM8U'O;T]56<_=U4SW3%?=:TG?Z___9W=CV^_CTT]O[]/-Z]?C9W=WSVMKYVOW
- XM6?]C5>-?7^/O[TM3W]W_=_]?[^O3XV]G=^=54??.S]%+9^/=U5U%5^/?VTM+
- XMWV_CT5]O4W?GQ<W76V=97=__[]=G4T5.4VMGX]_=[__?:]_(WW=;ZW=756OC
- XM65%3_^?=]^M(TTWW]]W5S\Y.1FM7;]EO:UWWUUU7S]ECR=4\64S?Y^MWZ\3;
- XM.UM.P\Y73L]C[UECW\[!;^];S<]W6U/7V=-=7UGWZU%;:]_;[T US,!.O4$R
- XMS;9GPUW,SDL_3./#ZUU$_^?#7U-.Y\RQ,UU&MFN^0D-(T4_!S]N[VU=*,3NM
- XMKDI12C<[Q=/_PK7*/3Y,ZV?7R4Q'55%,P]79WS)/V[VZW4A7OT-$.KZVN3U7
- XM=R[/S<)9R+Q7,TVVP$_CXT5;4T-+O;G!VT!/RE=KT=%19SX_UV,^/\F\/%F[
- XMMDI)-MNNKJDL'TBGN%.YNSQ,OBPRQ+=5.4/12EUK7]N^73]GT]/KN[0Z3;/?
- XM,M^_US[5R4,GUY^Z2/\D*+2MQ$K*22[GSN_KN%5(]SQ"L*]50,BQ."M"M[2\
- XM.3L].[S*8V>_M?\?)Y^?/]DV(&.FKU'/N.\I+[ZJN:XN)R[9MN>]MCA!7<?
- XM5W<^74Y/N<=+1,#$+"JOGTPR52(HHJIG/KNX+C?+O4"PIS8L/CM;I<DS3\99
- XMVT_!=TG.5TY1R\[$XTHF5Y^D2#$L*L:?L4#/R30JY\C)QZG1)#!#2;JMXST]
- XMQC;CLZK!72LI/;JFKE4H/E5CP:RU/3XN2,:ML:U13#%#WU_"N=E3*"3?NZ^Q
- XM3SCWWUOWS\0\/\[(S4%G,U>PKDT?:ZFNJ;HC*"ZSI;Y%U]D_4=%WQ;3#-3%9
- XM7]&]PF]G8_]//;^WUS]&5>/WU\\Z3KA=/O=*35>[T5E=QK]"*[^K/45WSG?O
- XM/C5)S\V_[]W=SL35]]]C0/=?;\W;T^-;67=/4]U+2L!;1DM&OK_%5SM$R[^[
- XM8U,X2,W)R&O/3%%,8\C-V3]19\C=7V]=P$=(6?_'O>]72T]OU]/5]]M934J_
- XMV_];4U]/Y_]OT_=5=^]C[VOCX\[7557WRT[54]_O:U%*T]]53??KQMU&2$G_
- XMS7=15>O(T5=+UW=,XU7GSO]W65/)R-UWS^=;;]/=5<S?35%C]U7=W]'73E%G
- XM55_,Y^?-8UUK3]?G5TCWR]]*3DY)W4WCQ-G#6UWO;]W=_U71_^MC6[W)33U(
- XM]]_7SLW?SN-$2'?7;__7]TU-5TOG55/.T\O=_U-1R]/CW]-K[]\Z]\Y,4T[_
- XM]T]K4=O;;]M?:^=CYV_#R\KOY^M7[^?3S-W-=U%#W]__UUWK1E%9:]OG/U%G
- XM[VO-V4U92</17]OGRUM3;T]WU]?_ZUG9ZU__1&?;S<7=ZTY1:]G32NO_[UU=
- XMXV-C[]M?7<U99U%1[U_7V=M?:_];S^/&]T_/W5D^2F?*]U5O9\];ZV]OS%E7
- XM;^?/9TW_Y_=-SU/K9\S;2.OKZTY-66_WR<QC]U??74K73\C5U^]CW5UG=]G)
- XM1%G;SM5*=S_1:]M=3VO.YU%/S__CV5M%PMG=2V?(ZV-=65M"_\[!]TM;4__9
- XMS-E=__=W1^O?]W?_TVO9U5W_W\M-[UG/S4I-V>MCT=]?YUU924UG[]-;YT=;
- XMR5=WR,3;2U?_SF_7:^]?9TS7]VO.]V]1W^_;ZU71W5M-S>?W6W=;64KCW6_=
- XM7]=C7\]OQN-3]V/17]EC]UWW;T[;RV-?S6]OUU=W8U==WU_W;^=W3]]=TU%3
- XMSM'O:TO/9VO9;\U=4U=GS6=7:_?C:^O96U/9Q_?G7W=W76/7SEM95=5W35O/
- XM=U7G3M]176]9Z^/WSD]7[TSG=_=CY\9=6^/5V]UGS^]9Y]_9;]]*:]U-_]?G
- XM:T+=34WW]^M7=\OK:]WK7]WW:V]K=V-C8^=G[]O58U?KZ^_9Z^OW9V=?3E_+
- XMS-U=66=7;U_)WV?G_T[C6]?,Y]U+9_]W8_?955UK7U=?9]EKV>M?]^]KVUU.
- XM]]WWV^MK_VMO3&_/T<Y.2UU3W=EW_VM/XW?K8V?KW=O_77?KZ]/G=]MC5U==
- XMX]_;:V-;:^_=U]OK_UMG_U%WW>/C7>-W;VM1U=7K:]WK_UUG_V]OY_=K7U-G
- XMZ^O9;V?_]^/_4UO7Z_]C;UU-[]EKW\_7YV_O[^O7ZU]O8UEK:^=GZ]5=6U?K
- XM8]UC_U]/=_]=8_==[V/_;^?G=\WK7V_=T]GOY^/OZ]UG;_]78VM9_W==YUO?
- XMYW=?6>__Y]U?6UGC8^]?[]G=]U5=W]?'XT]?[^O_4VM;W]EK3EMCY^O_;V=?
- XM8]?=T6MO;UUW[VOCYVM-3U=?U=MWZ^O___?9W]?C9VO_47?_U]UC65M;8VO?
- XM;U]98VOCWV_G=U?K;U/7X^MG7__;=_?W_^O)6U];Z]MO:]O=RT5.3M77WTIC
- XM5^-O7_?GW>MW=V/3V_=98]W5WU]G9V-W9VOCZ^]G0V^^5=_K0D?$W>OO9]UG
- XM1DU3SNMC;UU/U<W95U-/Q5_9[^?G[\<_6V]79\=7W;Q/249-NJM&.SI*][['
- XM3MG.XT=.Y]_K4VM.9^OC4<O5W=M"1=W1QF=*1=UK6U%KQ]/5/L\^T<S-7>//
- XM8TY.RL7O_VM+45];SLYG4?]W8\K75=FX.D'CQ;WK5RPWS<'?P+'O-2]/P+JO
- XMLR\LW\7_O;#C-$]70N.XQG<_745&;\COS=%G3E=)SLW#R,[3/C-(O[C3ST L
- XM+LZIIMLR(B3"J*K$QCLH1LVXN;C,,C9 7[^OR$A)O/\]0\^_SC@X3T/$NST_
- XM2V_35]>JL#%#U4S3LMDL/\&IN3$N-C>^J[K7-RPO1KFOLK\_,4-GV\*WRD],
- XM74J\K]LP-L[O/^?*7<A**B^NI\,[+D;,S+7)-#PS.JB?+BDP,U^LI[D_+C\[
- XM5[>JO&,X)BS#HJW"-RXPOZV_NT]+/4 M2*RKV2X]+S.^J;QC.^]!.E6YM*_,
- XM,R\LRZVRV<%"/#T^O<G(4T ^R-G7Q$/%9^?1S4?;U5]CV[K=0"Y3Q^/K/CQ9
- XM;TN]N+Q/7SDPOJJP+"C+R:^J0C OYZJV/4[?/TW7O%G T5$P.N//N[K55=U3
- XM2%O1Q7= .D[50G?50CS77=W;]^-'V;FVON].62Y"L'<Z0\S'S.M'URO?Q+#9
- XMU48O/G>VSTA55VO/R\376573R^]O13W9SV-91T]WS\MW35U5Q-/=4T-7RL;+
- XMV=MO9UG/T=M=6UO7SEU/,F-/5W=?/E'O8\WC;V/GQ=/3U5=&W]W7T>OK:V?O
- XMZ]7=7?_/[TM*8V?.TUUO5=%G:]O;W^]C8]??64Y/Z^/C34M#_]/7;TI-W<C5
- XM:UU;3EUK=\?C[VMOW\_9V^_9T6?W=VOGU_==9^].2./.T=E?56_KS\U3__]G
- XM:TY35U-=55757U];76OK9\S?R>M?]W=?8V_W]\]OXUW1S5M-2M%G=]'W]^OO
- XM55=OV]GGU]]135M7V>M;8UE;Z^_O8]G=[__K]]O1_T_?2TEG:^=?6TU?]^/C
- XMT>-W3-]CV\[1V^M?6>MW5]W=W>??545/Y]'=WV-72.?3T5-1_^?_=]GW;U77
- XM[TS?[]'9]VM.:]WGZ^]19^MC_]];:]O;T>M55U5CSN_KUU5W6^_C]]'K8U=W
- XM;V=W9\UO:V?K76_OY]=7XV=?X^OG645W_]=;Y_?=7VO97>-K76O756=7V>??
- XM7W=C8]O=W4]=;W?W=W=;=]_-[_];3>=-X__9V]G_;_=?=W=CS%%9W]_'76-+
- XM7]OC]UEW]V-7Y]]CSM?_2^/1[UEO=]UO:^_C2%M=W]?O;U]39^?1]_]WU5EG
- XM_UMK8W?C;^M7[_?.555CX\_O6^OG:^?1Y]]97=E)=^_;W5-;1M5=7=O5W5]-
- XM6^MKT^-?ZUE7W]]1P_=59V_CU]WWZ]=G3>]WWV_C76M39^OC;]?;ZV?K;^/C
- XM6W=39^OKYV=O]W=K6\WK7>MO9^]G[_?C=U___UEOT6]?6\[?4>_;=UU;W^]/
- XM5]-G8UWOZ]-9[_=C]^_KUU-9V=G+7=MW7UWCZ\]G_UEW_W=76^=W7UM9WTY;
- XM7^=K:]_5;UUG[^/?]V/!XUEO:]GKY^?K:V_C[__;9U-K67?7]^-1]V=5X^_C
- XM7U7?;U?9V5%WY]OWZW?_[__?]U_KX^M=9U]WY]UW]U]5;_=W8^?;:U]C;^=K
- XM_W=WZW=WWT]GSN-G9VMO8UUWT5=W[W=3]_?C;__;XUWG=^?K5UWK5V?WWW=C
- XM[U%?V=G365-98U5=Z^OO7V_-:_?W[W?W[]E=:W?._U__U5]97>??]V_C65=W
- XM]]W__]E94VO57^OGW>]?W>OK3UGGW57W[_=K4]]W65_?V6]=9^__8^_C:__;
- XMYV-?Y]5;6^M=35_?[T[=S=?=Z_?;Z]G;_UM;:^OK9UWGZU=;;UEG:^]O75_W
- XM=TMW=_]C9^]C=VO-V5W_U]/?9]G?_V_GWUUK=V]W7V/C5V-W=^OK9_]K;^?7
- XM8UW_YV-;Y^MW]VOK:VOGT_]WZV_K7V]W6V?_=U]19V_G]W?_8V?KW=W_ZV-O
- XMYV-G_V]?3U]K9]G7X]_CX]_=V=?=]_]KY__W_V/K8U5O=UMC9UU/56=W6V-O
- XM75]9W=MGZ]_CV^_CU>]KZV]?YV]5_W??WW?;U]%=6^OC]_=755OO[VMC6?]K
- XM=W=WW]__=U_OV]UW_V?_[V]GZ^/W_TU=SFMKYUM.X]OW_U?C]VM?=V-W[^?W
- XM9V_=ZV]K;^O=;]UG=UWG16/1S&?W3U'3U__O9V_#W49)66O,U4Y9;]EK6^-O
- XM=V?_8U___U]OY]?5VU5O_]GO3DW_T]W_3V?_W5EW7W=O:^OOV^-=2F/CQ]W?
- XMV]'9/D;,QLS'2S5GR<#?SE4R04W!P,L[.$7=X]6ZNUTV-4S"MZ_,1TQ52\VT
- XMN%E!2DQ)56?CT7<[.4W)UU_/O<O_3TE!6:Y906>^PSXNS:J_*"GGJK),4>L]
- XM2>^TN^-$+E'*QL?!N$DY/O_&NM-+255)36_'QE<\.5EKW;GCY]%(+C/&IJ]
- XM6<4\,T6YN\]/R[E-,CM=OK#C74\X/4W#K;W10#U):]_;Q-U-1#[*P,'W.3'*
- XMQT=3N+/7-RYGL;AK;\9 +#:UI<$L,U6UK3XP2D(\7;:OOBXX5]?'NKW)YS$N
- XM/+BU]SI=65%$.,^E:S,TU:['.TGKL:H[(S*^MN]GNM\\+4S"J,HS*DK%YT35
- XMP_]31KN[]S_?S,G YVLX9[IO-SR^QG<S5;NZ/C8K0ZN?21\A5:>TN:_'-3--
- XM[[RLM30N3=G+S<SOR<=9/U%-3U'9L]]$7=T_0V=W/TZWKKX].4=7X[&N,R$G
- XMO+&XJSDI2$C_K-T\,TV^O;A'.M=+0;BWU2XI2:6GT2\PW<,T-]&Z64Y(;[9O
- XM.D;CI*4W-#_?OEO&M&\^*CW=MM=G/>_&14S*5^-OY]&VN3H_P+6Z5SN]USHT
- XM/MG :UW?W4)GRTOCO]E7/3I,Q;Z]:UEC4??.:TA'X[Q?256_NDTZ5[;&2S[.
- XMN^] /,NY23M*56M5V[I-0E77S'=5S\K3T==?/O?'[SL_X\W?7T_;OV]&2E7&
- XMXS_KQ=G;3T7CP,]-X\/!V^-325W7R._C44M524M7:T%9[TE#7<K%X^_?S\[/
- XM=TA;V[_1]^?!R5O_;_=G54!#4=O=0T!9W\EK/3W5R=7(R=%347?3QMM3:]MG
- XM]]?K3O==7=]C0U515\*_TUE.:V_CRKGK:T)"8^?_4UMO55=*8]];:^?(T4U*
- XMW>?)TT5&9]O7U<C"S]'7]\?72T!,7UGK=V]33DG_T\]G7??GYUUOU<?9Z]WC
- XM8U]WT<K1;T1,5UWW0$!?9U].5\UK6]O,U='?U\G3U<C*R]_KYW?_5UOO64I'
- XM14@_;V=.0T3W55]WV]OK]U?/P<'*Q[B\SN/,P>=CRLS?2D]//TYK7S-974DS
- XM.DE36TA355=._]G-P]?5Z\J^O+K*Q+J_S.O9V\+#6U-CYV-)/#M.1UE.1T \
- XM2UU?1E?O6T[O[]W=T]/!Q\7)W^?1R,_=X\C_7W?W7_];8]__9TI/36]-7TQ.
- XM9V]5;\[1=VMKS7?3Z_?CT;O.045;S,'33%E)5U'KR5]!35M91$Y'_\[._^=C
- XM9^?CW;_$=U?KS<6_T=V_RUWC[\7G63]+2U5-23U%/T@]1$9':VO)Q,O"PKN^
- XMP<C5R^_9S='974E"4U=-04))3D=%3./WU]';QN?/PLW,R,K);V?38VM,45U.
- XM/T-G4TE#1%]=24=)R.MOR,?7V\JZNL')T\;%S.OW_]G?6V]3]U5.74Q)2D8]
- XM.3U!/4(\75\]36O?]]_.Q\;'N;J_O;J]N;W%QL2^V__93UEW5SPY/T<_.3Y)
- XM/D)+3$E766]15=GC=]?$S,S7OKW/SLK-5>OGTV];ZTI1[T]C7V?____OW]/.
- XMX]E=X^-514Q76^](2VO=]V=KU]?3ZW?K_^O7=V=OV^]/7^OC6^?K8U%;VV]G
- XM7]/-;^-W_\K7Q5G1T]'?9]_;56?O349%2&=.04Y375E9W]]=9^/?U=W7T^OG
- XMRM/5S\S,S.??S=UW_V=165WW3C]7:TY71%U30U]=9^_OV^_CR<7OZ^/7SO?O
- XM_U5GZ]'__^OKW>/GWUU-]V-C5U]C7U]?V]G_:V]W:]?5V6-57]%34=/WVU]C
- XMW?=576-?:UM54U'_;_]17^=G]]'-UV]KW^/CR,_9V=_7Y_?OUW=?]]WC3T]9
- XM64U-1U=9:U-O9TYG;V?7[]WGV=?"=]W=X\W=V=WO=]/K[U=.44M*65=92C])
- XM8V=;V_]CU\KC_^_3V_?GS-/?;^_GV>/?[^-W[]?=:UM976-O=U5(55]W6U57
- XM9TU1S^/W9U_G_^O,6V_1R=GWZ]_98U-CX^];8UGGV^M?75W7_V/W7UEW=V==
- XM7V?W=V]O;]GK;]G;]W=96]W9T\1?_]W'T?=K9_=13&M+]U=-65]5:_]K8VM;
- XMV6MO7>O;T?=?Z]7/T6-9U]7/W6-97]U$6>/'O]-)1$I;]^]O=]-=]V_CR\[7
- XMY]_K5UE-2T]C8U%)5U]K5^_?=]W5U>M/;^/7U^_KZUUC[]O;WV]K54A;Y\GK
- XMS=L^9\K$RLW90D],U>?_7T=GS'=?RK],0#I7U\WC3#4[5]W$N[C-44]*_]G)
- XMSVM-/SQ1W<#(Q,+.:U=*45?+=T-&45D_-T:XL3\U8[BWRG?.457+=\;;;TU3
- XM4^M7[\1K54_;T5E%3SM15]_$QUE!.T9KO[ZSV4]52$0]7[.O5SI,6UUWO+:]
- XM7V??_T9#6\W&VU-;445-X]&_P%=%/UW76]7?T<\^7^?$O^<W654Z2MVZNL[;
- XM.T2WS\?)/T8U4[^\6U=(_[7_2T5WUV/.S,),14WKT\SGR]- 0C[;O=M)75=W
- X23TE)Q<KW0.>^W5=*2;NNKB@@
- X
- Xend
- END_OF_FILE
- if test 18655 -ne `wc -c <'sounds/evillaugh.au.uue'`; then
- echo shar: \"'sounds/evillaugh.au.uue'\" unpacked with wrong size!
- fi
- # end of 'sounds/evillaugh.au.uue'
- fi
- echo shar: End of archive 10 \(of 26\).
- cp /dev/null ark10isdone
- 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 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 26 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- echo "merging split files..."
- cat blocks.c[12] > blocks.c
- rm blocks.c[12]
- echo "blocks.c done"
- cat bitmaps/earth.xpm.Z.u.[ab] > bitmaps/earth.xpm.Z.uue
- rm bitmaps/earth.xpm.Z.u.[ab]
- echo "bitmaps/earth.xpm.Z.uue done"
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
- exit 0 # Just in case...
- --
- // chris@Sterling.COM | Send comp.sources.x submissions to:
- \X/ Amiga - The only way to fly! | sources-x@sterling.com
- "It's intuitively obvious to the |
- most casual observer..." | GCS d+/-- p+ c++ l+ m+ s++/+ g+ w+ t+ r+ x+
-