diff options
author | phk <phk@FreeBSD.org> | 1995-04-27 18:22:36 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1995-04-27 18:22:36 +0000 |
commit | 82051ce6fc2632addf7bfa1a09db2bc6af0034b0 (patch) | |
tree | c68a99c48cf358bc3b8d9f85225418cde490774d | |
parent | 6b420d9cc464dcfc626315a0899875554b8ba952 (diff) | |
download | FreeBSD-src-82051ce6fc2632addf7bfa1a09db2bc6af0034b0.zip FreeBSD-src-82051ce6fc2632addf7bfa1a09db2bc6af0034b0.tar.gz |
New and improved version from the author.
Submitted by: DI. Christian Gusenbauer <cg@fimp01.fim.uni-linz.ac.at>
-rw-r--r-- | sys/i386/boot/dosboot/boot.c | 140 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/boot.h | 2 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/bootinfo.h | 35 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/disk.c | 22 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/dkbad.h | 5 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/dosboot.c | 97 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/dosboot.h | 2 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/fbsdboot.c | 44 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/fbsdboot.exe.uu | 885 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/fbsdboot.mak | 24 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/protmod.c | 16 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/protmod.h | 5 | ||||
-rw-r--r-- | sys/i386/boot/dosboot/reboot.h | 4 |
13 files changed, 691 insertions, 590 deletions
diff --git a/sys/i386/boot/dosboot/boot.c b/sys/i386/boot/dosboot/boot.c index d80e171..8482279 100644 --- a/sys/i386/boot/dosboot/boot.c +++ b/sys/i386/boot/dosboot/boot.c @@ -55,10 +55,10 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <process.h>
#include <memory.h>
+#include "bootinfo.h"
#include "protmod.h"
#include "param.h"
#include "boot.h"
-#include "bootinfo.h"
#include "reboot.h"
#include "exec.h"
@@ -85,40 +85,42 @@ void pbzero(unsigned long addr, unsigned long size) }
}
-static long loadprog(int howto, long *hsize)
+static long loadprog(long *hsize)
{
- long int addr; /* physical address.. not directly useable */
- long int hmaddress;
- int i;
+ long addr; /* physical address.. not directly useable */
+ long hmaddress;
+ unsigned long pad;
+ long i;
static int (*x_entry)() = 0;
- argv[3] = 0;
- argv[4] = 0;
ufs_read(&head, (long) sizeof(head));
- if ( N_BADMAG(head)) {
+ if (N_BADMAG(head)) {
printf("Invalid format!\n");
exit(0);
}
- poff = N_TXTOFF(head);
-
startaddr = (long)head.a_entry;
addr = (startaddr & 0x00ffffffl); /* some MEG boundary */
printf("Booting @ 0x%lx\n", addr);
if(addr < 0x100000l)
{
- printf("kernel linked for wrong address!\n");
- printf("Only hope is to link the kernel for > 1MB\n");
+ printf("Start address too low!\n");
exit(0);
}
+ poff = N_TXTOFF(head)+head.a_text+head.a_data+head.a_syms;
+ ufs_read((void *)&i, sizeof(long));
*hsize = head.a_text+head.a_data+head.a_bss;
+ *hsize = (*hsize+NBPG-1)&~(NBPG-1);
+ *hsize += i+4+head.a_syms;
addr=hmaddress=get_high_memory(*hsize);
if (!hmaddress) {
printf("Sorry, can't allocate enough memory!\n");
exit(0);
}
+ poff = N_TXTOFF(head);
+
/********************************************************/
/* LOAD THE TEXT SEGMENT */
/********************************************************/
@@ -142,83 +144,61 @@ static long loadprog(int howto, long *hsize) /********************************************************/
printf("bss=0x%lx ", head.a_bss);
pbzero(addr, head.a_bss);
- argv[3] = (addr += head.a_bss);
- argv[3] += -hmaddress+0x100000l;
+ addr += head.a_bss;
+
+ /* Pad to a page boundary. */
+ pad = (unsigned long)(addr-hmaddress+(startaddr & 0x00ffffffl)) % NBPG;
+ if (pad != 0) {
+ pad = NBPG - pad;
+ addr += pad;
+ }
+ bootinfo.bi_symtab = addr-hmaddress+(startaddr & 0x00ffffffl);
+
+ /********************************************************/
+ /* Copy the symbol table size */
+ /********************************************************/
+ pm_copy((char *)&head.a_syms, addr, sizeof(head.a_syms));
+ addr += sizeof(head.a_syms);
+
+ /********************************************************/
+ /* Load the symbol table */
+ /********************************************************/
+ printf("symbols=[+0x%lx+0x%lx+0x%lx", pad, (long) sizeof(head.a_syms),
+ (long) head.a_syms);
+ xread(addr, head.a_syms);
+ addr += head.a_syms;
+
+ /********************************************************/
+ /* Load the string table size */
+ /********************************************************/
+ ufs_read((void *)&i, sizeof(long));
+ pm_copy((char *)&i, addr, sizeof(long));
+ i -= sizeof(long);
+ addr += sizeof(long);
/********************************************************/
- /* and note the end address of all this */
+ /* Load the string table */
/********************************************************/
+ printf("+0x%x+0x%lx] ", sizeof(long), i);
+ xread(addr, i);
+ addr += i;
- addr = addr-hmaddress+0x100000l;
- argv[4] = ((addr+(long) sizeof(long)-1l))&~((long)sizeof(long)-1l);
- printf("total=0x%lx ",argv[4]);
+ bootinfo.bi_esymtab = addr-hmaddress+(startaddr & 0x00ffffffl);
/*
- * We now pass the various bootstrap parameters to the loaded
- * image via the argument list
- * (THIS IS A BIT OF HISTORY FROM MACH.. LEAVE FOR NOW)
- * arg1 = boot flags
- * arg2 = boot device
- * arg3 = start of symbol table (0 if not loaded)
- * arg4 = end of symbol table (0 if not loaded)
- * arg5 = transfer address from image
- * arg6 = transfer address for next image pointer
+ * For backwards compatibility, use the previously-unused adaptor
+ * and controller bitfields to hold the slice number.
*/
- switch(maj)
- {
- case 2:
- printf("\n\nInsert file system floppy in drive A or B\n");
- printf("Press 'A', 'B' or any other key for the default ");
- printf("%c: ", unit+'A');
- i = _getche();
- if (i=='0' || i=='A' || i=='a')
- unit = 0;
- if (i=='1' || i=='B' || i=='b')
- unit = 1;
- printf("\n");
- break;
- case 4:
- break;
- }
- argv[1] = howto;
- argv[2] = (MAKEBOOTDEV(maj, (slice>>4), (slice&0xf), unit, part)) ;
- argv[5] = (head.a_entry &= 0xfffffff);
- argv[6] = (long) &x_entry;
- argv[0] = 8;
+ printf("total=0x%lx entry point=0x%lx\n",
+ addr-hmaddress+(startaddr & 0x00ffffffl),
+ startaddr & 0x00ffffffl);
- printf("entry point=0x%lx\n" ,((long)startaddr) & 0xffffff);
return hmaddress;
}
-static unsigned int memsize(int x)
-{
- unsigned int rt=0;
-
- switch (x) {
- case 1:
- _asm {
- mov bl,1
- mov ah,88h
- int 15h
- mov rt,ax
- }
- break;
- default:
- _asm {
- int 12h
- mov rt,ax
- }
- break;
- }
- return rt;
-}
-
-void bsdboot(int drive, int loadflags, char *kernel)
+void bsdboot(int drive, long loadflags, char *kernel)
{
- long hmaddress, size;
-
- argv[7] = memsize(0);
- argv[8] = memsize(1);
+ long hmaddress, size, bootdev;
/***************************************************************\
* As a default set it to the first partition of the first *
@@ -231,6 +211,8 @@ void bsdboot(int drive, int loadflags, char *kernel) printf("Can't find %s\n", kernel);
exit(0);
}
- hmaddress = loadprog(loadflags, &size);
- startprog(hmaddress, size, ((long)startaddr & 0xffffffl), argv);
+ hmaddress = loadprog(&size);
+ bootdev = MAKEBOOTDEV(maj, (slice >> 4), slice & 0xf, unit, part);
+ startprog(hmaddress, size, ((long)startaddr & 0xffffffl),
+ loadflags | RB_BOOTINFO, bootdev);
}
diff --git a/sys/i386/boot/dosboot/boot.h b/sys/i386/boot/dosboot/boot.h index 6ed3463..322610f 100644 --- a/sys/i386/boot/dosboot/boot.h +++ b/sys/i386/boot/dosboot/boot.h @@ -38,5 +38,5 @@ extern struct fs *fs; extern struct inode inode;
extern long dosdev, slice, unit, part, maj, boff, poff, bnum, cnt;
-extern void bsdboot(int d, int howto, char *kernel);
+extern void bsdboot(int d, long howto, char *kernel);
extern void pbzero(unsigned long addr, unsigned long size);
diff --git a/sys/i386/boot/dosboot/bootinfo.h b/sys/i386/boot/dosboot/bootinfo.h index 996870a..8315158 100644 --- a/sys/i386/boot/dosboot/bootinfo.h +++ b/sys/i386/boot/dosboot/bootinfo.h @@ -35,16 +35,35 @@ #ifndef _MACHINE_BOOTINFO_H_
#define _MACHINE_BOOTINFO_H_
-#define N_BIOS_GEOM 8
-struct bootinfo_t {
- unsigned long version;
- unsigned char *kernelname;
- void *nfs_diskless;
- unsigned long n_bios_used;
- unsigned long bios_geom[N_BIOS_GEOM];
+/* Only change the version number if you break compatibility. */
+#define BOOTINFO_VERSION 1
+
+#define N_BIOS_GEOM 8
+
+/*
+ * A zero bootinfo field often means that there is no info available.
+ * Flags are used to indicate the validity of fields where zero is a
+ * normal value.
+ */
+struct bootinfo {
+ unsigned long bi_version;
+ unsigned char *bi_kernelname;
+ void *bi_nfs_diskless;
+ /* End of fields that are always present. */
+#define bi_endcommon bi_n_bios_used
+ unsigned long bi_n_bios_used;
+ unsigned long bi_bios_geom[N_BIOS_GEOM];
+ unsigned long bi_size;
+ unsigned char bi_memsizes_valid;
+ unsigned char bi_pad[3];
+ unsigned long bi_basemem;
+ unsigned long bi_extmem;
+ unsigned long bi_symtab;
+ unsigned long bi_esymtab;
};
#ifdef KERNEL
-extern struct bootinfo_t bootinfo;
+extern struct bootinfo bootinfo;
#endif
+
#endif /* _MACHINE_BOOTINFO_H_ */
diff --git a/sys/i386/boot/dosboot/disk.c b/sys/i386/boot/dosboot/disk.c index 263d3e9..0a5fcec 100644 --- a/sys/i386/boot/dosboot/disk.c +++ b/sys/i386/boot/dosboot/disk.c @@ -36,6 +36,7 @@ #include "dkbad.h"
#endif
#include "disklabe.h"
+#include "diskslic.h"
#define BIOS_DEV_FLOPPY 0x0
#define BIOS_DEV_WIN 0x80
@@ -62,8 +63,6 @@ long dosdev, slice, unit, part, maj, boff, poff, bnum, cnt; extern int biosread(int dev, int track, int head, int sector, int cnt, unsigned char far *buffer);
-/*#define EMBEDDED_DISKLABEL 1*/
-/*extern struct disklabel disklabel;*/
struct disklabel disklabel;
static void Bread(int dosdev, long sector);
@@ -129,10 +128,11 @@ int devopen(void) Bread(dosdev, 0);
dptr = (struct dos_partition *)(((char *)I_ADDR)+DOSPARTOFF);
sector = LABELSECTOR;
+ slice = WHOLE_DISK_SLICE;
for (i = 0; i < NDOSPART; i++, dptr++)
if (dptr->dp_typ == DOSPTYP_386BSD) {
+ slice = BASE_SLICE + i;
sector = dptr->dp_start + LABELSECTOR;
- slice = i+1;
break;
}
Bread(dosdev, sector++);
@@ -161,10 +161,20 @@ int devopen(void) long dkbbnum;
struct dkbad *dkbptr;
- /* find the first readable bad144 sector */
- /* some of this code is copied from ufs/disk_subr.c */
+ /* find the first readable bad sector table */
+ /* some of this code is copied from ufs/ufs_disksubr.c */
+ /* including the bugs :-( */
/* read a bad sector table */
- dkbbnum = dl->d_secperunit - dl->d_nsectors;
+
+#define BAD144_PART 2 /* XXX scattered magic numbers */
+#define BSD_PART 0 /* XXX should be 2 but bad144.c uses 0 */
+ if (dl->d_partitions[BSD_PART].p_offset != 0)
+ dkbbnum = dl->d_partitions[BAD144_PART].p_offset
+ + dl->d_partitions[BAD144_PART].p_size;
+ else
+ dkbbnum = dl->d_secperunit;
+ dkbbnum -= dl->d_nsectors;
+
if (dl->d_secsize > DEV_BSIZE)
dkbbnum *= dl->d_secsize / DEV_BSIZE;
else
diff --git a/sys/i386/boot/dosboot/dkbad.h b/sys/i386/boot/dosboot/dkbad.h index 492b848..33f1c53 100644 --- a/sys/i386/boot/dosboot/dkbad.h +++ b/sys/i386/boot/dosboot/dkbad.h @@ -31,7 +31,7 @@ * SUCH DAMAGE.
*
* @(#)dkbad.h 8.1 (Berkeley) 6/2/93
- * $Id: dkbad.h,v 1.4 1994/12/11 23:20:50 bde Exp $
+ * $Id: dkbad.h,v 1.5 1995/04/15 23:21:28 bde Exp $
*/
#ifndef _SYS_DKBAD_H_
@@ -60,6 +60,7 @@ #define DKBAD_MAGIC 0x4321 /* normal value for bt_flag */
#define DKBAD_MAXBAD 126 /* maximum bad sectors supported */
#define DKBAD_NOCYL 0xffff /* cylinder to mark end of disk table */
+#define DKBAD_NOTRKSEC 0xffff /* track/sector to mark end */
struct dkbad {
long bt_csn; /* cartridge serial number */
@@ -77,7 +78,7 @@ struct dkbad { #define CONT 3
#ifdef KERNEL
-include <sys/conf.h>
+#include <sys/conf.h>
#define DKBAD_NOSECT (-1) /* sector to mark end of core table */
diff --git a/sys/i386/boot/dosboot/dosboot.c b/sys/i386/boot/dosboot/dosboot.c index b3b0bc8..d8992e5b 100644 --- a/sys/i386/boot/dosboot/dosboot.c +++ b/sys/i386/boot/dosboot/dosboot.c @@ -86,44 +86,47 @@ static void dosxread(FILE *fp, unsigned long addr, long size) }
}
-static long loadprog(FILE *fp, int howto, long *hsize)
+static long loadprog(FILE *fp, long *hsize)
{
long int addr; /* physical address.. not directly useable */
- long int hmaddress;
+ long int hmaddress, pad, i;
static int (*x_entry)() = 0;
- argv[3] = 0;
- argv[4] = 0;
fread(&head, sizeof(head), 1, fp);
fseek(fp, 4096-sizeof(head), 1);
- if ( N_BADMAG(head)) {
+ if (N_BADMAG(head)) {
printf("Invalid format!\n");
exit(0);
}
- poff = N_TXTOFF(head);
-
startaddr = (long)head.a_entry;
addr = (startaddr & 0x00ffffffl); /* some MEG boundary */
printf("Booting @ 0x%lx\n", addr);
if(addr < 0x100000l)
{
- printf("kernel linked for wrong address!\n");
- printf("Only hope is to link the kernel for > 1MB\n");
+ printf("Start address too low!\n");
exit(0);
}
+ poff = N_TXTOFF(head)+head.a_text+head.a_data+head.a_syms;
+ fseek(fp, poff, 0);
+ fread(&i, sizeof(i), 1, fp);
*hsize = head.a_text+head.a_data+head.a_bss;
+ *hsize = (*hsize+NBPG-1)&~(NBPG-1);
+ *hsize += i+4+head.a_syms;
addr=hmaddress=get_high_memory(*hsize);
if (!hmaddress) {
printf("Sorry, can't allocate enough memory!\n");
exit(0);
}
- printf("text=0x%lx ", head.a_text);
+ poff = N_TXTOFF(head);
+ fseek(fp, poff, 0);
+
/********************************************************/
/* LOAD THE TEXT SEGMENT */
/********************************************************/
+ printf("text=0x%lx ", head.a_text);
dosxread(fp, addr, head.a_text);
addr += head.a_text;
@@ -143,41 +146,61 @@ static long loadprog(FILE *fp, int howto, long *hsize) /********************************************************/
printf("bss=0x%lx ", head.a_bss);
pbzero(addr, head.a_bss);
- argv[3] = (addr += head.a_bss);
- argv[3] += -hmaddress+0x100000l;
+ addr += head.a_bss;
+
+ /* Pad to a page boundary. */
+ pad = (unsigned long)(addr-hmaddress+(startaddr & 0x00ffffffl)) % NBPG;
+ if (pad != 0) {
+ pad = NBPG - pad;
+ addr += pad;
+ }
+ bootinfo.bi_symtab = addr-hmaddress+(startaddr & 0x00ffffffl);
/********************************************************/
- /* and note the end address of all this */
+ /* Copy the symbol table size */
/********************************************************/
+ pm_copy((char *)&head.a_syms, addr, sizeof(head.a_syms));
+ addr += sizeof(head.a_syms);
- addr = addr-hmaddress+0x100000l;
- argv[4] = ((addr+(long) sizeof(long)-1l))&~((long)sizeof(long)-1l);
- printf("total=0x%lx ",argv[4]);
+ /********************************************************/
+ /* Load the symbol table */
+ /********************************************************/
+ printf("symbols=[+0x%lx+0x%lx+0x%lx", pad, (long) sizeof(head.a_syms),
+ (long) head.a_syms);
+ dosxread(fp, addr, head.a_syms);
+ addr += head.a_syms;
+
+ /********************************************************/
+ /* Load the string table size */
+ /********************************************************/
+ fread((void *)&i, sizeof(long), 1, fp);
+ pm_copy((char *)&i, addr, sizeof(long));
+ i -= sizeof(long);
+ addr += sizeof(long);
+
+ /********************************************************/
+ /* Load the string table */
+ /********************************************************/
+ printf("+0x%x+0x%lx] ", sizeof(long), i);
+ dosxread(fp, addr, i);
+ addr += i;
+
+ bootinfo.bi_esymtab = addr-hmaddress+(startaddr & 0x00ffffffl);
/*
- * We now pass the various bootstrap parameters to the loaded
- * image via the argument list
- * (THIS IS A BIT OF HISTORY FROM MACH.. LEAVE FOR NOW)
- * arg1 = boot flags
- * arg2 = boot device
- * arg3 = start of symbol table (0 if not loaded)
- * arg4 = end of symbol table (0 if not loaded)
- * arg5 = transfer address from image
- * arg6 = transfer address for next image pointer
+ * For backwards compatibility, use the previously-unused adaptor
+ * and controller bitfields to hold the slice number.
*/
- argv[1] = howto;
- argv[2] = (MAKEBOOTDEV(maj, (slice>>4), (slice&0xf), unit, part)) ;
- argv[5] = (head.a_entry &= 0xfffffff);
- argv[6] = (long) &x_entry;
- argv[0] = 8;
+ printf("total=0x%lx entry point=0x%lx\n",
+ addr-hmaddress+(startaddr & 0x00ffffffl),
+ startaddr & 0x00ffffffl);
- printf("entry point=0x%lx\n" ,((long)startaddr) & 0xffffff);
return hmaddress;
}
-void dosboot(int howto, char *kernel)
+void dosboot(long howto, char *kernel)
{
- long hmaddress, size;
+ long hmaddress, size, bootdev;
FILE *fp;
fp = fopen(kernel, "rb"); /* open kernel for reading */
@@ -185,8 +208,10 @@ void dosboot(int howto, char *kernel) fprintf(stderr, "Sorry, can't open %s!\n", kernel);
return;
}
- hmaddress = loadprog(fp, howto, &size);
+ hmaddress = loadprog(fp, &size);
fclose(fp);
- startprog(hmaddress, size, (startaddr & 0xffffffl), argv);
-}
+ bootdev = MAKEBOOTDEV(maj, (slice >> 4), slice & 0xf, unit, part);
+ startprog(hmaddress, size, ((long)startaddr & 0xffffffl),
+ howto | RB_BOOTINFO, bootdev);
+}
diff --git a/sys/i386/boot/dosboot/dosboot.h b/sys/i386/boot/dosboot/dosboot.h index 5a98501..2e43d74 100644 --- a/sys/i386/boot/dosboot/dosboot.h +++ b/sys/i386/boot/dosboot/dosboot.h @@ -15,4 +15,4 @@ * USE OF THIS SOFTWARE.
*
*/
-void dosboot(int howto, char *kernel);
+void dosboot(long howto, char *kernel);
diff --git a/sys/i386/boot/dosboot/fbsdboot.c b/sys/i386/boot/dosboot/fbsdboot.c index 84fdb39..fd77aae 100644 --- a/sys/i386/boot/dosboot/fbsdboot.c +++ b/sys/i386/boot/dosboot/fbsdboot.c @@ -26,14 +26,14 @@ #include "protmod.h"
#define MAV 1
-#define MIV 5
+#define MIV 7
#define ptr2pa(x) (((((long)(x))&0xffff0000l)>>12l)+(((long)(x))&0xffffl))
static void usage(char *name)
{
fprintf(stderr, "FreeBSD boot Version %d.%d\n", MAV, MIV);
- fprintf(stderr, "(c) 1994 Christian Gusenbauer, cg@fimp01.fim.uni-linz.ac.at\n\n");
+ fprintf(stderr, "(c) 1994, 1995 Christian Gusenbauer,\n cg@fimp01.fim.uni-linz.ac.at\n\n");
fprintf(stderr, "usage: %s [ options ] [ kernelname ]\n", name);
fprintf(stderr, "where options are:\n");
fprintf(stderr, "\t-r ... use compiled-in rootdev\n");
@@ -42,15 +42,40 @@ static void usage(char *name) fprintf(stderr, "\t-d ... give control to kernel debugger\n");
fprintf(stderr, "\t-c ... invoke user configuration routing\n");
fprintf(stderr, "\t-v ... print all potentially useful info\n");
+ fprintf(stderr, "\t-C ... use cdrom as root\n");
fprintf(stderr, "\t-D ... boot a kernel from a DOS medium\n");
fprintf(stderr, "\t (default: c:\\kernel)\n");
exit(1);
}
+static unsigned int memsize(int x)
+{
+ unsigned int rt=0;
+
+ switch (x) {
+ case 1:
+ _asm {
+ mov bl,1
+ mov ah,88h
+ int 15h
+ mov rt,ax
+ }
+ break;
+ default:
+ _asm {
+ int 12h
+ mov rt,ax
+ }
+ break;
+ }
+ return rt;
+}
+
int main(int argc, char *argv[])
{
char *kernel="/kernel", *ptr;
- int i, dos=0, howto=0;
+ int i, dos=0;
+ long howto=0;
extern unsigned long get_diskinfo(int);
VCPIboot = 0;
@@ -70,6 +95,7 @@ int main(int argc, char *argv[]) case 'c': howto |= RB_CONFIG; break;
case 'd': howto |= RB_KDB; break;
case 'v': howto |= RB_VERBOSE; break;
+ case 'C': howto |= RB_CDROM; break;
case 'D': dos = 1; kernel = "c:\\kernel"; break;
case '?':
default: usage(argv[0]);
@@ -78,11 +104,15 @@ int main(int argc, char *argv[]) }
}
- bootinfo.version = 1;
- bootinfo.nfs_diskless = 0;
- bootinfo.kernelname = (char *) ptr2pa(kernel);
+ bootinfo.bi_version = BOOTINFO_VERSION;
for (i = 0; i < N_BIOS_GEOM; i++)
- bootinfo.bios_geom[i] = get_diskinfo(0x80+i);
+ bootinfo.bi_bios_geom[i] = get_diskinfo(0x80+i);
+ bootinfo.bi_basemem = memsize(0);
+ bootinfo.bi_extmem = memsize(1);
+ bootinfo.bi_memsizes_valid = 0; /* that is not yet valid!! */
+ bootinfo.bi_kernelname = (char *) ptr2pa(kernel);
+ bootinfo.bi_nfs_diskless = NULL;
+ bootinfo.bi_size = sizeof(bootinfo);
if (dos)
dosboot(howto, kernel); /* boot given kernel from DOS partition */
diff --git a/sys/i386/boot/dosboot/fbsdboot.exe.uu b/sys/i386/boot/dosboot/fbsdboot.exe.uu index 3f01c82..19df2f4 100644 --- a/sys/i386/boot/dosboot/fbsdboot.exe.uu +++ b/sys/i386/boot/dosboot/fbsdboot.exe.uu @@ -1,407 +1,420 @@ -begin 644 fbsdboot.exe -M35I!`"P`DP!````,___D#P`4```>`-<!'@````$`30(``#4"```1`@``Q@`` -M`+T```"N````GP```)````"!````<@```&,```!4````10```#8````C```` -M%````"0")0"6`"4`30<E`/0&)0#J!B4`T`8E`'\&)0!U!B4`908E`!@$)0#H -M`R4`T@,E`$D#J@#2`JH`EP*J`(\"J@!W`JH`:P*J`%$"J@`%`JH`[`&J`-L! -MJ@"_`:H`FP&J`(H!J@!Y`:H`;P&J`%,!J@`T`:H`*@&J`!X!J@`*`:H`P@"J -M`+@`J@",`*H`4P"J`"`$J@#L`ZH`X@.J`,X#J@"5`NP`5`+L`#$![``1!.P` -M^P/L`-T#[`"^`^P`W`(^`:<!/@%U`3X!3P`^`<D%/@&2!3X!-04^`68$/@&U -M`YP!E@.<`6T#G`%0`YP!+0.<`;8"G`%Z`IP!:0*<`3P"G`$@`IP!Z`&<`=<! -MG`'-`9P!L0&<`9(!G`&(`9P!?`&<`6@!G`$?`9P!%0&<`>D`G`'4`)P!CP"< -M`6X`G`$Y`)P!+`#7`<0`UP')`-<!T`#7`>L`UP$-`=<!+@'7`0````0L#@4$ -M5@+7`=4%UP'Z!M<![0;7`=(&UP&Q!M<!E0;7`5L'UP%`!]<!&P?7`8<'UP$] -M"=<!#@`5!6`)UP%L"=<!C`X%!(8.!01"$`4$$PO7`3X+UP%A#-<!)`W7`:H. -MUP&##M<!(@[7`<<-UP&M%]<!O!`%!,`0!03$$`4$R!`%!,P0!030$`4$U!`% -M!&<9UP'C&=<!KQG7`64;UP$.&]<!.1K7`=<;UP&4']<!```````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M`````````````````````````````````````````````%6+[&9H`0`%`!YH -M0@`>:+@.FF('UP&+Y1YH7@`>:+@.FF('UP&+Y6;_=@8>:)P`'FBX#IIB!]<! -MB^4>:,(`'FBX#IIB!]<!B^4>:-8`'FBX#IIB!]<!B^4>:/<`'FBX#IIB!]<! -MB^4>:!L!'FBX#IIB!]<!B^4>:$4!'FBX#IIB!]<!B^4>:&X!'FBX#IIB!]<! -MB^4>:)D!'FBX#IIB!]<!B^4>:,0!'FBX#IIB!]<!B^4>:.T!'FBX#IIB!]<! -MB^5J`9KY`=<!R<O(%@``5U;'1O`+`HQ>\F8SP(E&[HE&]*/V>V:C:IVY`0`Y -M3@8/CLP`BT8(BU8*!00`B]B)5OB.1O@FQ#<F@#PM#X6@`(U\`8Q&_B:`/0`/ -MA(4`B4[ZB5[VBW;T)HH%F#UV`'1<=PX\8W0^?Q@L1'0B+!UT+L1>"&8F_S<. -MZ+?^@\0$ZT`L9'0F+`YT*/[(="KKXL=&[@$`QT;P$P*,7O+K(Y"#S@'K'9"! -MS@`$ZQ:#SD#K$9"#SB#K"Y"#S@+K!9"!S@`(CD;^1R:`/0!UC8EV](M>]HM. -M^H/#!$$[3@8/C%3_ZQ"+V<'C`L1V"&8FBP!FB4;P9L<&-IT!````9L<&/IT` -M````BT;PB]"+7O*`Y@\#TA/;$](3VQ/2$]L3TA/;$]*'TX/C#P/0@],`B18Z -MG8D>/)TS]L=&_D:=BW[^C82``%":"`#L`(/$`HD%B54"@\<$1H'_9IURY(-^ -M[@!T%6;_=O#_=O2:/`.<`8/$!C/`7E_)RV;_=O#_=O1H@`":>@.J`(/$"#/` -M7E_)R\@$``!6BT8.B4;\BT80"T8.=0>X__]>R<N0BT;\2*,N`HM.""O2`\D3 -MT@/)$](#R1/2`\D3T@-.!H/2`#,.,`(S%C("*O8Q#C`",18R`HL.,`*+%C(" -MMI*)%C("HS8"BT8*BU8,,P8X`C,6.@(J]C$&.`(Q%CH"H3@"BQ8Z`K:2B18Z -M`M%N_&"TAXM._+L!!([#OAX"S16(9OYABD;^*N1>R<N0R`0``%;'!E8"1P", -MV"O2`\`3T@/`$](#P!/2`\`3T@5.`H/2`#,&6`(S%EH"*O8Q!E@",19:`HL6 -M6@*VDHD66@+'!EX"_P>,V"O2`\`3T@/`$](#P!/2`\`3T@7.`H/2`#,&8`(S -M%F("*O8Q!F`",19B`J%@`HL68@*VDHD68@*,7OS'!F8"__^+1OPKT@/`$](# -MP!/2`\`3T@/`$](S!F@",Q9J`BKV,09H`C$6:@*A:`*+%FH"MI*)%FH"C$;\ -MQP9N`O__BT;\*](#P!/2`\`3T@/`$](#P!/2,P9P`C,6<@(J]C$&<`(Q%G(" -MH7`"BQ9R`K:2B19R`HQ6_,<&=@(``(M&_"O2`\`3T@/`$](#P!/2`\`3TC,& -M>`(S%GH"*O8Q!G@",19Z`J%X`HL6>@*VEHD6>@*,3OS'!GX"__^+1OPKT@/` -M$](#P!/2`\`3T@/`$](S!H`",Q:"`BKV,0:``C$6@@*A@`*+%H("MIJ)%H(" -M8+2)NP$$CL.^3@*[("C-%8AF_F&`?OX`=`B*1OXJY%[)R[@P`#:)1@0SP%[) -MR\@"``!FQP98`@````#'!F`"```SP*-B`J-6`J->`J-F`J-H`J-J`HQ._L<& -M;@+__XM&_BO2`\`3T@/`$](#P!/2`\`3TC,&<`(S%G("*O8Q!G`",19R`J%P -M`HL6<@*VFHD6<@*,7O['!G8"__^+1OXKT@/`$](#P!/2`\`3T@/`$](S!G@" -M,Q9Z`BKV,09X`C$6>@*A>`*+%GH"MI*)%GH"C%;^QP9^`@``BT;^*](#P!/2 -M`\`3T@/`$](#P!/2,P:``C,6@@(J]C$&@`(Q%H("BQ:"`K:6B1:"`L<&A@(' -M`(S8*](#P!/2`\`3T@/`$](#P!/2!<8"@](`,P:(`C,6B@(J]C$&B`(Q%HH" -MBQ:*`K:"B1:*`L<&C@(K`(S8*](#P!/2`\`3T@/`$](#P!/2!3(2@](`,P:0 -M`C,6D@(J]C$&D`(Q%I("BQ:2`K:!B1:2`LG+D,@2``!69HM&!F:Y``0``&:9 -M9O?Y9HO09L'J$`4#`"3\B4;^'FC@"AYHXPJ:1@?7`8/$"(E&[HE6\`O0=#S_ -M=O!0FD0&UP&#Q`1@N`#>S6>)7OB)1O9A]D;W_W4=QP;V>P$`BD;X*N10BD;Y -MF%`>:.P*FA8)UP&#Q`B!1OZ``&"X`$/-+SR`=!)A,\"Z$0!>R<N083/`F5[) -MRY"X$$/-+XE>\HQ&]+0(_U[R.T;^<N.+5OZT"?]>\CT``'36M`S_7O(]``!T -MS(E>_(E6^F&+1OR9BT[Z@\$"*]L#PQ/17LG+R"0``%=6C-@KT@/`$](#P!/2 -M`\`3T@/`$](%E@*#T@")1OR)5OYFQT;X````GXQ.\KA0"(E&](M&\BO2`\`3 -MT@/`$](#P!/2`\`3THE&YHE6Z`-&](/2`(E&XHE6Y!Z,R([8NRX(/H@>*`@^ -MB#XI"+LY"(E>\+L^"(E>[HQ>\A^+3O*+\2O;B_N+T0->\!/W@\,!$_>.QF:+ -M3@IF)HD/BTX&BT8(`W[N@](`@\<!@](`CL(FB0TFB44"C-@KT@/`$](#P!/2 -M`\`3T@/`$](%"'R#T@")1NJ)5NP>C,B.V#:+7NHVBT[L/H@>]@<^B#[W!SZ( -M#O@'/H@N^0<?9HM&#L1>^(-&^`1F)HD'Q%[X@T;X!&8FQP<(````9HM&XL1> -M^(-&^`1F)HD'Q%X29B:+1P3$=OB#1O@$9B:)!,1>$F8FBT<(Q%[X@T;X!&8F -MB0?$7OB#1O@$9BO`9B:)!\1>^(-&^`1F)HD'Q%[X@T;X!&8FB0>,V"O2`\`3 -MT@/`$](#P!/2`\`3T@4VG8/2`,1>^(-&^`0FB0<FB5<"9HM&_&:CT`J+1N:+ -M5N@S!K`",Q:R`BKV,0:P`C$6L@*#/O9[`'4^#NAB^HE&W`O`=0GZN!@`CMCI -MQ@$>:!,+'FBX#IIB!]<!@\0('F@T"QYHN`Z:8@?7`8/$"&H`FOD!UP&#Q`*, -MV"O2`\`3T@/`$](#P!/2`\`3T@5.`H/2`*/6"HD6V`J,V"O2`\`3T@/`$](# -MP!/2`\`3T@7.`H/2`*/<"HD6W@H.Z(3[:``@FK,@UP&#Q`*)1MZ)5N`+T'4: -M'FA$"QYHN`Z:8@?7`8/$"&H`FOD!UP&#Q`)F,\!FN0`(``"+7MZ+5N"+^X[" -M\V:K*\D#TA/)`](3R0/2$\D#TA/)`U;>$\B!PO\/$\B!X@#PB5;JB4[LT?G1 -MVM'YT=K1^=':T?G1VHE6]AY65[@!!([8N$X"!0@`B_"+1O:.P#/_N`'>S6=? -M7A]FBT;J9@4#````NP`0BT[VCL%F)HD&`!"+1NJ+5NR`Q!"#T@"C"'R)%@I\ -MC-@KT@/`$](#P!/2`\`3T@/`$](%U`J#T@"C#'R)%@Y\C-@KT@/`$](#P!/2 -M`\`3T@/`$](%V@J#T@"C$'R)%A)\9L<&%'PX`$``N/\'B4;TBT;THQA\9L<& -M&GP``"``^F:^`````+@,WLUG9@\@P&8E____?V8/(L!F,\!F#R+8N"@`CMB. -MP+@P`([0^@\!%LX*9NH`````&`"[$````([;CL..T[D`````O@````"_```0 -M`/.DO`#P"0#+Z?W_7E_)RY#(!```5U9F,\"[>A-FN0`$``"+^QX'\V:K9H-^ -M"@!T16:+1@J+5@QF/0`0``!V!3/2N``0B4;\B5;^4E!F_W8&'FAZ$XOPB_J: -M"``E`(/$#&:+1OQF`48&*78*&7X,9H-^"@!UNUY?R<N0R`P``%9F*\!FHUX3 -M9J-B$U!J(!YH,A.::@`^`8/$"($^,A,'`70N@3XR$P@!=":!/C(3"P%T'H$^ -M,A/,`'06'FA<"YH6"=<!@\0$:@":^0'7`8/$`H$^,A,+`74%N0`0ZP^!/C(3 -MS`!U!#/)ZP.Y(`")#@!\QP8"?```9J%&$XL62!-FHWHC*O:)1OR)5OY24!YH -M;0N:%@G7`8/$"(-^_A!_)'TB'FA^"YH6"=<!@\0$'FB@"YH6"=<!@\0$:@": -M^0'7`8/$`F:A-A-F`P8Z$V8#!CX3Q%X(9B:)!V90FJ0#)0"#Q`2)1O2)5O:) -M1OR)5OX+T'46'FC+"YH6"=<!@\0$:@":^0'7`8/$`F;_-C83'FCQ"YH6"=<! -M@\0(9O\V-A-F_W;\F@P`/@&#Q`AFH3839@%&_/=&_/\/="!FBT;\9FH!9E`> -M:/T+F@@`)0"#Q`QF_T;\]T;\_P]UX&;_-CH3'FC_"YH6"=<!@\0(9O\V.A-F -M_W;\F@P`/@&#Q`AFH3H39@%&_&;_-CX3'F@+#)H6"=<!@\0(9O\V/A-F_W;\ -M#NCQ_8/$"&:A/A-F`4;\9HM&_&:C7A-F*T;T9@4``!``9J->$V:)1OQF!0,` -M```D_&:C8A-F4!YH%@R:%@G7`8/$"*'J>XL6['LM`@`+PG5S'F@C#)H6"=<! -M@\0$'FA0#)H6"=<!@\0$9J'@668%00```&90'FB!#)H6"=<!@\0(FBP9UP&+ -M\(/^,'0*@_Y!=`6#_F%U"6;'!N!9`````(/^,70*@_Y"=`6#_F)U"6;'!N!9 -M`0```!YHA@R:%@G7`8/$!&8/OT8&9J-6$V:A!'QFP>`(9HO09L'J$(L.:IV` -MS?K!X02+\8O8"_*AX%DKR0OP"Q[J>PLV['N)'EH3B39<$X`F21,/9J%&$V:C -M9A/'!FH36`N,'FP3QP92$P@`B0Y4$Z%Z(XL6?",B\5)0'FB(#)H6"=<!@\0( -MBT;TBU;V7LG+D,@"``#'1OX``(M&!DAU#[,!M(C-%8E&_HM&_LG+D,T2Z_/( -M"```5HMV"FH`#NC0_X/$`J-N$\<&<!,``&H!#NB^_X/$`J-R$\<&=!,``&8K -MP&:CX%EFHP1\BD8&)8``/0$`&\`E`@"9H^I[B1;L>_]V#%::<`4^`8/$!`O` -M=!K_=@Q6'FB;#)H6"=<!@\0(:@":^0'7`8/$`HU&^!90_W8(#NAU_(/$!HE& -M_(E6_AYH4A.A>B.+%GPC*O924&;_=OAF_W;\FH0$)0"#Q!!>R<O(!@``BD8& -MB$;^M`B*5O[-$X#\`'0.*\"*_+,"M4^Q#[8!L@&*YHK!)#^)1OHSVXK9@./` -MP>,"BMV)7OR+1OJ+5OS)R\@.``!75HL^@IU7#NBM_X/$`HE&_(E6_BKDHWXE -MB\B+1OR*Q(K6`O8:]BKD0/?IHX`E@_\"=2%FQP;D60````"#^0]U!;@#`.L# -MN`$`F:,$?(D6!GSI]@%F:@!7#NAF`H/$!K@\)8OPC%[V9L=&^`$```#'1OX` -M`(E^\HM>_HY&]B:`?`2E=`R#QA!#@_L$?/#K%Y!F)HM$"&9`9HE&^(U'`9FC -M:IV)%FR=9O]V^/]V\@[H$0*#Q`:X?B.)1OR,7OX>OR*<B_`>!V:Y10```/-F -MI1^+V&:!/U=%5H)T%!YHJ@R:%@G7`8/$!+@!`%Y?R<N09H,^ZGL$=!!F@S[J -M>P!T"&:#/NI[`747@SZ"(P1U!;@$`.L",\`STJ/J>XD6['N+'@1\P>,$N'XC -M`]AFBX^8`&:)#N199HN/E`!FB0X>G,<&Z%D``(O8]D=8!`^$_0"+1SR+5SXK -M1RP;5RZ)1OR)5OYF@7\H``(``'894E!FH:8C9L'H"6999O?I9HO09L'J$.LD -MD&:X``(``&8STF;W-J8C9E!FBT;\9EEF,])F]_%FB]!FP>H0B4;\B5;^,_:) -M-NA9QT;X?B.,7OJ+?O)F#[_&9@-&_&905P[H]P"#Q`:#/H(C`'4(@3Z$(R%# -M="^#Q@*#_@I]$8O&F3D6K"-WSG(&.3:J(W?&@S[H60!U-QYHN`R:%@G7`8/$ -M!.L_D(EV]HM&^(M6^AZ_ZGF+\!X'CMIFN8````#S9J4?QP;H60$`BW;VZ\)F -M#[_&9@-&_&90'FC+#)H6"=<!@\0(,\!>7\G+R`H``%=69J%FG6:)1OBA@IV) -M1O9F*\!FB4;\.0;T>WQ-?P8Y!O)[=$5F_W;X9O]&^/]V]@[H?@&#Q`924/]V -M]@[H+@"#Q`:+7OS$-OA[C3B^?B-FN8````#S9J5FH?)[@$;]`H-6_@!F.4;\ -M?+M>7\G+R!```%=6BW8&.3:"27469J&(268Y1@A\#&:AA$EF.48(#XS^`*&` -M)9E24&;_=@B)1O2)5O9F6&999IEF]_EFB]!FP>H0B4;^H7XEF5)0B4;PB5;R -M9HM&"&:99O=^]&:+PF999IEF]_EFB]!FP>H0B4;\9HM.\&:+1@AFF6;W^6:+ -MPF;!ZA"+^*%^)2O'B4;Z/1(`?@7'1OH2`!YH@B7_=OI7_W;\_W;^5IH$`)P! -M@\0."\!T4QYH@B6X`0")1OI05_]V_/]V_E::!`"<`8/$#@O`=#2)?OB+=OZ+ -M?OS_=OA75AYHZPR:%@G7`8/$"AYH@B5J`?]V^%=6_W8&F@0`G`&#Q`X+P'75 -MBT8&HX))9HM&"&:CB$EF#[]&^F8#1@AFHX1)BT8(*P:(2<'@"06");]^(XOP -M'@=FN8````#S9J5>7\G+R`H``%=6@S[H60`/A+T`C%[^9J'D668Y1@@/C*X` -M9J$>G&8#!N199CM&"`^.G0"[(IQFBT8(9C/29O=W.(OXNR*<9HM&"&8STF;W -M=SAFB\)F,])F]W<LBN`JP(OPNR*<9HM&"&8STF;W=RQFB\)FP>H0`_#'1OH` -M`,=&_O)YBU[^BT[ZB]8Y/W4(.5<"=0?K%)`Y/W<,08/#!('[ZGMRYNL#N7X` -M@_E^="*+P9F[(IR+^HM'/(M7/BM'+!M7+BO!&]<M`0"#V@!>7\G+BT8(BU8* -M7E_)R\@$``!FQT;\`!```&:#?@H`?DAF@7X*`!```'T(9HM&"F:)1OQF_W;\ -M'FC@20[H+0"#Q`AF_W;\9O]V!AYHX$F:"``E`(/$#&:+1OQF`48&9BE&"F:# -M?@H`?[C)RY#($```5U9F@WX*``^$;P'$'NY[)HM'2":+5TKWT/?2(P8`?",6 -M`GR)1O2)5O9FH0!\)HI/4&;3^&:)1OB+5OIF/0P```!]604!`(/2`,0>[GLF -MBD]0"LET"`/`$]+^R77X.Q:RG7(Y=P8[!K"==C'$'NY[)HM'2":+5TKWT/?2 -M(P:PG2,6LITF`T<T)A-7-BT!`(/:`"8C1TPF(U=.ZPV0Q![N>R:+1S`FBU<R -MB4;\B5;^9O]V^`[HO@.#Q`3$'NY[)HI/9`K)=`@#P!/2_LEU^`,&Y%D3%N99 -MB4;PB5;R9HM&_&:C\GMFBT;P9J-FG6:#?O0`=1IFBT8*9CE&_'\09HM&!F:C -M^'N:H`+L`.M/D,<&^'LHGHP>^GN+1@J+5@QFBT[T9BE._#E6_GP-?P4Y1OQV -M!HE&_(E6_IJ@`NP`BT;T`P;X>XL6^GN+3OP>B_".VL1^!M'I\Z43R?.D'XM& -M_`%&!HM6_@$&`'P1%@)\*48*&58,9H-^"@`/A9'^7E_)R\@6``!75F;'1OP" -M````N"B>H_A[C![Z>\0>[GMF)HM',&:C\GMF)O]W&&8F_[>X`&:+1OQF66:9 -M9O?Y9HO09L'J$,0>[GLFBT\<)HMW'O?1]]:+^(O:(\$CUE)0B_-F6&999O?I -MQ![N>V8F_W=X9B;_M[@`9HE&ZF:+1OQF66:99O?Y9HO"9EEFF6;W^<0>[GLF -MBD]@9M/@9@-&ZF8F_[>\`&:+T&;!ZA!65XOPB_IF6&999O?I9HO09L'J$`/P -M$_K$'NY[)@-W$"83?Q(FBD]D"LET"`/V$__^R77X`S;D61,^YEF)-F:=B3YH -MG9J@`NP`Q![N>V8F_W=X9HM&_&999IEF]_EFB\)FP>H0P>`'`P;X>XL6^GL> -MOZB=B_`>!X[:9KD@````\V:E'\1>!B:`/P`/A+$!CEX(@#\O=0E#@#\O=/J) -M7@86'V:#/K"=``^$G`&*)JF=@.3P@/Q`#X6.`8M6"(OSB5;PCMKK!X!^]R]T -M"D:*!(A&]PK`=?#&!`!FQT;\`````(EV[A8?9J&PG68Y1OP/@U8!Q![N>R:+ -M1T@FBU=*]]#WTB-&_"-6_HE&\@O0#X7#`&:+1OPFBD]09M/X9HE&^(M6^F8] -M#````'U9!0$`@](`Q![N>R:*3U`*R70(`\`3TO[)=?@[%K*=<CEW!CL&L)UV -M,<0>[GLFBT=()HM72O?0]](C!K"=(Q:RG28#1S0F$U<V+0$`@]H`)B-'3"8C -M5T[K#9#$'NY[)HM',":+5S*C\GN)%O1[9O]V^`[HKP"#Q`3$'NY[)HI/9`K) -M=`@#P!/2_LEU^`,&Y%D3%N99HV:=B19HG;@HGJ/X>XP>^GN:H`+L`(M>\HX& -M^GL#'OA[B5[XC$;Z)HM'!"O2`4;\$5;^9B:#/P`/A.S^@\,(B_L>Q78&N?__ -M,\#RKO?1*_GSIG0%&\`=__\?"\`/A<C^Q%[X9B:+!V:)1OR+=NZ+1O")=@:) -M1@B*3O>.P":(#.DF_;@!`%Y?R<N0,\!>7\G+58OL9H-^!@Q]$(M>!L'C`HN' -MT)V+E]*=R<MFH0">Q![N>R:*3V1FT^!F`P;D66:C9IUF.08"#70DQP;X>^I9 -MC![Z>\0>[GMF)HM',&:C\GN:H`+L`&:A9IUFHP(-Q![N>V8F_W=T9HM&!F8M -M#````&999IEF]_EFB\)FP>H0B]C!XP*+A^I9BY?L6<G+D,@$``!6BT8&BU8( -MB_")5OYFQP;\>X````#'!H*=@`":3`#L``O`=`:X`0!>R<NX'GRC[GN,'O1OB+ -M1@Z)1OIFBT809HE&_(U&\A90:@*:NAS7`2K`R<N0R`@``%=6O@`09H-^#@!^ -M6XM^!F:!?@X`$```?0.+=@[_=@A7:@%6'FC@29JB!]<!@\0,B\:94E9F_W8* -M'FC@28EV_(E6_HEV^(E6^IH(`"4`@\0,9HM&^&8!1@IFBT;\9BE&#F:#?@X` -M?ZA>7\G+D,@,``!6BW8&9BO`9J.X26:CO$G_=@A69F@@``$`'FB,29JB!]<! -M@\0,9F@```$`:.`/_W8(5II^&=<!@\0*@3Z,20<!="Z!/HQ)"`%T)H$^C$D+ -M`70>@3Z,2<P`=!8>:`H-FA8)UP&#Q`1J`)KY`=<!@\0"@3Z,20L!=0:Y`!#K -M$)"!/HQ)S`!U!#/)ZP.Y(`")#@!\QP8"?```9J&@28L6HDEFH]1)*O:)1OR) -M5OY24!YH&PV:%@G7`8/$"(-^_A!_)'TB'F@L#9H6"=<!@\0$'FA.#9H6"=<! -M@\0$:@":^0'7`8/$`F:AD$EF`P:4268#!IA)Q%X,9B:)!V90FJ0#)0"#Q`2) -M1O2)5O:)1OR)5OX+T'46'FAY#9H6"=<!@\0$:@":^0'7`8/$`F;_-I!)'FB? -M#9H6"=<!@\0(9O\VD$EF_W;\_W8(5@[H0OZ#Q`QFH9!)9@%&_/=&_/\/="!F -MBT;\9FH!9E`>:*L-F@@`)0"#Q`QF_T;\]T;\_P]UX&;_-I1)'FBM#9H6"=<! -M@\0(9O\VE$EF_W;\_W8(5@[H[OV#Q`QFH91)9@%&_&;_-IA)'FBY#9H6"=<! -M@\0(9O\VF$EF_W;\F@@`J@"#Q`AFH9A)9@%&_&:+1OQFH[A)9BM&]&8%```0 -M`&:CN$EFB4;\9@4#````)/QFH[Q)9E`>:,0-FA8)UP&#Q`AF#[]&"F:CL$EF -MH01\9L'@"&:+T&;!ZA"+#FJ=@,WZP>$$B_&+V`ORH>!9*\D+\`L>ZGL+-NQ[ -MB1ZT28DVMDF`)J-)#V:AH$EFH\!)QP;$208-CRY#(#```5U:+=@@>:.0-_W8* -M5II&!]<!@\0(B_B)5OH+T'48_W8*5AYHYPT>:+@.FF('UP&#Q`Q>7\G+C4;T -M%E#_=@;_=OI7#N@J_8/$"HE&_(E6_O]V^E>:1`;7`8/$!!YHK$FAU$F+%M9) -M*O924&;_=O1F_W;\FH0$)0"#Q!!>7\G+`````````````````````+0PS2$\ -M`G,%,\`&4,N_`02+-@(`*_>!_@`0<@.^`!#ZCM>!Q"Z^^W,2%A\.Z%\",\!0 -M#N@[!;C_3,TA-J-$#H;@-J-"#HO&L033X$@VHP(.NP0.-HP7@^3^-HEG!+C^ -M_U`VB6<*]]!0-HEG!C:)9P@VB2;^#0/WB38"`(S#*][WV[1*S2$VC!Y`#A8' -M_+\R$KDPOBO/,\#SJA8?BPXP$>,"_]&:Q`37`9H<`]<!,^V:,`'7`18?_S9H -M#O\V9@[_-F0._S9B#O\V8`Z:R@```%`.Z`<!PRZA+@&.V+@#`,<&``[Y`5`N -MBQXN`8[;FD(&UP$.Z)D!#NAX!($^,A'6UG4&6%#_%C81N/\`4`[_%@`.`02X -M`#7-(8D>+`Z,!BX.#A^X`"6Z\P#-(18?BPY"$>,IC@9`#B:+-BP`H401BQ9& -M$3/;_QY`$7,#Z60!H4@1BQ9*$;L#`/\>0!&.!D`.)HL.+`#C/H[!,_\F@#T` -M=#2Y#0"^'@[SIG0+N?]_,\#RKG4AZ^4&'@<?B_>_3`ZQ!*PL07(-TN"2K"Q! -M<@4*PJKK[A8?NP0`@*=,#K^X`$3-(7(*]L*`=`6`CTP.0$MYY[Y,$;],$>BS -M`+Y,$;],$>BJ`+Y0$;]0$>BA`,M5B^PSR>L:58OLN0$`ZQ)5B^Q65[D``>L( -M58OL5E>Y`0&(+G<.40K)=1Z^V$F_V$GH;0"^3!&_4!'H9`"!/C(1UM9U!/\6 -M.!&^4!&_4!'H3P"^4!&_4!'H1@":^`+7`0O`=!%8"N10=0N#?@8`=07'1@;_ -M`.@0`%@*Y'4'BT8&M$S-(5]>7<N+#D(1XP>[`@#_'D`1'L46+`ZX`"7-(1_# -M._=S#H/O!(L%"T4"=/+_'>ONPU6+[+C\`%`.Z-@"@SYZ#@!T!/\>>`ZX_P!0 -M#NC%`HOE7<NX`@#I+OY96HO<*]AR"SL>@`YR!8OC4E'+4E&A?`Y`=04SP.D. -M_O\N?`Y6,_:Y0@`RY/RL,N#B^X#T570/#NB=_[@!`%`.Z'@"N`$`7LN/!H(. -MCP:$#J%$#KH!`#P"="F.!D`.)HX&+`",!FP.,\"9N0"`,__RKJYU^T='B3YJ -M#KG___*N]]&+T;\!`+Z!`(X>0`ZL/"!T^SP)=/<\#71O"L!T:T=.K#P@=.@\ -M"73D/`UT7`K`=%@\(G0D/%QT`T+KY#/)0:P\7'3Z/")T!`/1Z].+P='I$]&H -M`77*ZP%.K#P-="L*P'0G/")TNCQ<=`-"Z^PSR4&L/%QT^CPB=`0#T>O;B\'1 -MZ1/1J`%UTNN7%A^)/F`.`]='T>?1YP/70H#B_BOBB\2C8@Z,%F0.B]@#^Q8' -M-HD_-HQ7`H/#!,4V:@ZLJ@K`=?HVCAY`#KZ!`.L#,\"JK#P@=/L\"73W/`UU -M`^F#``K`=0+K?3:)/S:,5P*#PP1.K#P@=-<\"733/`UT8@K`=%X\(G0G/%QT -M`ZKKY#/)0:P\7'3Z/")T!K!<\ZKKT;!<T>GSJG,&L"*JZ\5.K#P-="X*P'0J -M/")TMSQ<=`.JZ^PSR4&L/%QT^CPB=`:P7/.JZ]FP7-'I\ZISEK`BJNO-,\"J -M%A_'!P``QT<"``#_+H(.58OL@^P$'HX&0`XFBQXL`([#C$;^,\`S]C/_N?__ -M"]MT#B:`/@```'0&\JY&KG7ZB\=`)/Y&B_[1YM'FN0D`Z,``4E"+QNBY`*-F -M#HD6:`Z)5OP&'XO/B]@S]E\'2>,SBP0V.P8>#G444597!A8'OQX.N08`\Z<' -M7UY9=`N.7OR)/XQ'`H/#!(Y>_JRJ"L!U^N+-CE[\B0^)3P(?B^5=RU6+[%97 -M'@>+5@:^6!&M.\)T$$"6=`R7,\"Y___RKHOWZ^N67UZ+Y5W*`@!5B^Q7_W8& -M#NC*_PO`=""2B_HSP+G___*N]]%)NP(`@3XR$=;6=03_%C01M$#-(5^+Y5W* -M`@``4P91N0`$AP[X$%%0FK,@UP%;CP;X$%F+V@O8=`,'6\.+P>D7^P!R%3/` -MB^5=RW/X4.@:`%@RY(OE7<MS!^@.`+C__YF+Y5W+,N3H`0#+HD@."N1U(H`^ -M0PX#<@P\(G,,/"!R!+`%ZP8\$W8"L!.[A@[7F*,Z#L.*Q.OW`,L`58OL@^P0 -M5U:___^+1@:+\(O8]D<*0'0(QD<*`.FG`)#V1`J#=0/IF0`>5NAF!X/$!(OX -MB]Z!ZZ`.BX>4#XE&_AY6Z&\$@\0$BD0+*N10FA04UP&#Q`(+P'QE@W[^`'1B -MN)H.'E"-3O0649K4&-<!@\0(C4;VB4;PC%;R@'[T7'05N)P.'E"-1O064)J` -M&-<!@\0(ZP20_T[PN`H`4/]V\O]V\/]V_IH0&=<!@\0(C4;T%E":=B+7`8/$ -M!`O`=`.____&1`H`B\=>7XOE7<M5B^R#[`B:QA/7`8E6_@O0=08SP)GK&9#_ -M=OY0_W8._W8,_W8*_W8(_W8&FGP+UP&+Y5W+58OL,\!0_W8,_W8*_W8(_W8& -MFA('UP&+Y5W+D%6+[(/L!E=6BW8&'E;H1@6#Q`2+^(U&#A90_W8,_W8*'E:: -MW`[7`8/$#(E&^AY65^BD!8/$!HM&^EY?B^5=RY!5B^R#[`165XM&"O=F#(O( -M"\IT8XE&_(E6_L1>!HMV#@O2=2&#^/]T'(O+`\CC`G(44%-2B\CH:@"+R%I; -M6"O!@]H`ZSR#^P%W!;D`@.L$B\OWV5%04U+H20"+R%I;6%\KP8/:`#O/<A@# -MV7,,C,&!P0`0CL'K`NLDB\@+RG6AZP"+R`O*=!.+3OPKR(O!BT[^&\J+T?=V -M"NL#BT8,7UZ+Y5W+58OL@^P$B4[^OY`/B\8MH`X#^/9$"@QU!?8%`70%BT4" -MZP.X``*)1OSV1`H,=07V!0%T,XM$!`O`="P[P78"B\%04U$&4/]T`O\T!E,. -MZ&(3@\0*!UE;6"O(*40$`]@!!.L`XV+KPCM._'(P,]*+P?=V_(O!*\)34090 -M!E,SP(I$"U`.Z+8-@\0(!UE;"\!T+(/X_W0M*\@#V.O'4U$&'E8.Z(8`@\0$ -M!UE;@_C_=!<FB`=#28M%`HE&_.NF@$P*$.L$@$P*((M&_BO!B^5=PP!5B^R# -M[`97N*P.'E#HDP.#Q`2+^(U&"A90_W8(_W8&N*P.'E":W`[7`8/$#(E&^KBL -M#AY05^CK`X/$!HM&^E^+Y5W+D%6+[)I8#M<!H'<."L!T!9I8&=<!7<M5B^Q6 -M5XMV!HI$"JB#=%^H0'5;J`)U2`P!B$0*B_Z![Z`.@<>0#Z@,=0WV!0%U"!Y6 -MZ(P!@\0$BT0&B03_=0+_=`A0,]N*7`M3#NC%#(/$"`O`=!&#^/]U&H!,"B#K -M"H!,"B#K"8!,"A#'1`0``+C__^LEBK],#H#G@H#_@G4+BGP*]L>"=0.`#2!( -MB40$Q!PSP":*!T.)'%]>7<M5B^Q65XMV"(I$"JB"=&JH0'5FQT0$``"H`70+ -MJ!!T68M,!HD,)/X,`B3OB$0*B_Z![Z`.@<>0#S/;BEP+J`AU4:@$=1[V!0%U -M2('^K`YT#('^N`YT!H'^T`YU)O:'3`Y`=!^Y`0"-?@91%E=3#NBO%(/$"+D! -M`.M&N/__@$P*(.ME4QY6Z)P`@\0$6_9$"@ATT8L,BU0&*\I"B12+50)*B50$ -MXR514?]T"/]T!E,.Z&X4@\0(6<1\!HM6!B:(%3O!=;8SP(I&!NL=,\#VATP. -M('3CN0(`45!04P[H2@F#Q`@SP(O(Z\]?7EW+`%6+[%:+=@2*1`JH@W0FJ`AT -M(O]T"/]T!IJ@(-<!@\0$@&0*]S/`B40&B40(B02)1`*)1`1>7<,`58OL5HMV -M!+@``E":LR#7`5F+WH'KH`Z!PY`/"])T"X!,"@C'1P(``NL.@$P*!,='`@$` -MC-J-1P&)5`*)!(E4"(E$!L=$!```7EW#`%6+[(/L#%=6H/00B$;\QT;Z``#$ -M7@HFB@>8/7<`=%=W""QA=%LL$70',\"9Z08!D#/VQD;^`<=&^`$`_T8*Q%X* -M)H`_`'4#Z8H`@W[X`'4#Z8$`)HH'F#UT`'0\=Q`L*W0D+#=T/O[(=$8L"W14 -MQT;X``#KQI"^`0/&1OX"Z[>0O@D!Z_20]\8"`'7B@\X"@^;^QD;^@.NC]\8` -MP'70@<X`0.N7]\8`P'7$@<X`@.N+@W[Z`'6XQT;Z`0"`3OQ`Z7G_@W[Z`'6F -MQT;Z`0"`9OR_Z6?_N*0!4/]V#E;_=@C_=@::MA37`8/$"HE&]@O`?0/I-?__ -M!IX.BT80B_B+R('IH`Z!P9`/B]B*1OZ(1PHKP(E%`HD%B44(B44&BD;VB$4+ -MB]F*1OR(!S/`B44$B4<$B\>,VEY?B^5=RY!5B^Q65XMV!+N$$('^K`YT$KN( -M$('^N`YT";N,$('^T`YU6(O^@>^@#H''D`_V1`H,=4CV!0%U0XL'BU<"B\@+ -MRG0AB40&B50(B02)5`+'1`0``L=%`@`"@$P*`L8%$;@!`.L94[@``E":LR#7 -M`5M;"])T!XD'B5<"Z\@SP%]>7<-5B^Q65XMV!HO^@>^@#H''D`_V!1!T+#/; -MBEP+]H=,#D!T(!Y6Z'<`@\0$@WX$`'02,\"(!8E%`HD$B40"B40&B40(7UY= -MPU6+[%:+1@@+1@9U"#/`4.C.`.L^_W8(_W8&Z#L`@\0$"\!T!KC__^LID(MV -M!H'NH`Z!QI`/]@1`=!C$7@8JY":*1PM0FIX;UP&#Q`(]`0#U&\!>B^5=RY!5 -MB^R#[`)75C/_BT8$B]B+\(I/"HO1@.$#@/D"=4GVP@AU"X'KH`[VAY`/`70Y -MBP0K1`:)1OX+P'XM4/]T"/]T!HI$"RKD4)HL']<!@\0(.T;^=0SV1`J`=`V` -M9`K]ZP>`3`H@O___BT0&BU0(B02)5`+'1`0``(O'7E^+Y5W#D+@!`%#H`0#+ -M58OL@^P"5U:^H`XS_XE^_NLA@WX$`'48]D0*`G02'E::@`W7`8/$!$!U!<=& -M_O__@\8,.3:`$'(=@WX$`773]D0*@W3-'E::@`W7`8/$!$!TWD?KVY"#?@0! -M=02+Q^L#BT;^7E^+Y5W"`@"0-`\_#U4/B0^U#[T/Y@\8$%6+[+@4`@[H[O-6 -M5S/`B4;XB$;[Q'8*)JR)=@J(1OX*P'0&@W[X`'T&BT;XZ;4$NY`0+"`\6'<% -MUR0/ZP*P`+$#TN`"1OO7_L'2Z(A&^YB+V-'C+O^GS`Z*5OZY`0#H-@3KL3/` -MB4;PB4;VB4;NQT;\(`!(B4;TZYN*1OX\+74&@$[\!.N./"MU!H!._`'KA#P@ -M=0>`3OP"Z7G_/"-U!X!._(#I;O^`3OP(Z6?_BD[^@/DJ=0_H7`,+P'D7]]B` -M3OP$ZP^`Z3`R[8M&]KL*`/?C`\&)1O;I.__'1O0``.DS_XI._H#Y*G4,Z"@# -M"\!Y%+C__^L/@.DP,NV+1O2["@#WXP/!B4;TZ0K_BD;^/&QU!H!._!#K(CQ& -M=0:`3OP@ZQ@\3G4&@$[]$.L./$QU!H!._03K!(!._0CIV/Z*1OX\9'4#Z90! -M/&EU`^F-`3QU=0/IB@$\6'4#Z8D!/'AU`^F(`3QO=0/IH@$\8W0:/'-T)SQN -M=%$\<'1@/$5T!SQ'=`/INP#IM0#HB@*-ONS]%@>J3[D!`.GQ`>B0`@O_=1*, -MP`O`=0P>![_I$(L.[Q#IV`%7BT[TXP<RP/*N=0%/62OYA\_IPP'H8@*+1OBK -M]D;\$'0#,\"KZ3O^]D;\,'4%Z#("ZSGH-@+V1OT8=3#&1O\'N1``%@=2,]*- -MOO3]O@0`Z+`"N1``C;[O_5@STKX$`.B@`L:&\/TZN0D`ZQC&1O\'N1``%@<S -MTHV^[_V^!`#H@0*Y!`"-ONS]Z4T!_T;N@$[\0(I&_@P@F(OP@W[T`'\3=`?' -M1O0&`.L*@_AG=07'1O0!`(V^[/W_=N[_=O16%E?_=A#_=@[V1OT$=`K_'@X1 -M@T8."NL(_Q[Z$(-&#@B#Q`[V1OR`=`^#?O0`=0D65_\>!A&#Q`2#_F=U$/=& -M_(``=0D65_\>`A&#Q`06!R:`/2UU!4>`3OT!N?__5[``\JY/62OYA\_IKP"` -M3OQ`QD;Z"NLUQD;_!^L$QD;_)_9&_(!T$<=&\`(`QD;R,+)1`E;_B%;SQD;Z -M$.L.]D;\@'0$@$[]`L9&^@CV1OP0=`7H^P#K#NCM`/9&_$!T`YGK`C/2]D;\ -M0'0/"])]"X!._0'WV(/2`/?:@W[T`'T'QT;T`0#K!(!F_/>+V`O:=07'1O`` -M`(U^ZQ8'BD[Z,NV+=O3H0`'V1OT"=`[C!B:`/3!T!D\FQ@4P0>L`]D;\0'0Q -M]D;]`70+QD;R+<=&\`$`ZR#V1OP!=`O&1O(KQT;P`0#K#_9&_`)T"<9&\B#' -M1O`!`(M&]BO!*T;P?0(SP`974?9&_`QU!XO(LB#HNP!0%@>-?O*+3O#HD0!8 -M]D;\"'0-]D;\!'4'B\BR,.B;`%E?!U#H=@!8]D;\!'0'B\BR(.B&`.D`_,1V -M#B:MB78.P\1V#B:MB]`FK9*)=@[#]D;\('0(Z.G_CL*+^,/HV/^+^`O`=0.. -MP,,>!\.8!E?$7@8F_T\$>!`FBS\F_P<FCD<"JC/`7P?#45(&4U`.Z,/V@\0& -M6EF#^/]UZ.OHXQN+]P%.^%<S_R:LZ,#_"_CB]PO_7W0%QT;X___#XQD!3OA7 -M,_^*PNBD_POXXO<+_U]T!<=&^/__P_U7DPOV?PH+VW4&"])U`NL:DC/2]_&3 -M]_&2A],$,#PY=@,"1O^JB\).Z]A9*\]'_,-?7HOE7<M5B^R#[`16OJ`.*\") -M1OZ)1OSK`X/&##DV@!!R)O9$"H-U\<9$"@#'1`0``"O`B40(B40&B40"B03& -M1`O_B7;\C%[^BT;\BU;^7HOE7<M5B^R+7@8['DH.<@:X``GYZPNT/LTA<@7& -MATP.`.FX\56+[(/L!(M>!CL>2@YR!;@`">LQ@S[V$`!T3_=&"@"`=$B#?@P` -M=!HSR8O1N`%"S2%R2_=&#`(`=0X#1@@35@IY*+@`%OGK-HE6_HE&_(O1N`)" -MS2$#1@@35@IY#8M._HM6_+@`0LTAZ]B+5@B+3@J*1@RT0LTA<@6`ITP._>E, -M\0!5B^R#[`0R_X`^0PX#<@.*?@R+1@Z)1@SK"%6+[(/L!#+_B'[^BT8*B\C& -M1OP`J0"`=1"I`$!U!_8&\Q"`=03&1OR`'L56!B0#"L>T/<TA'W,2@_@"=0GW -MP0`!=`/II0#YZ>?PDXO!)0`%/0`%=0FT/LTAN``1Z^C&1OT!N`!$S2'VPH!T -M!(!._$#V1OQ`=`/IWP"+1@JI``)T'JD#`'0),\FT0,TAZ<D`M#[-(1[%5@:X -M`$/-(1_K:?9&_(!U`^FP`*D"`'4#Z:@`N?__B]&X`D+-(??9'A8?C5;_M#_- -M(1\+P'05@'[_&G4/]]F+T;@"0LTA,\FT0,TA,\F+T;@`0LTAZVW&1OT`BTX, -MZ*P`B4X,]D;^_W4']T8*`@!U`X#A_A[%5@:T/,TA'W,#Z1OPD_9&_O]U!_=& -M"@(`=32T/LTABD8*)`,*1OX>Q58&M#W-(1]RV)/V1OT!=1;W1@P!`'0/@,D! -M'L56!K@!0\TA'W*[]D;\0'4_'L56!K@`0\TA'XO!,LF#X`%T`K$0]T8*"`!T -M`X#)(#L>2@YR"K0^S2&X`!CIN?X*3OR`R0&(CTP.B\.+Y5W+,LGKW*$\#O?0 -M(\$SR:B`=0.`R0'#58OL@^P"BUX&.QY*#G(&^;@`">MS,\"+3@SC;/:'3`X" -M=66!/C(1UM9U!/\6-!&+3@P>Q58(M#_-(1]S!+0)ZT?VATP.@'1`@*=,#OM6 -M5QX'CEX*_(ORB_J+R.,GM`V`/`IU!B:`CTP.!*PZQ'0</!IU"":`CTP.`NL% -MB`5'XNJ+QRO"!A]?7NGT[H/Y`70'@#P*=.GKY`8?]H=,#D!T'+@`1,TA]\(@ -M`'4-'A8?C5;_M#_-(1]RSK`*ZS`>%A_&1O\`C5;_M#_-(1]RN0O`=!F#?@P! -M=!^Y__^+T;@!0LTAN0$`@'[_"G0'L`W%5@CKBL56".N(@'[_"G7;Z[I15_9' -M`@%T9NC5`(O^BP2H`70#*\A)04&+=P0+]G1/`\YS"3/`NO#_XS/K0K@!!([` -M)J'X$#T`('06N@"`.]!R!M'J=?CK(H/Z"'(=T>*+PDB+T`/!<P(SP/?2(\)2 -MZ"X`6G,-@_KP=`6X$`#KXOGK&XO0*U<$B4<$B7\(BW<*2HD40@/RQP3^_XEW -M"E]9PXO0]D<"!'0/2HMW!$X[UG8%.5?^<S9"4U&,WH[&L033Z'4#N``0]D<" -M!'0*`\:+'D`.*\..PXO8M$K-(5E;<A"+PO9'`@1T!$J)5_[XZP'YPU>+=P@[ -M=PIU`XMW!JV#^/YT"(O^)/X#\.OR3T^+]U_#58OLB]>+WA[$?@8SP+G___*N -MC77_Q'X*N?__\J[WT70#*_E!*_F,P([8CD8(A_Z+1@8+R74%I4E)ZPCWQ@$` -M=`*D2='I\Z43R?.DB_.+^A^,PEW+58OLB]>+WA[%=@J+_HS8CL`SP+G___*N -M]]'$?@:+QW0$I4GK!J@!=`*D2='I\Z43R?.DB_.+^A^,PEW+58OL5E>S`8M. -M#(M&!C/2@_D*=0&9'L5^".DW`[8!ZP*V"*$<$0KD=0C'!AP1___K%H$^,A'6 -MUG4)4[O___\6-!%;DLTAM`#+5U:^W`XS_^L2D!Y6FD0&UP&#Q`1`=`%'@\8, -M.3:`$'/IB\=>7\M5B^Q6BW8&]D0*@W0,@WX.`G\&@WX.`'T)QP8Z#A8`ZU*0 -M@&0*[X-^#@%U%1Y6FOX9UP&#Q`0!1@H15@S'1@X``!Y6Z!3T@\0$]D0*@'0$ -M@&0*_/]V#O]V#/]V"HI$"RKD4)HT%-<!@\0(/?__=0D[T'4%N/__ZP(SP%Z+ -MY5W+D%6+[(/L%%=6BT8&B_"+R('IH`Z!P9`/B]B)3OZ*3PLJ[8E.\H-_!`!] -M!<='!```N`$`4"O`4%!1FC04UP&#Q`B)1OB)5OH+TGT(N/__F>E)`9#V1`H( -M=1Z+7O[V!P%U%HM$!)F+R(O:BT;XBU;Z*\$;T^DE`9"+!"M$!HE&_/9$"@-T -M/HM>\O:'3`Z`="2+1`:+5`B)1NR)5N[K#\1>[":`/PIU`_]&_/]&[(L$.4;L -M<NJ+1OH+1OAU&(M&_"O2Z=@`]D0*@'7JQP8Z#A8`Z7G_D/9$"@%U`^FS`(-\ -M!`!U"<=&_```Z:4`D(L$*T0&`T0$B4;PBU[R]H=,#H!U`^F!`+D"`%$KR5%1 -M4XOXFC04UP&#Q`@[1OAU/CM6^G4Y`WP&BTP(B7[TBT0&B4;LB4[NZQ"0Q%[L -M)H`_"G4#_T;P_T;LBT;L.4;T=^F+7O[V!R!T,/]&\.LK,\!0_W;Z_W;X_W;R -MFC04UP&+7OZ#Q`B+1P*)1O"+7O+VATP.!'0$0(E&\(M&\"O2*4;X&5;ZBT;X -MBU;Z`T;\@](`7E^+Y5W+58OL5U:+=@8+]GP&.39*#G\,QP8Z#@D`N/__ZS:0 -MH$(.BB9##CT>`WT$,\#K)?:$3`X!=!-6FN@<UP&#Q`*+^`OX=`V)/D@.QP8Z -M#@D`O___B\=>7XOE7<N058OLBTX.'E=6XTC%=@K$?@:+P4B+U_?2*\(;VR/# -M`\*+UO?2*\(;VR/#`\)`D2O!T>GSI1/)\Z21XQ@+]G4'C-@%`!".V`O_=<>, -MP`4`$([`Z[Z+1@:+5@A>7Q]=RXM.#HM&!HM6"ZJ+P@O# -M=>*(!4^LA@6(1/^-1`$[QW+RC-I8'U]>B^5=RP!5B^R*9@8>Q5X(BA>`_`)R -M&(IW`HM/!(;IT,G0R8#AP`I/!HI'",1?"LT3'UW+58OLBUX&M&C-(>G_Z`!5 -MB^Q75E,S_XM&"`O`?1%'BU8&]]CWVH/8`(E&"(E6!HM&#`O`?1%'BU8*]]CW -MVH/8`(E&#(E6"@O`=16+3@J+1@@STO?QB]B+1@;W\8O3ZSB+V(M."HM6"(M& -M!M'KT=G1ZM'8"]MU]/?QB_#W9@R1BT8*]^8#T7(,.U8(=P=R!CM&!G8!3C/2 -MED]U!_?:]]B#V@!;7E]=R@@`58OLBT8(BTX,"\B+3@IU"8M&!O?A7<H(`%/W -MX8O8BT8&]V8,`]B+1@;WX0/36UW*"`!5B^Q35S/_BT8("\!]$4>+5@;WV/?: -M@]@`B48(B58&BT8,"\!]$(M6"O?8]]J#V`")1@R)5@H+P'48BTX*BT8(,]+W -M\8M&!O?QB\(STD]Y0^M(B]B+3@J+5@B+1@;1Z]'9T>K1V`O;=?3W\8O(]V8, -MD?=F"@/1<@P[5@AW!W(+.T8&=@8K1@H;5@PK1@8;5@A/>0?WVO?8@]H`7UM= -MR@@`58OL4U:+1@P+P'45BTX*BT8(,]+W\8O8BT8&]_&+T^LXB\B+7@J+5@B+ -M1@;1Z=';T>K1V`O)=?3W\XOP]V8,D8M&"O?F`]%R##M6"'<'<@8[1@9V`4XS -MTI9>6UW*"```58OL4XM&#`O`=16+3@J+1@@STO?QBT8&]_&+PC/2ZT6+R(M> -M"HM6"(M&!M'IT=O1ZM'8"\EU]/?SB\CW9@R1]V8*`]%R##M6"'<'<@L[1@9V -M!BM&"AM6#"M&!AM6"/?:]]B#V@!;7<H(`%6+[(/L"(M>!CL>2@YR![@`"?GI -MO^:!/C(1UM9U!/\6-!'VATP.('0+N`)",\F+T<TA<M_VATP.@'1\C%[ZCD8* -MQ58(,\")1OZ)1OS\5U:+^HORB6;XBTX,XS^P"O*N=5$>CE[ZFHP@UP$]J`!V -M2A^#[`*+W+H``CTH`G,#NH``*^*+U(OZ%@>+3@RL/`IT##O[=!FJXO3H)@#K -M>;`-._MU`^@;`*JP"O]&_.OCZ!``Z^)>7XY>^NMMN/S_#NCHXE!341X&'XO/ -M*\KC$E&+7@:T0,TA67(.`4;^.\AW!Q]96UB+^L.?'X/$"(-^_@!U)9YS!+0) -MZR2.7OKVATP.0'0.CEX*BUX(@#\:=0/XZPSYN``<ZP:+1OXK1OR+9OA>7XY> -M^NFOY8M.#`O)=06+P>FCY1[%5@BT0,TA'@<?<P2T">O@"\!UW/:'3`Y`=`N+ -MVB:`/QIU`_CKROFX`!SKQ`!96J&`#CO$<P<KQ/?84E'+,\#K^56+[%;$=@:, -MP>,%)H!,_@%>7<M5B^Q65XM.!H/YZ'=I'J$D$0O`=$B_MB&+-BP1Q1XF$1Y6 -M5__77UYS*XS:Q5\,.]9U[U@?'L0V)A$FBW02Q1XB$8S:.]!UV1\>@?^`%W0. -MOX`7Z\1>@?^V(70/ZPH'!K\B$>@:`7(.Z)D`'XD6*!&)'B81ZR`?,\"9BPX@ -M$0L.'A%T$O]V!O\>'A&#Q`*9"\!T`^EP_U]>7<L&5XOX`_N)?P1/3X/H%HUW -M%,<%_O^)?PI(B02,'XO&C-J.PHU_!ORKJT=',\"KJZNK7P?#)HM%`@O`=0DF -MC%T")HD=ZQ0&)L1U"":,7`XFB5P,C$<2B7<0!R:,70HFB5T()HQ=!B:)703# -M08#A_E/\BW<(BU\*,__K(XO#6Z@!=4)3BW<&BU\(.]YT-DLS_^L,D(U4_CO3 -M<^$#\'(CK:@!=/"+_D@[P7,C`_!R$XO0K:@!=-X#PH/``HOWB43^Z^2+P%N+ -M1P:)1PCYZQE;B4S^=`D#^2O!2(D%*_D#^8E_"(O&C-KXPXO1@\(G@.+PB]KW -MV_?;]=';T>O1Z]'KM$C-(7(F.P8:#G;T.P88#G8#HQ@.CM@SVR:+10R)1P*+ -MPNC>_N@/__CK`?G#58OL'L56!K1!S2$?Z6?C```````````````!!``````` -M``````````````````````!-4R!2=6XM5&EM92!,:6)R87)Y("T@0V]P>7)I -M9VAT("AC*2`Q.3DR+"!-:6-R;W-O9G0@0V]R<!H`1G)E94)31"!B;V]T(%9E -M<G-I;VX@)60N)60*`"AC*2`Q.3DT($-H<FES=&EA;B!'=7-E;F)A=65R+"!C -M9T!F:6UP,#$N9FEM+G5N:2UL:6YZ+F%C+F%T"@H`=7-A9V4Z("5S(%L@;W!T -M:6]N<R!=(%L@:V5R;F5L;F%M92!="@!W:&5R92!O<'1I;VYS(&%R93H*``DM -M<B`N+BX@=7-E(&-O;7!I;&5D+6EN(')O;W1D978*``DM<R`N+BX@<F5B;V]T -M('1O('-I;F=L92!U<V5R(&]N;'D*``DM82`N+BX@87-K(&9O<B!F:6QE(&YA -M;64@=&\@<F5B;V]T(&9R;VT*``DM9"`N+BX@9VEV92!C;VYT<F]L('1O(&ME -M<FYE;"!D96)U9V=E<@H`"2UC("XN+B!I;G9O:V4@=7-E<B!C;VYF:6=U<F%T -M:6]N(')O=71I;F<*``DM=B`N+BX@<')I;G0@86QL('!O=&5N=&EA;&QY('5S -M969U;"!I;F9O"@`)+40@+BXN(&)O;W0@82!K97)N96P@9G)O;2!A($1/4R!M -M961I=6T*``D@("`@("`@*&1E9F%U;'0Z(&,Z7&ME<FYE;"D*`"]K97)N96P` -M8SI<:V5R;F5L```````````````````````````````````````````````` +begin 664 fbsdboot.exe +M35K7`2P`FP!```$,___^#P`4```8`/D!'@````$`L`(``)<"```+`@``U0`` +M`,P```"]````K@```)\```"0````@0```'(```!C````5````$4````V```` +M(P```!0````H`BL`F@`K`!@'*P`.!RL`]`8K`*,&*P"9!BL`B08K`!P$*P#L +M`RL`U@,K`'$'*P"?`[(`90.R`$X#L@`W`[(`(P.R``8#L@#N`K(`U@*R`&0" +ML@!+`K(`.@*R`!X"L@#V`;(`Y0&R`*X!L@"D`;(`B`&R`$<!L@#Z`+(`\`"R +M`-P`L@"Z`+(`L`"R`(0`L@!7`+(`8`2R`/@#L@#N`[(`V@.R`+4"^`!T`O@` +M-P'X`#$$^``;!/@`_0/X`-X#^`#<`DP!IP%,`74!3`%/`$P!R05,`9(%3`$U +M!4P!9@1,`;4#J@%V`ZH!7@.J`?P"J@'K`JH!O@*J`:("J@%F`JH!50*J`1\" +MJ@$5`JH!^0&J`;@!J@&A`:H!5`&J`4H!J@$V`:H!%`&J`0H!J@'>`*H!R0"J +M`8\`J@%N`*H!.0"J`>\$J@&9!*H!<P2J`58$J@$T!*H!X`.J`<D#J@$F`/D! +MO@#Y`<,`^0'*`/D!Y0#Y`0<!^0$H`?D!```?!-0-)`10`OD!SP7Y`?0&^0'G +M!OD!S`;Y`:L&^0&/!OD!50?Y`3H'^0$5!_D!@0?Y`3<)^0$$`"\%6@GY`68) +M^0$T#B0$+@XD!.H/)`0-"_D!.`OY`5L,^0$>#?D!I`[Y`7T.^0$<#OD!P0WY +M`:<7^0%D$"0$:!`D!&P0)`1P$"0$=!`D!'@0)`1\$"0$-1GY`;$9^0%]&?D! +M,QOY`=P:^0$'&OD!I1OY`6(?^0$````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````````````````````````````````````%6+[&9H`0`'`!YH +M0@`>:&`.FEP'^0&+Y1YH7@`>:&`.FEP'^0&+Y6;_=@8>:*8`'FA@#II<!_D! +MB^4>:,P`'FA@#II<!_D!B^4>:.``'FA@#II<!_D!B^4>:`$!'FA@#II<!_D! +MB^4>:"4!'FA@#II<!_D!B^4>:$\!'FA@#II<!_D!B^4>:'@!'FA@#II<!_D! +MB^4>:*,!'FA@#II<!_D!B^4>:,X!'FA@#II<!_D!B^4>:.D!'FA@#II<!_D! +MB^4>:!("'FA@#II<!_D!B^5J`9KS`?D!R<N0R`(``,=&_@``BT8&2'4/LP&T +MB,T5B4;^BT;^R<N0S1+K\\@8``!75L=&[C`"C%[P9BO`9HE&^(E&[*.6>V:C +M(IVY`0`Y3@8/CL\`BT8(BU8*!00`B]B)5O2.1O0FQ#<F@#PM#X6C`$:,1OXF +M@#P`#X2)`(E.]HE>\B:*!)@]=@!T9G<2/&-T2'\<+$-T)O[(="@L'70TQ%X( +M9B;_-P[HA?Z#Q`3K1BQD="PL#G0N_LAT,.OB@$[Y(.LRQT;L`0#'1NXX`HQ> +M\.LCD(!.^`'K'(!.^03K%H!.^$#K$(!.^"#K"H!.^`+K!(!.^0B.1OY&)H`\ +M`'6#BU[RBT[V@\,$03M.!@^,4O_K$9"+V<'C`L1V"&8FBP!FB4;NQP;6G`$` +M,_^)/MB<ON:<C86``%":"`#X`(/$`HD$B50"@\8$1X'^!IURY(M^[FH`#NBR +M_H/$`J,.G<<&$)T``&H!#NB@_H/$`J,2G<<&%)T``,8&"IT`B]>+3O"`Y@\# +MTA/)$](3R1/2$\D3TA/)$]*'T8/A#P/7@]$`B1;:G(D.W)QF*\!FH]Z<QP8& +MG4@`HPB=.4;L=!;_=O!79O]V^)I"!*H!@\0(,\!>7\G+_W;P5V;_=OAH@`": +MJ@.R`(/$"C/`7E_)RY#(!```5HM&#HE&_(M&$`M&#G4'N/__7LG+D(M&_$BC +M4@*+3@@KT@/)$](#R1/2`\D3T@/)$](#3@:#T@`S#E0",Q96`BKV,0Y4`C$6 +M5@*+#E0"BQ96`K:2B196`J-:`HM&"HM6##,&7`(S%EX"*O8Q!EP",19>`J%< +M`HL67@*VDHD67@+1;OQ@M(>+3OR[(`2.P[Y"`LT5B&;^88I&_BKD7LG+D,@$ +M``!6QP9Z`D<`C-@KT@/`$](#P!/2`\`3T@/`$](%<@*#T@`S!GP",Q9^`BKV +M,09\`C$6?@*+%GX"MI*)%GX"QP:"`O\'C-@KT@/`$](#P!/2`\`3T@/`$](% +M\@*#T@`S!H0",Q:&`BKV,0:$`C$6A@*AA`*+%H8"MI*)%H8"C%[\QP:*`O__ +MBT;\*](#P!/2`\`3T@/`$](#P!/2,P:,`C,6C@(J]C$&C`(Q%HX"H8P"BQ:. +M`K:2B1:.`HQ&_,<&D@+__XM&_"O2`\`3T@/`$](#P!/2`\`3TC,&E`(S%I8" +M*O8Q!I0",1:6`J&4`HL6E@*VDHD6E@*,5OS'!IH"``"+1OPKT@/`$](#P!/2 +M`\`3T@/`$](S!IP",Q:>`BKV,0:<`C$6G@*AG`*+%IX"MI:)%IX"C$[\QP:B +M`O__BT;\*](#P!/2`\`3T@/`$](#P!/2,P:D`C,6I@(J]C$&I`(Q%J8"H:0" +MBQ:F`K::B1:F`F"TB;L@!([#OG("NR`HS16(9OYA@'[^`'0(BD;^*N1>R<NX +M,``VB48$,\!>R<O(`@``9L<&?`(`````QP:$`@``,\"CA@*C>@*C@@*CB@*C +MC`*CC@*,3O['!I("__^+1OXKT@/`$](#P!/2`\`3T@/`$](S!I0",Q:6`BKV +M,0:4`C$6E@*AE`*+%I8"MIJ)%I8"C%[^QP::`O__BT;^*](#P!/2`\`3T@/` +M$](#P!/2,P:<`C,6G@(J]C$&G`(Q%IX"H9P"BQ:>`K:2B1:>`HQ6_L<&H@(` +M`(M&_BO2`\`3T@/`$](#P!/2`\`3TC,&I`(S%J8"*O8Q!J0",1:F`HL6I@*V +MEHD6I@+'!JH"!P",V"O2`\`3T@/`$](#P!/2`\`3T@7J`H/2`#,&K`(S%JX" +M*O8Q!JP",1:N`HL6K@*V@HD6K@+'!K("*P",V"O2`\`3T@/`$](#P!/2`\`3 +MT@78$8/2`#,&M`(S%K8"*O8Q!K0",1:V`HL6M@*V@8D6M@+)RY#($@``5F:+ +M1@9FN0`$``!FF6;W^6:+T&;!ZA`%`P`D_(E&_AYH!`L>:`<+FD`'^0&#Q`B) +M1NZ)5O`+T'0\_W;P4)H^!OD!@\0$8+@`WLUGB5[XB4;V8?9&]_]U'<<&EGL! +M`(I&^"KD4(I&^9A0'F@0"YH0"?D!@\0(@4;^@`!@N`!#S2\\@'0283/`NA$` +M7LG+D&$SP)E>R<N0N!!#S2^)7O*,1O2T"/]>\CM&_G+CBU;^M`G_7O(]``!T +MUK0,_U[R/0``=,R)7OR)5OIABT;\F8M.^H/!`BO;`\,3T5[)R\@J``!75HS8 +M*](#P!/2`\`3T@/`$](#P!/2!;H"@](`B4;\B5;^9L=&^````)^,3O*X=`B) +M1O2+1O(KT@/`$](#P!/2`\`3T@/`$]*)1N2)5N8#1O2#T@")1N")5N(>C,B. +MV+M2"#Z('DP(/H@^30B[70B)7O"[8@B)7NZ[9PB)7NR,7O(?BT[RB_$KVXO[ +MB]$#7O`3]X/#`1/WCL9FBTX*9B:)#XE^UHE6V`-^[H/2`(/'`8/2`(["9HM& +M!F8FB06+1@Z+5A"+7NPKR0->UA-.V(/#`8/1`([!)HD')HE7`HS8*](#P!/2 +M`\`3T@/`$](#P!/2!:A[@](`B4;HB5;J'HS(CM@VBU[H-HM.ZCZ('AH(/H@^ +M&P@^B`X<"#Z(+AT('V:+1@[$7OB#1O@$9B:)!\1>^(-&^`1F)L<'"````&:+ +M1N#$7OB#1O@$9B:)!V:+1A+$7OB#1O@$9B:)!V:+1A;$7OB#1O@$9B:)!\1> +M^(-&^`1F*\!F)HD'Q%[X@T;X!&8FB0?$7OB#1O@$9B:)!XS8*](#P!/2`\`3 +MT@/`$](#P!/2!=:<@](`Q%[X@T;X!":)!R:)5P)FBT;\9J/T"HM&Y(M6YC,& +MU`(S%M8"*O8Q!M0",1;6`H,^EGL`=3\.Z$/ZB4;:"\!U"OJX&`".V.G'`9`> +M:#<+'FA@#II<!_D!@\0('FA8"QYH8`Z:7`?Y`8/$"&H`FO,!^0&#Q`*,V"O2 +M`\`3T@/`$](#P!/2`\`3T@5R`H/2`*/Z"HD6_`J,V"O2`\`3T@/`$](#P!/2 +M`\`3T@7R`H/2`*,`"XD6`@L.Z&3[:``@FH$@^0&#Q`*)1MR)5MX+T'4:'FAH +M"QYH8`Z:7`?Y`8/$"&H`FO,!^0&#Q`)F,\!FN0`(``"+7MR+5MZ+^X["\V:K +M*\D#TA/)`](3R0/2$\D#TA/)`U;<$\B!PO\/$\B!X@#PB5;HB4[JT?G1VM'Y +MT=K1^=':T?G1VHE6]AY65[@@!([8N'("!0@`B_"+1O:.P#/_N`'>S6=?7A]F +MBT;H9@4#````NP`0BT[VCL%F)HD&`!"+1NB+5NJ`Q!"#T@"CJ'N)%JI[C-@K +MT@/`$](#P!/2`\`3T@/`$](%^`J#T@"CK'N)%JY[C-@KT@/`$](#P!/2`\`3 +MT@/`$](%_@J#T@"CL'N)%K)[9L<&M'LX`$``N",(B4;TBT;TH[A[9L<&NGL` +M`"``^F:^`````+@,WLUG9@\@P&8E____?V8/(L!F,\!F#R+8N"@`CMB.P+@P +M`([0^@\!%O(*9NH`````&`"[$````([;CL..T[D`````O@````"_```0`/.D +MO`#P"0#+Z?W_7E_)RY#(!```5U9F,\"[(!-FN0`$``"+^QX'\V:K9H-^"@!T +M16:+1@J+5@QF/0`0``!V!3/2N``0B4;\B5;^4E!F_W8&'F@@$XOPB_J:#``K +M`(/$#&:+1OQF`48&*78*&7X,9H-^"@!UNUY?R<N0R!```&9J(!YHV!*::@!, +M`8/$"($^V!('`70N@3[8$@@!=":!/M@2"P%T'H$^V!+,`'06'FB`"YH0"?D! +M@\0$:@":\P'Y`8/$`F:A[!*+%NX29J,@(RKVB4;\B5;^4E`>:)$+FA`)^0&# +MQ`B#?OX0?QA]%AYHH@N:$`GY`8/$!&H`FO,!^0&#Q`*!/M@2"P%U!;D`$.L/ +M@3[8$LP`=00SR>L#N2``*\`##MP2$P;>$@,.X!(3!N(2`P[H$A,&ZA*)#J![ +MHZ)[9FH$C4;P%E"::@!,`8/$"&:AW!)F`P;@$F8#!N02Q%X&9B:)!V8%_P\` +M`"4`\&8FB0=FBT;P9@,&Z!)F!00```!F)@$'9B;_-YJH`RL`@\0$B4;TB5;V +MB4;\B5;^"]!U%AYHN@N:$`GY`8/$!&H`FO,!^0&#Q`*!/M@2"P%U!;D`$.L/ +M@3[8$LP`=00SR>L#N2``B0Z@>\<&HGL``&;_-MP2'FC@"YH0"?D!@\0(9O\V +MW!)F_W;\F@P`3`&#Q`AFH=P29@%&_/=&_/\/="1FBT;\9HE&^&9J`690'FCL +M"YH,`"L`@\0,9O]&_/=&_/\/==QF_S;@$AYH[@N:$`GY`8/$"&;_-N`29O]V +M_)H,`$P!@\0(9J'@$F8!1OQF_S;D$AYH^@N:$`GY`8/$"&;_-N029O]V_`[H +MEOV#Q`AFH>029@%&_(M&_"M&]`,&(".`Y`\KTHE&^(E6^@O0=!)FN``0``!F +M*T;X9HE&^&8!1ORA(".+%B(C*O8K1O0;5O8#1OP35OZC%IV)%AB=9FH$9O]V +M_!YHZ!*:#``K`(/$#&;_-N@29FH$9O]V^!YH!0R:$`GY`8/$$&;_-N@29H-& +M_`1FBT;\9E":#`!,`8/$"&:+1OQF`P;H$F:)1OQF:@2-1O`64)IJ`$P!@\0( +M9FH$9O]V_(U&\!90F@P`*P"#Q`QF@V[P!&;_=O!J!!YH(0R:$`GY`8/$"F;_ +M=O!F@T;\!&:+1OQF4)H,`$P!@\0(9HM&_&8#1O!FB4;\BU;^BPX@(XL>(B,J +M_P/!$],K1O0;5O:C&IV)%AR=4U%24!YH+PR:$`GY`8M&](M6]LG+D,@(``!6 +MBW8,9BO`9J.`66:CI'N*1@8E@``]`0`;P"4"`)FCBGN)%HQ[_W8.5IIP!4P! +M@\0$"\!T&O]V#E8>:$X,FA`)^0&#Q`AJ`)KS`?D!@\0"C4;X%E`.Z'#\@\0$ +MB4;\B5;^9J&D>V;!X`AFB]!FP>H0BPXBG8#-^L'A!(OQB]@+\J&`62O)"_`+ +M'HI["S:,>U93BT8(BU8*@,Z`4E"A(".+%B(C(O%24&;_=OAF_W;\FH@$*P"# +MQ!1>R<O(!@``BD8&B$;^M`B*5O[-$X#\`'0.*\"*_+,"M4^Q#[8!L@&*YHK! +M)#^)1OHSVXK9@./`P>,"BMV)7OR+1OJ+5OS)R\@.``!75HL^.IU7#NBM_X/$ +M`HE&_(E6_BKDHR0EB\B+1OR*Q(K6`O8:]BKD0/?IHR8E@_\"=2%FQP:$60`` +M``"#^0]U!;@#`.L#N`$`F:.D>XD6IGOI%@)F:@!7#NB&`H/$!KCB)(OPC%[V +M9K@!````9HE&^&:C(IW'1OX``(E^\HM>_HY&]B:`?`2E=`R#QA!#@_L$?/#K +M%Y"-1P*9HR*=B18DG68FBT0(9D!FB4;X9O]V^/]V\@[H*P*#Q`:X)".)1OR, +M7OX>O\*;B_`>!V:Y10```/-FI1^+V&:!/U=%5H)T%!YH7@R:$`GY`8/$!+@! +M`%Y?R<N09H,^BGL$=!!F@SZ*>P!T"&:#/HI[`747@SXH(P1U!;@$`.L",\`S +MTJ.*>XD6C'N+'J1[P>,$N"0C`]AFBX^8`&:)#H199HN/E`!FB0Z^F\<&B%D` +M`(O8]D=8!`^$%P%F@SZ\(P!T$XN'M`"+E[8``X>X`!.7N@#K")"A8".+%F(C +MB4;\B5;^9HM'+&8I1OQF@7\H``(``'859J%,(V;!Z`EF]V[\9HO09L'J$.LC +M9K@``@``9C/29O<V3"-F4&:+1OQF668STF;W\6:+T&;!ZA")1OR)5OXS]HDV +MB%G'1O@D(XQ>^HM^\F8/O\9F`T;\9E!7#NCW`(/$!H,^*",`=0B!/BHC(4-T +M+X/&`H/^"GT1B\:9.192(W?.<@8Y-E`C=\:#/HA9`'4W'FAL#)H0"?D!@\0$ +MZS^0B7;VBT;XBU;Z'K^*>8OP'@>.VF:Y@````/-FI1_'!HA9`0"+=O;KPF8/ +MO\9F`T;\9E`>:'\,FA`)^0&#Q`@SP%Y?R<O("@``5U9FH1Z=9HE&^*$ZG8E& +M]F8KP&:)1OPY!I1[?$U_!CD&DGMT16;_=OAF_T;X_W;V#NA^`8/$!E)0_W;V +M#N@N`(/$!HM>_,0VF'N-.+XD(V:Y@````/-FI6:ADGN`1OT"@U;^`&8Y1OQ\ +MNUY?R<O($```5U:+=@8Y-BA)=19FH2Y)9CE&"'P,9J$J268Y1@@/C/X`H28E +MF5)09O]V"(E&](E6]F989EEFF6;W^6:+T&;!ZA")1OZA)"694E")1O")5O)F +MBT8(9IEF]W[T9HO"9EEFF6;W^6:+T&;!ZA")1OQFBT[P9HM&"&:99O?Y9HO" +M9L'J$(OXH20E*\>)1OH]$@!^!<=&^A(`'F@H)?]V^E?_=OS_=OY6F@0`J@&# +MQ`X+P'13'F@H);@!`(E&^E!7_W;\_W;^5IH$`*H!@\0."\!T-(E^^(MV_HM^ +M_/]V^%=6'FB?#)H0"?D!@\0*'F@H)6H!_W;X5U;_=@::!`"J`8/$#@O`==6+ +M1@:C*$EFBT8(9J,N268/OT;Z9@-&"&:C*DF+1@@K!BY)P>`)!2@EOR0CB_`> +M!V:Y@````/-FI5Y?R<O("@``5U:#/HA9``^$O0",7OYFH8199CE&"`^,K@!F +MH;Z;9@,&A%EF.T8(#XZ=`+O"FV:+1@AF,])F]W<XB_B[PIMFBT8(9C/29O=W +M.&:+PF8STF;W=RR*X"K`B_"[PIMFBT8(9C/29O=W+&:+PF;!ZA`#\,=&^@`` +MQT;^DGF+7OZ+3OJ+UCD_=0@Y5P)U!^L4D#D_=PQ!@\,$@?N*>W+FZP.Y?@"# +M^7YT(HO!F;O"FXOZBT<\BU<^*T<L&U<N*\$;URT!`(/:`%Y?R<N+1@B+5@I> +M7\G+R`0``&;'1OP`$```9H-^"@!^2&:!?@H`$```?0AFBT8*9HE&_&;_=OP> +M:(!)#N@M`(/$"&;_=OQF_W8&'FB`29H,`"L`@\0,9HM&_&8!1@9F*48*9H-^ +M"@!_N,G+D,@0``!75F:#?@H`#X1O`<0>CGLFBT=()HM72O?0]](C!J=?@[%FJ=<CEW!CL&:)UV,<0>CGLFBT=()HM72O?0]](C +M!FB=(Q9JG28#1S0F$U<V+0$`@]H`)B-'3"8C5T[K#9#$'HY[)HM',":+5S*) +M1OR)5OYF_W;X#NB^`X/$!,0>CGLFBD]D"LET"`/`$]+^R77X`P:$61,6AEF) +M1O")5O)FBT;\9J.2>V:+1O!FHQZ=9H-^]`!U&F:+1@IF.4;\?Q!FBT8&9J.8 +M>YK``O@`ZT^0QP:8>^"=C!Z:>XM&"HM6#&:+3O1F*4[\.5;^?`U_!3E&_'8& +MB4;\B5;^FL`"^`"+1O0#!IA[BQ::>XM._!Z+\([:Q'X&T>GSI1/)\Z0?BT;\ +M`48&BU;^`0:@>Q$6HGLI1@H95@QF@WX*``^%D?Y>7\G+R!8``%=69L=&_`(` +M``"XX)VCF'N,'II[Q!Z.>V8FBT<P9J.2>V8F_W<89B;_M[@`9HM&_&999IEF +M]_EFB]!FP>H0Q!Z.>R:+3QPFBW<>]]'WUHOXB]HCP2/64E"+\V989EEF]^G$ +M'HY[9B;_=WAF)O^WN`!FB4;J9HM&_&999IEF]_EFB\)F66:99O?YQ!Z.>R:* +M3V!FT^!F`T;J9B;_M[P`9HO09L'J$%97B_"+^F989EEF]^EFB]!FP>H0`_`3 +M^L0>CGLF`W<0)A-_$B:*3V0*R70(`_83__[)=?@#-H19$SZ&68DV'IV)/B"= +MFL`"^`#$'HY[9B;_=WAFBT;\9EEFF6;W^6:+PF;!ZA#!X`<#!IA[BQ::>QZ_ +M8)V+\!X'CMIFN2````#S9J4?Q%X&)H`_``^$L0&.7@B`/R]U"4.`/R]T^HE> +M!A8?9H,^:)T`#X2<`8HF89V`Y/"`_$`/A8X!BU8(B_.)5O".VNL'@'[W+W0* +M1HH$B$;W"L!U\,8$`&;'1OP`````B7;N%A]FH6B=9CE&_`^#5@'$'HY[)HM' +M2":+5TKWT/?2(T;\(U;^B4;R"]`/A<,`9HM&_":*3U!FT_AFB4;XBU;Z9CT, +M````?5D%`0"#T@#$'HY[)HI/4`K)=`@#P!/2_LEU^#L6:IUR.7<&.P9HG78Q +MQ!Z.>R:+1T@FBU=*]]#WTB,&:)TC%FJ=)@-'-"835S8M`0"#V@`F(T=,)B-7 +M3NL-D,0>CGLFBT<P)HM7,J.2>XD6E'MF_W;X#NBO`(/$!,0>CGLFBD]D"LET +M"`/`$]+^R77X`P:$61,6AEFC'IV)%B"=N."=HYA[C!Z:>YK``O@`BU[RC@:: +M>P,>F'N)7OB,1OHFBT<$*](!1OP15OYF)H,_``^$[/Z#PPB+^Q[%=@:Y__\S +MP/*N]]$K^?.F=`4;P!W__Q\+P`^%R/[$7OAF)HL'9HE&_(MV[HM&\(EV!HE& +M"(I.]X[`)H@,Z2;]N`$`7E_)RY`SP%Y?R<M5B^QF@WX&#'T0BUX&P>,"BX>( +MG8N7BIW)RV:AN)W$'HY[)HI/9&;3X&8#!H199J,>G68Y!K8,="3'!IA[BEF, +M'II[Q!Z.>V8FBT<P9J.2>YK``O@`9J$>G6:CM@S$'HY[9B;_=W1FBT8&9BT, +M````9EEFF6;W^6:+PF;!ZA"+V,'C`HN'BEF+EXQ9R<N0R`0``%:+1@:+5@B+ +M\(E6_F;'!IQ[@````,<&.IV``)I,`/@`"\!T!K@!`%[)R[B^>Z..>XP>D'NC +MF'N,'II[9L<&DGL`(```9J&$668%$````&:C'IV:P`+X`/]V_E8.Z!G\@\0$ +M"\!TOF8KP&:CH'M>R<O(#@``BT8&B4;RBT8*B4;TBT8(B4;VBT8,0(E&^(M& +M#HE&^F:+1A!FB4;\C4;R%E!J`IJ('/D!*L#)RY#("```5U:^`!!F@WX.`'Y; +MBWX&9H%^#@`0``!]`XMV#O]V"%=J`58>:(!)FIP'^0&#Q`R+QIE25F;_=@H> +M:(!)B7;\B5;^B7;XB5;ZF@P`*P"#Q`QFBT;X9@%&"F:+1OQF*48.9H-^#@!_ +MJ%Y?R<N0R!```%:+=@;_=@A69F@@``$`'F@R29J<!_D!@\0,9F@```$`:.`/ +M_W8(5II,&?D!@\0*@3XR20<!="Z!/C))"`%T)H$^,DD+`70>@3XR2<P`=!8> +M:+X,FA`)^0&#Q`1J`)KS`?D!@\0"9J%&28L62$EFHWI)*O:)1OR)5OY24!YH +MSPR:$`GY`8/$"(-^_A!_&'T6'FC@#)H0"?D!@\0$:@":\P'Y`8/$`H$^,DD+ +M`74%N0`0ZP^!/C))S`!U!#/)ZP.Y(`!J`"O``PXV21,&.$D##CI)$P8\20,. +M0DD3!D1)B0Z@>Z.B>U!1_W8(5II,&?D!@\0*_W8(5F9H!``!`(U&\!90FIP' +M^0&#Q`QFH39)9@,&.DEF`P8^2<1>"F8FB0=F!?\/```E`/!F)HD'9HM&\&8# +M!D))9@4$````9B8!!V8F_S>:J`,K`(/$!(E&](E6]HE&_(E6_@O0=18>:/@, +MFA`)^0&#Q`1J`)KS`?D!@\0"@3XR20L!=0:Y`!#K$)"!/C))S`!U!#/)ZP.Y +M(`!J`"O`B0Z@>Z.B>U!1_W8(5II,&?D!@\0*9O\V-DD>:!X-FA`)^0&#Q`AF +M_S8V26;_=OS_=@A6#NC$_8/$#&:A-DEF`4;\]T;\_P]T)&:+1OQFB4;X9FH! +M9E`>:"H-F@P`*P"#Q`QF_T;\]T;\_P]UW&;_-CI)'F@L#9H0"?D!@\0(9O\V +M.DEF_W;\_W8(5@[H;/V#Q`QFH3I)9@%&_&;_-CY)'F@X#9H0"?D!@\0(9O\V +M/DEF_W;\F@P`L@"#Q`AFH3Y)9@%&_(M&_"M&]`,&>DF`Y`\KTHE&^(E6^@O0 +M=!)FN``0``!F*T;X9HE&^&8!1ORA>DF+%GQ)*O8K1O0;5O8#1OP35OZC%IV) +M%AB=9FH$9O]V_!YH0DF:#``K`(/$#&;_-D))9FH$9O]V^!YH0PV:$`GY`8/$ +M$&;_-D))9H-&_`1FBT;\9E#_=@A6#NBM_(/$#&:+1OQF`P9"26:)1OS_=@A6 +M9F@$``$`C4;P%E":G`?Y`8/$#&9J!&;_=OR-1O`64)H,`"L`@\0,9H-N\`1F +M_W;P:@0>:%\-FA`)^0&#Q`IF_W;P9H-&_`1FBT;\9E#_=@A6#NA$_(/$#&:+ +M1OQF`T;P9HE&_(M6_HL.>DF+'GQ)*O\#P1/3*T;T&U;VHQJ=B18<G5-14E`> +M:&T-FA`)^0&#Q`R+1O2+5O9>R<O(#```5U:+?@H>:(P-_W8,5YI`!_D!@\0( +MB_")5OH+T'48_W8,5QYHCPT>:&`.FEP'^0&#Q`Q>7\G+C4;T%E#_=OI6#N@G +M_(/$"(E&_(E6_O]V^E::/@;Y`8/$!&:AI'MFP>`(9HO09L'J$(L.(IV`S?K! +MX02+\8O8"_*A@%DKR0OP"QZ*>PLVC'M64XM&!HM6"(#.@%)0H7I)BQ9\22+Q +M4E!F_W;T9O]V_)J(!"L`@\047E_)RP````````````````````"T,,TA/`)S +M!3/`!E#+OR`$BS8"`"OW@?X`$'(#O@`0^H[7@<3>O?MS$A8?#NA?`C/`4`[H +M.P6X_TS-(3:C[`V&X#:CZ@V+QK$$T^!(-J.J#;NL#3:,%X/D_C:)9P2X_O]0 +M-HEG"O?04#:)9P8VB6<(-HDFI@T#]XDV`@",PRO>]]NT2LTA-HP>Z`T6!_R_ +MV!&YX+TKSS/`\ZH6'XL.UA#C`O_1FKX$^0&:%@/Y`3/MFBH!^0$6'_\V$`[_ +M-@X._S8,#O\V"@[_-@@.FOP```!0#N@'`<,NH2@!CMBX`P#'!J@-\P%0+HL> +M*`&.VYH\!OD!#NB9`0[H>`2!/M@0UM9U!EA0_Q;<$+C_`%`._Q:H#2`$N``U +MS2&)'M0-C`;6#0X?N``ENNT`S2$6'XL.Z!#C*8X&Z`TFBS8L`*'J$(L6[!`S +MV_\>YA!S`^ED`:'N$(L6\!"[`P#_'N80C@;H#2:+#BP`XSZ.P3/_)H`]`'0T +MN0T`OL8-\Z9T"[G_?S/`\JYU(>OE!AX''XOWO_0-L02L+$%R#=+@DJPL07(% +M"L*JZ^X6'[L$`("G]`V_N`!$S2%R"O;"@'0%@(_T#4!+>>>^\A"_\A#HLP"^ +M\A"_\A#HJ@"^]A"_]A#HH0#+58OL,\GK&E6+[+D!`.L258OL5E>Y``'K"%6+ +M[%97N0$!B"X?#E$*R74>OGY)OWY)Z&T`OO(0O_80Z&0`@3[8$-;6=03_%MX0 +MOO80O_80Z$\`OO80O_80Z$8`FO("^0$+P'016`KD4'4+@WX&`'4%QT8&_P#H +M$`!8"N1U!XM&!K1,S2%?7EW+BP[H$.,'NP(`_Q[F$![%%M0-N``ES2$?PSOW +M<PZ#[P2+!0M%`G3R_QWK[L-5B^RX_`!0#NC8`H,^(@X`=`3_'B`.N/\`4`[H +MQ0*+Y5W+N`(`Z2[^65J+W"O8<@L['B@.<@6+XU)1RU)1H20.0'4%,\#I#O[_ +M+B0.5C/VN4(`,N3\K#+@XON`]%5T#P[HG?^X`0!0#NAX`K@!`%[+CP8J#H\& +M+`ZA[`VZ`0`\`G0IC@;H#2:.!BP`C`84#C/`F;D`@#/_\JZN=?M'1XD^$@ZY +M___RKO?1B]&_`0"^@0".'N@-K#P@=/L\"73W/`UT;PK`=&M'3JP\('3H/`ET +MY#P-=%P*P'18/")T)#Q<=`-"Z^0SR4&L/%QT^CPB=`0#T>O3B\'1Z1/1J`%U +MRNL!3JP\#70K"L!T)SPB=+H\7'0#0NOL,\E!K#Q<=/H\(G0$`]'KVXO!T>D3 +MT:@!==+KEQ8?B3X(#@/71]'GT><#UT*`XOXKXHO$HPH.C!8,#HO8`_L6!S:) +M/S:,5P*#PP3%-A(.K*H*P'7Z-HX>Z`V^@0#K`S/`JJP\('3[/`ET]SP-=0/I +M@P`*P'4"ZWTVB3\VC%<"@\,$3JP\('37/`ETTSP-=&(*P'1>/")T)SQ<=`.J +MZ^0SR4&L/%QT^CPB=`:P7/.JZ]&P7-'I\ZIS!K`BJNO%3JP\#70N"L!T*CPB +M=+<\7'0#JNOL,\E!K#Q<=/H\(G0&L%SSJNO9L%S1Z?.J<Y:P(JKKS3/`JA8? +MQP<``,='`@``_RXJ#E6+[(/L!!Z.!N@-)HL>+`".PXQ&_C/`,_8S_[G__PO; +M=`XF@#X```!T!O*N1JYU^HO'0"3^1HO^T>;1YKD)`.C``%)0B\;HN0"C#@Z) +M%A`.B5;\!A^+SXO8,_9?!TGC,XL$-CL&Q@UU%%%65P86![_&#;D&`/.G!U]> +M670+CE[\B3^,1P*#PP2.7OZLJ@K`=?KBS8Y>_(D/B4\"'XOE7<M5B^Q65QX' +MBU8&OOX0K3O"=!!`EG0,ES/`N?__\JZ+]^OKEE]>B^5=R@(`58OL5_]V!@[H +MRO\+P'0@DHOZ,\"Y___RKO?12;L"`($^V!#6UG4$_Q;:$+1`S2%?B^5=R@(` +M`%,&4;D`!(<.H!!14)J!(/D!6X\&H!!9B]H+V'0#!UO#B\'I%_L`<A4SP(OE +M7<MS^%#H&@!8,N2+Y5W+<P?H#@"X__^9B^5=RS+DZ`$`RZ+P#0KD=2*`/NL- +M`W(,/")S##P@<@2P!>L&/!-V`K`3NRX.UYBCX@W#BL3K]P#+`%6+[(/L$%=6 +MO___BT8&B_"+V/9'"D!T",9'"@#IIP"0]D0*@W4#Z9D`'E;H9@>#Q`2+^(O> +M@>M(#HN'/`^)1OX>5NAO!(/$!(I$"RKD4)H.%/D!@\0""\!\98-^_@!T8KA" +M#AY0C4[T%E&:SACY`8/$"(U&]HE&\(Q6\H!^]%QT%;A$#AY0C4;T%E":>ACY +M`8/$".L$D/].\+@*`%#_=O+_=O#_=OZ:"AGY`8/$"(U&]!90FD0B^0&#Q`0+ +MP'0#O___QD0*`(O'7E^+Y5W+58OL@^P(FL`3^0&)5OX+T'4&,\"9ZQF0_W;^ +M4/]V#O]V#/]V"O]V"/]V!IIV"_D!B^5=RU6+[#/`4/]V#/]V"O]V"/]V!IH, +M!_D!B^5=RY!5B^R#[`975HMV!AY6Z$8%@\0$B_B-1@X64/]V#/]V"AY6FM8. +M^0&#Q`R)1OH>5E?HI`6#Q`:+1OI>7XOE7<N058OL@^P$5E>+1@KW9@R+R`O* +M=&.)1OR)5O[$7@:+=@X+TG4A@_C_=!R+RP/(XP)R%%!34HO(Z&H`B\A:6U@K +MP8/:`.L\@_L!=P6Y`(#K!(O+]]E14%-2Z$D`B\A:6UA?*\&#V@`[SW(8`]ES +M#(S!@<$`$([!ZP+K)(O("\IUH>L`B\@+RG03BT[\*\B+P8M._AO*B]'W=@KK +M`XM&#%]>B^5=RU6+[(/L!(E._K\X#XO&+4@.`_CV1`H,=07V!0%T!8M%`NL# +MN``"B4;\]D0*#'4%]@4!=#.+1`0+P'0L.\%V`HO!4%-1!E#_=`+_-`93#N@V +M$X/$"@=96U@KR"E$!`/8`03K`.-BZ\([3OQR,#/2B\'W=OR+P2O"4U$&4`93 +M,\"*1`M0#NBV#8/$"`=96PO`="R#^/]T+2O(`]CKQU-1!AY6#NB&`(/$!`=9 +M6X/X_W07)H@'0TF+10*)1OSKIH!,"A#K!(!,"B"+1OXKP8OE7<,`58OL@^P& +M5[A4#AY0Z),#@\0$B_B-1@H64/]V"/]V!KA4#AY0FM8.^0&#Q`R)1OJX5`X> +M4%?HZP.#Q`:+1OI?B^5=RY!5B^R:4@[Y`:`?#@K`=`6:)AGY`5W+58OL5E>+ +M=@:*1`JH@W1?J$!U6Z@"=4@,`8A$"HO^@>](#H''.`^H#'4-]@4!=0@>5NB, +M`8/$!(M$!HD$_W4"_W0(4#/;BEP+4P[HQ0R#Q`@+P'01@_C_=1J`3`H@ZPJ` +M3`H@ZPF`3`H0QT0$``"X___K)8J_]`V`YX*`_X)U"XI\"O;'@G4#@`T@2(E$ +M!,0<,\`FB@=#B1Q?7EW+58OL5E>+=@B*1`JH@G1JJ$!U9L=$!```J`%T"Z@0 +M=%F+3`:)#"3^#`(D[XA$"HO^@>](#H''.`\SVXI<"Z@(=5&H!'4>]@4!=4B! +M_E0.=`R!_F`.=`:!_G@.=2;VA_0-0'0?N0$`C7X&41974P[H@Q2#Q`BY`0#K +M1KC__X!,"B#K95,>5NB<`(/$!%OV1`H(=-&+#(M4!BO*0HD4BU4"2HE4!.,E +M45'_=`C_=`93#NA"%(/$"%G$?`:+5@8FB!4[P76V,\"*1@;K'3/`]H?T#2!T +MX[D"`%%04%,.Z$H)@\0(,\"+R.O/7UY=RP!5B^Q6BW8$BD0*J(-T)J@(="+_ +M=`C_=`::;B#Y`8/$!(!D"O<SP(E$!HE$"(D$B40"B40$7EW#`%6+[%:+=@2X +M``)0FH$@^0%9B]Z!ZT@.@<,X#PO2=`N`3`H(QT<"``+K#H!,"@3'1P(!`(S: +MC4<!B50"B02)5`B)1`;'1`0``%Y=PP!5B^R#[`Q75J"<$(A&_,=&^@``Q%X* +M)HH'F#UW`'17=P@L871;+!%T!S/`F>D&`9`S]L9&_@''1O@!`/]&"L1>"B:` +M/P!U`^F*`(-^^`!U`^F!`":*!Y@]=`!T/'<0+"MT)"PW=#[^R'1&+`MT5,=& +M^```Z\:0O@$#QD;^`NNWD+X)`>OTD/?&`@!UXH/.`H/F_L9&_H#KH_?&`,!U +MT('.`$#KE_?&`,!UQ('.`(#KBX-^^@!UN,=&^@$`@$[\0.EY_X-^^@!UIL=& +M^@$`@&;\O^EG_[BD`5#_=@Y6_W8(_W8&FK`4^0&#Q`J)1O8+P'T#Z37__P9& +M#HM&$(OXB\B!Z4@.@<$X#XO8BD;^B$<**\")10*)!8E%"(E%!HI&]HA%"XO9 +MBD;\B`<SP(E%!(E'!(O'C-I>7XOE7<N058OL5E>+=@2[+!"!_E0.=!*[,!"! +M_F`.=`F[-!"!_G@.=5B+_H'O2`Z!QS@/]D0*#'5(]@4!=4.+!XM7`HO("\IT +M(8E$!HE4"(D$B50"QT0$``+'10(``H!,"@+&!1&X`0#K&5.X``)0FH$@^0%; +M6PO2=`>)!XE7`NO(,\!?7EW#58OL5E>+=@:+_H'O2`Z!QS@/]@40="PSVXI< +M"_:']`U`="`>5NAW`(/$!(-^!`!T$C/`B`6)10*)!(E$`HE$!HE$"%]>7<-5 +MB^Q6BT8("T8&=0@SP%#HS@#K/O]V"/]V!N@[`(/$!`O`=`:X___K*9"+=@:! +M[D@.@<8X#_8$0'08Q%X&*N0FBD<+4)IL&_D!@\0"/0$`]1O`7HOE7<N058OL +M@^P"5U8S_XM&!(O8B_"*3PJ+T8#A`X#Y`G5)]L((=0N!ZT@.]H<X#P%T.8L$ +M*T0&B4;^"\!^+5#_=`C_=`:*1`LJY%":^A[Y`8/$"#M&_G4,]D0*@'0-@&0* +M_>L'@$P*(+___XM$!HM4"(D$B50"QT0$``"+QUY?B^5=PY"X`0!0Z`$`RU6+ +M[(/L`E=6OD@.,_^)?O[K(8-^!`!U&/9$"@)T$AY6FGH-^0&#Q`1`=07'1O[_ +M_X/&##DV*!!R'8-^!`%UT_9$"H-TS1Y6FGH-^0&#Q`1`=-Y'Z]N0@WX$`74$ +MB\?K`XM&_EY?B^5=P@(`D"X/.0]/#X,/KP^W#^`/$A!5B^RX%`(.Z.[S5E<S +MP(E&^(A&^\1V"B:LB78*B$;^"L!T!H-^^`!]!HM&^.FU!+LX$"P@/%AW!=<D +M#^L"L`"Q`]+@`D;[U_[!TNB(1ON8B]C1XR[_I\8.BE;^N0$`Z#8$Z[$SP(E& +M\(E&]HE&[L=&_"``2(E&].N;BD;^/"UU!H!._`3KCCPK=0:`3OP!ZX0\('4' +M@$[\`NEY_SPC=0>`3OR`Z6[_@$[\".EG_XI._H#Y*G4/Z%P#"\!Y%_?8@$[\ +M!.L/@.DP,NV+1O:["@#WXP/!B4;VZ3O_QT;T``#I,_^*3OZ`^2IU#.@H`PO` +M>12X___K#X#I,#+MBT;TNPH`]^,#P8E&].D*_XI&_CQL=0:`3OP0ZR(\1G4& +M@$[\(.L8/$YU!H!._1#K#CQ,=0:`3OT$ZP2`3OT(Z=C^BD;^/&1U`^F4`3QI +M=0/IC0$\=74#Z8H!/%AU`^F)`3QX=0/IB`$\;W4#Z:(!/&-T&CQS="<\;G11 +M/'!T8#Q%=`<\1W0#Z;L`Z;4`Z(H"C;[L_18'JD^Y`0#I\0'HD`(+_W42C,`+ +MP'4,'@>_D1"+#I<0Z=@!5XM.].,',L#RKG4!3UDK^8?/Z<,!Z&("BT;XJ_9& +M_!!T`S/`J^D[_O9&_#!U!>@R`NLYZ#8"]D;]&'4PQD;_![D0`!8'4C/2C;[T +M_;X$`.BP`KD0`(V^[_U8,]*^!`#HH`+&AO#].KD)`.L8QD;_![D0`!8',]*- +MON_]O@0`Z($"N00`C;[L_>E-`?]&[H!._$"*1OX,()B+\(-^]`!_$W0'QT;T +M!@#K"H/X9W4%QT;T`0"-ONS]_W;N_W;T5A97_W80_W8.]D;]!'0*_QZV$(-& +M#@KK"/\>HA"#1@X(@\0.]D;\@'0/@W[T`'4)%E?_'JX0@\0$@_YG=1#W1OR` +M`'4)%E?_'JH0@\0$%@<F@#TM=05'@$[]`;G__U>P`/*N3UDK^8?/Z:\`@$[\ +M0,9&^@KK-<9&_P?K!,9&_R?V1OR`=!''1O`"`,9&\C"R40)6_XA6\\9&^A#K +M#O9&_(!T!(!._0+&1OH(]D;\$'0%Z/L`ZP[H[0#V1OQ`=`.9ZP(STO9&_$!T +M#PO2?0N`3OT!]]B#T@#WVH-^]`!]!\=&]`$`ZP2`9OSWB]@+VG4%QT;P``"- +M?NL6!XI.^C+MBW;TZ$`!]D;]`G0.XP8F@#TP=`9/)L8%,$'K`/9&_$!T,?9& +M_0%T"\9&\BW'1O`!`.L@]D;\`70+QD;R*\=&\`$`ZP_V1OP"=`G&1O(@QT;P +M`0"+1O8KP2M&\'T",\`&5U'V1OP,=0>+R+(@Z+L`4!8'C7[RBT[PZ)$`6/9& +M_`AT#?9&_`1U!XO(LC#HFP!97P=0Z'8`6/9&_`1T!XO(LB#HA@#I`/S$=@XF +MK8EV#L/$=@XFK8O0)JV2B78.P_9&_"!T".CI_X["B_C#Z-C_B_@+P'4#CL## +M'@?#F`97Q%X&)O]/!'@0)HL_)O\')HY'`JHSP%\'PU%2!E-0#NC#]H/$!EI9 +M@_C_=>CKZ.,;B_<!3OA7,_\FK.C`_POXXO<+_U]T!<=&^/__P^,9`4[X5S/_ +MBL+HI/\+^.+W"_]?=`7'1OC__\/]5Y,+]G\*"]MU!@O2=0+K&I(STO?QD_?Q +MDH?3!#`\.78#`D;_JHO"3NO862O/1_S#7UZ+Y5W+58OL@^P$5KY(#BO`B4;^ +MB4;\ZP.#Q@PY-B@0<B;V1`J#=?'&1`H`QT0$```KP(E$"(E$!HE$`HD$QD0+ +M_XEV_(Q>_HM&_(M6_EZ+Y5W+58OLBUX&.Q[R#7(&N``)^>L+M#[-(7(%QH?T +M#0#IN/%5B^R#[`2+7@8['O(-<@6X``GK,8,^GA``=$_W1@H`@'1(@WX,`'0: +M,\F+T;@!0LTA<DOW1@P"`'4.`T8($U8*>2BX`!;YZS:)5OZ)1OR+T;@"0LTA +M`T8($U8*>0V+3OZ+5ORX`$+-(>O8BU8(BTX*BD8,M$+-(7(%@*?T#?WI3/$` +M58OL@^P$,O^`/NL-`W(#BGX,BT8.B48,ZPA5B^R#[`0R_XA^_HM&"HO(QD;\ +M`*D`@'40J0!`=0?V!IL0@'4$QD;\@![%5@8D`PK'M#W-(1]S$H/X`G4)]\$` +M`70#Z:4`^>GG\).+P24`!3T`!74)M#[-(;@`$>OHQD;]`;@`1,TA]L*`=`2` +M3OQ`]D;\0'0#Z=\`BT8*J0`"=!ZI`P!T"3/)M$#-(>G)`+0^S2$>Q58&N`!# +MS2$?ZVGV1OR`=0/IL`"I`@!U`^FH`+G__XO1N`)"S2'WV1X6'XU6_[0_S2$? +M"\!T%8!^_QIU#_?9B]&X`D+-(3/)M$#-(3/)B]&X`$+-(>MMQD;]`(M.#.BL +M`(E.#/9&_O]U!_=&"@(`=0.`X?X>Q58&M#S-(1]S`^D;\)/V1O[_=0?W1@H" +M`'4TM#[-(8I&"B0#"D;^'L56!K0]S2$?<MB3]D;]`746]T8,`0!T#X#)`1[% +M5@:X`4/-(1]RN_9&_$!U/Q[%5@:X`$/-(1^+P3+)@^`!=`*Q$/=&"@@`=`.` +MR2`['O(-<@JT/LTAN``8Z;G^"D[\@,D!B(_T#8O#B^5=RS+)Z]RAY`WWT"/! +M,\FH@'4#@,D!PU6+[(/L`HM>!CL>\@UR!OFX``GK<S/`BTX,XVSVA_0-`G5E +M@3[8$-;6=03_%MH0BTX,'L56"+0_S2$?<P2T">M']H?T#8!T0("G]`W[5E<> +M!XY>"OR+\HOZB\CC)[0-@#P*=08F@(_T#02L.L1T'#P:=0@F@(_T#0+K!8@% +M1^+JB\<KP@8?7U[I].Z#^0%T!X`\"G3IZ^0&'_:']`U`=!RX`$3-(??"(`!U +M#1X6'XU6_[0_S2$?<LZP"NLP'A8?QD;_`(U6_[0_S2$?<KD+P'09@WX,`70? +MN?__B]&X`4+-(;D!`(!^_PIT![`-Q58(ZXK%5@CKB(!^_PIUV^NZ45?V1P(! +M=&;HU0"+_HL$J`%T`RO(24%!BW<$"_9T3P/.<PDSP+KP_^,SZT*X(`2.P":A +MH!`]`"!T%KH`@#O0<@;1ZG7XZR*#^@AR'='BB\)(B]`#P7,",\#WTB/"4N@N +M`%IS#8/Z\'0%N!``Z^+YZQN+T"M7!(E'!(E_"(MW"DJ)%$(#\L<$_O^)=PI? +M6<.+T/9'`@1T#TJ+=P1..]9V!3E7_G,V0E-1C-Z.QK$$T^AU`[@`$/9'`@1T +M"@/&BQ[H#2O#CL.+V+1*S2%96W(0B\+V1P($=`1*B5?^^.L!^<-7BW<(.W<* +M=0.+=P:M@_C^=`B+_B3^`_#K\D]/B_=?PU6+[(O7B]X>Q'X&,\"Y___RKHUU +M_\1^"KG___*N]]%T`ROY02OYC,".V(Y&"(?^BT8&"\EU!:5)2>L(]\8!`'0" +MI$G1Z?.E$\GSI(OSB_H?C,)=RU6+[(O7B]X>Q78*B_Z,V([`,\"Y___RKO?1 +MQ'X&B\=T!*5)ZP:H`70"I$G1Z?.E$\GSI(OSB_H?C,)=RU6+[%97LP&+3@R+ +M1@8STH/Y"G4!F1[%?@CI"P-75KZ$#C/_ZQ*0'E::/@;Y`8/$!$!T`4>#Q@PY +M-B@0<^F+QUY?RU6+[%:+=@;V1`J#=`R#?@X"?P:#?@X`?0G'!N(-%@#K4I"` +M9`KO@WX.`745'E::S!GY`8/$!`%&"A%6#,=&#@``'E;H0/2#Q`3V1`J`=`2` +M9`K\_W8._W8,_W8*BD0+*N10FBX4^0&#Q`@]__]U"3O0=06X___K`C/`7HOE +M7<N058OL@^P45U:+1@:+\(O(@>E(#H'!.`^+V(E._HI/"RKMB4[R@W\$`'T% +MQT<$``"X`0!0*\!04%&:+A3Y`8/$"(E&^(E6^@O2?0BX__^9Z4D!D/9$"@AU +M'HM>_O8'`746BT0$F8O(B]J+1OB+5OHKP1O3Z24!D(L$*T0&B4;\]D0*`W0^ +MBU[R]H?T#8!T)(M$!HM4"(E&[(E6[NL/Q%[L)H`_"G4#_T;\_T;LBP0Y1NQR +MZHM&^@M&^'48BT;\*]+IV`#V1`J`=>K'!N(-%@#I>?^0]D0*`74#Z;,`@WP$ +M`'4)QT;\``#II0"0BP0K1`8#1`2)1O"+7O+VA_0-@'4#Z8$`N0(`42O)45%3 +MB_B:+A3Y`8/$"#M&^'4^.U;Z=3D#?`:+3`B)?O2+1`:)1NR)3N[K$)#$7NPF +M@#\*=0/_1O#_1NR+1NPY1O1WZ8M>_O8'('0P_T;PZRLSP%#_=OK_=OC_=O*: +M+A3Y`8M>_H/$"(M'`HE&\(M>\O:']`T$=`1`B4;PBT;P*](I1O@95OJ+1OB+ +M5OH#1OR#T@!>7XOE7<M5B^Q75HMV!@OV?`8Y-O(-?PS'!N(-"0"X___K-I"@ +MZ@V*)NL-/1X#?00SP.LE]H3T#0%T$U::MASY`8/$`HOX"_AT#8D^\`W'!N(- +M"0"___^+QUY?B^5=RY!5B^R+3@X>5U;C2,5V"L1^!HO!2(O7]](KPAO;(\,# +MPHO6]](KPAO;(\,#PD"1*\'1Z?.E$\GSI)'C&`OV=0>,V`4`$([8"_]UQXS` +M!0`0CL#KOHM&!HM6"%Y?'UW+BTX.BT8&BU8('L5^"E<>!_R3"L!T$X/Y"G4. +M"])Y"K`MJO?;@](`]]J+]Y(ST@O`=`+W\9/W\9*'TP0P/#EV`@0GJHO""\-U +MXH@%3ZR&!8A$_XU$`3O'<O*,VE@?7UZ+Y5W+`%6+[(IF!A[%7@B*%X#\`G(8 +MBG<"BT\$ANG0R=#)@.'`"D\&BD<(Q%\*S1,?7<M5B^R+7@:T:,TAZ2OI`%6+ +M[%=64S/_BT8("\!]$4>+5@;WV/?:@]@`B48(B58&BT8,"\!]$4>+5@KWV/?: +M@]@`B48,B58*"\!U%8M."HM&"#/2]_&+V(M&!O?QB]/K.(O8BTX*BU8(BT8& +MT>O1V='JT=@+VW7T]_&+\/=F#)&+1@KWY@/1<@P[5@AW!W(&.T8&=@%.,]*6 +M3W4']]KWV(/:`%M>7UW*"`!5B^R+1@B+3@P+R(M."G4)BT8&]^%=R@@`4_?A +MB]B+1@;W9@P#V(M&!O?A`]-;7<H(`%6+[%-7,_^+1@@+P'T11XM6!O?8]]J# +MV`")1@B)5@:+1@P+P'T0BU8*]]CWVH/8`(E&#(E6"@O`=1B+3@J+1@@STO?Q +MBT8&]_&+PC/23WE#ZTB+V(M."HM6"(M&!M'KT=G1ZM'8"]MU]/?QB\CW9@R1 +M]V8*`]%R##M6"'<'<@L[1@9V!BM&"AM6#"M&!AM6"$]Y!_?:]]B#V@!?6UW* +M"`!5B^Q35HM&#`O`=16+3@J+1@@STO?QB]B+1@;W\8O3ZSB+R(M>"HM6"(M& +M!M'IT=O1ZM'8"\EU]/?SB_#W9@R1BT8*]^8#T7(,.U8(=P=R!CM&!G8!3C/2 +MEEY;7<H(``!5B^Q3BT8,"\!U%8M."HM&"#/2]_&+1@;W\8O",]+K18O(BUX* +MBU8(BT8&T>G1V]'JT=@+R77T]_.+R/=F#)'W9@H#T7(,.U8(=P=R"SM&!G8& +M*T8*&U8,*T8&&U8(]]KWV(/:`%M=R@@`58OL@^P(BUX&.Q[R#7('N``)^>GK +MYH$^V!#6UG4$_Q;:$/:']`T@=`NX`D(SR8O1S2%RW_:']`V`='R,7OJ.1@K% +M5@@SP(E&_HE&_/Q75HOZB_*)9OB+3@SC/[`*\JYU41Z.7OJ:6B#Y`3VH`'9* +M'X/L`HO<N@`"/2@"<P.Z@``KXHO4B_H6!XM.#*P\"G0,._MT&:KB].@F`.MY +ML`T[^W4#Z!L`JK`*_T;\Z^/H$`#KXEY?CE[ZZVVX_/\.Z!3C4%-1'@8?B\\K +MRN,248M>!K1`S2%9<@X!1OX[R'<''UE;6(OZPY\?@\0(@W[^`'4EGG,$M`GK +M)(Y>^O:']`U`=`Z.7@J+7@B`/QIU`_CK#/FX`!SK!HM&_BM&_(MF^%Y?CE[Z +MZ=OEBTX,"\EU!8O!Z<_E'L56"+1`S2$>!Q]S!+0)Z^`+P'7<]H?T#4!T"XO: +M)H`_&G4#^.O*^;@`'.O$`%E:H2@..\1S!RO$]]A24<LSP.OY58OL5L1V!HS! +MXP4F@$S^`5Y=RU6+[%97BTX&@_GH=VD>H<H0"\!T2+^$(8LVTA#%'LP0'E97 +M_]=?7G,KC-K%7PP[UG7O6!\>Q#;,$":+=!+%'L@0C-H[T'79'QZ!_WH7=`Z_ +M>A?KQ%Z!_X0A=`_K"@<&O\@0Z!H!<@[HF0`?B1;.$(D>S!#K(!\SP)F+#L80 +M"P[$$'02_W8&_Q[$$(/$`ID+P'0#Z7#_7UY=RP97B_@#^XE_!$]/@^@6C7<4 +MQP7^_XE_"DB)!(P?B\:,VH["C7\&_*NK1T<SP*NKJZM?!\,FBT4""\!U"2:, +M70(FB1WK%`8FQ'4()HQ<#B:)7`R,1Q*)=Q`')HQ="B:)70@FC%T&)HE=!,-! +M@.'^4_R+=PB+7PHS_^LCB\-;J`%U0E.+=P:+7P@[WG0V2S/_ZPR0C53^.]-S +MX0/P<B.MJ`%T\(O^2#O!<R,#\'(3B]"MJ`%TW@/"@\`"B_>)1/[KY(O`6XM' +M!HE'"/GK&5N)3/YT"0/Y*\%(B04K^0/YB7\(B\:,VOC#B]&#PB>`XO"+VO?; +M]]OUT=O1Z]'KT>NT2,TA<B8[!L(-=O0[!L`-=@.CP`V.V#/;)HM%#(E'`HO" +MZ-[^Z`__^.L!^<-5B^P>Q58&M$'-(1_ID^,`````````````````(`0````` +M````````````````````````35,@4G5N+51I;64@3&EB<F%R>2`M($-O<'ER +M:6=H="`H8RD@,3DY,BP@36EC<F]S;V9T($-O<G`:`$9R965"4T0@8F]O="!6 +M97)S:6]N("5D+B5D"@`H8RD@,3DY-"P@,3DY-2!#:')I<W1I86X@1W5S96YB +M875E<BP*("`@(&-G0&9I;7`P,2YF:6TN=6YI+6QI;GHN86,N870*"@!U<V%G +M93H@)7,@6R!O<'1I;VYS(%T@6R!K97)N96QN86UE(%T*`'=H97)E(&]P=&EO +M;G,@87)E.@H`"2UR("XN+B!U<V4@8V]M<&EL960M:6X@<F]O=&1E=@H`"2US +M("XN+B!R96)O;W0@=&\@<VEN9VQE('5S97(@;VYL>0H`"2UA("XN+B!A<VL@ +M9F]R(&9I;&4@;F%M92!T;R!R96)O;W0@9G)O;0H`"2UD("XN+B!G:79E(&-O +M;G1R;VP@=&\@:V5R;F5L(&1E8G5G9V5R"@`)+6,@+BXN(&EN=F]K92!U<V5R +M(&-O;F9I9W5R871I;VX@<F]U=&EN9PH`"2UV("XN+B!P<FEN="!A;&P@<&]T +M96YT:6%L;'D@=7-E9G5L(&EN9F\*``DM0R`N+BX@=7-E(&-D<F]M(&%S(')O +M;W0*``DM1"`N+BX@8F]O="!A(&ME<FYE;"!F<F]M(&$@1$]3(&UE9&EU;0H` +M"2`@("`@("`H9&5F875L=#H@8SI<:V5R;F5L*0H`+VME<FYE;`!C.EQK97)N +M96P````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` +M``````````````````````````````````````````````````````#__P`` +M`)_/`/__````D\\`__\```">0`#__P```))``/__````G@`````````````` M```````````````````````````````````````````````````````````` -M`````/__````G\\`__\```"3SP#__P```)Y``/__````DD``__\```">```` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` @@ -446,49 +459,45 @@ M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` +M`````````````````````````````"\``````$<``````/\'`````')B`$5- +M35A86%@P`%9#4$D@<V5R=FEC97,@5F5R<VEO;B`E9"XE9"!D971E8W1E9"$* +M`$-A;B=T('-W:71C:"!T;R!P<F]T96-T960@;6]D92$*`$=I=FEN9R!U<"`Z +M+2@A"@!N;W0@96YO=6=H(&UE;6]R>2$*``````!);G9A;&ED(&9O<FUA="$* +M`$)O;W1I;F<@0"`P>"5L>`H`4W1A<G0@861D<F5S<R!T;V\@;&]W(0H`4V]R +M<GDL(&-A;B=T(&%L;&]C871E(&5N;W5G:"!M96UO<GDA"@!T97AT/3!X)6QX +M(````&1A=&$],'@E;'@@`&)S<STP>"5L>"``<WEM8F]L<SU;*S!X)6QX*S!X +M)6QX*S!X)6QX`"LP>"5X*S!X)6QX72``=&]T86P],'@E;'@@96YT<GD@<&]I +M;G0],'@E;'@*`$-A;B=T(&9I;F0@)7,*``!B860@9&ES:VQA8F5L`$)A9"!B +M861S96-T('1A8FQE"@!5<VEN9R!B860Q-#0@8F%D('-E8W1O<B!A="`E;&0* +M`$5R<F]R.B!#.B5D($@Z)60@4SHE9`H```````````!);G9A;&ED(&9O<FUA +M="$*`$)O;W1I;F<@0"`P>"5L>`H`4W1A<G0@861D<F5S<R!T;V\@;&]W(0H` +M4V]R<GDL(&-A;B=T(&%L;&]C871E(&5N;W5G:"!M96UO<GDA"@!T97AT/3!X +M)6QX(````&1A=&$],'@E;'@@`&)S<STP>"5L>"``<WEM8F]L<SU;*S!X)6QX +M*S!X)6QX*S!X)6QX`"LP>"5X*S!X)6QX72``=&]T86P],'@E;'@@96YT<GD@ +M<&]I;G0],'@E;'@*`')B`%-O<G)Y+"!C86XG="!O<&5N("5S(0H```#Z`0`` +M```%``````````````````````````````!?0U]&24Q%7TE.1D\]```````` +M`````````````````````````````````!0`@8&!`0$````````````````` +M````````````````%@X@!```````````````````_____^"^```````6`@(8 +M#0D,#`P'"!86_P(-$@+_7`!<``````````````````$```````````````(! +M``````````````("70\@!```70\@!(0#``````````````($```````````` M```````````````````````````````````````````````````````````` -M````````````````````````````````````````+P``````1P``````_P<` -M````<F(`14U-6%A86#``5D-022!S97)V:6-E<R!697)S:6]N("5D+B5D(&1E -M=&5C=&5D(0H`0V%N)W0@<W=I=&-H('1O('!R;W1E8W1E9"!M;V1E(0H`1VEV -M:6YG('5P(#HM*"$*`&YO="!E;F]U9V@@;65M;W)Y(0H``````$EN=F%L:60@ -M9F]R;6%T(0H`0F]O=&EN9R!`(#!X)6QX"@!K97)N96P@;&EN:V5D(&9O<B!W -M<F]N9R!A9&1R97-S(0H`3VYL>2!H;W!E(&ES('1O(&QI;FL@=&AE(&ME<FYE -M;"!F;W(@/B`Q34(*`%-O<G)Y+"!C86XG="!A;&QO8V%T92!E;F]U9V@@;65M -M;W)Y(0H`=&5X=#TP>"5L>"````!D871A/3!X)6QX(`!B<W,],'@E;'@@`'1O -M=&%L/3!X)6QX(``*"DEN<V5R="!F:6QE('-Y<W1E;2!F;&]P<'D@:6X@9')I -M=F4@02!O<B!""@!0<F5S<R`G02<L("=")R!O<B!A;GD@;W1H97(@:V5Y(&9O -M<B!T:&4@9&5F875L="``)6,Z(``*`&5N=')Y('!O:6YT/3!X)6QX"@!#86XG -M="!F:6YD("5S"@!B860@9&ES:VQA8F5L`$)A9"!B861S96-T('1A8FQE"@!5 -M<VEN9R!B860Q-#0@8F%D('-E8W1O<B!A="`E;&0*`$5R<F]R.B!#.B5D($@Z -M)60@4SHE9`H```````````!);G9A;&ED(&9O<FUA="$*`$)O;W1I;F<@0"`P -M>"5L>`H`:V5R;F5L(&QI;FME9"!F;W(@=W)O;F<@861D<F5S<R$*`$]N;'D@ -M:&]P92!I<R!T;R!L:6YK('1H92!K97)N96P@9F]R(#X@,4U""@!3;W)R>2P@ -M8V%N)W0@86QL;V-A=&4@96YO=6=H(&UE;6]R>2$*`'1E>'0],'@E;'@@```` -M9&%T83TP>"5L>"``8G-S/3!X)6QX(`!T;W1A;#TP>"5L>"``96YT<GD@<&]I -M;G0],'@E;'@*`')B`%-O<G)Y+"!C86XG="!O<&5N("5S(0H``````@`````% -M``````````````````````````````!?0U]&24Q%7TE.1D\]```````````` -M`````````````````````````````!0`@8&!`0$````````````````````` -M````````````;@X!!```````````````````_____S"_```````6`@(8#0D, -M#`P'"!86_P(-$@+_7`!<``````````````````$```````````````(!```` -M``````````("M0\!!```M0\!!(0#``````````````($```````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` +M```````````````````````````````````````!```````````````````` M```````````````````````````````````````````````````````````` -M```````````````````````````````````!```````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M````A`\!!`````````````````8```8``0``$``#!@`&`A`$145%!04%!04U -M,`!0`````"`@,%!8!P@`,#`P5U`'```@(```````"&!@8&!@8```<'!X>'AX -M"`<(```'``@("```"``(```(*&YU;&PI!@```````````"#.`M<!S@+7`<X" -MUP'.`M<!S@+7`<X"UP'.`M<!``````$!__\``````````````````````P`` -M````\@#R`/(`````````````````````````6@G7`3P\3DU31SX^``!2-C`P -M,`T*+2!S=&%C:R!O=F5R9FQO=PT*``,`4C8P,#,-"BT@:6YT96=E<B!D:79I -M9&4@8GD@,`T*``D`4C8P,#D-"BT@;F]T(&5N;W5G:"!S<&%C92!F;W(@96YV -M:7)O;FUE;G0-"@#\``T*`/\`<G5N+71I;64@97)R;W(@``(`4C8P,#(-"BT@ -M9FQO871I;F<M<&]I;G0@<W5P<&]R="!N;W0@;&]A9&5D#0H``0!2-C`P,0T* -?+2!N=6QL('!O:6YT97(@87-S:6=N;65N=`T*`/___V5D +M````````+`\@!`````````````````8```8``0``$``#!@`&`A`$145%!04% +M!04U,`!0`````"`@,%!8!P@`,#`P5U`'```@(```````"&!@8&!@8```<'!X +M>'AX"`<(```'``@("```"``(```(*&YU;&PI!@```````````"#(`OD!R`+Y +M`<@"^0'(`OD!R`+Y`<@"^0'(`OD!``````$!``````````````````````,` +M`````.P`[`#L`````````````````````````%0)^0$\/$Y-4T<^/@``4C8P +M,#`-"BT@<W1A8VL@;W9E<F9L;W<-"@`#`%(V,#`S#0HM(&EN=&5G97(@9&EV +M:61E(&)Y(#`-"@`)`%(V,#`Y#0HM(&YO="!E;F]U9V@@<W!A8V4@9F]R(&5N +M=FER;VYM96YT#0H`_``-"@#_`')U;BUT:6UE(&5R<F]R(``"`%(V,#`R#0HM +M(&9L;V%T:6YG+7!O:6YT('-U<'!O<G0@;F]T(&QO861E9`T*``$`4C8P,#$- +@"BT@;G5L;"!P;VEN=&5R(&%S<VEG;FUE;G0-"@#___]E ` end diff --git a/sys/i386/boot/dosboot/fbsdboot.mak b/sys/i386/boot/dosboot/fbsdboot.mak index 06f8bed..87cfe44 100644 --- a/sys/i386/boot/dosboot/fbsdboot.mak +++ b/sys/i386/boot/dosboot/fbsdboot.mak @@ -59,28 +59,35 @@ SBRS = FBSDBOOT.SBR \ FBSDBOOT_DEP = c:\src\fbsdboot\reboot.h \
c:\src\fbsdboot\boot.h \
c:\src\fbsdboot\param.h \
+ c:\src\fbsdboot\sysparam.h \
c:\src\fbsdboot\syslimit.h \
c:\src\fbsdboot\quota.h \
c:\src\fbsdboot\cdefs.h \
c:\src\fbsdboot\fs.h \
c:\src\fbsdboot\inode.h \
c:\src\fbsdboot\dinode.h \
- c:\src\fbsdboot\dosboot.h
+ c:\src\fbsdboot\bootinfo.h \
+ c:\src\fbsdboot\dosboot.h \
+ c:\src\fbsdboot\protmod.h
PROTMOD_DEP = c:\src\fbsdboot\boot.h \
c:\src\fbsdboot\param.h \
+ c:\src\fbsdboot\sysparam.h \
c:\src\fbsdboot\syslimit.h \
c:\src\fbsdboot\quota.h \
c:\src\fbsdboot\cdefs.h \
c:\src\fbsdboot\fs.h \
c:\src\fbsdboot\inode.h \
c:\src\fbsdboot\dinode.h \
+ c:\src\fbsdboot\bootinfo.h \
c:\src\fbsdboot\protmod.h
-BOOT_DEP = c:\src\fbsdboot\protmod.h \
+BOOT_DEP = c:\src\fbsdboot\bootinfo.h \
+ c:\src\fbsdboot\protmod.h \
c:\src\fbsdboot\param.h \
+ c:\src\fbsdboot\sysparam.h \
c:\src\fbsdboot\syslimit.h \
c:\src\fbsdboot\boot.h \
c:\src\fbsdboot\quota.h \
@@ -89,23 +96,28 @@ BOOT_DEP = c:\src\fbsdboot\protmod.h \ c:\src\fbsdboot\inode.h \
c:\src\fbsdboot\dinode.h \
c:\src\fbsdboot\reboot.h \
- c:\src\fbsdboot\exec.h
+ c:\src\fbsdboot\exec.h \
+ c:\src\fbsdboot\mexec.h \
+ c:\src\fbsdboot\imgact.h
DISK_DEP = c:\src\fbsdboot\boot.h \
c:\src\fbsdboot\param.h \
+ c:\src\fbsdboot\sysparam.h \
c:\src\fbsdboot\syslimit.h \
c:\src\fbsdboot\quota.h \
c:\src\fbsdboot\cdefs.h \
c:\src\fbsdboot\fs.h \
c:\src\fbsdboot\inode.h \
c:\src\fbsdboot\dinode.h \
+ c:\src\fbsdboot\dkbad.h \
c:\src\fbsdboot\disklabe.h
SYS_DEP = c:\src\fbsdboot\protmod.h \
c:\src\fbsdboot\boot.h \
c:\src\fbsdboot\param.h \
+ c:\src\fbsdboot\sysparam.h \
c:\src\fbsdboot\syslimit.h \
c:\src\fbsdboot\quota.h \
c:\src\fbsdboot\cdefs.h \
@@ -118,6 +130,7 @@ SYS_DEP = c:\src\fbsdboot\protmod.h \ DOSBOOT_DEP = c:\src\fbsdboot\protmod.h \
c:\src\fbsdboot\param.h \
+ c:\src\fbsdboot\sysparam.h \
c:\src\fbsdboot\syslimit.h \
c:\src\fbsdboot\boot.h \
c:\src\fbsdboot\quota.h \
@@ -125,8 +138,11 @@ DOSBOOT_DEP = c:\src\fbsdboot\protmod.h \ c:\src\fbsdboot\fs.h \
c:\src\fbsdboot\inode.h \
c:\src\fbsdboot\dinode.h \
+ c:\src\fbsdboot\bootinfo.h \
c:\src\fbsdboot\reboot.h \
- c:\src\fbsdboot\exec.h
+ c:\src\fbsdboot\exec.h \
+ c:\src\fbsdboot\mexec.h \
+ c:\src\fbsdboot\imgact.h
all: $(PROJ).EXE
diff --git a/sys/i386/boot/dosboot/protmod.c b/sys/i386/boot/dosboot/protmod.c index 5b6ff24..4dca18d 100644 --- a/sys/i386/boot/dosboot/protmod.c +++ b/sys/i386/boot/dosboot/protmod.c @@ -96,7 +96,7 @@ static struct dtr FreeBSDGdtr = { sizeof FreeBSDGdt - 1, 0 }; static struct dtr Gdtr = { sizeof gdt2 - 1, 0 };
static struct dtr Idtr = { sizeof idt2 - 1, 0 };
-struct bootinfo_t bootinfo;
+struct bootinfo bootinfo;
int VCPIboot;
int pm_copy(char far *from, unsigned long to, unsigned long count)
@@ -320,12 +320,13 @@ wehaveit: mov ax,4310h return (long)hi*0x10000l+(long)lo + 128l*1024l;
}
-void startprog(long hmaddress, long hmsize, long startaddr, long argv[])
+void startprog(long hmaddress, long hmsize, long startaddr, long loadflags,
+ long bootdev)
{
long GDTaddr=ptr2lin(FreeBSDGdt);
long *stack=_MK_FP(0x9f00, 0); /* prepare stack for starting the kernel */
unsigned int pmseg, pmoff;
- unsigned int segment, pcxoff, psioff;
+ unsigned int segment, pcxoff, psioff, pdioff;
long h, BOOTaddr, ourret;
unsigned char *page;
int status;
@@ -357,6 +358,8 @@ void startprog(long hmaddress, long hmsize, long startaddr, long argv[]) mov pcxoff,bx
mov bx,offset psi
mov psioff,bx
+ mov bx,offset pdi
+ mov pdioff,bx
mov segment,ds
pop ds
@@ -364,6 +367,7 @@ void startprog(long hmaddress, long hmsize, long startaddr, long argv[]) *((long *)_MK_FP(segment, pcxoff+1)) = hmsize;
*((long *)_MK_FP(segment, psioff+1)) = hmaddress;
+ *((long *)_MK_FP(segment, pdioff+1)) = startaddr;
h = ptr2lin(&VCPI);
@@ -391,8 +395,8 @@ void startprog(long hmaddress, long hmsize, long startaddr, long argv[]) *stack++ = startaddr; /* that's the startaddress */
*stack++ = 8l; /* new CS */
*stack++ = ourret; /* ourreturn */
- *stack++ = argv[1]; /* howto */
- *stack++ = argv[2]; /* bootdev */
+ *stack++ = loadflags; /* howto */
+ *stack++ = bootdev; /* bootdev */
*stack++ = 0l; /* Parameter 4 */
*stack++ = 0l; /* Parameter 5 */
*stack++ = 0l; /* Parameter 6 */
@@ -571,7 +575,7 @@ psi: _emit 0beh ; mov si,0 _emit 0
_emit 0
_emit 0
- _emit 0bfh ; mov di,0
+pdi: _emit 0bfh ; mov di,0
_emit 0
_emit 0
_emit 0x10
diff --git a/sys/i386/boot/dosboot/protmod.h b/sys/i386/boot/dosboot/protmod.h index 60a6c406..2faf975 100644 --- a/sys/i386/boot/dosboot/protmod.h +++ b/sys/i386/boot/dosboot/protmod.h @@ -15,7 +15,7 @@ * USE OF THIS SOFTWARE.
*
*/
-extern struct bootinfo_t bootinfo;
+extern struct bootinfo bootinfo;
extern int VCPIboot;
extern int pm_copy(char far *from, unsigned long to, unsigned long count);
@@ -23,7 +23,8 @@ extern int pm_copy(char far *from, unsigned long to, unsigned long count); * address "to" in the high-memory space.
*/
-extern void startprog(long hmaddress, long size, long startaddr, long argv[]);
+extern void startprog(long hmaddress, long size, long startaddr, long loadflags,
+ long bootdev);
/* startprog switches to protected mode, moves the kernel from hmaddress
* to 0x100000l and finally starts the kernel.
*/
diff --git a/sys/i386/boot/dosboot/reboot.h b/sys/i386/boot/dosboot/reboot.h index 76766aa..51b5f1f 100644 --- a/sys/i386/boot/dosboot/reboot.h +++ b/sys/i386/boot/dosboot/reboot.h @@ -56,6 +56,10 @@ #define RB_MINIROOT 0x200 /* mini-root present in memory at boot time */
#define RB_CONFIG 0x400 /* invoke user configuration routing */
#define RB_VERBOSE 0x800 /* print all potentially useful info */
+#define RB_SERIAL 0x1000 /* user serial port as console */
+#define RB_CDROM 0x2000 /* use cdrom as root */
+
+#define RB_BOOTINFO 0x80000000 /* have `struct bootinfo *' arg */
/*
* Constants for converting boot-style device number to type,
|