games-request@tekred.UUCP (07/10/87)
Submitted by: "Stanley T. Shebs" <shebs%orion@cs.utah.edu> Comp.sources.games: Volume 1, Issue 82 Archive-name: xconq/Part02 #! /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 2 (of 7)." # Contents: mkmap.6 mkmap.c preshar.7.u # Wrapped by billr@tekred on Thu Jul 9 17:45:39 1987 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f mkmap.6 -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"mkmap.6\" else echo shar: Extracting \"mkmap.6\" \(2051 characters\) sed "s/^X//" >mkmap.6 <<'END_OF_mkmap.6' X.TH MKMAP 6 Utah X.SH NAME Xmkmap - random map generator X.SH SYNOPSIS X.B mkmap Xwidth height [+][bcfshad]*[2-7] X.SH DESCRIPTION X.I Mkmap Xis used by X.I xconq(6) Xto generate random world maps complete with randomly Xnamed cities. The resulting map is written to standard output, in a format Xunderstood by X.I xconq. XThe output can also be piped into X.I xmap(6) Xfor display. The width and height are integer values, between 20 and X299, inclusive. X.PP XThe optional argument is a key to enable/disable various processing stages Xwithin the generator. The + sign indicates that the remainder of the Xkey lists the stages that are enabled; otherwise, the key lists Xstages to be disabled. X.TP 5 X.B b XControl creation of blobs prior to fractal subdivision. X.TP 5 X.B c XControl creation of curves prior to fractal subdivision. X.TP 5 X.B f XControl fractal subdivision. X.TP 5 X.B s XControl smoothing after subdivision. X.TP 5 X.B h XControl histogram computation. X.TP 5 X.B a XControl anomaly fixup. X.TP X.B d XSuppress final map generation and produce a relief map instead. XThe relief map is tagged differently and will be recognized as such by X.I xmap(6); Xbut X.I xconq(6) Xwill simply fail. X.TP X.B 2-7 XPlace exactly as many large cities on the map as given by the number. XOtherwise, the number of cities is a fixed percentage of the map size. X.PP XThe keys are intended for debugging and testing the generation algorithms, Xalthough they could be used to generate (very) unusual maps. X.SH AUTHOR XStan Shebs (shebs@cs.utah.edu) X.SH "SEE ALSO" Xxconq(6), xmap(6) X.SH DIAGNOSTICS XWill complain if there are insufficient city names to go around; this Xhappens only on very large maps. X.SH BUGS XThe fractal algorithm has a persistent tendency to generate X"Mediterranean worlds" or "Pangaean worlds", in which the entire map is Xcharacterized by having either a huge sea or huge landmass in the middle. XAttempts to fix this have been only partly successful. X XNot all combinations of keys will work. The serious experimenter Xshould consult the source code to understand what will work. X END_OF_mkmap.6 if test 2051 -ne `wc -c <mkmap.6`; then echo shar: \"mkmap.6\" unpacked with wrong size! fi # end of overwriting check fi if test -f mkmap.c -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"mkmap.c\" else echo shar: Extracting \"mkmap.c\" \(17689 characters\) sed "s/^X//" >mkmap.c <<'END_OF_mkmap.c' X/* Copyright (c) 1987 Stanley T. Shebs, University of Utah. */ X/* This program may be used, copied, modified, and redistributed freely */ X/* for noncommercial purposes, so long as this notice remains intact. */ X X/* RCS $Header: mkmap.c,v 1.2 87/06/06 20:04:49 shebs Exp $ */ X X/* This program uses a fractal terrain generation method adapted from the */ X/* Carpenter et al subdivision algorithms (CACM June 82). This rendition */ X/* has been integerized for speed and includes some pre-/post-processing */ X/* steps to produce maps more suitable for conquest. */ X X#include <stdio.h> X#include <math.h> X X#define TRUE (1) X#define FALSE (0) X X#ifndef BSD X#define index strchr X#endif BSD X X/* This is just the collection of names for random cities. */ X X#include "mkmap.h" X X/* Largest map allowed. */ X X#define SIZE 300 X X#define CONTOURS 64 X#define WCONTOURS 4 X X#define MAXALT 16384 X#define BUCKETS 1024 X#define BUCKSIZE 16 X X/* Special elevations being used as flags - outside allowed range */ X X#define TOWN 32001 X#define CITY 32002 X X#define avg(a,b) (((a) + (b)) / 2) X X#define abs(a) (((a) >= 0) ? (a) : -(a)) X X#define sgn(a) (((a) < 0) ? -1 : (((a) > 0) ? 1 : 0)) X X#define random(n) (rand() % (n)) X X#define init_random() (srand(getpid())) X X#define flip_coin() (random(2)) X Xint cnameused[MAXCITYNAMES]; X Xint world[SIZE][SIZE], height, width, aux[SIZE][SIZE]; Xint water[SIZE][SIZE]; Xint histo[BUCKETS], contours[CONTOURS], wcontours[4]; Xint sealevel, mtnlevel, icelevel, desertlevel, forestlevel; Xint curvize, blockize, fractalize, smoothout, histify, deanomalize; Xint dumpraw; Xint numtowns, numcities, rawnum, numnames; X Xmain(argc, argv) Xint argc; Xchar *argv[]; X{ X int deflt = FALSE; X X curvize = blockize = fractalize = smoothout = histify = deanomalize = TRUE; X dumpraw = FALSE; X rawnum = 0; X X switch (argc-1) { X case 3: X if (index(argv[3], '+') != NULL) { X blockize = fractalize = smoothout = histify = deanomalize = FALSE; X deflt = TRUE; X } X if (index(argv[3], 'b') != NULL) blockize = deflt; X if (index(argv[3], 'c') != NULL) curvize = deflt; X if (index(argv[3], 'f') != NULL) fractalize = deflt; X if (index(argv[3], 's') != NULL) smoothout = deflt; X if (index(argv[3], 'h') != NULL) histify = deflt; X if (index(argv[3], 'a') != NULL) deanomalize = deflt; X if (index(argv[3], 'd') != NULL) dumpraw = TRUE; X if (index(argv[3], '2') != NULL) rawnum = 2; X if (index(argv[3], '3') != NULL) rawnum = 3; X if (index(argv[3], '4') != NULL) rawnum = 4; X if (index(argv[3], '5') != NULL) rawnum = 5; X if (index(argv[3], '6') != NULL) rawnum = 6; X if (index(argv[3], '7') != NULL) rawnum = 7; X case 2: X width = atoi(argv[1]); X height = atoi(argv[2]); X break; X default: X fprintf(stderr, "Usage: mkmap width height [+][bcfshad]*[2-7]\n"); X exit(1); X } X if (width < 20 || height < 20 || width >= SIZE || height >= SIZE) { X fprintf(stderr, "Cannot generate a %dx%d map\n", width, height); X exit(1); X } X numtowns = width * height / 100; X numcities = numtowns / 5; X if (rawnum) numcities = rawnum; X init_random(); X init_map(world, 0); X if (blockize) { X add_blocks(world); X limit_map(world, MAXALT, 0); X if (smoothout) smooth_map(world); X } X if (curvize) { X add_curves(world); X limit_map(world, MAXALT, 0); X/* if (smoothout) smooth_map(world); */ X } X if (fractalize) { X init_map(aux, MAXALT/4); X gen_fractal(aux, MAXALT/4, .8); X limit_map(aux, MAXALT, 0); X add_maps(world, aux, world); X } X if (smoothout) smooth_map(world); X limit_map(world, MAXALT, 0); X sealevel = 0; X mtnlevel = 32000; X if (histify) X set_levels(world, &sealevel, .7, &mtnlevel, .95, contours, CONTOURS); X icelevel = mtnlevel + 2000; X add_border(world, icelevel); X if (deanomalize) reduce_fragments(); X init_map(water, MAXALT/2); X gen_fractal(water, MAXALT/2, .6); X desertlevel = 0; X forestlevel = 32000; X if (histify) X set_levels(water, &desertlevel, .2, &forestlevel, .8, wcontours, 4); X water_coasts(); X write_header(); X if (dumpraw) { X dump_relief_map(); X } else { X place_cities(); X dump_map(); X } X} X X/* fill in with some initial values */ X Xinit_map(map, value) Xint map[SIZE][SIZE], value; X{ X int x, y; X X for (x = 0; x < width; ++x) X for (y = 0; y < height; ++y) X map[x][y] = value; X} X X/* Put in random large blobs. Should be polygons instead of rectangles. */ X Xadd_blocks(map) Xint map[SIZE][SIZE]; X{ X int i, x, y, x0, x1, x2, y0, y1, y2, dx, dy, flag, elev, blocks; X float relelev; X X blocks = width * height / 200; X for (i = 0; i < blocks; ++i) { X dx = random(width/5) + 2; X x0 = random(width - dx); X x1 = x0 + dx; X x2 = x0 + dx / 2; X dy = random(height/5) + 2; X y0 = random(height - dy); X y1 = y0 + dy; X y2 = y0 + dy / 2; X flag = flip_coin() ? 1 : -1; X for (y = y0; y < y1; ++y) { X for (x = x0; x < x1; ++x) { X relelev = ((abs(x - x2) / ((float) dx)) + X (abs(y - y2) / ((float) dy))); X elev = MAXALT/32 - relelev * MAXALT/24; X map[x][y] += flag * (MAXALT/32 + elev); X } X } X } X /* add some spikes which will get averaged in */ X flag = (height / 40) * (width / 50); X for (i = 0; i < flag; ++i) { X x0 = random(width-2)+1; y0 = random(height-2)+1; X map[x0][y0] = MAXALT/2; X } X} X Xfloat Xexpt(f, i) Xfloat f; Xint i; X{ X float rslt; X X rslt = 1; X while (i-- > 0) rslt = rslt * f; X return rslt; X} X X/* Put in random Bezier mountain chains. Number and size are scaled to */ X/* the size of the map. */ X Xadd_curves(map) Xint map[SIZE][SIZE]; X{ X int i, j, k, n, x, y, flag, curves; X float u, f, cpx[4], cpy[4], px[SIZE], py[SIZE]; X X curves = width * height / 2000; X for (n = 0; n < curves; ++n) { X cpx[0] = 1.0 * (random(width-2)+1); X cpy[0] = 1.0 * (random(height-2)+1); X for (j = 1; j < 4; ++j) { X cpx[j] = cpx[0] + (random(height) - height/2); X if (cpx[j] > width-1) cpx[j] = width-1; X if (cpx[j] < 0) cpx[j] = 0; X cpy[j] = cpy[0] + (random(height) - height/2); X if (cpy[j] > height-1) cpy[j] = height-1; X if (cpy[j] < 0) cpy[j] = 0; X } X for (i = 0; i < 40; ++i) { X u = (1.0 * i) / 40; X px[i] = py[i] = 0.0; X for (j = 0; j < 4; ++j) { X f = comb(3,j)*expt(u,j)*expt(1-u,3-j); X px[i] += cpx[j]*f; X py[i] += cpy[j]*f; X } X } X flag = random(3) ? 1 : -1; X for (i = 0; i < 40; ++i) { X x = px[i]; y = py[i]; X/* map[x][y] += flag * MAXALT/4; */ X map[x][y] = flag * MAXALT/4 + flip_coin() * MAXALT/16; X } X } X} X Xcomb(n, i) Xint n, i; X{ X if (i <= 0) return 1; X else if (n <= 0) return 0; X else return (comb(n-1, i) + comb(n-1,i-1)); X} X X/* Ensure that map values stay within given range */ X Xlimit_map(map, hi, lo) Xint map[SIZE][SIZE], hi, lo; X{ X int x, y; X X for (x = 0; x < width; ++x) { X for (y = 0; y < height; ++y) { X if (map[x][y] > hi) map[x][y] = hi; X if (map[x][y] < lo) map[x][y] = lo; X } X } X} X X/* Put a fractal surface into a given array */ X Xgen_fractal(map, range, scale) Xint map[SIZE][SIZE], range; Xfloat scale; X{ X subdivide(map, 0, 0, width-1, height-1, range, scale); X} X X/* Recursive subdivision step of fractalization */ X Xsubdivide(map, x0, y0, x2, y2, range, scale) Xint map[SIZE][SIZE], x0, y0, x2, y2, range; Xfloat scale; X{ X int dx, dy, x1a, y1a, x1b, y1b, newmax, wx2, avalt, fudge, var; X X dx = x2 - x0; dy = y2 - y0; X x1a = (x0 + x2) / 2; y1a = (y0 + y2) / 2; X x1b = x1a + dx % 2; y1b = y1a + dy % 2; X wx2 = x2 % (width-1); X avalt = (map[x0][y0] + map[x0][y2] + map[wx2][y0] + map[wx2][y2]) / 4; X var = normal(range); X map[x1a][y1a] = avalt + var; X map[x1b][y1a] = avalt + var; X map[x1a][y1b] = avalt + var; X map[x1b][y1b] = avalt + var; X fudge = range / 10; X map[x0][y1a] = avg(map[x0][y0], map[x0][y2]) + normal(fudge); X map[x0][y1b] = avg(map[x0][y0], map[x0][y2]) + normal(fudge); X map[x1a][y0] = avg(map[x0][y0], map[wx2][y0]) + normal(fudge); X map[x1b][y0] = avg(map[x0][y0], map[wx2][y0]) + normal(fudge); X map[x1a][y2] = avg(map[x0][y2], map[wx2][y2]) + normal(fudge); X map[x1b][y2] = avg(map[x0][y2], map[wx2][y2]) + normal(fudge); X map[wx2][y1a] = avg(map[wx2][y0], map[wx2][y2]) + normal(fudge); X map[wx2][y1b] = avg(map[wx2][y0], map[wx2][y2]) + normal(fudge); X X newmax = range * scale; X if (dx < 4 && dy < 4) { X return; X } else if ((dx == 2 || dx == 3) && dy > 3) { X subdivide(map, x0, y0, x2, y1a, newmax, scale); X subdivide(map, x0, y1b, x2, y2, newmax, scale); X } else if ((dy == 2 || dy == 3) && dx > 3) { X subdivide(map, x0, y0, x1a, y2, newmax, scale); X subdivide(map, x1b, y0, x2, y2, newmax, scale); X } else { X subdivide(map, x0, y0, x1a, y1a, newmax, scale); X subdivide(map, x0, y1b, x1a, y2, newmax, scale); X subdivide(map, x1b, y0, x2, y1a, newmax, scale); X subdivide(map, x1b, y1b, x2, y2, newmax, scale); X } X} X X/* compute a normal (actually binomial) distribution */ X Xnormal(range) Xint range; X{ X int k, sum = 0; X X for (k = 0; k < 10; ++k) X sum += random(range * 2) - range; X return sum / 10; X} X X/* form point-by-point sum of two maps */ X Xadd_maps(m1, m2, rslt) Xint m1[SIZE][SIZE], m2[SIZE][SIZE], rslt[SIZE][SIZE]; X{ X int x, y; X X for (x = 0; x < width; ++x) { X for (y = 0; y < height; ++y) { X rslt[x][y] = m1[x][y] + m2[x][y]; X } X } X} X X/* average out things to keep peaks from getting too sharp */ X Xsmooth_map(map) Xint map[SIZE][SIZE]; X{ X int x, y, ix, iy, sum; X X for (x = 1; x < width-1; ++x) { X for (y = 1; y < height-1; ++y) { X sum = 0; X for (ix = x-1; ix <= x+1; ++ix) X for (iy = y-1; iy <= y+1; ++iy) X sum += map[ix][iy]; X aux[x][y] = sum / 9; X } X } X for (x = 1; x < width-1; ++x) { X for (y = 1; y < height-1; ++y) { X map[x][y] = aux[x][y]; X } X } X} X X/* histogram and use to compute sea level and mountain level */ X Xset_levels(map, lev1p, level1, lev2p, level2, contours, numconts) Xint map[SIZE][SIZE], *lev1p, *lev2p, contours[], numconts; Xfloat level1, level2; X{ X int i, k, x, y, sum; X X for (i = 0; i < BUCKETS; ++i) X histo[i] = 0; X for (k = 0; k < numconts; ++k) X contours[k] = 0; X for (x = 0; x < width; ++x) { X for (y = 0; y < height; ++y) { X ++histo[(map[x][y]/BUCKSIZE)]; X } X } X sum = 0; X k = 0; X for (i = 0; i < BUCKETS; ++i) { X sum += histo[i]; X if (sum > ((k+1) / (float) numconts * width * height)) X contours[k++] = i * BUCKSIZE; X if (k >= numconts) break; X } X sum = 0; X for (i = 0; i < BUCKETS; ++i) { X sum += histo[i]; X if (sum > (level1 * width * height)) { X *lev1p = i * BUCKSIZE; X break; X } X } X sum = 0; X for (i = 0; i < BUCKETS; ++i) { X sum += histo[i]; X if (sum > (level2 * width * height)) { X *lev2p = i * BUCKSIZE; X break; X } X } X} X X/* Make sea for northern and southern edges of world */ X Xadd_border(map, value) Xint map[SIZE][SIZE], value; X{ X int x; X X for (x = 0; x < width; ++x) { X map[x][0] = value; X map[x][height-1] = value; X } X} X X/* Correct some anomalous conditions that fractals don't care about, */ X/* but which are undesirable for the game */ X Xreduce_fragments() X{ X int x, y; X X for (y = 1; y < height-1; ++y) { X for (x = 0; x < width; ++x) { X /* Remove most of single-square islands */ X if (small_island(x, y) && random(2)) X world[x][y] = sealevel - 100; X /* Remove most of single-square lakes */ X if (small_lake(x, y) && random(2)) X world[x][y] = avg(avg(world[x-1][y], world[x+1][y]), X avg(world[x][y-1], world[x][y+1])); X /* Diagonals of land and sea are strange - get rid of most */ X if (world[x][y] > sealevel && world[x+1][y+1] > sealevel && X world[x+1][y] < sealevel && world[x][y+1] < sealevel) X if (flip_coin()) X world[x][y] = sealevel - 100; X else X world[x+1][y+1] = sealevel - 100; X /* Diagonals in opposite direction */ X if (world[x][y] < sealevel && world[x+1][y+1] < sealevel && X world[x+1][y] > sealevel && world[x][y+1] > sealevel) { X if (flip_coin()) X world[x+1][y] = sealevel - 100; X else X world[x][y+1] = sealevel - 100; X } X } X } X} X X/* predicate to detect a single-square island */ X Xsmall_island(x, y) Xint x, y; X{ X int ix, iy; X X if (world[x][y] < sealevel) return FALSE; X for (ix = x-1; ix <= x+1; ++ix) X for (iy = y-1; iy <= y+1; ++iy) X if (ix != x && iy != y && world[ix][iy] > sealevel) return FALSE; X return TRUE; X} X X/* predicate to detect a single-square lake */ X Xsmall_lake(x, y) Xint x, y; X{ X int ix, iy; X X if (world[x][y] > sealevel) return FALSE; X for (ix = x-1; ix <= x+1; ++ix) X for (iy = y-1; iy <= y+1; ++iy) X if (ix != x && iy != y && world[ix][iy] < sealevel) return FALSE; X return TRUE; X} X X/* Some places along coast line are arable */ X Xwater_coasts() X{ X int x, y; X X for (y = 0; y < height; ++y) { X for (x = 0; x < width; ++x) { X if (adj_water(x, y) && water[x][y] < desertlevel && !random(4)) X water[x][y] = desertlevel + 10; X } X } X} X Xadj_water(x, y) Xint x, y; X{ X int ix, iy; X X for (ix = x-1; ix <= x+1; ++ix) X for (iy = y-1; iy <= y+1; ++iy) X if (world[ix][iy] < sealevel) return TRUE; X return FALSE; X} X X/* place towns and cities */ X Xplace_cities() X{ X int i, j, x, y, dx, dy, dx2, dy2, tries; X X numnames = numcities; X for (i = 0; i < numcities; ++i) { X while (TRUE) { X x = random(width-4)+2; y = random(height-4)+2; X if (!(world[x][y] < sealevel || world[x][y] >= icelevel || X close_city(x, y) || X (inland(x, y) && random(4)) || in_waste(x, y))) X break; X } X world[x][y] = CITY; X for (j = 0; j < 5; ++j) { X tries = 0; X while (tries++ < 500) { X dx = random(7)-3; dy = random(7)-3; X if ((abs(dx) > 1 || abs(dy) > 1) && X x+dx > 0 && y+dy > 0 && x+dx < width && y+dy < height && X (world[x+dx][y+dy] > sealevel || !random(4)) && X (world[x+dx][y+dy] < icelevel) && X (!adj_city(x+dx, y+dy))) X break; X } X world[x+dx][y+dy] = TOWN; X dx2 = sgn(dx); dy2 = sgn(dy); X if (world[x+dx-dx2][y+dy-dy2] != TOWN) X world[x+dx-dx2][y+dy-dy2] = sealevel + 100; X } X numnames += 5; X } X numtowns -= 5 * numcities; /* makes numtowns = 0 all the time? */ X if (numtowns < 0) numtowns = 0; X numtowns += (width * height) / 500; X numnames += numtowns; X for (i = 0; i < numtowns; ++i) { X while (TRUE) { X x = random(width); y = random(height); X if (!(world[x][y] < sealevel || world[x][y] >= icelevel || X adj_city(x, y) || X (inland(x, y) && random(4)) || X (in_waste(x, y) && random(10)))) X break; X } X world[x][y] = TOWN; X } X for (y = 0; y < height; ++y) { X for (x = 0; x < width; ++x) { X if (world[x][y] == CITY || world[x][y] == TOWN && !random(4)) X deforest_vicinity(x, y); X } X } X} X Xadj_city(x, y) Xint x, y; X{ X int ix, iy; X X for (ix = x-1; ix <= x+1; ++ix) X for (iy = y-1; iy <= y+1; ++iy) X if (world[ix][iy] == CITY || world[ix][iy] == TOWN) return TRUE; X return FALSE; X} X Xclose_city(x, y) Xint x, y; X{ X int ix, iy; X X for (ix = x-4; ix <= x+4; ++ix) X for (iy = y-4; iy <= y+4; ++iy) X if (world[ix][iy] == CITY || world[ix][iy] == TOWN) return TRUE; X return FALSE; X} X Xin_waste(x, y) Xint x, y; X{ X int ix, iy; X X for (ix = x-1; ix <= x+1; ++ix) X for (iy = y-1; iy <= y+1; ++iy) X if (world[ix][iy] < mtnlevel && water[ix][iy] > desertlevel) X return FALSE; X return TRUE; X} X Xinland(x, y) Xint x, y; X{ X int ix, iy; X X for (ix = x-1; ix <= x+1; ++ix) X for (iy = y-1; iy <= y+1; ++iy) X if (world[ix][iy] < sealevel) return FALSE; X return TRUE; X} X Xdeforest_vicinity(x, y) Xint x, y; X{ X int ix, iy; X X for (ix = x-1; ix <= x+1; ++ix) X for (iy = y-1; iy <= y+1; ++iy) X if (flip_coin()) X water[ix][iy] = forestlevel - 10; X} X X/* print final result */ X X/* Decrementing the width seems strange, but it makes reading work */ X Xwrite_header() X{ X printf("%c %d %d 0 0 100\n", (dumpraw ? 'R' : 'M'), width, height); X} X Xdump_map() X{ X int i, n, x, y; X X for (y = height-1; y >= 0; --y) { X for (x = 0; x < width; ++x) { X printf("%c", terrain(x, y)); X } X printf("\n"); X } X /* Now dump out names of cities */ X for (i = 0; i < MAXCITYNAMES; ++i) X cnameused[i] = FALSE; X if (numnames > MAXCITYNAMES) { X fprintf(stderr, "Not enough names for %d places\n", numnames); X exit(1); X } X for (i = 0; i < numnames; ++i) { X while (cnameused[(n = rand() % MAXCITYNAMES)]); X cnameused[n] = TRUE; X printf("%s\n", citynames[n]); X } X} X Xterrain(x, y) Xint x, y; X{ X int elev, moisture; X X elev = world[x][y]; X moisture = water[x][y]; X X if (elev == TOWN) X return '*'; X else if (elev == CITY) X return '@'; X else if (elev >= icelevel || X (elev > mtnlevel && X (y > height-height/10 || y < height/10) && X random(10))) X return '_'; X else if (elev > mtnlevel) X return '^'; X else if (elev > sealevel) { X if (moisture < desertlevel) X return '~'; X else if (moisture > forestlevel) X return '%'; X else X return '+'; X } else if (elev > sealevel - 30) X return ','; X else X return '.'; X} X X/* The following is used for other displays */ X Xdump_relief_map() X{ X int k, x, y; X X printf("%d %d %d %d %d %d %d\n", X sealevel, mtnlevel, icelevel, X desertlevel, forestlevel, CONTOURS, WCONTOURS); X for (k = 0; k < CONTOURS; ++k) X printf("%d ", contours[k]); X printf("\n"); X for (k = 0; k < WCONTOURS; ++k) X printf("%d ", wcontours[k]); X printf("\n"); X for (y = height-1; y >= 0; --y) { X for (x = 0; x < width; ++x) { X if (histify) { X for (k = 0; k < CONTOURS; ++k) { X if (world[x][y] < contours[k]) break; X } X } else k = world[x][y] / 128; X printf("%d ", k); X for (k = 0; k < WCONTOURS; ++k) { X if (water[x][y] < wcontours[k]) break; X } X printf("%d ", k); X } X printf("\n"); X } X printf("\n"); X} END_OF_mkmap.c if test 17689 -ne `wc -c <mkmap.c`; then echo shar: \"mkmap.c\" unpacked with wrong size! fi # end of overwriting check fi if test -f preshar.7.u -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"preshar.7.u\" else echo shar: Extracting \"preshar.7.u\" \(32178 characters\) sed "s/^X//" >preshar.7.u <<'END_OF_preshar.7.u' Xbegin 644 preshar.7.Z XM'YV0(T*`>"$FC9L7<]`H&`&""IHT<T!`!!$&1,(R;-A0E#/FH9TR+$"T*1/& XMC<$S.A:"B.$"A)0R;=Y\!%'FHYP\=!ZZ.4-1C,PR('("#3BPX,&$(-@8+.-" XMI8R64\+,%`I"3IDY==C0.1FT#!XZ$MU0!&$F#1NF*F>T+(*GS)@Z=(!2+7L6 XMQ)TT.8L:1(@&!`HW;\".29@BZ!L08ZR&B1L4#5"Z5U..2*!4#$(X2NDLI)S& XMLE4U;PQNKOPB\>(R<ERT"0-G=.<7).7D9+FZ]632L7,^K>W:<IDZ<M[`8<K[ XM]NLS5MT29]W[!9PP8]*4':.:N7'/;T96M\W9,AW:UKN_H+,[/&DZ:HN+IT-C XM>W,Z-=Q?'V]#_GHTR>V3OG-'QN_@P[DPQQANJ.301&%PY!%0B9$4%QDZ@-#$ XM&V(I48=8(.``@@PRZ`!##CK$D,-*.>!P@P)>P?&&;"!`$0052.S0XHM(]$"0 XM03J0X"*,"DC7U1Q@M6`&"">0-@=F>)V@@%`%)N`6&H<EE&"$=V4$`F!@_21' XM"W?(@1=07D&TU4YDF064"$6^=F1F)XB`(AMSE*'`&(N!P`,/('`Q!1)!2/%% XM$4\8`8(/1!J))!U*,D0$1'&.`59%M=F%5U]L4,B34FY<%18=A\&1AG(1W957 XM0BN"A>E5"LP)!P@DQ!!4&ZTI8,:*)'5$TU=^N2H#"#.`0`,(-8!@`P@W9`A" XM#BDHD,!;08X10PLWC$@'K(.VZ@()7FFV+%P@M#`&#C"T`,*KJ_HP+1PR*-N& XM'>3N>BZ*;I"1JAQMD)OJGGW^&>B<:,1$!@@KX%&HFH<J618(#)41+PAO#*EE XMEWAQU9%;:_0X9%Q`=CMDFIZ5`9I!2C*I[)-1HC&EI%9BR;!-7'K)6)A`<@49 XM"&B2]EEH;K3Y9IQSUGEGGOCZ":B@A'+\PLT@JP0%MU1Y"BK#0T+*&@AB0+>& XM86>4(90<"CP')%`MD"$"%S"(P"I+6\0@PPPTU&###3CDT$6U,2A`[]DNI+UV XMVV_'W<6]?`J];T?^`BRPT4CG+&L:"-.T<,,KHP;QF#Q-/$;%/F(<Y,:DF197 XM:K6%[%B3)%MDLAQ4FJ61REJV_.6M8LIL)LU&>X[:=CICQ#.=8/VL9^#Z$CVP XM9;:#SIJ23?`:[`S!P@""\S'``(,"7U1O_?789Z^]]@JXX/WWX(<O_OCC=T_^ XM^2ZLL`+ZX)O/OO@KL`"_^N&[_S[YZN>_@A]^M'__^2K0G_[DYSW[_<][`A2@ XM'PC8E`."KP0E2.``OV=`]JF@!"X`@OH"*$'_.1"!$M2?!QGX/@ZNP(3Y(V$# XM7<"__T4PA.NKWP==\,(.BJ^"XF/!"C#H`A;44(#DPV'X=@C!"T(P@><3X@,A XMR,0FYH^'Y7N?#YLXQ2:B3XE+A&(/F<@^^ZW`"V#T@A;'!\'WN>^+801C&<FX XM1O"I0(;I2V,:V_@])X(OAAX,(P9+,,?P-?&%.@RB]\*(0#FVT8GY`T+Z;CA( XM,+I`!7KDHQB]AT@1/A*.842C&)EX0>]-48'[0V`>Y;A)+M[1A)#TPPDM:3[U XMS=&*X\N?'\+(/_[%\(Q>H!\LQZ?#_=52E;4L(/F.6$)?VA*.XGOA_=2GRBCF XM,'\S9.3\=AA-9(*OEWBLY@J?J<WV;>^;X-R>`JQP$S$`YPP*:(*8PK"&,G`! XM!$-(3L6@D*`PK.8,=2!#&A1`A3>\`2-R$@)&*G6'.;S3"&'(R!P4$`0ZL"$, XM<S"G'-`9!#*\00SN!$$0&K10*#RD4JO)R3B]=`8@A4%>5PC#&<Y@SY(H(`ME XM*(/)[O!."[G!46F@D`*JD!!.892?JK.G/RN&A##@9)]">,,[/5HII-9!#WI( XM$!D,"@(A&%4!00O>XAJGL']![F$NDYAC+F>Q'VUN>+!)T&QPMZ31C:PC)3M9 XME587F,AM:7)@PD/LR#2SFKTF-V@`#QQR!R<Y\<Y.>/I=OH8V*+0"5K#(XY4- XMH,>AE8!+6-"3'O7"R=G.>O:SH`VM:$=+VM*:]K2H3:UJ5\M:<<X0B3%$X_G` XMF#TPPO"VL<5M-O\7PCM&<[?_<^1OS_?%$*I`A>%[HVZ7F[\O,/>YT(VN=)\[ XM1/HY$(O++*X#O>`"+U@OE],5X?J@B43>PA"$P.VF>F.9WN]!,WT3]&3\F`M? XMZ:(PO/C-+WT/",0/"K&]U:TF=[O[!?#JE[STLZ1YE[O>!K-7N.\3(`-UB$W= XMWO>Y!CZP_BZLX?TZT(8'Q"YQK0O?[79W!07NL`"/V-M8HK>^YW6PC!L)X/JB XM=\+YXS!N-?A<%.KXMC_&<(;#JTT0_T_$U25Q-UU98/`RT;;13=\?:;A')BKY XMCE/&[8S72S\-!G#$.E3D,Y_+X_/>=LC0+7-^N:MA47ZXO-?E;XV[Z=T4JP^" XMF83N'_=<21+?F<\83'!_M_Q:Z^88S"R0'S99X./\PCB!N41ECB<-9$<_&K^_ XM'?0BY[Q-_"V2T&Z.9`2?#.55PK",/.0BH(F)0$!3.=#BO3*HT7=H[_%XFFK> XML'$3&&3RZKC7N&VT!$M=7A5+F-,;KJ8!Q_OI6?N6AJ_6'Y[1',(]4G+5B&PU XMMG_X:&=G5]#JT^#W<IU("0+;V.@>M@#?B-X-JCB0['OO,AG);&_?#X,%9O&= XMP0CL"%+YU=LN(Q$!K65[QSO)*WA!NU7`P1^F&X;G1G>><QMQZ<+[X$5&LL'K XMR$,UUE",U$X@J@$>\#^CVLHQYO3&03C$AKN;TLO-=<4?#FD!YA*\Q,;OKU-8 XM8EJO5^,K?_4CB^M*/D*7@_!%^<#UO6<%LU?607?QA1T^[(G3G+D[SY_5-1ER XMYG8=AO*#^I:!'O789EB2!W9OR1&<8/<Z/>H(+_>Z5VE;#F;XZP',]="O#L.< XM:_WK9\:Z)57^<[@?$(-`&++1,9UD@N/Q[8]FM^'A]V-2HO'EK@0\$/E^9LW/ XM7;?@K;A[B2MCLD<]@D,&N>?-S/8GUO#2?IZ\G*N>QLN'L-0H3'2%>1V_1'>0 XMP6Z']-85J,H0_E*_S[:WZ8-^0C2KL<W-[C:/]0UCV;_YB)`$;YE[>5\YRCN% XMN]?T[H-_V_I.W/L2_*4MB:_^XDN0W)!W\8R7OW+4WUGK>-;Z<N_+\OK>VH9B XM9WWHXW)?!$DHU$.NA'DOYUOAIVF71GZX97E<1TJYU'X6V'Z,EWP]-W8"B#ZC XMMC_"MWCV]6*#IVF$-WES%VF1YF?0U$NV=7/Q-T0Y=T>P=7M#9G=RU&1@=($\ XMJ'[[]WG`I6;>1G\;-VJUI']HA'JK5X*W-G0H)&8=F%U69UM#U&[R!679ETO+ XMY'W7%%UI]&7P15O?58$]6(9$AC^]9'!$:'`0Q(,ZQ&)X]WXV!GLQ&(7)A68< XM)'F49UTZM'50^':4IH7?$W['IS^)5WN7)X9-9DQEV(,[MFYVV&F12$E?Q(/9 XM)TE+N&OW!8632&N:)(3S0X,)5G>^UVZ=9V"2QWZ%2'M_YWV-Z(@P9VAP1CY@ XMJ(:=*(H[.$OJAW,%!G\*.&DH5$/B=HOQ9FYNYG;P<X79!(0OV'S-!UY)QH.9 XM)X&O6(V/&$-@B'3%N')K:'!TQS]>`(ZJA'-^MVL2Q&)`<'&R=X((5&9Y]F&# XM6(`(A(,U1TK:Z';2N$%A5#V95(VO:&%/%V]ZJ'S$.&ZN5$OAF)"VA(BZ=FPB XM1WWLZ&P1:60#>&6".%[Z4W=(F$G02(/%EX]HQ(]I5(T4>(T#M%M-.#[W:(L% XMB5[A*(WEB'D5UG!BE&PM&6'X0VX#*3X#-GH8.8\66&I;YP<J$)0Y*)(4*$<7 XM&$8S-VCRYD9U2&C=N'&R)(U9=Y(KAF8W.6]0.8U0IH$T&'T>N8JVAT*-N(\% XM=CU).9)&.7P-.4`DE'>B6&Y!-Y7>N`(:!(M]AY4F-XM;B3^T1VQ+%EL8V(I> XM]X5)J8-KN9@YYXL<E&A@>4(9%)$.9I<KQXA%69C5ICXS:6I/^9>T2'?4>'P- XMQHA'^'>JZ'XE.8VUQ9AK:7&AN8&&9YGVAHV-^'XII%O\U8'IE9&TI)=7]IGC XMDY<8B(->P$$7N%Q'J9:NR9"5QF/(U7\"2)L;QS\L4$N9293K=UL-*)R@65U9 XM^)+^N%L'"#[#"%\6:'-0EIR_.&G+B3W-F8GSY6E12)W5V4/`:8Z\]IV>B$;^ XM6(AFF9SI<YN&"8+L"82MB):M^9HZ-ID2MH[W8Y\&9YTL=*"F]H?KHWNZ%X#\ XM>9#_^:'\`P0M))[YV$C@E9_&%)AUMJ#H%VZLMT%;V4HWF4T4^DO9Z7[>&3[8 XMQ)^;]CT@^J,6V%T5VH/?,V066IBY%I\M:F[M*7_UR:-#ND!12I:$MY(\:II` XMFJ7>\XIS27RIB:,JNIAG>),2NG+6::$GR*$MB:59^J&9N:5<.DTI6I7')VF' XM&9,`*3X[.9U<V8D+=)W%F:.QI%P\VJ:&JGYP6H8L-'JFZ*)SRJ3M:7NUUY2@ XM6:9FVC^`2I;1I(XW>:B'^J932J056F-4*EWD*)_6Q6[L2)G*!J7ATT+768FS XM)*A2Q*I1YZFXVC^A2J``MG["5FD):'+ZQGO?9ZO<6$W&.FN99T*\Q:SQ.*.Y XMBI!`ZJ,_VJO2]7^A]T=:QHF7%*/=M*?65UP9]D&T&HELZJF_^9_><Z/J.F)[ XM%XM.1W2NUY"EZ*H49*_$!4FV)Z<C5HO$&*U+2:*-2*T?NF`%!X':&I4\:I=J XMJJS5%4:))YFB.'O$>*X`ZX_@`Z(&&V-QE[#Q,X_X*DPA^W3!^GBT*K&F]F4! XMQ*F&9[$76XT$&Z?_XXL<*FT)2T`UZZTC.V('JTTL6W8O"Z3R!K-OEH<*^W)- XMIW(-RZ<[VY\VFZQ56)OX$[2WN7XXFK&*2JXMYHE)E[011D>W:*EK^D5[UDT_ XM>Y<N6ZWZ4ZJ_6(L\.)@*2T:NQTESMK2D-X1-J[7\MDNO%9U;1IYKFZOZU9'R XM"K6-.D,_I*WLHT%^:X=BNY4F9$K5=+;>IEOI"4.:"5WON$I_NTK@>DU^Y)EV XM]+7(2I!Y6TT!Y&^UFHPH"*ETJI_,Q+81^(Z@YH#T28GU-;I@!FW$^+C?N4,U XM-EZ-NXZ<YX6E%HK'2*[.RCXDI+KI8T1+NSY@Z[BG6V10%T"Y5&%B5F_K2'7% XM:X/CVFW#%7R\]4!)]KF4%';HR[356[KKFEO9VW4="+W?VW?.Z9?(JDM29+Y1 XMZX&*QKT^%W6^VZ'Y\P+2!H/G:+?.IG3UZYO'Z98*C''3R[I2]D$E,&&2.XD# XM#*6YM4/'*:Q\)H`,#*^P&UY+:KOK-<$>:*P7S&K]RUN*-KP1VKXS=D)HQV?" XMVH'89D0EP,,!1W7#ZL#R2VB=9,$G"$477,$-ID(?&TT;C*]D6TH>ZW%+-WE_ XMY,-^],/;9H,<&X7`^[7.:V\RW$4T+&,%N'0,['$05$6R-T9L]$8]',=:/,*Z XM*<)K?&WQ9F7?^<3VFGUH',1_S$1C+,(D-\?#2H<1[&P^=%R/Y,98MDG\R<<< XM;%LXO&*K-L@Z;,A)BY'[&8E3%':._&HU&<E+5L9A&,A,M\6@J<E-]W6WZ$-= XM5EU/IL?\ZVV0>;<>9,KYFTNLC,.8;'V`YL/85GZW*+W*E,5X1LM3IL@4]LN2 XMJ,N^U5[ZB,K:VG3:ZD/%?&U[5D6K=FGAVY(LALR*Z\:[)7#K=<MQYJ30_ XMS,J,EL&1R&?<O&HKJ(!_6417UG3:W$9X!,]P)\F@R6AJ/,>]U\*Z%\*\F46" XM_,,7B<+$2'T0V,3^O$3[#%RQQ8'K3*Z47$0!=UQOZ$/S[&KQ3$4!1[C!RI_A XM?$V)MK*4Q+L4K<VB9K@SG-$?MM&];,@2RZB&M\;"#&A=M[Z=Z,(>^&\1YL&; XM)&NAW*HTS5\V?=.K1LS`W--/W<4XJ<,J)WE)/8A51,6)MDM9?61++6=-[=1T XM3)$H.,?=*=,MJTA=_=52U-;3UI%^Y-*O!="@:7MD7=9;&Z[M;&7="=1CRTEN XM/4R>Y-/.7+YV?==CK<G1!=@4W&`-%\1.Y'M[/;+FS$/8#,N>!-(D!->Z!V$4 XM3)EVK=:5N]A;G(%\?5OZEM;0C$'RD\0]%-N\A,X]I*\!_&&)K=A.MG:6YL73 XM%7YA[4#1^=41F=NZ#<*;C-J\:6$)!-P%2=ISG=2PC;?![4#A:;-]-EV.397A XMY=S1!]VW&-EC--W.AD,`7-WN=;]Z#5V=B%_>'9:ZO&+)--CJ9=QW/8&HVK,= XMN)UIA[S5"V["R<;4G=`5JTG=E=]47<,?=)J-;;O+F[>XI7L]](;T348SC=YZ XM^\`-GN#6Q]^];7Z)/+8)Y.$;2D3=Y-9E"MYV.(&>J=P"R.#3]6""V+0+E'XP XM3MDV7,I7A.':-$N+V-^1"./,K3Y?`)B<V[29BJ,^"-6@9M^NZN-VIMWE:GA" XM[F'S0X4CFVCCR>2OM>,\'DU0CN`.W>&G^9%@BK_I+=<O+.)IN^0<#IA@/;[5 XM/4O>A>`&5I"\BN9A..-@6>!?NN5QN^:"].4SY.-X&GCG>8O6:-9[KN)H&[A9 XMJN?=Y.0\6I1U/EV)CN?_R.AQ%.*^#>EM*NE*3>@'!(Y1SM[?N>AU..7_&K2B XM/D.4SI]A7L+N5JAF..8Z_>2NCNO^1>H.9.@?3%VVGH^@:,I4>^:EM[../CZ& XM+EU0BJ*>WJ&[7FL-%NN_"\%<#IJ9FWG13L`OR^FP[NM,G8G^.NS\;7?+WMZQ XM&ZU(V*=)).Y;F&'G%K)NKG_;/;*@_I_GJG_)#N_Q=NC@GNI5WNT<#.J^-.*% XMR)YJ7M_^;D%G3*R\KNUGSNK5:T*GR;-T6JK]WO"]J:\PI$A6BJ\7%O+K_.;( XMN.YGSJV%U_#$!?#IWKJ^'N@^>4(>+O,AQO*`Z7DX#^\@:'/E7FC6M/,@I'GW XM+O3QK9X$OZY!O_-(F.U&C^$"5.S6F\M&W_01__10+YM<9EW6/J.%>_58'_9% XMC4==/[;4)O9HO_7WBO4E:_-I']84S[795/;/?6*O_O;HK5UP*TU8[W=XC_,Y XM_5J1YDQ]KY5_?_CC@^6$;_27'O>(7_@!2/?%S`)#]OB6#]^#;O24;_A/__*$ XMSFF2WXE;=_FD;T:=3_E@7_J/'_J3*)BJW^5HS_HKCOHY>MZO__>R'XG'>_N\ XMO_983_GUVONWG_OFVH<++_R63_SFJO6EB?Q?KOS.'_WL*_W4W_#07_W8OW'7 XMG_W</VN;U5K@'_[B/_[D7_[F?_[H?UI8Q2F7`R5L4"],H#`G(0<GI0)24`=S XM,`=IX%).D`9Z8!)JX)U0`95B%D"``E`"">(-S(&'8@<8QQ*@?W,`,*B!!#$' XMKH8"D`)I@*6`@".P(M9`'E`!58#^*862``*F@$T@`Y7"#E3`AG`"ZL!(R!D- XM(3NL0`5P!![*'#@#;^`.J(`I,`;JBA,H`W>`3@")NC`$A(/",!E9PPVH`")0 XM$H#"A!@0.=#^X3_]1P*=@$Q0@)TA#<B!"K@#.P-JV'\%`@ED!8VP!"A$!HPH XMJ($G6`&S8!+P'SQQ#`_%**S`)7!.2"`4T!H`0BJDP!7X!-K`'(0)J.$*&L`B XM0`9B@AO@%&*!"-0!,8`I)$1)F!A?0P[L0,<`!QR#'/@71:4-2)0SH`(RX29$ XM#1N0#)2$"J@LU(D;6(%"0`Z<@%%X->B@&A`#>>`BL(LFH%),`J?`@5OP:E@5 XM.>`&PD!6``%6T`Z\@37P5#+%Y3"`XR(9M@@7\$Z6@#WI"(MA#:0!-6``F0"% XML"A*,!5&#*0@!0+#YQ"%;6`)P@5;(5#D`*90`4<`-:P&L9!2MF`8N`,@(`G( XM`6)(!U;@$'@(=*`B*(`AD%!8RDT``41`2P#$4M$&+L2_*`+Y3V&`@"=@%=S` XM)@0!5>"AN(%W4@7(`%!0`*EP"NH.$&`$Z)\;6`-F`#B`!2A`__`)4%@"G\(. XM@,`U0/\,`A@$`4O@=*P!F5!5'@H._`@)86)\1)@H`[/#&V`#)V`&6H%'^`;J XM@$U0`?RP%^H3$G@%#())&`X\(?Z]DZ)B!ZP"3*PG+"5>5`2>@BB:H3U1&&\` XM%\Y`>N(EYH`*Z(@*PU9,`3H`%^B`/P0+3>!"I`%;L0851B\$B)D"#@`(/"@3 XM5F!`-(9K0`58@9^8%16`,AP7@Y$-X$#D<%+>8!BH&L%!!5K`*>`@'$H9V(&5 XM\2R\CK7(#$&`$G@#:"!G1`0G4!(P1E7))ZSA*H"%B!@&2L([L2KY,$&`@"B0 XM!N)`&C`9H%`!/`&+F/\J0A``$O0/&BH.*%`J).*_F!"'4#&P@1<0!>I`&<`H XM8P`$,($\0"$DA%DH"2H@">3#$2@6M(!*L0IB``04%=1@%%0`+;PI:``X@,%T XMXA1)@HI0"G.@!7#&I>(+-4(_"0Z'\`T@Q9)P4EYB4KF$)*$."(S^-P:`0CH$ XM#!5!H"A&^F<13R,TM`H9@SVR@3O@"]L)4!`"9J%J'(9^DA6*8IQPA%NP#*@. XM31$$WE\8:`$-I2+<PY)P!CK"A0`!5N"AZ!-A""2&(3(\C%$!#JB(X*`"@H!! XMJ`,*@`CP1;Q@'N?B0\B*%E$.G$8S8`82RF'HAI#P<U05!8@(54`6*`E78PHT XMC/W'$>7`A=`#%[$/A@&3\0;GHDK1C_?03.)`EW(86T2I.`S>L22^@:A251)$ XM@:P4=[$;CH1X:%(<8E90`50`.%P-*E`0X"/C&(`)H9T<0D`I*%^@8<21H^,, XMY`$6:1X?87KT$B1P1>X$-6`0#&!4T`KOA`FPDXPR!/!"'H`G9^$C&,<6@1?J XMX2;L"S^0IH"`+-`!54"L?">T<AZBAD>I#&DA&?`29&`'/@>3(%4:@F/HC7@R XM#4C#.DD,Z^0;T"=D(@CX1"]A`(6D&SB*1;!2,$@2Z`Q/(41Y)Z62#IS*)!`O XMP"!K^(D3H53>%*>X&!B'1[F.%I$-5,+]IP*:XZCD&FUR*)Z%=:D/VV00^(CU XM!`04`3F@!X"#"_2,J*$FD$"!,@U/0J5$C^J1!#)!+:@0H0!UW`F3DDQ@%>A` XM_UX@IRB!=*`S6L,Z,!%22D(X"8CPG1"!(:`"A`!P")">0SI"!)^@!(FC;*@# XM)I%G^$LF$1&2@!YH`UJP(3Q&+Z$'`"+^*PD8I2&`04XI%BBC5F0<&W,B=LE' XM"!%ZX'Y4"K."%[[$IM@1\$)%H"=G@5X<AHK"'WEE,AR`:2`/U`'L.`5,QBED XM')2Q*+(!%5`&%8-8Z'\9<#'HPT`))RH":4P(#3`C``4K*`=F!1NX&B7R#'R* XM+=@0Y&)$*)%E0$<>!EJ8$$S&O\`"+I%,=,LP$%4H)$-A`^8D#CA'.2`Z@<(3 XM6`,/!4JL!G!I*LWFN&"(V#%Q?D$22`5DBD?,CA[Q)6J!2*D'H$0=@(D4<E-V XMRJ4Q![!CW20)8J&?>$#]B`"'Y560$]:0JOS+K'$6S.+T!"B`X2J:$XV`.5>A XM$J0"7C`?B@4L\%1\IWC4@@KP(:R&A5@\UT`84`'-LPGR#(_R3TR"P,"0].(D XMF(QZT5`D8CZ$)Q#E,4I$.L$1RT#1-`)U@!@.P_<9/S,%SX@*4G-1E`$<"!`3 XMB@U\`4:`#KR3*U`JT`"@]`JT$R.\DR#0`%5B$I@#]`\C,`ZK<@;0@"@\B'.@ XM2;I-URD>UZ9!J((E@6ERPK99&B\$.@F4@Z$Z%@$V0!_GP.1,$/2OG9!#A=%" XM.2?C@)QXH"3\2GI9!"0E'-@*)#`*2-$Q*1M%)92PB@K@5BY$<X@\(P("O!Q& XM]%J.R(;@)=XCXXB+6B%31DHR\#NO0!UPFW03#)X!^;A/(.@(S8\FX3`@`0]9 XM)6MG%!4+_!!]JH`JF@>NZ$N\AQ3"-NZ$'0@F7605/`D:T@"FR?0X)M<F0,0( XM#R$[EDLYRB*E!#"TE"S2``Y`6.$;YX#:!`L(,`W``>!P%=W`+%62"+1W%L53 XM2B;3"87X'%;A5*H3>^(`ZTG7U"@9@8M6C7]!3^C`7:2#;@!H1LLY$#Q98!B0 XMI2(2*>J$Y\E0^L5)>8SUCYY(PSZY0J'$<]`(3'`,$-`CL#9W@BZM`Y3T2;33 XMJ!DJ2295(8Z<0O])QS`P%<'I7>2';(!9Y,.6R403BB/4B@_E5`[2G=`,+85@ XMG(N<`E,6B,/H#$&C_KL0"F"A_L2L\#N;@%L@H%,`.-0)TG@&;JEX/)&`(0T\ XM5*W1"T<"SV"GW_2A3$#Z5P)+X_[#@>_$(H++1:@//:I>Z8&L4UR:QS!!)\2" XM%4`-'/.IG%1EN4L5`$K<"352+-A,.M`"?&$+((D&H4#6U/RH,K/#23@,?M0S XMMM,IJ0F-BBA=BE+5G]Q%))`'DB0X_1>N4PJP2+7J5$\'ISB8OW$DT%0FV`)Z XMX4[@)Q.T#D0'EB(O*P(3=)]*\CQ>Q[-H%F2I07@#]+2FL@$[<%)6A$:QB&+! XMJNP$)VD5?24$K),[8296C/.H4CRI55D-,[&6'H8BF`;*:D0%"AX%,+2!JWH$ XM,6(]<0.B,Z@`T.`(46IJ&F@!.!"1/D<@24]:*C^%)Z82GE`(=O(/G\`9\`DQ XM@51<5H@P0BUBU8`G@A4N5`0ZN!KTJ0(HKBT%7/)'C>!1XV4CW"BF89_BP(B0 XM+;.#3]`H!8$,3$"Q@!'#8F#XFJ6BGW*$HL@B`N+:?"BS,@P4Q7@A)P#J&RT# XMHE`LT,&$<ER9@`LTJ;Z4I>B3A``DI\!).)=6H5(F5)?2!'P":G2?!K`YX@7( XMJB!APE5DI0"6-*+/@D`W%4;&;!$)!294#8T)4R=E;M4(22"WYM.#Z@LC@F:= XMJ=VU4RH`(U`J8BR=?*I2HGA*"/<:0%NL&\B8Z41OZA.(J`9\Z%+I*JGT`+(3 XMM?(^R24VO`KKD0ENB:L@'QFL/?&4(K5J3,JS2B'`K$MY"='!#``%![M%W:1L XM>"<3`D+"0NFX"%U@U3B9U;"U5H1/25DMBI(,D@GB+F16_YD'.FL8F*\:4`&( XM2OJH!UHFNFR`))`#@D$N&37S(;CTDD4SD?+"A?(I9R9P.)7_4GSR1R\A##$B XM1E`JXG%%^+]?>AE3(41IK&\VI^34C((`,X4BM;7ZCSLRE/S8)%F*2:FIL):> XM=,B6"0%Q;8'XC1<B.E`(%4`62ZM1R93J<2M<UWVX(BS*=?V,;M.!;L(=6!1S XMP@@U`UZBJ&+$LCAC+V,0P']T0`2NQZD*:R$G<@`*1!;6[L*:^$_:P*PXA"*2 XMOBI".3!C861">0XMT8A*B*XR)[?B1P0,=T"JHH:\T&EOZF%PF6!1>E),ZSE1 XM%,:8>(G(,2XT0(NX6E.C`,R!:?7."DRE$%4P"L6=`FTU4WS`=PL<$\I+K"@8 XMX9HVR*2(4>0`_8NR<F#7$M$6\5#^Y[N]'*LRG6`$#\L+W2V\E;<D<)!"1K!P XM#\LB'7"1"@*K`(^AL542QN-P	A<H@5BE%6-(?&<"QJ!0V4A\'25A3&6X$2 XMID.NJ(XK45=:!UZ!'3&#K\P.O^(;TN[:)2R[PV<DEJS"6(H&;O"[;"5YQ(#+ XM8@-Z10YP'C/`><@`S8+Q.%F',7))[]L,GD;5P)R==*)Z<4<V(1^29?MJ6-1S XM,TVI\SJE]")BQ$Y&\KQQQ_%5M9FWC%1OE+E=2V]B>1K4='LCFNRE-0-)D>R6 XMJ$?"6ASGX5J+#_.-/3&'R'YO@!F^EC?=!)GFB^MRU+(12YH7%?66&F3R=A-> XMBKYJAF8%F[<$K%#=8^-[7*:00!]DY&#DCNNRO?HMSK7?R:3S&I7PI3A;SU$1 XMG0!R8=1,ZD4W3LST<CN(TW;,C`"V>K%(?+4>8\-ADM>%*TT%JOQ$7T[6N?93 XMNPL?6&X!2]_8T^O,F+BZ7X8(P*DXB@3@5)5[`4.T+LU4MJ+WS`;32](D9$99 XM.:IG8X(YKW"Y.E:HSSW@]:)!Q-.!$[^I[X/P']:EJC`/(6E4(+CWECM6):$\ XM5-N[+9G.])X26=/!B(V&`U^6A@6IO!T,@0<>S?)&".0(+9/M]'6P71V[(U'X XMYA$:'B.[W%XTN3`,[O-^C^R$[F974G)=G,AP/:Y04HC@3VUJ<VXN5(V7<J2D XMG-ZD\S;]8Q6=W[\%I$14(D947BE=?=](G$D:E`,>=:"FA6PGE81]N["A"E41 XMK>8EJ!,FE;C;\:M-GBI1(:HN=:>T$73#+BPXYW4\1P>(N11[8L7Z%T'I8&W2 XM>B%P+5(R@J83DZMH]4@P$.EE09NWO#&?@'>)/PPQ3D\JR=3HJ1CTBN&.7P)O XMM9AHK6*2=8S]6[5+;1@'=2VY(P3H6`B?`TS@JL7IJ7#,A:TQ]-W%W\;#33S@ XMDUU(CW#B7E`KUM7>&0RW#@SGPV5$.!D1'I5C[6S.W2M&<^N":"[7QX[A,?M= XM>>;*XQWD\W'%]IG'4D]W;C"ILXVWX@`/H9EJ2"]9\9#@%,8JTR3Z>G_L(SL> XM9GQOQHL>(B(JSLD]'M.VS&0,2'Y>F1=W/3)8`[7(GKFBR67+P50RENQ`PMC` XM$4MM)P!W9%YVQ88R!`XVH";D&9K#E<Z\&%`N:_G7$,_?17S2>I276\HC2+W0 XMX\IUC*#O^AA(`*;LV1[SVX^U<KB2OW;(CPF[K"R!6]=%Z\`_V>4YWV.\M7*R XMP6K&3DKR<9VQ;+V`CU\>>^\ED;&^M=Q]%]P\!L:>K[X,O*K<WO!42FHP]6X? XMYSH/G._<CQHN9H>.T%PNS2R#45Z]P[TB"S2[Y1YWFA^R:%9UA&<Q#['7['Z\ XMS*T"=`3YN<WFUQR$,;.^6UJRV;@X&QP5B[D,;&['5KFR$;&]O%X"B"-:/VD8 XM_4XBB3R)EYH#`B:;&#D+H"?,\<!>Z$/)+*\ZXZ3OG)$M'_T@S\PYHS4LGZSN XM3O';(S&"6?$A/B43GP\SO*O/O4\PV^?[7.#RLY_C?=N/]`7HRS>@D]]:?`/M XM[R>&PREP!Q`L1.@+\<\D[`0&*07SWWJL@1`%!^I`'A@8V*L1=`-(4&$LP9+P XMH'TI%-2!]\]"9]H.^`%3-!5LFB=P#P9&%_T2@R$6+`BYL$*_Z'W8#Q/$!TR* XM_9$$6L-X,6V+P$Z`CWVA')[#=$@OF"(%?(?4%ETF!&7A"F&A+-31+[$/<D$+ XMVW-?HCRDAUO:"TK4($D0#>(+0(AQ0@DRZ74($U/B2FR)Q+)`4,;%8!DQ(YW6 XMC(PAY"K'_>@&!&N6#)DU!32*1EL)!,N"G$@`9!$BG,6&2!<_A1OHA3WRZ?I' XMU#@<@$0G]*$)8CTF@+](,5Y`3$P0,U$E5@&6>$WCM$:IN<+Q!##*>>@H36&F XM.)?P43X":AC[)UWU5;BOF56PG@[5*`77X4L<CP37(#Q,K+L>U8E$S([;\27& XMR/Y((SG%C)Z"ZS%-T@D<V"/UJID4"R=4?&[/53U.^P*A;*SZ#QV6@16A.%U* XM`D"4:$!1@@6&J4.UZ5+XD#ER1S)/UB`_Y808S96!,0A8ZZ+J"*=HL)P"P_)! XMNX3L<!FUH\UU*6&U(U)-**@"'DH:(`-5XQA:2VSY$U?$-VT23&!F3MNIBC.= XMXX=L**/#+!X!>:)1`";]X]8".V[^R>/I4DRF3C@#*1,@LDR)`C/I'UA(G(O3 XM>BK&V9D\;2=VE(<DFG8.0^H(/^FU`Y433#"9FD5#2@*?0/MDH$:;FT;//TH] XMKX(*<']L(`_<`7_R+_AA\62$C_!]YED$S:^5`&HXFF<A')[0%*H4E`4+=:'U XM#VC;1A!@1_%HFCS:)=!M-E&5>K>YZ2"%M].6:2/2:\HC&:DCE9B@5*5ZV9<( XM3:4I)^S;/&.8`DVDR%/#H*5HJ),4<LL)C<H&.&HG?(?7]%=+!?Y(N0LN0!6H XM77:4BH6BDE)7JC/]BI&;J,+:</D!?>JU]HP/6Q2B@1?@4=7I^PP"]$\,U->R XM^@$7=]1MJTAUF9[5ERA7=X):;9G`P:4B[2TK"<5IOX:`RWMALDC1V@5AMQ,D XMT0^%L2H%3P$8>#1O-8M'-5,4S)S;-*]I<'7=+55JGTF1[3:OJ4M)*CAPH+97 XM37ASU>G)[G]9`U-BE0N[(R\C+=RP!4+%!@<6NP1<+(?EC_BO6G-.,R@Q$T0+ XM(+.?LC6&PP'H!J)*G-:RB'6@>MDVNZ/AK'2HM<U6V$Y5/$LK(LH'I">SU*5D XM[-5`;<\VIBT0&!#6ZE3/V`1_;0I?C^"V)(C;<T)NX0(:.+?IE@32PEG**2HE XM$T>>W_5-CM"S<&^9[:WECG96@ZY<__<8M88'U9)&7*.@VVO-HX?#R8VX13PO XM!($QSJ_OH&SPH#17_P$%F$L&9&ZDKKG"%H)B46J=)L_"PG2.@$'C0L@>V7$/ XMH4ODL$N7OV:*.QYO#[:<WKK[XF!X7:\"=B5'6"$3E@-S7`S5>':-QG\P@FQ% XM9#@)N!)W40?*H"M9@F7<79A!.<I$7>"[L`$X@/+0X29TAV$1O$`#D@L/3R[+ XM`T3H2">6A;(XCV'.*Z;'29[+?!G^*G,80O>0N9Q:YM`\A!3DWIO,H[DUG^9L XM^9E;\VV^`BB=B^.\Q)>;=UZ9/*:T^>81Y^-\N<%><XZ+T3G?(><Q#O,&)W?> XMP+SY-Z\^[9R>TQS[=GDWECY_Y^K\GOO>?\YY]'%XB<X#G:!?'7O^>QHS.%?H XM`#VU-?0S;,XA>D07R^1K]O27Q'SW+'K]8E@=+$W-(F0LJ&211R_HG'E5C?0) XM'+P2^DE7,0QK#FFMS[2:7?I+US"TB2@KWX3NFGO.3;_H;3D]YW/7C*`Z#!#6 XMYS%](@/DOKR/?SI*Q^B].<FT<Z+NU(O75&(VZ3E>B;JJ;M4]\,_;6+'7:7'U XMAT-_%(Q2GTO?;<J-=:"NT2-:IDG*+P8QKW5T`W1$,$O/7Q>-`FO>'U1\YWHW XM?S,U**X7&ORKTOVZL:GK)-@-LYS<4K0,^V$'[-_'%&6:S0SG$)F=<NS/A>S@ XMK[/.?@-0?_F_$/VA9W9_3H6C.O-CYX:]\DJ7ULOA.#M.GL/%JJCW&/T"VI5S XM/F<NV(7).?1IK(&I[UR7Z]`EMU.UW?Z\?#N'J>WH?*\'=[FNVEF=!L;L%!TA XM1Y><;HC)#'1GQB9]M8MEPBQ*=`X!)K_&5[9_+^F.7ZXZ=\_N1HO_7G?;+MJG XM>TI'8>'=@:UW</?8Z7*XZ<03N/O,=TY'U^U[_'GN^SW^MG?MCM<A7D[#/.U= XMO4LYBT[>RWO^VE/`Y<?0H2!V7T9>^4WN#7ZZ;+#IDMU">SG/\+C=WBAX!:_: XM.CP]M^D"OK+[]OQAGY;P;-\@V@JY\YT!S]U5/(JW3Y`YOP`R#$_CH[N-'_!K XM:*.W+?L2VF/OAR?M"60J'77>0^+SBXR/YT9>H%=T"1+DK3MS>_+%2YX#N>9^ XM6ZI\@']S-`?$2_/FK&'4>X7?YN2GQ,QXX)[DV^]^-_*W??UJ>0%"FU*7]^+J XM<'[.R_EJKCZH^XYW\LJ<9RGW#\?E^[P9>R$SY_^N)A7CK@;[D>?SU.GAQ"?P XM3NC=_*./\BS^`(OW4\28CB^AJ?13WM#+F*:$0@IQEB_-ZUS/9_KWOI";4_V2 XM2%+>I3=AXR6!ECFLO_28_J^;L15OG,3<P[GUN+Z]XWB6SL4`4@.KP%L^UZ_Z XM:-S8A0RU*4]JWBL9&TW/Z'N\KL_U8EW=W!TS_'B"SPD+]ETJ>;ES\R;@00]* XMQG9?'<8D86JNVJT]_"7WT1W8:-]GU)'\\#/_]MF<SQ-T\[;N=8VOS_'P78B! XM^CB_[V6<7A[,,#C%)V!M?O!-WEB']PD?]-RO\,%CMO!#QWC_7M5[=(B/@"L/ XM0W+TU7?:N_N"GUPT3#."1Q>_T,<XS%Y!)(Y(-UD=?<L;]I9OA_$]O_LVMYW- XM3_2F[M=I_N=I439?SL`/\:ORS?K(/^G+!B,CHB3%D%AP;]+*"G^^VX]>;X8G XM/K5W:%%_O9^1Z3+ZBHS.G^<]B]CW?!3OS"'[^R#Z*;^T:WWW`H1-B"_JQV`= XMG[-W@N_4O4BRG^D#V:QG=ZR_XAD,.K?[D0HJ3Q-AK'L73',7\W/Y[]-]`9_N XM`Q)@%^M?GZ*/^\5_L%B5[#U9V)W=3_ZC;XSVGM82\]F^M2M^$'+F^WI.MOP3 XM"3`W7\S'\Z.Y$F'W[GBOUV-\OI%%ODP?[46?VD$HS4OX'3_""?507MDO^]`$ XM\;9SZ<6\Y8N\"_]43_:%.W&W]*9=L1LYX(_K=8MP+\Y7OW3M9^K/_`E^@';M XMR)^TA7F5G]N?LLG:R/PJI;/Z:@_I!;U&3SO2;/LC^W1CL/[+U4-XFV[N_RX< XMC)>Q/2L^5-*?NL/_?6:4GVEFJ)AV`N``R(79+^D*P,+K1&;;W7AG^HAV2LFQ XM@P":*\?>\:<`2'P"BP4HU!E_QYX<5D`P@+G(L2/DX#NJEV!'00@Q%:`)"./L XM?]'(8T;_R70K("56`KJ`<1BJY]^]+B&@K+$!4B`XX"V&ZG4[?TX0V'Y4*#<$ XM*6$$9BY#H$YW:2R!1,N0H@`T@%`@$[C^[7S/114(HB@`6B"O<O6I&%W@?\(% XMAH'_"/27;@039&`/,@:F@;=.5D=S!!-3RJY2!:Z!;&#^=_F]@7#@+R$'0H%T XM8!WXFT%VZ,8JA@:R@7V@'[CEO'_&QA&XI<0L6F`A:`B.)TB>AA&DB`]DH"/X XM"-J!GAT>J`B^*EV@)7@)_F9@W\/QME""C>`GZ*FH7J,@*<@'FH(`8.<EJJB" XM1J`GR`K"9M_+*P@+XH"RX"R8Y]2"MB`G&`2N/YW1'?0Y1!3GQ/J#H*T![D\; XM<`'E34O6B:8`$$(&P:LT3GP)"E"6%!/L2Z10$30<@&@JA=OE48T$;(!3)1-D XM3VL0&]`+B8,F04G1<Z$3#A9T]*>)0%C!PL`$=7`9D'5T"K5",I%,D%'9$YO0 XMN@4(-4UQ`1TP)AA+*T*!H*2)!L11FD:W/6GP4"JD&K4`&1NG(!FQ2O=@FU83 XM\&@)D4;`N@$&-D%5X26=0G?!,40+G0'653&HKT5"X)"D=0U51W'1*?0Y1'&R XMP1P0$X1Q`5%'F&HU:'+`JG`%B$BK@9(4_\A2>D`]V`YB"M]5UC83Y@4`U345 XM$1`!$!)FY1%>!0_%[Q1/0`<YD'0D#-D!W%:E<`9D"MP6(Z0P'%`>$4@D$M5) XMC=9O(%+<0^01?X5.)!4=TE8X9ZU1&5%&.!K9$\"!I)514$56D;[FJ$4$M)!! XM4#211*550`$A@052@&/06D4$1]4E]")Y5'1`T?0$O#]P@1[P765J$<%:U!:] XM125;1`$=*`36D)?@<8%,$!#3Q1-8%4YA1%0OR%5;0411'=5%CUH8$$:51II" XM2V@D\1/\E8\%46`$IY$H5*EI!EJ`>F0KQ#\7Q<051M4$J,%H]!N8`=!07(!C XM/6H1A9=$5D!)CD'6!!8<2`H3/^$9?@V2UL4T3L@_!1*W]1'>1?^11>0+"0R! XMDI<@%AAK#]PAM#;95A=3IJ!1-$!;874TLH%%7N$&!!:YAAQ2I8#_S'&N40GT XM'$$46%2!D!_J%+10B#0B101&@+:4%@44YX0"I!OM2)S"/I0&H$9DP#O1#4U1 XM.)!MQ1&\6N>@9_6P38-`4R`D:6ELR1.#91-4!/W$66!1V%:B$&A0-.E+:='^ XM`Q-J<;00E%`@\$.R03=X#HI*ZY5_&#@10=W61>$:\D/Z1-$TLO%'HA`-U!F( XM0/D0UX``,4FN(10E10EPA%<DQSA,<E"#72%V87)CA29G5G1RI,&]I1R$<F[% XM*`=W20FFW%Q!=Z5RJ('K\#+H%7D73]!7&`UB8H&$.]1RA47/T#L,7KI<8T$G XM)@=VXB^G>.$`P4+T0,Q!#S9`TO=G&!+'#'%!X2@I2<D?P2C^>>S?R-*3>`$^ XM'Q'Q2C2*:(BF""F2$DW$IGCGV7Z68I&2*7J*:DRY(JQ\BJ)&7"/%>'H[RZ5X XM*@X<D43<XGNXBDJ*I"@JCHJC5],B*_)E<8V^L;YP)K3BIQ@J3HKK3?#G*YJ* XMR5RP^'K$&Q1&L9@KXHJM(AW#V\`H[<NOV"R^$CE+^D#9Z(JLXF*";:PE00P- XMHRV:<Z3&\[&JW(J82+CH+H**(XRYR"Q.>:XBIYA=4#CMXKL8+EYDC1^^\BN> XM?Q,>)B+4"#>+HKX8GPPS`>!6\B_J><$BP;-O[(M.C?Y7*@X2&Z#K=8[,$0XC XMM7@P$C3,31DC*PZ,"5V[:"^2*^GBQOC#P'[+(L4(,AIY(N->)BT:BR=CV:>L XM8'\'Q,>HIE0;&.-99W)`C'O&HN?C%6;/GS9A,YH73%],HK4<BP:CSUC3#7I, XM':$Q-")Y5A_>ARHFC;5>T$AZ*8T7X&QA*D8P#&#"N$IHC%2CE0/9+2E5HRS2 XM8"R,U@WX\LT<C?DBU=CON6&CF'*29PQA0N.\^%M<&"W*6P<V)HWY7L[#[9&` XME8^`P2P:+BQ@;_8PYHH(7X'2\,TA5X9Q$HF-8EO'DJ+Z)3Y;8](C?!B-Q811 XMPUTP)IB(Z3>`S1T<!,ACJKPF-J#@$?^Q&[+BZ:?T.70%HR/!E.@1><K/2/;9 XM@-3&VV@Z#AN5(V3CC$A[^E_K2"Y"*ES>__!CU'9E(^VH]*41E:/XYYN@9#%( XMZD*!D!HU!+17W`U^C1^MU_!%8'@CJY@\NGGF!]%CT6B.A@2W4X25=&N.BX>" XML8!8HXJAI&R/%9C?\ZZ`??GBM,'MP!Y%3?]ALIP;Z:/UN.XQ)LDC>&-",&3! XMQTN&WWP<X\JD,3E*)E@>IW<]XC?A8O\X_^T^4ATN@HA8'=%,,U9OF##8SM_( XM.Z*/VB/%F##Z'/L*>X$_."<O")\#U\EARZ/<F#_JCQPDI)@[5BY$1Z%QPGPE XM#L\0T8-Q>W=8NG%^Z(OL(ZQWCFTC^(U!1IE<CMO>OV?RO8L]I`SFGM$B84@6 XM4G.T=+^?XBBF'!V03JO70'J0\I\,$NPD?P*?$QAWY!DY9,@!;&1F"J0+B45& XM9L%*T5-N#!^N&$+FS121Z(<&B?\-/&KC^GA&WB5K(U<2\24@7MD`\FG$=Y`C XM.8)?D)%5!^VXEB21$@DJ,D/\CUV?G*%<`(Y@I!%)2!Z/=F1WL0$N8]A?"CGX XMY&"38WMG\^D7;9@AR3]2C&5'LH*1>3P19.^70'XOWD=S8C=^>JDDT%A^/#C= XM77>'>;@C*R0]ID(:%XO)@7,N_F%$('J1BL`7909EAWK-CHECL;'2J8UUY"%Y XMX+R2M8L*J+RH,W/':2>9O"53I'*S>V20G^(S24H.%U!'LD'RD"O"I.=BBCR2 XM\H?EQ6$4CR&=!('.X#@<H!D)86"*;]V1TV)\@*3?-.*BO!&76<U"21H875^$ XM0]FD-2VD:R)H_)+"8WO"D00^S4_W2+N<8`[9^_)):AD;3B`YZ<DB"&4D:)AL XM&:D(]F);W!IHF3')N=PI;DD`Z>RQBK%=1JE1NA(TX_+%K#AW9AG@6,=8D::> XMD*=U0),@'_BGM]B3PU<M>3[`'Q<EU[>:R)'MY!>!4^:4M<X?!H.8?Z)D#GE2 XM$I7;%Z2!2"*5>`D,^<%$+.@?<.?J%8YARNPR4TJ59V2QDE-Z&U^&N")V9",6 XMC1,"2;HE9>-$2>]!9;>'J1B'.5_2H\/276`OT$TSV4R2CO9,HZ.;&("RXFE2 XM3!9F8%@<<=IU*Y')^-A.HA\2I$'93J8YRX6N$I3(E2<@!]-)(AMWF=O!A5PY XMG=Y.8K(<.HC*9$DQ+CE0#'?#=7PNX4E)TI^4(Q?(KA)8DI8ART"&>WF6=&,L XMD4,B9&@&D2):6I*72\C24L)VWR.,4K=\?%^?HK);8HJ])>QSNOAE<",<)JJT XM'Z]E83+903@!76<6I$"7E&5QTOWH>[T@.))=:BIY3\L2X6$N&,L@\5W"EK'E XM.)E5WGIZ'I`27:*7L>76X:S\ENZ.JFCC?"CO)7]#PSR.^"1P!]3<E_CE>9DU XMLCFEI#Z)61:!9\EY67SP/@F*PA*@N)<*)@18W3PC,L_]D8T=EWU@%DGJ*';` XMRX6)78Z6/LAVZ8F\$&U*?JEA_CVI2\8#HIB8$J;88V$:*OFE*D%?EC[TBX>Y XMBT28)V;:TV':F#<FB!F(B9A8AHJY8BJ8ZP>0Z4;\$"4FD>F9`9GWEP$X9/J8 XM5N!V:5T^F;QE&RAE.ID_2HRY[;28,8]U<:AHF5MFCMEE>IDPII*IE]26I<^4 XM264BEZ<@I??WJ)D!)I1)M?27-(AZZ:H@F'%FE6D"?I!37M,"9^:9;&802-KT XM&B@@EIEEFIG?CEHC9((I=V95L@?^)V#FG.F!@21B)F>6!Y:9<B8.J&BZ+'QF XM@7EI)IF9IJ8ITZ0MG>;*X9S!@8_F*Q)INH"6(R8X8")[>J`J=FB&FD:@U\AC XM%B*EC*!!VV1[@B"FJ6>F@9Z.H5FPO!GW5[3W])DBNJ6O&6C6@7&/L`FBL#JE XM"((1V_0>X%P0N&J&@6N+)^("2G7<A^4UX9!^8>"U^0A"9D'@X9*A5!\XRZ)I XM!(J;GZ"ZN0128!R='\ANZH+`IHV1H;B;4."\26\"F]3FG[D$ZIO[)AEX0L@/ XMR(DA"'`&G`(G>O((RHK_4@]T#NY&5P%6L%!X5+V1)B3`!0'O4;+D&EI8@,%P XM<`$1;/9/=B##,0KXS["U%>!50)/$R4\@4=#!#951(55C@!^W5/Q29M(SZ"F` XM0WT:>]40/6R:`H94/!U"CD&+\`4!G6Z0$)`'>'`G9SAD="*=2P$--2Z<;HX! XM-J1<B4L6&QN5&A5,"T40,$&%`4!!$"`&N%7P!%*E<@X!+A#7"0RY1U*:1@$K XM/`1NU&@T%Q%L2U%5,2GD`6V0,HAQ_D0:I[&D#J&()H,1%1%,1_K/:M`U^49! XMEFN8$95+%U6]P!C:B+!5IG8P$4A<)WZ8('A<!U,3T&CY<5&<_H,-<4ELU:]T XM(;!%]<)C2'?F!&X0950C/4ZPD$6Q4,0_;4`@QT:]`1\0%1`<S%?>X1C0:!E6 XMS])R5;+9GC^7,*A"500<T"4T(2J##H%Z]$19G"WG[X9\2ELCD4H10,D)BV<> XMT'I^36D07:@,QA.!077T+T$'$=7P*2$<%?N2G,"A/131P<&$!,"<F*>0)"\] XM!"M7Y+D/F0P!U40P$CI07%)4('R:1?;GA`5RJ5!Q`5=(&M4!SX&CX`8Y!,^1 XMU4:`%EP#$TZ`'W"="<"XL#'M207B8F`CEDD*4`G4!C1:O5`"T(`:0!3GSUD1 XM%(83E/?93*50&D4(>C!96+9G=61KR7)B01%0"5T%)6=QM2(41!'!$)4NR5I` XM)U*$@^8$^Z<_Y!OQ3#T2D[`>96Q96]7P&]0+E%'6<&P-0"SH$4H0IEMNT/9) XM$C0$&9-KZ!W9GD1G1"!ZP@I<$O"V7A%RBM-,H'4J3G=15!!=Q4,]$-#D`O%H XMJM;"15@)!U*:!KJ!`E990T5@K&D-$=P=*C[)H0XH<&C(F00;*!_J*=V>;T&< XML`,1HD>35'4ZF)T`&Y<E+'%9&,)WE0=4"A$!652!DD9X0`5J><8+;E!1H130 XM";P01"%Q\DFCJ!;P&YP!JP&/UA/>4!N0`NI]#D!;4,F)(^8$W>!^],810*:: XM1T6)*E>D%KJD@3J@'L5M"!_YAYB"&V0`)0$)12SD!F$!I5%Z-`?,H4N``HI4 XMN010@NKY??Y<J59.T1'T2(8<@C8ZR`DIVG#PBU9#`I8^42"%`7/H$)`'Q)P4 XM'#0:R/F=\9#X5'HR6"DG0\$@X3_CZ&18"2E`^6@YA!/@HW/H`$0G#`=511[` XM".&C#JB%A0WEHU1`60@H-5I@T!P:%8@!-ALZ.H?&/X[4,PJ-EH690CYZ?AX) XM7]`SZH`>`9R31>J`2HGQ`J;4(YT%A]04Q?_X0I[#1'`'=6Z)I]*U=DX$YZ=2 XM`(?"1UK78F$E<A5?EY9XR54.76+9Q<D)"6A%`"H=S$5DHMME)L85:>+<Q3JH XM<BY#7K%7R(E[E]&@E$X'=^+.<,OMB;F<3[K+D09;*5,J*&X(D\5*D);F`,T# XML#`][)O!G^QH9,(Z<*GF%UQ6FLY/+LALBHT6I$XYEU(0=6F--^?]I9-.8)KX XM97N$J;)AF.X76-^K*6+JI6Q@K]B-):;^Q6+:-X9UE.EU89GRI9-I9GID;*9R XM*6;JF48H;F-IFDL2=WAI7FJ:KJ90Y0,XFBH;K"EK&NN]IK!I;&J:SJ:T*:QC XMF]ZFN&EN&F+LIJ6I9.J;3CK`J=OH:'"9V^446)SRC2M?:OJ8+J<&XYXWG#HQ XMT*F[".0@I]R/<EJ=UI3]W'3*BVVGX:)TZIWZ%^`I=WKWC:?717G:Z<V`Z"EU XMJIZVILIB>WI==!@+Y*DGGSHQZB./E_RY+X\I?:J?W@\S9G\*Z#&/\-=;EIQ> XM=P'&?3J?JA@SQY)GEZ:5L.2!BMDEJ`IJB!%>/'D5Q[QC2V*GW4_%:'%P'C.' XM[U>A1BCN#4$9`GIC(ZH9H8*!'R9JF(=LR*=,V&5ZW#&HEU^*:J$*IIP?D[*2 XM.*>$Z?%W0W"F!:"/QZ-FIJ`/CAJD+HTVJE02FBY_0NJ1DZ1.ET%$BJ?Q\:5> XM8YK)UUP12.J1:KN4FD]JE"HQYG[%%W(1[7"IM*F'^D%2>D;J8->E)A%>)+JH XMR:A_:^J/.F#&,4!`E<'*F'_;F?2C`*0TZH7D<M/\EM)8G'I#E&0S!ED3`0JJ XMY4.%$TV0-33C]^7%1#][JKUAJ'I]'&IVJJ@NJD[-H5JI4C^1:I_J@3014@VV XMH5X\DC[JB-JIGCCL@RGQIGI]$&79P:E>JIAJJF'(8'01I8)ZJFH37PT\\\-D XMDCT*8[>F/C$3S`_SM_1^]RFPZLCP&3R,CB.=#*EY:0KS/J@PVXP*XT(D%WWD XMKUJ$I*I\2S7AR%25I:I\>DE*JKFJM'IXB)#B7V):,8*K68VX.JWB7ILJ@$9G XMSC?BJN$RV,@Q7:J'NL`('6T,R5&O\JF@QD3#AH@T2:J9"J[>JX3-M0''%&6Y XMZ9XZ,JIDL.KLA:U:&T]J]T"H]JO^JK9*WU2LMBK<49/UJ=GJL1JGEBD;Z[J2 XMK5JL01FBFOD4JAVK'-.P6F08J\F:FFT9&VO)BKB4+2MKBNJ[\"TA:RW#1LBL XM%!FB>K/2JP8K'7&Q`JP\3U@CMLBJ?FK+JM`<BR.KRYI[P:P93-.ZLY:,4JO3 XM^K(N,#59Q7IR((T\:S(Q82XU`PS2"DM8?"RKLXC0M#1XC,\JJ9:M;HU/,]!$ XMK5VKLL.?%2$B32CCMDHQ0FO-ZJV>'D%9*./#1(I1*ZY*U$RG`,W9.DP@C<BB XMSNJONC%QJV6IR]@U4LVG"C;JJG9J4=:X>JJECUVS9Q0Q=NODRKCBK.--+3.R XM*JU9C'^FL?:MTTO)^$J(,^KJLZI%7*ZNJX!FQ1BNAX3G6KH.KA:,5[-J%&=Z XMJZ^3VVRNK6M3!K:H&NIJLKJT%C)$Z[B*^!@WR:OKFKI6KFQ$JLJV;AL6S/(* XMS,"NN:LVP['V,O?&P8K[9#*DJ_"8:J"MV^NLBJVN/E$(1V.3O:Y0ZQQ#OKXT XMUFOZVKH*KHC+^\IQN*_WJS\SO\ZMDTB=NK\.-0U&Y[JJTC7S3>PSB301_NL< XMMD:,'-?JU-K1**H0Z],C^00<9&NAZD+@K_6K!`O."#:&:_5JX1"PA^L`J[R" XML/SK/</16!%M:P2[O;*L\"KC^JR*@+YKWL)N$*]^ZCZSOHZNX>M<8TP^/QC. XM_XJP#B`H;!U!3I:PU<M$4\3,KJK&3$>L&JVMC15S;_BP1D^!UIV).U)L_8&I XM9J<XCZIZJ4*Q.JL!:_2(JB$L%HOSA*HM:PXKN[(\`<?#VKN^/54LU@K&4F1F XM+('V^0!\]R0<R\#N?AE-&QL!<G2GQMA3M9)E3"R&DZ6$JSDK=[/$-BUZ;#5A XMJ*2K':SI&MS@*@)L(5M8TC2)[*^3:@Z;NDJ4`JH:J.M,)?L_:&(`"];26C:K XM2XT)F&KBL=",)WL_L('V2KL*E^DR?B`G*_15*C2-'QB@LCRJ[/EP":(@;\;" XM4L;LF[7+J'G+FBXT#L+90GQZW1[8FK<8L[%FYX+>5++,;#/KS`8W;>PC%LUJ XM8E&9*UN7T#O7["28_.`KW6S[492<L;I..+L)QJ_EK#F[C1T^5:PZ.\JRL]RL XM.[O.LK'QK#M+IE8W[:P\FP-^K_:*/KO/XCW5K#_[KE*S]:P^VR]&L2.+/NN8 XM/K,)K3R[T.*S.XM#>\]JLRQ)01O.WK.!K$5[S6*T&:U&:\P^M!!M1*O.<K3* XM;#%[J-R"TPZSBLC*L#_*KY-H#K0$K4E;7KJT#B!(&](VM&$F$7C.B:?T+$Z; XMTYJ2?&Q^@=!YL3ZM-"N%;1KG*4"[S!JU$2HV(IQ>)M5++FN7#7S>R#`[>4BU XMRQ@RV:9.LR,+5DN\='^Q7U>K^H![IN8A6Y!XM5/M9>J.4;1*&>GS\5B-,&01 XMYLO>/MR72AOZL;7:F5N;S/9G,>1<:[4Z/)>'O8+6XCTVK?9#DMY1[1(OY1HF XM`6NG0=6XG02(EN]F'S)-=%OY5!2]AH\:9'NZM45#(CZ4#P57/,%Y)`HE5"#` XM[I1#Z5'[8%\5&BQ5+<`^^E<5%4P5D+0&L4C"T7<56-E6"5&GU+SA0#J%&`04 XMP*+D)Z+55Z52BM5#85N%5C82;,0B011V(4NA!W@*JF@+X!$I!%'!;Q5<*0!) XM@$Y:*>Q#PQ6B15E!5ND0N991]!,1%W:K(B@$Y16W]%\U6`]67<AQLA0%7!1G XMR/%'65)+81XFB?1$@C4:VEQKP',P+&E9_)N6-2G=4JXAV"1CI5(_5H(09(D% XM^AK-=`&!4UG!3E%E,51"IU;T5]5.G=L:X'+Y4"`<EW7<TE%D`F74$Z92HI+X XMF69=6R]%6#0IA7"NX0''(LV(2Y:>E0<@6G*`HL6C:4&G$&T8<<T!/Z*)2UF% XM44712.`:0DG(H#UQ1>D4VI!FR!6Z<2(%'2=S,13QDLXE)UP!>EO"M$\<7:B3 XM%*5T@4Z*W&_K"WE$+,5P*"M!`49AN:40``YB:=?E.%!R0FG$P"6279G#4<HY XMO`;!@7;PRXERI0.:F#JD#'475?HZL'*RPRN'.!!L7:DMIR<B%F&IX#"6TKF$ XM[EFZ>$$/T</S(.E&7@Q=K/?E+7?5)5BKU7YYE>Y.2Y1=NNZ=1%?70GV@+NY' XMJ]*`.E]<QY*5NLL%2,=)LGFLWYBS][&Z5!Z<2MJ%)0$/S$?KCGE07;`)B*"F XMNRXS9P8F,N%DTPC?!+O"[@XX[(J5FRZKF]0-F*T?"Z*E@KK/KAL8[0*,.>JE XM>]4AM4`M'>M/(KNX1:3G,OZZ40FX:_W5DVZ=HY?6K6?F;I>'[E)E>-^ZRS2V XMNZ)>/3;JCJE3F5X7^9F[FEU#)TU2+/8F($CO#G\@7N@%]/BJ*V6[V^\:?>++ XMY]=)VH\#;[+KSVESTV4F&-1.J'V?N\LT3A-V9J,7^F6\"AV8JO'>M<4NATG2 XM-;LO'<D;XJF\.1\@"/*F=HA?N(OX87KFQ<N+H.Z[(V_E5>CA?.TN(KCR*KL6 XM8\1;MQ25IFZ!Y_2(?<%NS/OS&KT)SJP+[HJ\K>X5^/0)O0!&?;?'ZGY5"-4; XM_\%T.^`]1M*9NU,J@<?T,G6K%]BK\F*ZZJZ@4W#TO$IOU`M,4I2_'5F+\M:[ XM3:`$5M7-O0K,UYOSJCT%H,V+YOF]$YG:)_%"8$$JX`O-3;OWWUW*Z]:31"][ XM<]-Q?VEJV'OMC;V81LH+^0*I^I[^X.6]>'9OD7?Y8KZ;[N;+Z#%XF2^XA_;* XMDL@'09?FV76D8NY'W<%_[ER>E^V"OM37ZPO[_KV^%]2+,L9YMF_JR_J^>NY? XMVRLSAGKB[OIEZP$8!ZWDNS3NO4'=X:OYU;W#+^_[!1:H&:\5XNC4=OONL,?- XMD7T/"/0;^<J\4N_X-?[]E23M[#OO3KY,Y=\+]\*T>*_2,OAVO41>M4?V:IA/ XMK;*G_?YZ@*3@)]AMM0B9C`>FOGZ%W:_7_L:4(.WXE_%R?"&?`>ST=J?%"*&R XM[G)S"#":0Z/J.08P8FKX?B_PWO2%^`IY<V/I&Y]^OH%@EA(!2X!I3GFV`3=F XMT%R;,@(K@#3(Q,%>K)*?2S2G`GO`[-Y@^70@(KJO[&C-S<`@<.1+LCR4-+"' XM(<[QP"?PEYI\A&3`EX;19+Y?]0L1/``;P?MO"BG\]BRK)"@I`O?`M*_;(4#R XM7@?F^GOMIL!7,)-JW<VR:%@$AOSJDOEDX&=[.<$7,!2L@TFI65_GU?<YP0#8 XM]!OT&IA;;P;(7!#!K>\06Y%4-AOD@X/TNJA[<!C\/E*UB-F^"X'0D(+OJW=/ XM^IMJX!/L,%(\-B7\`D'FP+<OG.%LEB&`'R*<",M^JBX>O'L]>1GO$OQ[T,'U XM+WDQ]CQ^1D[=,04GDYONQ7=K\@^=\*.7_&9T`*\LAED&&7FC%MQ[=1"H<*^( XM^DTDWVX>R:A`DC1=%B9"\,$\;2Y,!JMZ?_#/"'U`$\RP)[R?]K+P2/78Q7!@ XMHIV#FENPP87OE<K<O<$A'4#6!@\:J*8_@D5$OU"M%'+\3;U/AV?9!\N:/`@L XM)J52)6_$=L-'"CJ(I<Y;!"L0Y,,KXOR%=P5F]'>/W&5[;?`K"0/$`3$G[$9F XMNK;*3P)#0L)92T,<"1,P7*IXP>KA*NC#16P.%W@]W66)+4)_HQZ>.6PR._4P XM`,$UCK[3WU8R1YZTJVPM8?\%.C6?4(*'V+7I+S'6_[7`B=U>Z3,&CB/+?1'* XM4F::96OZ+OJE&"!%W*Z\LN]C>>J:0BXF<9MRX?R3RRG_>\PIQ2UM(N:E6I3` XMZ3W\EP"8%PNU4CXTE;%I%GR3.)=42Z*2!&ZGNV\Q8Y;Q-Z;LD+(6[Z:]Z;O; XMZWHF6B"<,A>7IJXF4MS_ZK3CA2&(!-8/?F!A.^#Q%\7D)TBP0*:"IE_,I%:_ XM@3&]R1A7@?:9NAD5+YB;,"$X"_:7F;&^<VI:LY?@9-P%(L6SL(!B3,`IS,0E XMBPLRLYQ=:0R-,2)P2CBB&KN`HO&XR34Z@&'8ISD;FX"UL2%H\W3&B\Z`TLQF XMLFE@;^P;4\+XYH<2&3.UN_'+8AP?QY3&B($;&X`H<2DXT@YWR;%RC)&<LXQ@ XM+.C/BF*7\;.I<#+'S7&N\AQ_QZV@<#S/=L>T,7H\&JO'Y'%Y?*B<Q^YQFV(] XMO+,H[;'S#$H4T,$:.J1!2\.GI`47:`TR(EJX!9%P,6C?"1$(R"3AA;"&EE<Y XMA42TA@8!-Y:(-&AI06IHO2![7ITE)\=I!-%`%,)ZZ&`5HB-4QQ8SN`12@5VT XM<3I)O5#7F7%2<%&6A38"O8;XD8I$(?1)8X)P4!<TG+=G&/5VC@1+D7>H_[P% XM;0`*\`,D"[!H</0DB9P`4:,5'#T$!Y,Z&A06HL"0F402#(>PVD1`@")+9A"= XMH!L92BH"5G&!AJ)U$BR$)P5)@%"\M?]T%`G%^N2"'DM1:#<Z>$I(>&C6R3/! XM6.]/CYS!U:,D*6^T<%EH>9)CH#@=3(5A[CEQ,E@@%<*5#V$5B.B'Y(^R10L% XM^+03+,BS:(C&3S1:LBC763PI!I*5:TB21A6V+4T:(*NC#9&<@)*ZI#;IO+1Z XM1DZI(9Y5"VV<NIR:VU5DB6"%FTN4PKF;7,:`E!H-WT%32CJ0<GKN*;<FVA5N XMHE4:)[IR9P*O#%G@B8$76*I8*+I^XGD`60!S-0#DU99F%M-#^A-.=#W<<B32 XM+5,OX/*3$BYW(-A%!8L^F,O2F?7Q+8O+[#*Y["V_R^/R]",OJ\OP<KL\+\L> XMZ[*['"_3R_LROEPOD\O:,CAA%YH!F@$&U$)I!E6B$2`K!Z6U<BN7R1FENO*< XMZQW\76W7KWPFG@Y[+BI'+*]R<&(K-R>>!W\7L_R5(KK/<O`0+;\&Y$'BY99N XM"*X",6<HYLOW\E7[+\?,L\G,S"^+J*RP=G;?11.7&1G3$JNI3+&_W"_+S$-S XMS5PT_S,VL]!<G\0_!/,R>##WI(KNPLSF-LQC%UD1YT;,:`5ZX"N_75!IQCPL XMVUU5*=[E,6>EYT%Z<#R(S(>N[Y`PG\S>@=G,=B4/U;*OT#)+NB]STDPTV\LW XML[Z,-RO-SYS>@='H>Z48^4"SH,OASI0:.)->?O/\83<;S7OSW:PW/\XT,])\ XM-`LPB[/DW#@SSI!SWAPY4\Z3\S;;.1\KG[/V4SESSI>SY4PN]Q.M`=-<,&=` XM:(!FD%0(A-D!U*Q52')K+JT<=@VEB$%1>C6?%;QR>W#GEHEY+L8L+$^E;2+' XM?)4BR[3#>>`[G\U>:=K,)XJE;/-XL#R_S2NS##`W8\LPL^:L/?/-F[/G7#J3 XMSMY#"U`"S"KX;B52`K0`/O/W(#Z3SX3S<'*0G,_I<_@\/IO`@%TX`C]_99DS XM][P].\[=,^C\/7O/^?-5JSH[S:VS[,QUT<ZS\E=Q.]O*N3.N_"7NRN=!?/`[ XM.Z7!L]S%Y[*)=T78#.CJ78)N!%WHYHF'A=K<)QI>*+,$?3Q0R\X##7`]KP24 XM5^A<T0;0F'/_+#H7S2\'C]'QMK7`W^$L/OA?AH@.K>SYT'6FHW)#%\[_L_\, XM0YO.,O0+G403LT<T^+Q$#SA--`#]1"MC+C03/45[/Z.S%+T_Q]!;-!+=13O1 XMZK(3<`70AJV!$U`$#,R:P1#@<>U*!G,!/06,T:\SIZ`,3@%G=,(L-=O.EAP# XM_3#OSF`BREP?3-`6<]<\//>YQ;,&W3$'NLGR>?!',\^&;@C]/$/+)+1WL$A3 XMSW&S"BWI8L\!\S>1/>O/G#3_O#WC)E9Q\I4&FR,<F59;2ML:/;1!DDB<TB`O XM*]W7T9*'F#EG0S^T2IY)5D5#T5=TDY-%&]&Y-!#=27/1O[07'4R#T<.T%EU, XM\])?M#'M21_3,W01W4P#S)DT]X`ZAU%7`#!T1JO.')$_42<I26TTPEQ-T]'U XM%>Q<+U@5DN$=)*$9T#\IEJA`Y]$.L^Z<*_/.YP%^$%-LS4]I*><U$\\9])][ XM2'/0B33*+$\O!X,%VNQ()[HF<R0]'OS3*G,,,`-H",S#)<U"9\O1=$0M46,/ XM@^U?4E'K+,DID'E1DRD:=4?]F.HH$@[<H:$8'B.U$AU?+&.<R5K;Q$#1&\K* XMTLR\/"UU[R%3VS*^ATL]4__-"$AS,^$<-@2C3AU2@QH-2`S#4\?/"$@>XD?L XMFC*&#F%4/Q!(M8.A5(_$Z<M0?;("*AT)`:&A2-7H`U7-AVPV/W52#8YLU3MU XM4XU#4]702`P3Q_X/9#7]8%9SL?=#6GUNPC6G-)TC;_@0/Z2,(5>3&'1UNG-7 XMXQ%Y-4=FZ3PF*LT%@54#$+,$8*W5"-9$3&&=4A_6Y$TL':5`+$I&5S-8PX*0 XM=38A6<\8OT1EK=(TUI@8.-+XD`\4AEU-Y]@9H/5*O5YXUJ0U+V%:X]"%A&TA XM5M<NF<1K_>G%UI,U_EQ(V-3,QP<3_'@CNC7E`I')%QQJ&D)2XZ5GA'!==AC7 XMS`=R;45G/QMU2])<G[4>=4;]44_7TG5UW:%.U-BU1/T,`HCO!.&4%Z@39``* XME%%XUWW!3@@D=-<=U'9]7A-=I5H-REV?5`27905>B]=+A<-V"EE'X?59H%_Y XM!%R#>:W%D;GM-=VF&NW7*X)ZK<4)27$"BU`$O-?ZTEEP*BW8Z_4)91RQ1_EU XM1H%@3USX-7UM<`E.PE3NIE_S21.V?ZTR/4\L@HC=8)<!IY*(#6)KN1`VC5BJ XM+5(`(LCE86<4?:$2-%]C<2IVC:T"^-?K48O]3H!QW_6,_6.;N0+V>@UD4[>Q XM,@+-,"_0[;0#;79!T*\!?^`?]'),P8"@.."YP++PK";BT\6RV(Q()\]1=G_P XMR04(5C;@-3*+T-"S02UEC]E5-H&@)$P!ES2*D';5#0JIIK`KU`TEDE*`*E@/ XM"@#T(.E6R]*#0WTHK@2$MJM@:!?:B+:KP%#`B=]/GTUH.P^`]J`]:!_:E':B XMC6A+B%N!IG`#3`^_T2NE`.P*DE<,X"J8"(3VKC!Y2;HW;G#P:4NZD]>(\'C1 XMS;X",6<=RE+HTJIM:.<`PT(.,#?K"K+VJ2S`@=HLL_.0`]S9O$*LC6H+%#N! XMR1`4VMH;0J`];+/:S3:J72`F44\"LQT#W`"[PK/M9Y_:SL.094!9VS?`KY`# XM_`K;MJSMM0E081NXG6W_"L0VMVT`P4X%`K']Z!X+PT*YC6I#3I+3JMT"Z`K7 XM]K%0+.S;K+:L'2B9!`N%O/UJYP#%0J\0++C;GY/B5!Q:VSB`XU4L0%[&=K=- XM-IV#NP+`;3T'"R5"MS`W,]P&KMAD;><`CI>&\"OPVO<VS\1L3UZ.UXB00D?; XMW7;&IAH6"+T"]'`#N`HYP(AP:-,`O;;)YAIFW/SVG1UH`]R2EZP-(_)+^K:A XM'2T\U!YWP(UJ;\G%4[(D#:W<,$"O$#WLVC`W!WI2`$L*0*\`<%_;P\+5W72G XMT+)VMH8T1;A>-Z^M(40/0+>DRW.CVGJ2G&!P6]TPP*Y@=6?=&N*=M%PEW9:% XMT-UV%]VH=IQT)H'*;?>UK7/7W6,WWDUOK=HVMZ&->-O;W;:65!;\W*5VU<U" XMW]V]`L-=(,8)!R+$?7+#`+_"PHUW#XC[(<3M>)_<E?>QG2$)6'SWM5TL1`^_ XM`M&-=[M,#Y)J1'6'W3"`Z)UYR]H*$F-D$5'=F46AZ"O@W0?2&T!Y&]HXP-J= XM>PL+J7>W32#)W84V#H![!PO#@JG->W=;`1(>`&X?WFVI]1UX?T?/T<B->]?; XMP`+>C1[2W-'WX5U]$]IO=\RM'<K;.,#G/2QDWK,WI69[&]R'MX9@:N/=I!'` XM57`7VG`#"ZTA0-X&4&*T&#%(C/>&(`-\WCIW\UTMM5ED1<W-,K_>'T*I77%7 XM2WG17A1O]445`["]<;/0#?CNC6JSAAAWH8UK@^"PMN8M%W4$([?C[7([X.O/ XM9:A60-R'MZN-62C>E&'7'7T+W2."W7V!VX4G554$?2/?D*[D-7PSW)_:/*0/ XM>N`Q0-@M:F\(,#A*=!%*X-8SI.LJW-WMMP$$&)I$(_?)_803X$-66!@2R08T XM^$KPA</@<6&<`"=`W%;W&8YR=]MHFML%?Z_=:@,4_H8_X+)!010O0-RO=QU^ XM=S/<_[%.(8$;WF:X#[XK9.$*0#M4/-T!5+>AK5"GX+PW:D`4WMTB0AON>*W, XMB'@W)!"B!BDA)1Y_F^&]PJ\@BLO:IA`IY('#`'TXN0V#'P$)EBEN@M/AJO@= XMO@]J0L6@)ZYSQP"_@O[]@Y]'4=*N-(C?`*FXL7"(R]J*$",D&@#;UW8;SF[# XMX.5@&_1_%]V%8@S0ELKB95`ZB`9-%,"W&3Z-F]\*4`_$B%/A_;:HO7X/XZBV XM-G@$Z8@C]YW=A#/?HSBJC:'=0#F0#FYS1^/DMZN`B`>?'I`\KH"WX<7"B)"6 XM9N)Y4P(^>7GAQ<+\C7=':///22&05^!J`Z1=?C/<58`M%!$,<^BTPJQD3\U, X8=M5<,4P&1AJ;>Q%8"7;2@H`BZ!5@P?1P X` Xend END_OF_preshar.7.u if test 32178 -ne `wc -c <preshar.7.u`; then echo shar: \"preshar.7.u\" unpacked with wrong size! fi # end of overwriting check fi echo shar: End of archive 2 \(of 7\). cp /dev/null ark2isdone MISSING="" for I in 1 2 3 4 5 6 7 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 7 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0