summaryrefslogtreecommitdiffstats
path: root/sys/i386/boot/dosboot
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1995-04-27 18:22:36 +0000
committerphk <phk@FreeBSD.org>1995-04-27 18:22:36 +0000
commit82051ce6fc2632addf7bfa1a09db2bc6af0034b0 (patch)
treec68a99c48cf358bc3b8d9f85225418cde490774d /sys/i386/boot/dosboot
parent6b420d9cc464dcfc626315a0899875554b8ba952 (diff)
downloadFreeBSD-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>
Diffstat (limited to 'sys/i386/boot/dosboot')
-rw-r--r--sys/i386/boot/dosboot/boot.c140
-rw-r--r--sys/i386/boot/dosboot/boot.h2
-rw-r--r--sys/i386/boot/dosboot/bootinfo.h35
-rw-r--r--sys/i386/boot/dosboot/disk.c22
-rw-r--r--sys/i386/boot/dosboot/dkbad.h5
-rw-r--r--sys/i386/boot/dosboot/dosboot.c97
-rw-r--r--sys/i386/boot/dosboot/dosboot.h2
-rw-r--r--sys/i386/boot/dosboot/fbsdboot.c44
-rw-r--r--sys/i386/boot/dosboot/fbsdboot.exe.uu885
-rw-r--r--sys/i386/boot/dosboot/fbsdboot.mak24
-rw-r--r--sys/i386/boot/dosboot/protmod.c16
-rw-r--r--sys/i386/boot/dosboot/protmod.h5
-rw-r--r--sys/i386/boot/dosboot/reboot.h4
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,'O![
-MH_A[C![Z>V;'!O)[`"```&:AY%EF!1````!FHV:=FJ`"[`#_=OY6#N@9_(/$
-M!`O`=+YF*\!FHP!\7LG+R`X``(M&!HE&\HM&"HE&](M&"(E&]HM&#$")1OB+
-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-C![&2<<&K$D(`(D.KDFAU$F+
-M%M9)(O%24!YHT0V:%@G7`8/$"(M&](M6]E[)RY#(#```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"![%?@I7'@?\DPK`=!.#^0IU
-M#@O2>0JP+:KWVX/2`/?:B_>2,](+P'0"]_&3]_&2A],$,#PY=@($)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
+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
+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,
OpenPOWER on IntegriCloud