avr: initial commit
authorSebastian <basti@notizbuch>
Fri, 8 Nov 2013 21:38:26 +0000 (22:38 +0100)
committerSebastian <basti@notizbuch>
Fri, 8 Nov 2013 21:38:26 +0000 (22:38 +0100)
including 20k cp/m 2.2 in virtual floppy disk

18 files changed:
avr/Makefile [new file with mode: 0644]
avr/bus.c [new file with mode: 0644]
avr/bus.h [new file with mode: 0644]
avr/cpm.c [new file with mode: 0644]
avr/cpm.h [new file with mode: 0644]
avr/i2c.c [new file with mode: 0644]
avr/i2c.h [new file with mode: 0644]
avr/io.c [new file with mode: 0644]
avr/io.h [new file with mode: 0644]
avr/main.c [new file with mode: 0644]
avr/mem.c [new file with mode: 0644]
avr/mem.h [new file with mode: 0644]
avr/monitor.h [new file with mode: 0644]
avr/monitor/ihex.c [new file with mode: 0644]
avr/monitor/monitor.c [new file with mode: 0644]
avr/monitor/slots.c [new file with mode: 0644]
avr/uart.c [new file with mode: 0644]
avr/uart.h [new file with mode: 0644]

diff --git a/avr/Makefile b/avr/Makefile
new file mode 100644 (file)
index 0000000..dbf6394
--- /dev/null
@@ -0,0 +1,34 @@
+# makefile
+
+OBJS   =  main.o uart.o i2c.o bus.o mem.o io.o cpm.o
+OBJS   += monitor/monitor.o monitor/slots.o monitor/ihex.o
+
+CC     = avr-gcc
+OBJCOPY        = avr-objcopy
+AVRDUDE        = sudo avrdude
+
+CFLAGS = -std=gnu99 -mmcu=atmega328p -DF_CPU=16000000 -Os
+
+all: main.hex
+
+flash: main.hex
+       @echo -e "\tFLASH"
+       @$(AVRDUDE) -y -p m328p -c usbasp -U flash:w:main.hex
+
+main.hex: main.elf
+       @echo -e "\tOBJCOPY\t$@"
+       @$(OBJCOPY) -O ihex -R .eeprom main.elf main.hex
+
+main.elf: $(OBJS)
+       @echo -e "\tLD\t$@"
+       @$(CC) $(CFLAGS) -o main.elf $(OBJS)
+
+%.o: %.c
+       @echo -e "\tCC\t$@"
+       @$(CC) $(CFLAGS) -c -o $@ $^
+
+clean:
+       @echo -e "\tCLEAN"
+       @rm -f $(OBJS) main.elf main.hex
+
+.PHONY:        clean
diff --git a/avr/bus.c b/avr/bus.c
new file mode 100644 (file)
index 0000000..06d8557
--- /dev/null
+++ b/avr/bus.c
@@ -0,0 +1,68 @@
+/* BUS arbitration */
+
+#include <avr/io.h>
+#include <util/delay.h>
+
+#include "bus.h"
+
+/* initialize bus arbitration pins */
+void bus_init(void)
+{
+       /* /INT, /RESET, /BUSREQ, /WAIT, CLOCK as HIGH outputs */
+       BUSDDR  |= (1 << INT) | (1 << RESET) | (1 << BUSREQ) | (1 << WAIT) | (1 << CLOCK);
+       BUSPORT |= (1 << INT) | (1 << RESET) | (1 << BUSREQ) | (1 << WAIT) | (1 << CLOCK);
+
+       /* /BUSACK as input with pullups */
+       BUSDDR  &= ~(1 << BUSACK);
+       BUSPORT |=  (1 << BUSACK);
+
+       /* initialize clock on OC0B */
+       TCNT0  = 0;
+//     OCR0A  = 2;
+       OCR0A  = 15;
+//     OCR0A  = 254;
+       TCCR0A = (1 << COM0B0) | (1 << WGM01);
+       TCCR0B = (1 << CS00);
+
+       /* reset Z80, get bus, wait until we got it */
+       BUSPORT &= ~((1 << RESET) | (1 << BUSREQ));
+       _delay_ms(50);
+       BUSPORT |= (1 << RESET);
+       while(BUSPIN & (1 << BUSACK));
+}
+
+/* acquire memory bus from Z80, blocking */
+/* NOTE: disables DRAM refresh! */
+void bus_lock(void)
+{
+       BUSPORT &= ~(1 << BUSREQ);      /* request bus */
+       while(BUSPIN & (1 << BUSACK));  /* wait until acquired */
+}
+
+/* return memory bus to Z80, blocking */
+void bus_unlock(void)
+{
+       BUSPORT |= (1 << BUSREQ);       /* release bus */
+       while(!(BUSPIN & (1 << BUSACK))); /* wait until released */
+}
+
+/* activate autowait: /WAIT activates on /SEL0 */
+void bus_wait(void)
+{
+       BUSPORT |= (1 << WAIT);
+       return;
+}
+
+/* release autowait: /WAIT gets released immediately */
+void bus_nowait(void)
+{
+       BUSPORT &= ~(1 << WAIT);
+}
+
+/* reset Z80 and devices */
+void bus_reset(void)
+{
+       BUSPORT &= ~(1 << RESET);
+       _delay_ms(50);
+       BUSPORT |= (1 << RESET);
+}
diff --git a/avr/bus.h b/avr/bus.h
new file mode 100644 (file)
index 0000000..84af5bf
--- /dev/null
+++ b/avr/bus.h
@@ -0,0 +1,33 @@
+/* BUS arbitration header */
+#ifndef _BUS_H_
+#define _BUS_H_
+
+/* control bus */
+#define BUSPORT        PORTD
+#define BUSDDR DDRD
+#define BUSPIN PIND
+#define INT    PD2
+#define RESET  PD3
+#define WAIT   PD4
+#define CLOCK  PD5
+#define BUSREQ PD6
+#define BUSACK PD7
+
+/* memory bus */
+#define MEMPORT        PORTC
+#define MEMDDR DDRC
+#define MEMPIN PINC
+#define MREQ   PC0
+#define RD     PC1
+#define WR     PC2
+#define SEL    PC3
+
+void bus_init(void);
+void bus_lock(void);
+void bus_unlock(void);
+void bus_reset(void);
+
+void bus_wait(void);
+void bus_nowait(void);
+
+#endif /* _BUS_H_ */
diff --git a/avr/cpm.c b/avr/cpm.c
new file mode 100644 (file)
index 0000000..f0fc3e4
--- /dev/null
+++ b/avr/cpm.c
@@ -0,0 +1,1947 @@
+/* CP/M support code */
+
+#include <stdint.h>
+#include <stdio.h>
+
+static const __flash uint8_t cpm_disk[] = {
+0xc3, 0x5c, 0x37, 0xc3, 0x58, 0x37, 0x7f, 0x00, 0x20, 0x20, 0x20, 0x20, 
+0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 
+0x43, 0x4f, 0x50, 0x59, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x28, 0x43, 
+0x29, 0x20, 0x31, 0x39, 0x37, 0x39, 0x2c, 0x20, 0x44, 0x49, 0x47, 0x49, 
+0x54, 0x41, 0x4c, 0x20, 0x52, 0x45, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 
+0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x08, 0x34, 0x00, 0x00, 0x5f, 0x0e, 0x02, 0xc3, 
+0x05, 0x00, 0xc5, 0xcd, 0x8c, 0x34, 0xc1, 0xc9, 0x3e, 0x0d, 0xcd, 0x92, 
+0x34, 0x3e, 0x0a, 0xc3, 0x92, 0x34, 0x3e, 0x20, 0xc3, 0x92, 0x34, 0xc5, 
+0xcd, 0x98, 0x34, 0xe1, 0x7e, 0xb7, 0xc8, 0x23, 0xe5, 0xcd, 0x8c, 0x34, 
+0xe1, 0xc3, 0xac, 0x34, 0x0e, 0x0d, 0xc3, 0x05, 0x00, 0x5f, 0x0e, 0x0e, 
+0xc3, 0x05, 0x00, 0xcd, 0x05, 0x00, 0x32, 0xee, 0x3b, 0x3c, 0xc9, 0x0e, 
+0x0f, 0xc3, 0xc3, 0x34, 0xaf, 0x32, 0xed, 0x3b, 0x11, 0xcd, 0x3b, 0xc3, 
+0xcb, 0x34, 0x0e, 0x10, 0xc3, 0xc3, 0x34, 0x0e, 0x11, 0xc3, 0xc3, 0x34, 
+0x0e, 0x12, 0xc3, 0xc3, 0x34, 0x11, 0xcd, 0x3b, 0xc3, 0xdf, 0x34, 0x0e, 
+0x13, 0xc3, 0x05, 0x00, 0xcd, 0x05, 0x00, 0xb7, 0xc9, 0x0e, 0x14, 0xc3, 
+0xf4, 0x34, 0x11, 0xcd, 0x3b, 0xc3, 0xf9, 0x34, 0x0e, 0x15, 0xc3, 0xf4, 
+0x34, 0x0e, 0x16, 0xc3, 0xc3, 0x34, 0x0e, 0x17, 0xc3, 0x05, 0x00, 0x1e, 
+0xff, 0x0e, 0x20, 0xc3, 0x05, 0x00, 0xcd, 0x13, 0x35, 0x87, 0x87, 0x87, 
+0x87, 0x21, 0xef, 0x3b, 0xb6, 0x32, 0x04, 0x00, 0xc9, 0x3a, 0xef, 0x3b, 
+0x32, 0x04, 0x00, 0xc9, 0xfe, 0x61, 0xd8, 0xfe, 0x7b, 0xd0, 0xe6, 0x5f, 
+0xc9, 0x3a, 0xab, 0x3b, 0xb7, 0xca, 0x96, 0x35, 0x3a, 0xef, 0x3b, 0xb7, 
+0x3e, 0x00, 0xc4, 0xbd, 0x34, 0x11, 0xac, 0x3b, 0xcd, 0xcb, 0x34, 0xca, 
+0x96, 0x35, 0x3a, 0xbb, 0x3b, 0x3d, 0x32, 0xcc, 0x3b, 0x11, 0xac, 0x3b, 
+0xcd, 0xf9, 0x34, 0xc2, 0x96, 0x35, 0x11, 0x07, 0x34, 0x21, 0x80, 0x00, 
+0x06, 0x80, 0xcd, 0x42, 0x38, 0x21, 0xba, 0x3b, 0x36, 0x00, 0x23, 0x35, 
+0x11, 0xac, 0x3b, 0xcd, 0xda, 0x34, 0xca, 0x96, 0x35, 0x3a, 0xef, 0x3b, 
+0xb7, 0xc4, 0xbd, 0x34, 0x21, 0x08, 0x34, 0xcd, 0xac, 0x34, 0xcd, 0xc2, 
+0x35, 0xca, 0xa7, 0x35, 0xcd, 0xdd, 0x35, 0xc3, 0x82, 0x37, 0xcd, 0xdd, 
+0x35, 0xcd, 0x1a, 0x35, 0x0e, 0x0a, 0x11, 0x06, 0x34, 0xcd, 0x05, 0x00, 
+0xcd, 0x29, 0x35, 0x21, 0x07, 0x34, 0x46, 0x23, 0x78, 0xb7, 0xca, 0xba, 
+0x35, 0x7e, 0xcd, 0x30, 0x35, 0x77, 0x05, 0xc3, 0xab, 0x35, 0x77, 0x21, 
+0x08, 0x34, 0x22, 0x88, 0x34, 0xc9, 0x0e, 0x0b, 0xcd, 0x05, 0x00, 0xb7, 
+0xc8, 0x0e, 0x01, 0xcd, 0x05, 0x00, 0xb7, 0xc9, 0x0e, 0x19, 0xc3, 0x05, 
+0x00, 0x11, 0x80, 0x00, 0x0e, 0x1a, 0xc3, 0x05, 0x00, 0x21, 0xab, 0x3b, 
+0x7e, 0xb7, 0xc8, 0x36, 0x00, 0xaf, 0xcd, 0xbd, 0x34, 0x11, 0xac, 0x3b, 
+0xcd, 0xef, 0x34, 0x3a, 0xef, 0x3b, 0xc3, 0xbd, 0x34, 0x11, 0x28, 0x37, 
+0x21, 0x00, 0x3c, 0x06, 0x06, 0x1a, 0xbe, 0xc2, 0xcf, 0x37, 0x13, 0x23, 
+0x05, 0xc2, 0xfd, 0x35, 0xc9, 0xcd, 0x98, 0x34, 0x2a, 0x8a, 0x34, 0x7e, 
+0xfe, 0x20, 0xca, 0x22, 0x36, 0xb7, 0xca, 0x22, 0x36, 0xe5, 0xcd, 0x8c, 
+0x34, 0xe1, 0x23, 0xc3, 0x0f, 0x36, 0x3e, 0x3f, 0xcd, 0x8c, 0x34, 0xcd, 
+0x98, 0x34, 0xcd, 0xdd, 0x35, 0xc3, 0x82, 0x37, 0x1a, 0xb7, 0xc8, 0xfe, 
+0x20, 0xda, 0x09, 0x36, 0xc8, 0xfe, 0x3d, 0xc8, 0xfe, 0x5f, 0xc8, 0xfe, 
+0x2e, 0xc8, 0xfe, 0x3a, 0xc8, 0xfe, 0x3b, 0xc8, 0xfe, 0x3c, 0xc8, 0xfe, 
+0x3e, 0xc8, 0xc9, 0x1a, 0xb7, 0xc8, 0xfe, 0x20, 0xc0, 0x13, 0xc3, 0x4f, 
+0x36, 0x85, 0x6f, 0xd0, 0x24, 0xc9, 0x3e, 0x00, 0x21, 0xcd, 0x3b, 0xcd, 
+0x59, 0x36, 0xe5, 0xe5, 0xaf, 0x32, 0xf0, 0x3b, 0x2a, 0x88, 0x34, 0xeb, 
+0xcd, 0x4f, 0x36, 0xeb, 0x22, 0x8a, 0x34, 0xeb, 0xe1, 0x1a, 0xb7, 0xca, 
+0x89, 0x36, 0xde, 0x40, 0x47, 0x13, 0x1a, 0xfe, 0x3a, 0xca, 0x90, 0x36, 
+0x1b, 0x3a, 0xef, 0x3b, 0x77, 0xc3, 0x96, 0x36, 0x78, 0x32, 0xf0, 0x3b, 
+0x70, 0x13, 0x06, 0x08, 0xcd, 0x30, 0x36, 0xca, 0xb9, 0x36, 0x23, 0xfe, 
+0x2a, 0xc2, 0xa9, 0x36, 0x36, 0x3f, 0xc3, 0xab, 0x36, 0x77, 0x13, 0x05, 
+0xc2, 0x98, 0x36, 0xcd, 0x30, 0x36, 0xca, 0xc0, 0x36, 0x13, 0xc3, 0xaf, 
+0x36, 0x23, 0x36, 0x20, 0x05, 0xc2, 0xb9, 0x36, 0x06, 0x03, 0xfe, 0x2e, 
+0xc2, 0xe9, 0x36, 0x13, 0xcd, 0x30, 0x36, 0xca, 0xe9, 0x36, 0x23, 0xfe, 
+0x2a, 0xc2, 0xd9, 0x36, 0x36, 0x3f, 0xc3, 0xdb, 0x36, 0x77, 0x13, 0x05, 
+0xc2, 0xc8, 0x36, 0xcd, 0x30, 0x36, 0xca, 0xf0, 0x36, 0x13, 0xc3, 0xdf, 
+0x36, 0x23, 0x36, 0x20, 0x05, 0xc2, 0xe9, 0x36, 0x06, 0x03, 0x23, 0x36, 
+0x00, 0x05, 0xc2, 0xf2, 0x36, 0xeb, 0x22, 0x88, 0x34, 0xe1, 0x01, 0x0b, 
+0x00, 0x23, 0x7e, 0xfe, 0x3f, 0xc2, 0x09, 0x37, 0x04, 0x0d, 0xc2, 0x01, 
+0x37, 0x78, 0xb7, 0xc9, 0x44, 0x49, 0x52, 0x20, 0x45, 0x52, 0x41, 0x20, 
+0x54, 0x59, 0x50, 0x45, 0x53, 0x41, 0x56, 0x45, 0x52, 0x45, 0x4e, 0x20, 
+0x55, 0x53, 0x45, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x10, 
+0x37, 0x0e, 0x00, 0x79, 0xfe, 0x06, 0xd0, 0x11, 0xce, 0x3b, 0x06, 0x04, 
+0x1a, 0xbe, 0xc2, 0x4f, 0x37, 0x13, 0x23, 0x05, 0xc2, 0x3c, 0x37, 0x1a, 
+0xfe, 0x20, 0xc2, 0x54, 0x37, 0x79, 0xc9, 0x23, 0x05, 0xc2, 0x4f, 0x37, 
+0x0c, 0xc3, 0x33, 0x37, 0xaf, 0x32, 0x07, 0x34, 0x31, 0xab, 0x3b, 0xc5, 
+0x79, 0x1f, 0x1f, 0x1f, 0x1f, 0xe6, 0x0f, 0x5f, 0xcd, 0x15, 0x35, 0xcd, 
+0xb8, 0x34, 0x32, 0xab, 0x3b, 0xc1, 0x79, 0xe6, 0x0f, 0x32, 0xef, 0x3b, 
+0xcd, 0xbd, 0x34, 0x3a, 0x07, 0x34, 0xb7, 0xc2, 0x98, 0x37, 0x31, 0xab, 
+0x3b, 0xcd, 0x98, 0x34, 0xcd, 0xd0, 0x35, 0xc6, 0x41, 0xcd, 0x8c, 0x34, 
+0x3e, 0x3e, 0xcd, 0x8c, 0x34, 0xcd, 0x39, 0x35, 0x11, 0x80, 0x00, 0xcd, 
+0xd8, 0x35, 0xcd, 0xd0, 0x35, 0x32, 0xef, 0x3b, 0xcd, 0x5e, 0x36, 0xc4, 
+0x09, 0x36, 0x3a, 0xf0, 0x3b, 0xb7, 0xc2, 0xa5, 0x3a, 0xcd, 0x2e, 0x37, 
+0x21, 0xc1, 0x37, 0x5f, 0x16, 0x00, 0x19, 0x19, 0x7e, 0x23, 0x66, 0x6f, 
+0xe9, 0x77, 0x38, 0x1f, 0x39, 0x5d, 0x39, 0xad, 0x39, 0x10, 0x3a, 0x8e, 
+0x3a, 0xa5, 0x3a, 0x21, 0xf3, 0x76, 0x22, 0x00, 0x34, 0x21, 0x00, 0x34, 
+0xe9, 0x01, 0xdf, 0x37, 0xc3, 0xa7, 0x34, 0x52, 0x45, 0x41, 0x44, 0x20, 
+0x45, 0x52, 0x52, 0x4f, 0x52, 0x00, 0x01, 0xf0, 0x37, 0xc3, 0xa7, 0x34, 
+0x4e, 0x4f, 0x20, 0x46, 0x49, 0x4c, 0x45, 0x00, 0xcd, 0x5e, 0x36, 0x3a, 
+0xf0, 0x3b, 0xb7, 0xc2, 0x09, 0x36, 0x21, 0xce, 0x3b, 0x01, 0x0b, 0x00, 
+0x7e, 0xfe, 0x20, 0xca, 0x33, 0x38, 0x23, 0xd6, 0x30, 0xfe, 0x0a, 0xd2, 
+0x09, 0x36, 0x57, 0x78, 0xe6, 0xe0, 0xc2, 0x09, 0x36, 0x78, 0x07, 0x07, 
+0x07, 0x80, 0xda, 0x09, 0x36, 0x80, 0xda, 0x09, 0x36, 0x82, 0xda, 0x09, 
+0x36, 0x47, 0x0d, 0xc2, 0x08, 0x38, 0xc9, 0x7e, 0xfe, 0x20, 0xc2, 0x09, 
+0x36, 0x23, 0x0d, 0xc2, 0x33, 0x38, 0x78, 0xc9, 0x06, 0x03, 0x7e, 0x12, 
+0x23, 0x13, 0x05, 0xc2, 0x42, 0x38, 0xc9, 0x21, 0x80, 0x00, 0x81, 0xcd, 
+0x59, 0x36, 0x7e, 0xc9, 0xaf, 0x32, 0xcd, 0x3b, 0x3a, 0xf0, 0x3b, 0xb7, 
+0xc8, 0x3d, 0x21, 0xef, 0x3b, 0xbe, 0xc8, 0xc3, 0xbd, 0x34, 0x3a, 0xf0, 
+0x3b, 0xb7, 0xc8, 0x3d, 0x21, 0xef, 0x3b, 0xbe, 0xc8, 0x3a, 0xef, 0x3b, 
+0xc3, 0xbd, 0x34, 0xcd, 0x5e, 0x36, 0xcd, 0x54, 0x38, 0x21, 0xce, 0x3b, 
+0x7e, 0xfe, 0x20, 0xc2, 0x8f, 0x38, 0x06, 0x0b, 0x36, 0x3f, 0x23, 0x05, 
+0xc2, 0x88, 0x38, 0x1e, 0x00, 0xd5, 0xcd, 0xe9, 0x34, 0xcc, 0xea, 0x37, 
+0xca, 0x1b, 0x39, 0x3a, 0xee, 0x3b, 0x0f, 0x0f, 0x0f, 0xe6, 0x60, 0x4f, 
+0x3e, 0x0a, 0xcd, 0x4b, 0x38, 0x17, 0xda, 0x0f, 0x39, 0xd1, 0x7b, 0x1c, 
+0xd5, 0xe6, 0x03, 0xf5, 0xc2, 0xcc, 0x38, 0xcd, 0x98, 0x34, 0xc5, 0xcd, 
+0xd0, 0x35, 0xc1, 0xc6, 0x41, 0xcd, 0x92, 0x34, 0x3e, 0x3a, 0xcd, 0x92, 
+0x34, 0xc3, 0xd4, 0x38, 0xcd, 0xa2, 0x34, 0x3e, 0x3a, 0xcd, 0x92, 0x34, 
+0xcd, 0xa2, 0x34, 0x06, 0x01, 0x78, 0xcd, 0x4b, 0x38, 0xe6, 0x7f, 0xfe, 
+0x20, 0xc2, 0xf9, 0x38, 0xf1, 0xf5, 0xfe, 0x03, 0xc2, 0xf7, 0x38, 0x3e, 
+0x09, 0xcd, 0x4b, 0x38, 0xe6, 0x7f, 0xfe, 0x20, 0xca, 0x0e, 0x39, 0x3e, 
+0x20, 0xcd, 0x92, 0x34, 0x04, 0x78, 0xfe, 0x0c, 0xd2, 0x0e, 0x39, 0xfe, 
+0x09, 0xc2, 0xd9, 0x38, 0xcd, 0xa2, 0x34, 0xc3, 0xd9, 0x38, 0xf1, 0xcd, 
+0xc2, 0x35, 0xc2, 0x1b, 0x39, 0xcd, 0xe4, 0x34, 0xc3, 0x98, 0x38, 0xd1, 
+0xc3, 0x86, 0x3b, 0xcd, 0x5e, 0x36, 0xfe, 0x0b, 0xc2, 0x42, 0x39, 0x01, 
+0x52, 0x39, 0xcd, 0xa7, 0x34, 0xcd, 0x39, 0x35, 0x21, 0x07, 0x34, 0x35, 
+0xc2, 0x82, 0x37, 0x23, 0x7e, 0xfe, 0x59, 0xc2, 0x82, 0x37, 0x23, 0x22, 
+0x88, 0x34, 0xcd, 0x54, 0x38, 0x11, 0xcd, 0x3b, 0xcd, 0xef, 0x34, 0x3c, 
+0xcc, 0xea, 0x37, 0xc3, 0x86, 0x3b, 0x41, 0x4c, 0x4c, 0x20, 0x28, 0x59, 
+0x2f, 0x4e, 0x29, 0x3f, 0x00, 0xcd, 0x5e, 0x36, 0xc2, 0x09, 0x36, 0xcd, 
+0x54, 0x38, 0xcd, 0xd0, 0x34, 0xca, 0xa7, 0x39, 0xcd, 0x98, 0x34, 0x21, 
+0xf1, 0x3b, 0x36, 0xff, 0x21, 0xf1, 0x3b, 0x7e, 0xfe, 0x80, 0xda, 0x87, 
+0x39, 0xe5, 0xcd, 0xfe, 0x34, 0xe1, 0xc2, 0xa0, 0x39, 0xaf, 0x77, 0x34, 
+0x21, 0x80, 0x00, 0xcd, 0x59, 0x36, 0x7e, 0xfe, 0x1a, 0xca, 0x86, 0x3b, 
+0xcd, 0x8c, 0x34, 0xcd, 0xc2, 0x35, 0xc2, 0x86, 0x3b, 0xc3, 0x74, 0x39, 
+0x3d, 0xca, 0x86, 0x3b, 0xcd, 0xd9, 0x37, 0xcd, 0x66, 0x38, 0xc3, 0x09, 
+0x36, 0xcd, 0xf8, 0x37, 0xf5, 0xcd, 0x5e, 0x36, 0xc2, 0x09, 0x36, 0xcd, 
+0x54, 0x38, 0x11, 0xcd, 0x3b, 0xd5, 0xcd, 0xef, 0x34, 0xd1, 0xcd, 0x09, 
+0x35, 0xca, 0xfb, 0x39, 0xaf, 0x32, 0xed, 0x3b, 0xf1, 0x6f, 0x26, 0x00, 
+0x29, 0x11, 0x00, 0x01, 0x7c, 0xb5, 0xca, 0xf1, 0x39, 0x2b, 0xe5, 0x21, 
+0x80, 0x00, 0x19, 0xe5, 0xcd, 0xd8, 0x35, 0x11, 0xcd, 0x3b, 0xcd, 0x04, 
+0x35, 0xd1, 0xe1, 0xc2, 0xfb, 0x39, 0xc3, 0xd4, 0x39, 0x11, 0xcd, 0x3b, 
+0xcd, 0xda, 0x34, 0x3c, 0xc2, 0x01, 0x3a, 0x01, 0x07, 0x3a, 0xcd, 0xa7, 
+0x34, 0xcd, 0xd5, 0x35, 0xc3, 0x86, 0x3b, 0x4e, 0x4f, 0x20, 0x53, 0x50, 
+0x41, 0x43, 0x45, 0x00, 0xcd, 0x5e, 0x36, 0xc2, 0x09, 0x36, 0x3a, 0xf0, 
+0x3b, 0xf5, 0xcd, 0x54, 0x38, 0xcd, 0xe9, 0x34, 0xc2, 0x79, 0x3a, 0x21, 
+0xcd, 0x3b, 0x11, 0xdd, 0x3b, 0x06, 0x10, 0xcd, 0x42, 0x38, 0x2a, 0x88, 
+0x34, 0xeb, 0xcd, 0x4f, 0x36, 0xfe, 0x3d, 0xca, 0x3f, 0x3a, 0xfe, 0x5f, 
+0xc2, 0x73, 0x3a, 0xeb, 0x23, 0x22, 0x88, 0x34, 0xcd, 0x5e, 0x36, 0xc2, 
+0x73, 0x3a, 0xf1, 0x47, 0x21, 0xf0, 0x3b, 0x7e, 0xb7, 0xca, 0x59, 0x3a, 
+0xb8, 0x70, 0xc2, 0x73, 0x3a, 0x70, 0xaf, 0x32, 0xcd, 0x3b, 0xcd, 0xe9, 
+0x34, 0xca, 0x6d, 0x3a, 0x11, 0xcd, 0x3b, 0xcd, 0x0e, 0x35, 0xc3, 0x86, 
+0x3b, 0xcd, 0xea, 0x37, 0xc3, 0x86, 0x3b, 0xcd, 0x66, 0x38, 0xc3, 0x09, 
+0x36, 0x01, 0x82, 0x3a, 0xcd, 0xa7, 0x34, 0xc3, 0x86, 0x3b, 0x46, 0x49, 
+0x4c, 0x45, 0x20, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x00, 0xcd, 0xf8, 
+0x37, 0xfe, 0x10, 0xd2, 0x09, 0x36, 0x5f, 0x3a, 0xce, 0x3b, 0xfe, 0x20, 
+0xca, 0x09, 0x36, 0xcd, 0x15, 0x35, 0xc3, 0x89, 0x3b, 0xcd, 0xf5, 0x35, 
+0x3a, 0xce, 0x3b, 0xfe, 0x20, 0xc2, 0xc4, 0x3a, 0x3a, 0xf0, 0x3b, 0xb7, 
+0xca, 0x89, 0x3b, 0x3d, 0x32, 0xef, 0x3b, 0xcd, 0x29, 0x35, 0xcd, 0xbd, 
+0x34, 0xc3, 0x89, 0x3b, 0x11, 0xd6, 0x3b, 0x1a, 0xfe, 0x20, 0xc2, 0x09, 
+0x36, 0xd5, 0xcd, 0x54, 0x38, 0xd1, 0x21, 0x83, 0x3b, 0xcd, 0x40, 0x38, 
+0xcd, 0xd0, 0x34, 0xca, 0x6b, 0x3b, 0x21, 0x00, 0x01, 0xe5, 0xeb, 0xcd, 
+0xd8, 0x35, 0x11, 0xcd, 0x3b, 0xcd, 0xf9, 0x34, 0xc2, 0x01, 0x3b, 0xe1, 
+0x11, 0x80, 0x00, 0x19, 0x11, 0x00, 0x34, 0x7d, 0x93, 0x7c, 0x9a, 0xd2, 
+0x71, 0x3b, 0xc3, 0xe1, 0x3a, 0xe1, 0x3d, 0xc2, 0x71, 0x3b, 0xcd, 0x66, 
+0x38, 0xcd, 0x5e, 0x36, 0x21, 0xf0, 0x3b, 0xe5, 0x7e, 0x32, 0xcd, 0x3b, 
+0x3e, 0x10, 0xcd, 0x60, 0x36, 0xe1, 0x7e, 0x32, 0xdd, 0x3b, 0xaf, 0x32, 
+0xed, 0x3b, 0x11, 0x5c, 0x00, 0x21, 0xcd, 0x3b, 0x06, 0x21, 0xcd, 0x42, 
+0x38, 0x21, 0x08, 0x34, 0x7e, 0xb7, 0xca, 0x3e, 0x3b, 0xfe, 0x20, 0xca, 
+0x3e, 0x3b, 0x23, 0xc3, 0x30, 0x3b, 0x06, 0x00, 0x11, 0x81, 0x00, 0x7e, 
+0x12, 0xb7, 0xca, 0x4f, 0x3b, 0x04, 0x23, 0x13, 0xc3, 0x43, 0x3b, 0x78, 
+0x32, 0x80, 0x00, 0xcd, 0x98, 0x34, 0xcd, 0xd5, 0x35, 0xcd, 0x1a, 0x35, 
+0xcd, 0x00, 0x01, 0x31, 0xab, 0x3b, 0xcd, 0x29, 0x35, 0xcd, 0xbd, 0x34, 
+0xc3, 0x82, 0x37, 0xcd, 0x66, 0x38, 0xc3, 0x09, 0x36, 0x01, 0x7a, 0x3b, 
+0xcd, 0xa7, 0x34, 0xc3, 0x86, 0x3b, 0x42, 0x41, 0x44, 0x20, 0x4c, 0x4f, 
+0x41, 0x44, 0x00, 0x43, 0x4f, 0x4d, 0xcd, 0x66, 0x38, 0xcd, 0x5e, 0x36, 
+0x3a, 0xce, 0x3b, 0xd6, 0x20, 0x21, 0xf0, 0x3b, 0xb6, 0xc2, 0x09, 0x36, 
+0xc3, 0x82, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x24, 0x24, 
+0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x55, 0x42, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0xc3, 0x11, 0x3c, 0x99, 0x3c, 0xa5, 0x3c, 0xab, 0x3c, 0xb1, 
+0x3c, 0xeb, 0x22, 0x43, 0x3f, 0xeb, 0x7b, 0x32, 0xd6, 0x49, 0x21, 0x00, 
+0x00, 0x22, 0x45, 0x3f, 0x39, 0x22, 0x0f, 0x3f, 0x31, 0x41, 0x3f, 0xaf, 
+0x32, 0xe0, 0x49, 0x32, 0xde, 0x49, 0x21, 0x74, 0x49, 0xe5, 0x79, 0xfe, 
+0x29, 0xd0, 0x4b, 0x21, 0x47, 0x3c, 0x5f, 0x16, 0x00, 0x19, 0x19, 0x5e, 
+0x23, 0x56, 0x2a, 0x43, 0x3f, 0xeb, 0xe9, 0x03, 0x4a, 0xc8, 0x3e, 0x90, 
+0x3d, 0xce, 0x3e, 0x12, 0x4a, 0x0f, 0x4a, 0xd4, 0x3e, 0xed, 0x3e, 0xf3, 
+0x3e, 0xf8, 0x3e, 0xe1, 0x3d, 0xfe, 0x3e, 0x7e, 0x48, 0x83, 0x48, 0x45, 
+0x48, 0x9c, 0x48, 0xa5, 0x48, 0xab, 0x48, 0xc8, 0x48, 0xd7, 0x48, 0xe0, 
+0x48, 0xe6, 0x48, 0xec, 0x48, 0xf5, 0x48, 0xfe, 0x48, 0x04, 0x49, 0x0a, 
+0x49, 0x11, 0x49, 0x2c, 0x41, 0x17, 0x49, 0x1d, 0x49, 0x26, 0x49, 0x2d, 
+0x49, 0x41, 0x49, 0x47, 0x49, 0x4d, 0x49, 0x0e, 0x48, 0x53, 0x49, 0x04, 
+0x3f, 0x04, 0x3f, 0x9b, 0x49, 0x21, 0xca, 0x3c, 0xcd, 0xe5, 0x3c, 0xfe, 
+0x03, 0xca, 0x00, 0x00, 0xc9, 0x21, 0xd5, 0x3c, 0xc3, 0xb4, 0x3c, 0x21, 
+0xe1, 0x3c, 0xc3, 0xb4, 0x3c, 0x21, 0xdc, 0x3c, 0xcd, 0xe5, 0x3c, 0xc3, 
+0x00, 0x00, 0x42, 0x64, 0x6f, 0x73, 0x20, 0x45, 0x72, 0x72, 0x20, 0x4f, 
+0x6e, 0x20, 0x20, 0x3a, 0x20, 0x24, 0x42, 0x61, 0x64, 0x20, 0x53, 0x65, 
+0x63, 0x74, 0x6f, 0x72, 0x24, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x24, 
+0x46, 0x69, 0x6c, 0x65, 0x20, 0x52, 0x2f, 0x4f, 0x24, 0xe5, 0xcd, 0xc9, 
+0x3d, 0x3a, 0x42, 0x3f, 0xc6, 0x41, 0x32, 0xc6, 0x3c, 0x01, 0xba, 0x3c, 
+0xcd, 0xd3, 0x3d, 0xc1, 0xcd, 0xd3, 0x3d, 0x21, 0x0e, 0x3f, 0x7e, 0x36, 
+0x00, 0xb7, 0xc0, 0xc3, 0x09, 0x4a, 0xcd, 0xfb, 0x3c, 0xcd, 0x14, 0x3d, 
+0xd8, 0xf5, 0x4f, 0xcd, 0x90, 0x3d, 0xf1, 0xc9, 0xfe, 0x0d, 0xc8, 0xfe, 
+0x0a, 0xc8, 0xfe, 0x09, 0xc8, 0xfe, 0x08, 0xc8, 0xfe, 0x20, 0xc9, 0x3a, 
+0x0e, 0x3f, 0xb7, 0xc2, 0x45, 0x3d, 0xcd, 0x06, 0x4a, 0xe6, 0x01, 0xc8, 
+0xcd, 0x09, 0x4a, 0xfe, 0x13, 0xc2, 0x42, 0x3d, 0xcd, 0x09, 0x4a, 0xfe, 
+0x03, 0xca, 0x00, 0x00, 0xaf, 0xc9, 0x32, 0x0e, 0x3f, 0x3e, 0x01, 0xc9, 
+0x3a, 0x0a, 0x3f, 0xb7, 0xc2, 0x62, 0x3d, 0xc5, 0xcd, 0x23, 0x3d, 0xc1, 
+0xc5, 0xcd, 0x0c, 0x4a, 0xc1, 0xc5, 0x3a, 0x0d, 0x3f, 0xb7, 0xc4, 0x0f, 
+0x4a, 0xc1, 0x79, 0x21, 0x0c, 0x3f, 0xfe, 0x7f, 0xc8, 0x34, 0xfe, 0x20, 
+0xd0, 0x35, 0x7e, 0xb7, 0xc8, 0x79, 0xfe, 0x08, 0xc2, 0x79, 0x3d, 0x35, 
+0xc9, 0xfe, 0x0a, 0xc0, 0x36, 0x00, 0xc9, 0x79, 0xcd, 0x14, 0x3d, 0xd2, 
+0x90, 0x3d, 0xf5, 0x0e, 0x5e, 0xcd, 0x48, 0x3d, 0xf1, 0xf6, 0x40, 0x4f, 
+0x79, 0xfe, 0x09, 0xc2, 0x48, 0x3d, 0x0e, 0x20, 0xcd, 0x48, 0x3d, 0x3a, 
+0x0c, 0x3f, 0xe6, 0x07, 0xc2, 0x96, 0x3d, 0xc9, 0xcd, 0xac, 0x3d, 0x0e, 
+0x20, 0xcd, 0x0c, 0x4a, 0x0e, 0x08, 0xc3, 0x0c, 0x4a, 0x0e, 0x23, 0xcd, 
+0x48, 0x3d, 0xcd, 0xc9, 0x3d, 0x3a, 0x0c, 0x3f, 0x21, 0x0b, 0x3f, 0xbe, 
+0xd0, 0x0e, 0x20, 0xcd, 0x48, 0x3d, 0xc3, 0xb9, 0x3d, 0x0e, 0x0d, 0xcd, 
+0x48, 0x3d, 0x0e, 0x0a, 0xc3, 0x48, 0x3d, 0x0a, 0xfe, 0x24, 0xc8, 0x03, 
+0xc5, 0x4f, 0xcd, 0x90, 0x3d, 0xc1, 0xc3, 0xd3, 0x3d, 0x3a, 0x0c, 0x3f, 
+0x32, 0x0b, 0x3f, 0x2a, 0x43, 0x3f, 0x4e, 0x23, 0xe5, 0x06, 0x00, 0xc5, 
+0xe5, 0xcd, 0xfb, 0x3c, 0xe6, 0x7f, 0xe1, 0xc1, 0xfe, 0x0d, 0xca, 0xc1, 
+0x3e, 0xfe, 0x0a, 0xca, 0xc1, 0x3e, 0xfe, 0x08, 0xc2, 0x16, 0x3e, 0x78, 
+0xb7, 0xca, 0xef, 0x3d, 0x05, 0x3a, 0x0c, 0x3f, 0x32, 0x0a, 0x3f, 0xc3, 
+0x70, 0x3e, 0xfe, 0x7f, 0xc2, 0x26, 0x3e, 0x78, 0xb7, 0xca, 0xef, 0x3d, 
+0x7e, 0x05, 0x2b, 0xc3, 0xa9, 0x3e, 0xfe, 0x05, 0xc2, 0x37, 0x3e, 0xc5, 
+0xe5, 0xcd, 0xc9, 0x3d, 0xaf, 0x32, 0x0b, 0x3f, 0xc3, 0xf1, 0x3d, 0xfe, 
+0x10, 0xc2, 0x48, 0x3e, 0xe5, 0x21, 0x0d, 0x3f, 0x3e, 0x01, 0x96, 0x77, 
+0xe1, 0xc3, 0xef, 0x3d, 0xfe, 0x18, 0xc2, 0x5f, 0x3e, 0xe1, 0x3a, 0x0b, 
+0x3f, 0x21, 0x0c, 0x3f, 0xbe, 0xd2, 0xe1, 0x3d, 0x35, 0xcd, 0xa4, 0x3d, 
+0xc3, 0x4e, 0x3e, 0xfe, 0x15, 0xc2, 0x6b, 0x3e, 0xcd, 0xb1, 0x3d, 0xe1, 
+0xc3, 0xe1, 0x3d, 0xfe, 0x12, 0xc2, 0xa6, 0x3e, 0xc5, 0xcd, 0xb1, 0x3d, 
+0xc1, 0xe1, 0xe5, 0xc5, 0x78, 0xb7, 0xca, 0x8a, 0x3e, 0x23, 0x4e, 0x05, 
+0xc5, 0xe5, 0xcd, 0x7f, 0x3d, 0xe1, 0xc1, 0xc3, 0x78, 0x3e, 0xe5, 0x3a, 
+0x0a, 0x3f, 0xb7, 0xca, 0xf1, 0x3d, 0x21, 0x0c, 0x3f, 0x96, 0x32, 0x0a, 
+0x3f, 0xcd, 0xa4, 0x3d, 0x21, 0x0a, 0x3f, 0x35, 0xc2, 0x99, 0x3e, 0xc3, 
+0xf1, 0x3d, 0x23, 0x77, 0x04, 0xc5, 0xe5, 0x4f, 0xcd, 0x7f, 0x3d, 0xe1, 
+0xc1, 0x7e, 0xfe, 0x03, 0x78, 0xc2, 0xbd, 0x3e, 0xfe, 0x01, 0xca, 0x00, 
+0x00, 0xb9, 0xda, 0xef, 0x3d, 0xe1, 0x70, 0x0e, 0x0d, 0xc3, 0x48, 0x3d, 
+0xcd, 0x06, 0x3d, 0xc3, 0x01, 0x3f, 0xcd, 0x15, 0x4a, 0xc3, 0x01, 0x3f, 
+0x79, 0x3c, 0xca, 0xe0, 0x3e, 0x3c, 0xca, 0x06, 0x4a, 0xc3, 0x0c, 0x4a, 
+0xcd, 0x06, 0x4a, 0xb7, 0xca, 0x91, 0x49, 0xcd, 0x09, 0x4a, 0xc3, 0x01, 
+0x3f, 0x3a, 0x03, 0x00, 0xc3, 0x01, 0x3f, 0x21, 0x03, 0x00, 0x71, 0xc9, 
+0xeb, 0x4d, 0x44, 0xc3, 0xd3, 0x3d, 0xcd, 0x23, 0x3d, 0x32, 0x45, 0x3f, 
+0xc9, 0x3e, 0x01, 0xc3, 0x01, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x0b, 0x3c, 0x5e, 0x23, 
+0x56, 0xeb, 0xe9, 0x0c, 0x0d, 0xc8, 0x1a, 0x77, 0x13, 0x23, 0xc3, 0x50, 
+0x3f, 0x3a, 0x42, 0x3f, 0x4f, 0xcd, 0x1b, 0x4a, 0x7c, 0xb5, 0xc8, 0x5e, 
+0x23, 0x56, 0x23, 0x22, 0xb3, 0x49, 0x23, 0x23, 0x22, 0xb5, 0x49, 0x23, 
+0x23, 0x22, 0xb7, 0x49, 0x23, 0x23, 0xeb, 0x22, 0xd0, 0x49, 0x21, 0xb9, 
+0x49, 0x0e, 0x08, 0xcd, 0x4f, 0x3f, 0x2a, 0xbb, 0x49, 0xeb, 0x21, 0xc1, 
+0x49, 0x0e, 0x0f, 0xcd, 0x4f, 0x3f, 0x2a, 0xc6, 0x49, 0x7c, 0x21, 0xdd, 
+0x49, 0x36, 0xff, 0xb7, 0xca, 0x9d, 0x3f, 0x36, 0x00, 0x3e, 0xff, 0xb7, 
+0xc9, 0xcd, 0x18, 0x4a, 0xaf, 0x2a, 0xb5, 0x49, 0x77, 0x23, 0x77, 0x2a, 
+0xb7, 0x49, 0x77, 0x23, 0x77, 0xc9, 0xcd, 0x27, 0x4a, 0xc3, 0xbb, 0x3f, 
+0xcd, 0x2a, 0x4a, 0xb7, 0xc8, 0x21, 0x09, 0x3c, 0xc3, 0x4a, 0x3f, 0x2a, 
+0xea, 0x49, 0x0e, 0x02, 0xcd, 0xea, 0x40, 0x22, 0xe5, 0x49, 0x22, 0xec, 
+0x49, 0x21, 0xe5, 0x49, 0x4e, 0x23, 0x46, 0x2a, 0xb7, 0x49, 0x5e, 0x23, 
+0x56, 0x2a, 0xb5, 0x49, 0x7e, 0x23, 0x66, 0x6f, 0x79, 0x93, 0x78, 0x9a, 
+0xd2, 0xfa, 0x3f, 0xe5, 0x2a, 0xc1, 0x49, 0x7b, 0x95, 0x5f, 0x7a, 0x9c, 
+0x57, 0xe1, 0x2b, 0xc3, 0xe4, 0x3f, 0xe5, 0x2a, 0xc1, 0x49, 0x19, 0xda, 
+0x0f, 0x40, 0x79, 0x95, 0x78, 0x9c, 0xda, 0x0f, 0x40, 0xeb, 0xe1, 0x23, 
+0xc3, 0xfa, 0x3f, 0xe1, 0xc5, 0xd5, 0xe5, 0xeb, 0x2a, 0xce, 0x49, 0x19, 
+0x44, 0x4d, 0xcd, 0x1e, 0x4a, 0xd1, 0x2a, 0xb5, 0x49, 0x73, 0x23, 0x72, 
+0xd1, 0x2a, 0xb7, 0x49, 0x73, 0x23, 0x72, 0xc1, 0x79, 0x93, 0x4f, 0x78, 
+0x9a, 0x47, 0x2a, 0xd0, 0x49, 0xeb, 0xcd, 0x30, 0x4a, 0x4d, 0x44, 0xc3, 
+0x21, 0x4a, 0x21, 0xc3, 0x49, 0x4e, 0x3a, 0xe3, 0x49, 0xb7, 0x1f, 0x0d, 
+0xc2, 0x45, 0x40, 0x47, 0x3e, 0x08, 0x96, 0x4f, 0x3a, 0xe2, 0x49, 0x0d, 
+0xca, 0x5c, 0x40, 0xb7, 0x17, 0xc3, 0x53, 0x40, 0x80, 0xc9, 0x2a, 0x43, 
+0x3f, 0x11, 0x10, 0x00, 0x19, 0x09, 0x3a, 0xdd, 0x49, 0xb7, 0xca, 0x71, 
+0x40, 0x6e, 0x26, 0x00, 0xc9, 0x09, 0x5e, 0x23, 0x56, 0xeb, 0xc9, 0xcd, 
+0x3e, 0x40, 0x4f, 0x06, 0x00, 0xcd, 0x5e, 0x40, 0x22, 0xe5, 0x49, 0xc9, 
+0x2a, 0xe5, 0x49, 0x7d, 0xb4, 0xc9, 0x3a, 0xc3, 0x49, 0x2a, 0xe5, 0x49, 
+0x29, 0x3d, 0xc2, 0x90, 0x40, 0x22, 0xe7, 0x49, 0x3a, 0xc4, 0x49, 0x4f, 
+0x3a, 0xe3, 0x49, 0xa1, 0xb5, 0x6f, 0x22, 0xe5, 0x49, 0xc9, 0x2a, 0x43, 
+0x3f, 0x11, 0x0c, 0x00, 0x19, 0xc9, 0x2a, 0x43, 0x3f, 0x11, 0x0f, 0x00, 
+0x19, 0xeb, 0x21, 0x11, 0x00, 0x19, 0xc9, 0xcd, 0xae, 0x40, 0x7e, 0x32, 
+0xe3, 0x49, 0xeb, 0x7e, 0x32, 0xe1, 0x49, 0xcd, 0xa6, 0x40, 0x3a, 0xc5, 
+0x49, 0xa6, 0x32, 0xe2, 0x49, 0xc9, 0xcd, 0xae, 0x40, 0x3a, 0xd5, 0x49, 
+0xfe, 0x02, 0xc2, 0xde, 0x40, 0xaf, 0x4f, 0x3a, 0xe3, 0x49, 0x81, 0x77, 
+0xeb, 0x3a, 0xe1, 0x49, 0x77, 0xc9, 0x0c, 0x0d, 0xc8, 0x7c, 0xb7, 0x1f, 
+0x67, 0x7d, 0x1f, 0x6f, 0xc3, 0xeb, 0x40, 0x0e, 0x80, 0x2a, 0xb9, 0x49, 
+0xaf, 0x86, 0x23, 0x0d, 0xc2, 0xfd, 0x40, 0xc9, 0x0c, 0x0d, 0xc8, 0x29, 
+0xc3, 0x05, 0x41, 0xc5, 0x3a, 0x42, 0x3f, 0x4f, 0x21, 0x01, 0x00, 0xcd, 
+0x04, 0x41, 0xc1, 0x79, 0xb5, 0x6f, 0x78, 0xb4, 0x67, 0xc9, 0x2a, 0xad, 
+0x49, 0x3a, 0x42, 0x3f, 0x4f, 0xcd, 0xea, 0x40, 0x7d, 0xe6, 0x01, 0xc9, 
+0x21, 0xad, 0x49, 0x4e, 0x23, 0x46, 0xcd, 0x0b, 0x41, 0x22, 0xad, 0x49, 
+0x2a, 0xc8, 0x49, 0x23, 0xeb, 0x2a, 0xb3, 0x49, 0x73, 0x23, 0x72, 0xc9, 
+0xcd, 0x5e, 0x41, 0x11, 0x09, 0x00, 0x19, 0x7e, 0x17, 0xd0, 0x21, 0x0f, 
+0x3c, 0xc3, 0x4a, 0x3f, 0xcd, 0x1e, 0x41, 0xc8, 0x21, 0x0d, 0x3c, 0xc3, 
+0x4a, 0x3f, 0x2a, 0xb9, 0x49, 0x3a, 0xe9, 0x49, 0x85, 0x6f, 0xd0, 0x24, 
+0xc9, 0x2a, 0x43, 0x3f, 0x11, 0x0e, 0x00, 0x19, 0x7e, 0xc9, 0xcd, 0x69, 
+0x41, 0x36, 0x00, 0xc9, 0xcd, 0x69, 0x41, 0xf6, 0x80, 0x77, 0xc9, 0x2a, 
+0xea, 0x49, 0xeb, 0x2a, 0xb3, 0x49, 0x7b, 0x96, 0x23, 0x7a, 0x9e, 0xc9, 
+0xcd, 0x7f, 0x41, 0xd8, 0x13, 0x72, 0x2b, 0x73, 0xc9, 0x7b, 0x95, 0x6f, 
+0x7a, 0x9c, 0x67, 0xc9, 0x0e, 0xff, 0x2a, 0xec, 0x49, 0xeb, 0x2a, 0xcc, 
+0x49, 0xcd, 0x95, 0x41, 0xd0, 0xc5, 0xcd, 0xf7, 0x40, 0x2a, 0xbd, 0x49, 
+0xeb, 0x2a, 0xec, 0x49, 0x19, 0xc1, 0x0c, 0xca, 0xc4, 0x41, 0xbe, 0xc8, 
+0xcd, 0x7f, 0x41, 0xd0, 0xcd, 0x2c, 0x41, 0xc9, 0x77, 0xc9, 0xcd, 0x9c, 
+0x41, 0xcd, 0xe0, 0x41, 0x0e, 0x01, 0xcd, 0xb8, 0x3f, 0xc3, 0xda, 0x41, 
+0xcd, 0xe0, 0x41, 0xcd, 0xb2, 0x3f, 0x21, 0xb1, 0x49, 0xc3, 0xe3, 0x41, 
+0x21, 0xb9, 0x49, 0x4e, 0x23, 0x46, 0xc3, 0x24, 0x4a, 0x2a, 0xb9, 0x49, 
+0xeb, 0x2a, 0xb1, 0x49, 0x0e, 0x80, 0xc3, 0x4f, 0x3f, 0x21, 0xea, 0x49, 
+0x7e, 0x23, 0xbe, 0xc0, 0x3c, 0xc9, 0x21, 0xff, 0xff, 0x22, 0xea, 0x49, 
+0xc9, 0x2a, 0xc8, 0x49, 0xeb, 0x2a, 0xea, 0x49, 0x23, 0x22, 0xea, 0x49, 
+0xcd, 0x95, 0x41, 0xd2, 0x19, 0x42, 0xc3, 0xfe, 0x41, 0x3a, 0xea, 0x49, 
+0xe6, 0x03, 0x06, 0x05, 0x87, 0x05, 0xc2, 0x20, 0x42, 0x32, 0xe9, 0x49, 
+0xb7, 0xc0, 0xc5, 0xcd, 0xc3, 0x3f, 0xcd, 0xd4, 0x41, 0xc1, 0xc3, 0x9e, 
+0x41, 0x79, 0xe6, 0x07, 0x3c, 0x5f, 0x57, 0x79, 0x0f, 0x0f, 0x0f, 0xe6, 
+0x1f, 0x4f, 0x78, 0x87, 0x87, 0x87, 0x87, 0x87, 0xb1, 0x4f, 0x78, 0x0f, 
+0x0f, 0x0f, 0xe6, 0x1f, 0x47, 0x2a, 0xbf, 0x49, 0x09, 0x7e, 0x07, 0x1d, 
+0xc2, 0x56, 0x42, 0xc9, 0xd5, 0xcd, 0x35, 0x42, 0xe6, 0xfe, 0xc1, 0xb1, 
+0x0f, 0x15, 0xc2, 0x64, 0x42, 0x77, 0xc9, 0xcd, 0x5e, 0x41, 0x11, 0x10, 
+0x00, 0x19, 0xc5, 0x0e, 0x11, 0xd1, 0x0d, 0xc8, 0xd5, 0x3a, 0xdd, 0x49, 
+0xb7, 0xca, 0x88, 0x42, 0xc5, 0xe5, 0x4e, 0x06, 0x00, 0xc3, 0x8e, 0x42, 
+0x0d, 0xc5, 0x4e, 0x23, 0x46, 0xe5, 0x79, 0xb0, 0xca, 0x9d, 0x42, 0x2a, 
+0xc6, 0x49, 0x7d, 0x91, 0x7c, 0x98, 0xd4, 0x5c, 0x42, 0xe1, 0x23, 0xc1, 
+0xc3, 0x75, 0x42, 0x2a, 0xc6, 0x49, 0x0e, 0x03, 0xcd, 0xea, 0x40, 0x23, 
+0x44, 0x4d, 0x2a, 0xbf, 0x49, 0x36, 0x00, 0x23, 0x0b, 0x78, 0xb1, 0xc2, 
+0xb1, 0x42, 0x2a, 0xca, 0x49, 0xeb, 0x2a, 0xbf, 0x49, 0x73, 0x23, 0x72, 
+0xcd, 0xa1, 0x3f, 0x2a, 0xb3, 0x49, 0x36, 0x03, 0x23, 0x36, 0x00, 0xcd, 
+0xfe, 0x41, 0x0e, 0xff, 0xcd, 0x05, 0x42, 0xcd, 0xf5, 0x41, 0xc8, 0xcd, 
+0x5e, 0x41, 0x3e, 0xe5, 0xbe, 0xca, 0xd2, 0x42, 0x3a, 0x41, 0x3f, 0xbe, 
+0xc2, 0xf6, 0x42, 0x23, 0x7e, 0xd6, 0x24, 0xc2, 0xf6, 0x42, 0x3d, 0x32, 
+0x45, 0x3f, 0x0e, 0x01, 0xcd, 0x6b, 0x42, 0xcd, 0x8c, 0x41, 0xc3, 0xd2, 
+0x42, 0x3a, 0xd4, 0x49, 0xc3, 0x01, 0x3f, 0xc5, 0xf5, 0x3a, 0xc5, 0x49, 
+0x2f, 0x47, 0x79, 0xa0, 0x4f, 0xf1, 0xa0, 0x91, 0xe6, 0x1f, 0xc1, 0xc9, 
+0x3e, 0xff, 0x32, 0xd4, 0x49, 0x21, 0xd8, 0x49, 0x71, 0x2a, 0x43, 0x3f, 
+0x22, 0xd9, 0x49, 0xcd, 0xfe, 0x41, 0xcd, 0xa1, 0x3f, 0x0e, 0x00, 0xcd, 
+0x05, 0x42, 0xcd, 0xf5, 0x41, 0xca, 0x94, 0x43, 0x2a, 0xd9, 0x49, 0xeb, 
+0x1a, 0xfe, 0xe5, 0xca, 0x4a, 0x43, 0xd5, 0xcd, 0x7f, 0x41, 0xd1, 0xd2, 
+0x94, 0x43, 0xcd, 0x5e, 0x41, 0x3a, 0xd8, 0x49, 0x4f, 0x06, 0x00, 0x79, 
+0xb7, 0xca, 0x83, 0x43, 0x1a, 0xfe, 0x3f, 0xca, 0x7c, 0x43, 0x78, 0xfe, 
+0x0d, 0xca, 0x7c, 0x43, 0xfe, 0x0c, 0x1a, 0xca, 0x73, 0x43, 0x96, 0xe6, 
+0x7f, 0xc2, 0x2d, 0x43, 0xc3, 0x7c, 0x43, 0xc5, 0x4e, 0xcd, 0x07, 0x43, 
+0xc1, 0xc2, 0x2d, 0x43, 0x13, 0x23, 0x04, 0x0d, 0xc3, 0x53, 0x43, 0x3a, 
+0xea, 0x49, 0xe6, 0x03, 0x32, 0x45, 0x3f, 0x21, 0xd4, 0x49, 0x7e, 0x17, 
+0xd0, 0xaf, 0x77, 0xc9, 0xcd, 0xfe, 0x41, 0x3e, 0xff, 0xc3, 0x01, 0x3f, 
+0xcd, 0x54, 0x41, 0x0e, 0x0c, 0xcd, 0x18, 0x43, 0xcd, 0xf5, 0x41, 0xc8, 
+0xcd, 0x44, 0x41, 0xcd, 0x5e, 0x41, 0x36, 0xe5, 0x0e, 0x00, 0xcd, 0x6b, 
+0x42, 0xcd, 0xc6, 0x41, 0xcd, 0x2d, 0x43, 0xc3, 0xa4, 0x43, 0x50, 0x59, 
+0x79, 0xb0, 0xca, 0xd1, 0x43, 0x0b, 0xd5, 0xc5, 0xcd, 0x35, 0x42, 0x1f, 
+0xd2, 0xec, 0x43, 0xc1, 0xd1, 0x2a, 0xc6, 0x49, 0x7b, 0x95, 0x7a, 0x9c, 
+0xd2, 0xf4, 0x43, 0x13, 0xc5, 0xd5, 0x42, 0x4b, 0xcd, 0x35, 0x42, 0x1f, 
+0xd2, 0xec, 0x43, 0xd1, 0xc1, 0xc3, 0xc0, 0x43, 0x17, 0x3c, 0xcd, 0x64, 
+0x42, 0xe1, 0xd1, 0xc9, 0x79, 0xb0, 0xc2, 0xc0, 0x43, 0x21, 0x00, 0x00, 
+0xc9, 0x0e, 0x00, 0x1e, 0x20, 0xd5, 0x06, 0x00, 0x2a, 0x43, 0x3f, 0x09, 
+0xeb, 0xcd, 0x5e, 0x41, 0xc1, 0xcd, 0x4f, 0x3f, 0xcd, 0xc3, 0x3f, 0xc3, 
+0xc6, 0x41, 0xcd, 0x54, 0x41, 0x0e, 0x0c, 0xcd, 0x18, 0x43, 0x2a, 0x43, 
+0x3f, 0x7e, 0x11, 0x10, 0x00, 0x19, 0x77, 0xcd, 0xf5, 0x41, 0xc8, 0xcd, 
+0x44, 0x41, 0x0e, 0x10, 0x1e, 0x0c, 0xcd, 0x01, 0x44, 0xcd, 0x2d, 0x43, 
+0xc3, 0x27, 0x44, 0x0e, 0x0c, 0xcd, 0x18, 0x43, 0xcd, 0xf5, 0x41, 0xc8, 
+0x0e, 0x00, 0x1e, 0x0c, 0xcd, 0x01, 0x44, 0xcd, 0x2d, 0x43, 0xc3, 0x40, 
+0x44, 0x0e, 0x0f, 0xcd, 0x18, 0x43, 0xcd, 0xf5, 0x41, 0xc8, 0xcd, 0xa6, 
+0x40, 0x7e, 0xf5, 0xe5, 0xcd, 0x5e, 0x41, 0xeb, 0x2a, 0x43, 0x3f, 0x0e, 
+0x20, 0xd5, 0xcd, 0x4f, 0x3f, 0xcd, 0x78, 0x41, 0xd1, 0x21, 0x0c, 0x00, 
+0x19, 0x4e, 0x21, 0x0f, 0x00, 0x19, 0x46, 0xe1, 0xf1, 0x77, 0x79, 0xbe, 
+0x78, 0xca, 0x8b, 0x44, 0x3e, 0x00, 0xda, 0x8b, 0x44, 0x3e, 0x80, 0x2a, 
+0x43, 0x3f, 0x11, 0x0f, 0x00, 0x19, 0x77, 0xc9, 0x7e, 0x23, 0xb6, 0x2b, 
+0xc0, 0x1a, 0x77, 0x13, 0x23, 0x1a, 0x77, 0x1b, 0x2b, 0xc9, 0xaf, 0x32, 
+0x45, 0x3f, 0x32, 0xea, 0x49, 0x32, 0xeb, 0x49, 0xcd, 0x1e, 0x41, 0xc0, 
+0xcd, 0x69, 0x41, 0xe6, 0x80, 0xc0, 0x0e, 0x0f, 0xcd, 0x18, 0x43, 0xcd, 
+0xf5, 0x41, 0xc8, 0x01, 0x10, 0x00, 0xcd, 0x5e, 0x41, 0x09, 0xeb, 0x2a, 
+0x43, 0x3f, 0x09, 0x0e, 0x10, 0x3a, 0xdd, 0x49, 0xb7, 0xca, 0xe8, 0x44, 
+0x7e, 0xb7, 0x1a, 0xc2, 0xdb, 0x44, 0x77, 0xb7, 0xc2, 0xe1, 0x44, 0x7e, 
+0x12, 0xbe, 0xc2, 0x1f, 0x45, 0xc3, 0xfd, 0x44, 0xcd, 0x94, 0x44, 0xeb, 
+0xcd, 0x94, 0x44, 0xeb, 0x1a, 0xbe, 0xc2, 0x1f, 0x45, 0x13, 0x23, 0x1a, 
+0xbe, 0xc2, 0x1f, 0x45, 0x0d, 0x13, 0x23, 0x0d, 0xc2, 0xcd, 0x44, 0x01, 
+0xec, 0xff, 0x09, 0xeb, 0x09, 0x1a, 0xbe, 0xda, 0x17, 0x45, 0x77, 0x01, 
+0x03, 0x00, 0x09, 0xeb, 0x09, 0x7e, 0x12, 0x3e, 0xff, 0x32, 0xd2, 0x49, 
+0xc3, 0x10, 0x44, 0x21, 0x45, 0x3f, 0x35, 0xc9, 0xcd, 0x54, 0x41, 0x2a, 
+0x43, 0x3f, 0xe5, 0x21, 0xac, 0x49, 0x22, 0x43, 0x3f, 0x0e, 0x01, 0xcd, 
+0x18, 0x43, 0xcd, 0xf5, 0x41, 0xe1, 0x22, 0x43, 0x3f, 0xc8, 0xeb, 0x21, 
+0x0f, 0x00, 0x19, 0x0e, 0x11, 0xaf, 0x77, 0x23, 0x0d, 0xc2, 0x46, 0x45, 
+0x21, 0x0d, 0x00, 0x19, 0x77, 0xcd, 0x8c, 0x41, 0xcd, 0xfd, 0x43, 0xc3, 
+0x78, 0x41, 0xaf, 0x32, 0xd2, 0x49, 0xcd, 0xa2, 0x44, 0xcd, 0xf5, 0x41, 
+0xc8, 0x2a, 0x43, 0x3f, 0x01, 0x0c, 0x00, 0x09, 0x7e, 0x3c, 0xe6, 0x1f, 
+0x77, 0xca, 0x83, 0x45, 0x47, 0x3a, 0xc5, 0x49, 0xa0, 0x21, 0xd2, 0x49, 
+0xa6, 0xca, 0x8e, 0x45, 0xc3, 0xac, 0x45, 0x01, 0x02, 0x00, 0x09, 0x34, 
+0x7e, 0xe6, 0x0f, 0xca, 0xb6, 0x45, 0x0e, 0x0f, 0xcd, 0x18, 0x43, 0xcd, 
+0xf5, 0x41, 0xc2, 0xac, 0x45, 0x3a, 0xd3, 0x49, 0x3c, 0xca, 0xb6, 0x45, 
+0xcd, 0x24, 0x45, 0xcd, 0xf5, 0x41, 0xca, 0xb6, 0x45, 0xc3, 0xaf, 0x45, 
+0xcd, 0x5a, 0x44, 0xcd, 0xbb, 0x40, 0xaf, 0xc3, 0x01, 0x3f, 0xcd, 0x05, 
+0x3f, 0xc3, 0x78, 0x41, 0x3e, 0x01, 0x32, 0xd5, 0x49, 0x3e, 0xff, 0x32, 
+0xd3, 0x49, 0xcd, 0xbb, 0x40, 0x3a, 0xe3, 0x49, 0x21, 0xe1, 0x49, 0xbe, 
+0xda, 0xe6, 0x45, 0xfe, 0x80, 0xc2, 0xfb, 0x45, 0xcd, 0x5a, 0x45, 0xaf, 
+0x32, 0xe3, 0x49, 0x3a, 0x45, 0x3f, 0xb7, 0xc2, 0xfb, 0x45, 0xcd, 0x77, 
+0x40, 0xcd, 0x84, 0x40, 0xca, 0xfb, 0x45, 0xcd, 0x8a, 0x40, 0xcd, 0xd1, 
+0x3f, 0xcd, 0xb2, 0x3f, 0xc3, 0xd2, 0x40, 0xc3, 0x05, 0x3f, 0x3e, 0x01, 
+0x32, 0xd5, 0x49, 0x3e, 0x00, 0x32, 0xd3, 0x49, 0xcd, 0x54, 0x41, 0x2a, 
+0x43, 0x3f, 0xcd, 0x47, 0x41, 0xcd, 0xbb, 0x40, 0x3a, 0xe3, 0x49, 0xfe, 
+0x80, 0xd2, 0x05, 0x3f, 0xcd, 0x77, 0x40, 0xcd, 0x84, 0x40, 0x0e, 0x00, 
+0xc2, 0x6e, 0x46, 0xcd, 0x3e, 0x40, 0x32, 0xd7, 0x49, 0x01, 0x00, 0x00, 
+0xb7, 0xca, 0x3b, 0x46, 0x4f, 0x0b, 0xcd, 0x5e, 0x40, 0x44, 0x4d, 0xcd, 
+0xbe, 0x43, 0x7d, 0xb4, 0xc2, 0x48, 0x46, 0x3e, 0x02, 0xc3, 0x01, 0x3f, 
+0x22, 0xe5, 0x49, 0xeb, 0x2a, 0x43, 0x3f, 0x01, 0x10, 0x00, 0x09, 0x3a, 
+0xdd, 0x49, 0xb7, 0x3a, 0xd7, 0x49, 0xca, 0x64, 0x46, 0xcd, 0x64, 0x41, 
+0x73, 0xc3, 0x6c, 0x46, 0x4f, 0x06, 0x00, 0x09, 0x09, 0x73, 0x23, 0x72, 
+0x0e, 0x02, 0x3a, 0x45, 0x3f, 0xb7, 0xc0, 0xc5, 0xcd, 0x8a, 0x40, 0x3a, 
+0xd5, 0x49, 0x3d, 0x3d, 0xc2, 0xbb, 0x46, 0xc1, 0xc5, 0x79, 0x3d, 0x3d, 
+0xc2, 0xbb, 0x46, 0xe5, 0x2a, 0xb9, 0x49, 0x57, 0x77, 0x23, 0x14, 0xf2, 
+0x8c, 0x46, 0xcd, 0xe0, 0x41, 0x2a, 0xe7, 0x49, 0x0e, 0x02, 0x22, 0xe5, 
+0x49, 0xc5, 0xcd, 0xd1, 0x3f, 0xc1, 0xcd, 0xb8, 0x3f, 0x2a, 0xe5, 0x49, 
+0x0e, 0x00, 0x3a, 0xc4, 0x49, 0x47, 0xa5, 0xb8, 0x23, 0xc2, 0x9a, 0x46, 
+0xe1, 0x22, 0xe5, 0x49, 0xcd, 0xda, 0x41, 0xcd, 0xd1, 0x3f, 0xc1, 0xc5, 
+0xcd, 0xb8, 0x3f, 0xc1, 0x3a, 0xe3, 0x49, 0x21, 0xe1, 0x49, 0xbe, 0xda, 
+0xd2, 0x46, 0x77, 0x34, 0x0e, 0x02, 0x0d, 0x0d, 0xc2, 0xdf, 0x46, 0xf5, 
+0xcd, 0x69, 0x41, 0xe6, 0x7f, 0x77, 0xf1, 0xfe, 0x7f, 0xc2, 0x00, 0x47, 
+0x3a, 0xd5, 0x49, 0xfe, 0x01, 0xc2, 0x00, 0x47, 0xcd, 0xd2, 0x40, 0xcd, 
+0x5a, 0x45, 0x21, 0x45, 0x3f, 0x7e, 0xb7, 0xc2, 0xfe, 0x46, 0x3d, 0x32, 
+0xe3, 0x49, 0x36, 0x00, 0xc3, 0xd2, 0x40, 0xaf, 0x32, 0xd5, 0x49, 0xc5, 
+0x2a, 0x43, 0x3f, 0xeb, 0x21, 0x21, 0x00, 0x19, 0x7e, 0xe6, 0x7f, 0xf5, 
+0x7e, 0x17, 0x23, 0x7e, 0x17, 0xe6, 0x1f, 0x4f, 0x7e, 0x1f, 0x1f, 0x1f, 
+0x1f, 0xe6, 0x0f, 0x47, 0xf1, 0x23, 0x6e, 0x2c, 0x2d, 0x2e, 0x06, 0xc2, 
+0x8b, 0x47, 0x21, 0x20, 0x00, 0x19, 0x77, 0x21, 0x0c, 0x00, 0x19, 0x79, 
+0x96, 0xc2, 0x47, 0x47, 0x21, 0x0e, 0x00, 0x19, 0x78, 0x96, 0xe6, 0x7f, 
+0xca, 0x7f, 0x47, 0xc5, 0xd5, 0xcd, 0xa2, 0x44, 0xd1, 0xc1, 0x2e, 0x03, 
+0x3a, 0x45, 0x3f, 0x3c, 0xca, 0x84, 0x47, 0x21, 0x0c, 0x00, 0x19, 0x71, 
+0x21, 0x0e, 0x00, 0x19, 0x70, 0xcd, 0x51, 0x44, 0x3a, 0x45, 0x3f, 0x3c, 
+0xc2, 0x7f, 0x47, 0xc1, 0xc5, 0x2e, 0x04, 0x0c, 0xca, 0x84, 0x47, 0xcd, 
+0x24, 0x45, 0x2e, 0x05, 0x3a, 0x45, 0x3f, 0x3c, 0xca, 0x84, 0x47, 0xc1, 
+0xaf, 0xc3, 0x01, 0x3f, 0xe5, 0xcd, 0x69, 0x41, 0x36, 0xc0, 0xe1, 0xc1, 
+0x7d, 0x32, 0x45, 0x3f, 0xc3, 0x78, 0x41, 0x0e, 0xff, 0xcd, 0x03, 0x47, 
+0xcc, 0xc1, 0x45, 0xc9, 0x0e, 0x00, 0xcd, 0x03, 0x47, 0xcc, 0x03, 0x46, 
+0xc9, 0xeb, 0x19, 0x4e, 0x06, 0x00, 0x21, 0x0c, 0x00, 0x19, 0x7e, 0x0f, 
+0xe6, 0x80, 0x81, 0x4f, 0x3e, 0x00, 0x88, 0x47, 0x7e, 0x0f, 0xe6, 0x0f, 
+0x80, 0x47, 0x21, 0x0e, 0x00, 0x19, 0x7e, 0x87, 0x87, 0x87, 0x87, 0xf5, 
+0x80, 0x47, 0xf5, 0xe1, 0x7d, 0xe1, 0xb5, 0xe6, 0x01, 0xc9, 0x0e, 0x0c, 
+0xcd, 0x18, 0x43, 0x2a, 0x43, 0x3f, 0x11, 0x21, 0x00, 0x19, 0xe5, 0x72, 
+0x23, 0x72, 0x23, 0x72, 0xcd, 0xf5, 0x41, 0xca, 0x0c, 0x48, 0xcd, 0x5e, 
+0x41, 0x11, 0x0f, 0x00, 0xcd, 0xa5, 0x47, 0xe1, 0xe5, 0x5f, 0x79, 0x96, 
+0x23, 0x78, 0x9e, 0x23, 0x7b, 0x9e, 0xda, 0x06, 0x48, 0x73, 0x2b, 0x70, 
+0x2b, 0x71, 0xcd, 0x2d, 0x43, 0xc3, 0xe4, 0x47, 0xe1, 0xc9, 0x2a, 0x43, 
+0x3f, 0x11, 0x20, 0x00, 0xcd, 0xa5, 0x47, 0x21, 0x21, 0x00, 0x19, 0x71, 
+0x23, 0x70, 0x23, 0x77, 0xc9, 0x2a, 0xaf, 0x49, 0x3a, 0x42, 0x3f, 0x4f, 
+0xcd, 0xea, 0x40, 0xe5, 0xeb, 0xcd, 0x59, 0x3f, 0xe1, 0xcc, 0x47, 0x3f, 
+0x7d, 0x1f, 0xd8, 0x2a, 0xaf, 0x49, 0x4d, 0x44, 0xcd, 0x0b, 0x41, 0x22, 
+0xaf, 0x49, 0xc3, 0xa3, 0x42, 0x3a, 0xd6, 0x49, 0x21, 0x42, 0x3f, 0xbe, 
+0xc8, 0x77, 0xc3, 0x21, 0x48, 0x3e, 0xff, 0x32, 0xde, 0x49, 0x2a, 0x43, 
+0x3f, 0x7e, 0xe6, 0x1f, 0x3d, 0x32, 0xd6, 0x49, 0xfe, 0x1e, 0xd2, 0x75, 
+0x48, 0x3a, 0x42, 0x3f, 0x32, 0xdf, 0x49, 0x7e, 0x32, 0xe0, 0x49, 0xe6, 
+0xe0, 0x77, 0xcd, 0x45, 0x48, 0x3a, 0x41, 0x3f, 0x2a, 0x43, 0x3f, 0xb6, 
+0x77, 0xc9, 0x3e, 0x22, 0xc3, 0x01, 0x3f, 0x21, 0x00, 0x00, 0x22, 0xad, 
+0x49, 0x22, 0xaf, 0x49, 0xaf, 0x32, 0x42, 0x3f, 0x21, 0x80, 0x00, 0x22, 
+0xb1, 0x49, 0xcd, 0xda, 0x41, 0xc3, 0x21, 0x48, 0xcd, 0x72, 0x41, 0xcd, 
+0x51, 0x48, 0xc3, 0x51, 0x44, 0xcd, 0x51, 0x48, 0xc3, 0xa2, 0x44, 0x0e, 
+0x00, 0xeb, 0x7e, 0xfe, 0x3f, 0xca, 0xc2, 0x48, 0xcd, 0xa6, 0x40, 0x7e, 
+0xfe, 0x3f, 0xc4, 0x72, 0x41, 0xcd, 0x51, 0x48, 0x0e, 0x0f, 0xcd, 0x18, 
+0x43, 0xc3, 0xe9, 0x41, 0x2a, 0xd9, 0x49, 0x22, 0x43, 0x3f, 0xcd, 0x51, 
+0x48, 0xcd, 0x2d, 0x43, 0xc3, 0xe9, 0x41, 0xcd, 0x51, 0x48, 0xcd, 0x9c, 
+0x43, 0xc3, 0x01, 0x43, 0xcd, 0x51, 0x48, 0xc3, 0xbc, 0x45, 0xcd, 0x51, 
+0x48, 0xc3, 0xfe, 0x45, 0xcd, 0x72, 0x41, 0xcd, 0x51, 0x48, 0xc3, 0x24, 
+0x45, 0xcd, 0x51, 0x48, 0xcd, 0x16, 0x44, 0xc3, 0x01, 0x43, 0x2a, 0xaf, 
+0x49, 0xc3, 0x29, 0x49, 0x3a, 0x42, 0x3f, 0xc3, 0x01, 0x3f, 0xeb, 0x22, 
+0xb1, 0x49, 0xc3, 0xda, 0x41, 0x2a, 0xbf, 0x49, 0xc3, 0x29, 0x49, 0x2a, 
+0xad, 0x49, 0xc3, 0x29, 0x49, 0xcd, 0x51, 0x48, 0xcd, 0x3b, 0x44, 0xc3, 
+0x01, 0x43, 0x2a, 0xbb, 0x49, 0x22, 0x45, 0x3f, 0xc9, 0x3a, 0xd6, 0x49, 
+0xfe, 0xff, 0xc2, 0x3b, 0x49, 0x3a, 0x41, 0x3f, 0xc3, 0x01, 0x3f, 0xe6, 
+0x1f, 0x32, 0x41, 0x3f, 0xc9, 0xcd, 0x51, 0x48, 0xc3, 0x93, 0x47, 0xcd, 
+0x51, 0x48, 0xc3, 0x9c, 0x47, 0xcd, 0x51, 0x48, 0xc3, 0xd2, 0x47, 0x2a, 
+0x43, 0x3f, 0x7d, 0x2f, 0x5f, 0x7c, 0x2f, 0x2a, 0xaf, 0x49, 0xa4, 0x57, 
+0x7d, 0xa3, 0x5f, 0x2a, 0xad, 0x49, 0xeb, 0x22, 0xaf, 0x49, 0x7d, 0xa3, 
+0x6f, 0x7c, 0xa2, 0x67, 0x22, 0xad, 0x49, 0xc9, 0x3a, 0xde, 0x49, 0xb7, 
+0xca, 0x91, 0x49, 0x2a, 0x43, 0x3f, 0x36, 0x00, 0x3a, 0xe0, 0x49, 0xb7, 
+0xca, 0x91, 0x49, 0x77, 0x3a, 0xdf, 0x49, 0x32, 0xd6, 0x49, 0xcd, 0x45, 
+0x48, 0x2a, 0x0f, 0x3f, 0xf9, 0x2a, 0x45, 0x3f, 0x7d, 0x44, 0xc9, 0xcd, 
+0x51, 0x48, 0x3e, 0x02, 0x32, 0xd5, 0x49, 0x0e, 0x00, 0xcd, 0x07, 0x47, 
+0xcc, 0x03, 0x46, 0xc9, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0x20, 0x55, 0x4e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 
+0x45, 0x44, 0x20, 0x20, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x1f, 0x33, 0x03, 0x49, 0x1f, 0x33, 0x03, 0x49, 
+0x00, 0x50, 0x49, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x4f, 0x4d, 
+0x00, 0x00, 0x00, 0x3a, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x54, 0x41, 
+0x54, 0x20, 0x20, 0x20, 0x20, 0x43, 0x4f, 0x4d, 0x00, 0x00, 0x00, 0x2a, 
+0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x21, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0x1f, 0x33, 0x03, 0x49, 0x1f, 0x33, 0x03, 0x49, 0xe5, 
+0xe5, 0x1f, 0x33, 0x03, 0x49, 0x1f, 0x33, 0x03, 0x49, 0xe5, 0xe5, 0xe5, 
+0x00, 0x53, 0x55, 0x52, 0x56, 0x45, 0x59, 0x20, 0x20, 0x43, 0x4f, 0x4d, 
+0x00, 0x00, 0x00, 0x09, 0x0f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0x21, 0x1f, 0x33, 0x03, 0x50, 0x1f, 0x33, 0x03, 0x50, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0x21, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0x21, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0x21, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0x21, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0x21, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0x21, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 
+0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xc3, 0xce, 0x04, 0xc9, 
+0x00, 0x00, 0xc9, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x28, 0x49, 0x4e, 0x50, 0x3a, 0x2f, 0x4f, 0x55, 0x54, 0x3a, 0x53, 0x50, 
+0x41, 0x43, 0x45, 0x29, 0x28, 0x49, 0x4e, 0x50, 0x3a, 0x2f, 0x4f, 0x55, 
+0x54, 0x3a, 0x53, 0x50, 0x41, 0x43, 0x45, 0x29, 0x28, 0x49, 0x4e, 0x50, 
+0x3a, 0x2f, 0x4f, 0x55, 0x54, 0x3a, 0x53, 0x50, 0x41, 0x43, 0x45, 0x29, 
+0x28, 0x49, 0x4e, 0x50, 0x3a, 0x2f, 0x4f, 0x55, 0x54, 0x3a, 0x53, 0x50, 
+0x41, 0x43, 0x45, 0x29, 0x28, 0x49, 0x4e, 0x50, 0x3a, 0x2f, 0x4f, 0x55, 
+0x54, 0x3a, 0x53, 0x50, 0x41, 0x43, 0x45, 0x29, 0x28, 0x49, 0x4e, 0x50, 
+0x3a, 0x2f, 0x4f, 0x55, 0x54, 0x3a, 0x53, 0x50, 0x41, 0x43, 0x45, 0x29, 
+0x28, 0x49, 0x4e, 0x50, 0x3a, 0x2f, 0x4f, 0x55, 0x54, 0x3a, 0x53, 0x50, 
+0x41, 0x43, 0x45, 0x29, 0x28, 0x49, 0x4e, 0x50, 0x3a, 0x2f, 0x4f, 0x55, 
+0x54, 0x3a, 0x53, 0x50, 0x41, 0x43, 0x45, 0x29, 0x28, 0x49, 0x4e, 0x50, 
+0x3a, 0x2f, 0x4f, 0x55, 0x54, 0x3a, 0x53, 0x50, 0x41, 0x43, 0x45, 0x29, 
+0x28, 0x49, 0x4e, 0x50, 0x3a, 0x2f, 0x4f, 0x55, 0x54, 0x3a, 0x53, 0x50, 
+0x41, 0x43, 0x45, 0x29, 0x28, 0x49, 0x4e, 0x50, 0x3a, 0x2f, 0x4f, 0x55, 
+0x54, 0x3a, 0x53, 0x50, 0x41, 0x43, 0x45, 0x29, 0x28, 0x49, 0x4e, 0x50, 
+0x3a, 0x2f, 0x4f, 0x55, 0x54, 0x3a, 0x53, 0x50, 0x41, 0x43, 0x45, 0x29, 
+0x28, 0x49, 0x4e, 0x50, 0x3a, 0x2f, 0x4f, 0x55, 0x54, 0x3a, 0x53, 0x50, 
+0x41, 0x43, 0x45, 0x29, 0x28, 0x49, 0x4e, 0x50, 0x3a, 0x2f, 0x4f, 0x55, 
+0x54, 0x3a, 0x53, 0x50, 0x41, 0x43, 0x45, 0x29, 0x28, 0x49, 0x4e, 0x50, 
+0x3a, 0x2f, 0x4f, 0x55, 0x54, 0x3a, 0x53, 0x50, 0x41, 0x43, 0x45, 0x29, 
+0x20, 0x20, 0x20, 0x43, 0x4f, 0x50, 0x59, 0x52, 0x49, 0x47, 0x48, 0x54, 
+0x20, 0x28, 0x43, 0x29, 0x20, 0x31, 0x39, 0x37, 0x39, 0x2c, 0x20, 0x44, 
+0x49, 0x47, 0x49, 0x54, 0x41, 0x4c, 0x20, 0x52, 0x45, 0x53, 0x45, 0x41, 
+0x52, 0x43, 0x48, 0x2c, 0x20, 0x20, 0x50, 0x49, 0x50, 0x20, 0x56, 0x45, 
+0x52, 0x53, 0x20, 0x31, 0x2e, 0x35, 0x03, 0x01, 0x06, 0x01, 0x00, 0x24, 
+0x24, 0x24, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x55, 0x42, 0x00, 0x00, 
+0x00, 0x20, 0x3d, 0x2e, 0x3a, 0x2c, 0x3c, 0x3e, 0x0d, 0x5f, 0x5b, 0x5d, 
+0x49, 0x4e, 0x50, 0x49, 0x52, 0x44, 0x50, 0x54, 0x52, 0x55, 0x52, 0x31, 
+0x55, 0x52, 0x32, 0x52, 0x44, 0x52, 0x4f, 0x55, 0x54, 0x4c, 0x50, 0x54, 
+0x55, 0x4c, 0x31, 0x50, 0x52, 0x4e, 0x4c, 0x53, 0x54, 0x50, 0x54, 0x50, 
+0x55, 0x50, 0x31, 0x55, 0x50, 0x32, 0x50, 0x55, 0x4e, 0x54, 0x54, 0x59, 
+0x43, 0x52, 0x54, 0x55, 0x43, 0x31, 0x43, 0x4f, 0x4e, 0x4e, 0x55, 0x4c, 
+0x45, 0x4f, 0x46, 0x00, 0x44, 0x49, 0x53, 0x4b, 0x20, 0x52, 0x45, 0x41, 
+0x44, 0x20, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x24, 0x44, 0x49, 0x53, 0x4b, 
+0x20, 0x57, 0x52, 0x49, 0x54, 0x45, 0x20, 0x45, 0x52, 0x52, 0x4f, 0x52, 
+0x24, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x20, 0x45, 0x52, 0x52, 0x4f, 
+0x52, 0x24, 0x4e, 0x4f, 0x54, 0x20, 0x41, 0x20, 0x43, 0x48, 0x41, 0x52, 
+0x41, 0x43, 0x54, 0x45, 0x52, 0x20, 0x53, 0x49, 0x4e, 0x4b, 0x24, 0x52, 
+0x45, 0x41, 0x44, 0x45, 0x52, 0x20, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 
+0x4e, 0x47, 0x0d, 0x0a, 0x24, 0x4e, 0x4f, 0x54, 0x20, 0x41, 0x20, 0x43, 
+0x48, 0x41, 0x52, 0x41, 0x43, 0x54, 0x45, 0x52, 0x20, 0x53, 0x4f, 0x55, 
+0x52, 0x43, 0x45, 0x24, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x24, 
+0x42, 0x41, 0x44, 0x20, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 
+0x52, 0x24, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x20, 0x55, 0x53, 
+0x45, 0x52, 0x20, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x24, 0x52, 0x45, 
+0x43, 0x4f, 0x52, 0x44, 0x20, 0x54, 0x4f, 0x4f, 0x20, 0x4c, 0x4f, 0x4e, 
+0x47, 0x24, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x20, 0x44, 0x49, 
+0x47, 0x49, 0x54, 0x24, 0x45, 0x4e, 0x44, 0x20, 0x4f, 0x46, 0x20, 0x46, 
+0x49, 0x4c, 0x45, 0x2c, 0x20, 0x43, 0x54, 0x4c, 0x2d, 0x5a, 0x3f, 0x24, 
+0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x55, 0x4d, 0x20, 0x45, 0x52, 0x52, 
+0x4f, 0x52, 0x24, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x20, 0x45, 
+0x52, 0x52, 0x4f, 0x52, 0x2c, 0x20, 0x54, 0x59, 0x50, 0x45, 0x20, 0x52, 
+0x45, 0x54, 0x55, 0x52, 0x4e, 0x20, 0x4f, 0x52, 0x20, 0x43, 0x54, 0x4c, 
+0x2d, 0x5a, 0x24, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x20, 0x46, 
+0x4f, 0x52, 0x4d, 0x41, 0x54, 0x24, 0x48, 0x45, 0x58, 0x24, 0x24, 0x24, 
+0x24, 0x4e, 0x4f, 0x20, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x4f, 0x52, 
+0x59, 0x20, 0x53, 0x50, 0x41, 0x43, 0x45, 0x24, 0x4e, 0x4f, 0x20, 0x46, 
+0x49, 0x4c, 0x45, 0x24, 0x43, 0x4f, 0x4d, 0x24, 0x53, 0x54, 0x41, 0x52, 
+0x54, 0x20, 0x4e, 0x4f, 0x54, 0x20, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x24, 
+0x51, 0x55, 0x49, 0x54, 0x20, 0x4e, 0x4f, 0x54, 0x20, 0x46, 0x4f, 0x55, 
+0x4e, 0x44, 0x24, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x20, 0x43, 0x4c, 
+0x4f, 0x53, 0x45, 0x20, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 
+0x49, 0x4f, 0x4e, 0x20, 0x46, 0x49, 0x4c, 0x45, 0x24, 0x44, 0x45, 0x53, 
+0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, 0x49, 0x53, 0x20, 
+0x52, 0x2f, 0x4f, 0x2c, 0x20, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x20, 
+0x28, 0x59, 0x2f, 0x4e, 0x29, 0x3f, 0x24, 0x2a, 0x2a, 0x4e, 0x4f, 0x54, 
+0x20, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x2a, 0x2a, 0x24, 0x24, 
+0x24, 0x24, 0x24, 0x24, 0x24, 0x4e, 0x4f, 0x54, 0x20, 0x46, 0x4f, 0x55, 
+0x4e, 0x44, 0x24, 0x43, 0x4f, 0x50, 0x59, 0x49, 0x4e, 0x47, 0x20, 0x2d, 
+0x24, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x53, 0x20, 0x43, 0x50, 
+0x2f, 0x4d, 0x20, 0x32, 0x2e, 0x30, 0x20, 0x4f, 0x52, 0x20, 0x4e, 0x45, 
+0x57, 0x45, 0x52, 0x20, 0x46, 0x4f, 0x52, 0x20, 0x4f, 0x50, 0x45, 0x52, 
+0x41, 0x54, 0x49, 0x4f, 0x4e, 0x2e, 0x24, 0x55, 0x4e, 0x52, 0x45, 0x43, 
+0x4f, 0x47, 0x4e, 0x49, 0x5a, 0x45, 0x44, 0x20, 0x44, 0x45, 0x53, 0x54, 
+0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x24, 0x43, 0x41, 0x4e, 0x4e, 
+0x4f, 0x54, 0x20, 0x57, 0x52, 0x49, 0x54, 0x45, 0x24, 0x49, 0x4e, 0x56, 
+0x41, 0x4c, 0x49, 0x44, 0x20, 0x50, 0x49, 0x50, 0x20, 0x46, 0x4f, 0x52, 
+0x4d, 0x41, 0x54, 0x24, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x20, 0x52, 
+0x45, 0x41, 0x44, 0x24, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x20, 
+0x53, 0x45, 0x50, 0x41, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x24, 0x31, 0xf2, 
+0x1d, 0x01, 0x80, 0x00, 0xc5, 0x1e, 0x80, 0x01, 0xcc, 0x1e, 0xcd, 0x18, 
+0x0a, 0x3a, 0xcc, 0x1e, 0xd6, 0x00, 0xd6, 0x01, 0x9f, 0x32, 0xa5, 0x1e, 
+0xcd, 0x4c, 0x08, 0xeb, 0x3e, 0x20, 0xcd, 0x84, 0x1d, 0xd2, 0xfd, 0x04, 
+0x01, 0x4d, 0x04, 0xcd, 0x39, 0x08, 0xcd, 0x00, 0x00, 0xcd, 0x16, 0x09, 
+0x32, 0xc0, 0x1e, 0x11, 0x00, 0x00, 0x0e, 0x19, 0xcd, 0x05, 0x00, 0x32, 
+0xfc, 0x1d, 0x31, 0xf2, 0x1d, 0xcd, 0x40, 0x1a, 0x3a, 0xc0, 0x1e, 0x32, 
+0xc1, 0x1e, 0x21, 0x6f, 0x1f, 0x36, 0x00, 0x2b, 0x36, 0x00, 0x2b, 0x36, 
+0x00, 0x21, 0xa6, 0x1e, 0x36, 0x01, 0x23, 0x36, 0x00, 0x21, 0xf3, 0x1d, 
+0x36, 0x00, 0x23, 0x36, 0xfe, 0x3a, 0xa5, 0x1e, 0x1f, 0xd2, 0x47, 0x05, 
+0x0e, 0x2a, 0xcd, 0x1c, 0x08, 0xcd, 0x6f, 0x09, 0xcd, 0x2e, 0x08, 0x21, 
+0x4e, 0x1f, 0x36, 0xff, 0x3a, 0xcc, 0x1e, 0xfe, 0x00, 0xc2, 0x5e, 0x05, 
+0x2a, 0xfc, 0x1d, 0x4d, 0xcd, 0x5e, 0x08, 0xcd, 0x00, 0x00, 0x21, 0x4b, 
+0x1e, 0x36, 0x00, 0x21, 0x03, 0x1e, 0x36, 0x00, 0x21, 0xa4, 0x1e, 0x36, 
+0x00, 0x2b, 0x36, 0x00, 0x01, 0x27, 0x1e, 0xcd, 0x20, 0x12, 0x3a, 0xa9, 
+0x1e, 0xfe, 0x03, 0xc2, 0x81, 0x05, 0xc3, 0x24, 0x06, 0x3a, 0xa9, 0x1e, 
+0xfe, 0x04, 0xc2, 0xc3, 0x05, 0x3a, 0x94, 0x1f, 0x3d, 0x32, 0x4b, 0x1e, 
+0xcd, 0x0c, 0x1d, 0x01, 0x06, 0x1e, 0xcd, 0x20, 0x12, 0x3a, 0xa9, 0x1e, 
+0xfe, 0x02, 0xca, 0xa4, 0x05, 0xcd, 0x5c, 0x18, 0x3a, 0xf5, 0x1d, 0x1f, 
+0xd2, 0xb7, 0x05, 0x01, 0x5c, 0x00, 0xcd, 0xee, 0x1c, 0xcd, 0x78, 0x1b, 
+0xc3, 0xc0, 0x05, 0x01, 0x27, 0x1e, 0xcd, 0xee, 0x1c, 0xcd, 0xb2, 0x1a, 
+0xc3, 0xdb, 0x07, 0x3a, 0xa9, 0x1e, 0xd6, 0x02, 0xc6, 0xff, 0x9f, 0x21, 
+0xf5, 0x1d, 0xb6, 0x1f, 0xd2, 0xd6, 0x05, 0xcd, 0x5c, 0x18, 0xcd, 0xa2, 
+0x1c, 0xcd, 0x0c, 0x1d, 0x01, 0x06, 0x1e, 0xcd, 0x20, 0x12, 0x3a, 0xa9, 
+0x1e, 0xfe, 0x04, 0xc2, 0x05, 0x06, 0xcd, 0x88, 0x1c, 0xcd, 0xc6, 0x1c, 
+0x01, 0x27, 0x1e, 0xc5, 0x1e, 0x21, 0x01, 0x06, 0x1e, 0xcd, 0x18, 0x0a, 
+0xcd, 0xdf, 0x1c, 0xcd, 0xb2, 0x1a, 0xc3, 0xdb, 0x07, 0x3a, 0xa9, 0x1e, 
+0xfe, 0x02, 0xc2, 0x24, 0x06, 0xcd, 0x11, 0x12, 0x3a, 0xa8, 0x1e, 0xfe, 
+0x0d, 0xca, 0x1b, 0x06, 0xc3, 0x24, 0x06, 0xcd, 0x88, 0x1c, 0xcd, 0xb2, 
+0x1a, 0xc3, 0xdb, 0x07, 0x21, 0x4e, 0x1f, 0x36, 0xff, 0x01, 0x27, 0x1e, 
+0xcd, 0x20, 0x12, 0x3a, 0xa9, 0x1e, 0xd6, 0x02, 0x9f, 0x21, 0xf5, 0x1d, 
+0xb6, 0x1f, 0xd2, 0x43, 0x06, 0x01, 0x77, 0x04, 0xcd, 0xaf, 0x09, 0x21, 
+0x05, 0x1e, 0x36, 0x00, 0x3a, 0xa9, 0x1e, 0xfe, 0x02, 0xc2, 0x5e, 0x06, 
+0xcd, 0xa2, 0x1c, 0xcd, 0x63, 0x18, 0x21, 0xa8, 0x1e, 0x36, 0xff, 0xc3, 
+0x7b, 0x06, 0x3a, 0xa8, 0x1e, 0xd6, 0x13, 0x9f, 0x2f, 0xf5, 0x3e, 0x05, 
+0x21, 0xa8, 0x1e, 0x96, 0x9f, 0x2f, 0xc1, 0x48, 0xb1, 0x1f, 0xd2, 0x7b, 
+0x06, 0x01, 0x90, 0x04, 0xcd, 0xaf, 0x09, 0x3a, 0xa8, 0x1e, 0x3c, 0x32, 
+0xa3, 0x1e, 0xfe, 0x0f, 0xc2, 0x8a, 0x06, 0xcd, 0xcf, 0x15, 0x01, 0x06, 
+0x1e, 0xcd, 0x20, 0x12, 0x3a, 0xa9, 0x1e, 0xd6, 0x01, 0xc6, 0xff, 0x9f, 
+0xf5, 0x3a, 0xa8, 0x1e, 0xd6, 0x3d, 0xc6, 0xff, 0x9f, 0xc1, 0x48, 0xb1, 
+0x1f, 0xd2, 0xae, 0x06, 0x01, 0x9d, 0x04, 0xcd, 0xaf, 0x09, 0x21, 0xa7, 
+0x1f, 0x36, 0x01, 0x3a, 0xa7, 0x1f, 0x1f, 0xd2, 0xbe, 0x07, 0x3a, 0xc0, 
+0x1e, 0x32, 0xc1, 0x1e, 0x01, 0x06, 0x1e, 0xcd, 0x20, 0x12, 0x21, 0x04, 
+0x1e, 0x36, 0x00, 0x3a, 0xa9, 0x1e, 0xd6, 0x02, 0xd6, 0x01, 0x9f, 0xf5, 
+0x3a, 0xf5, 0x1d, 0x2f, 0xc1, 0x48, 0xa1, 0x1f, 0xd2, 0xed, 0x06, 0xcd, 
+0x88, 0x1c, 0xcd, 0xbe, 0x18, 0x21, 0xa8, 0x1e, 0x36, 0xff, 0xc3, 0x13, 
+0x07, 0x3a, 0xa9, 0x1e, 0xd6, 0x03, 0xc6, 0xff, 0x9f, 0xf5, 0x3e, 0x0a, 
+0x21, 0xa8, 0x1e, 0x96, 0x9f, 0x2f, 0xf5, 0x3e, 0x05, 0x96, 0x9f, 0xc1, 
+0x48, 0xa1, 0xc1, 0x48, 0xb1, 0x1f, 0xd2, 0x13, 0x07, 0x01, 0xb0, 0x04, 
+0xcd, 0xaf, 0x09, 0x3a, 0x04, 0x1e, 0x21, 0x5e, 0x1f, 0xb6, 0x77, 0x3a, 
+0xa8, 0x1e, 0x3c, 0x32, 0xa4, 0x1e, 0x3a, 0xa8, 0x1e, 0xfe, 0x13, 0xc2, 
+0x30, 0x07, 0xcd, 0xcf, 0x15, 0xc3, 0x7d, 0x07, 0x3a, 0xa8, 0x1e, 0xfe, 
+0x14, 0xc2, 0x40, 0x07, 0x0e, 0x1a, 0xcd, 0x45, 0x0e, 0xc3, 0x7d, 0x07, 
+0x3a, 0xa8, 0x1e, 0xd6, 0x05, 0x9f, 0x21, 0x05, 0x1e, 0xa6, 0x1f, 0xd2, 
+0x53, 0x07, 0x21, 0x57, 0x1f, 0x36, 0x01, 0x3a, 0xa3, 0x1e, 0xfe, 0x0a, 
+0xc2, 0x7a, 0x07, 0x21, 0x5d, 0x1f, 0x36, 0x01, 0x3a, 0x63, 0x1f, 0xfe, 
+0x00, 0xc2, 0x6d, 0x07, 0x21, 0x63, 0x1f, 0x36, 0x08, 0x3a, 0x5f, 0x1f, 
+0xfe, 0x00, 0xc2, 0x7a, 0x07, 0x21, 0x5f, 0x1f, 0x36, 0x01, 0xcd, 0x6c, 
+0x1a, 0xcd, 0x12, 0x19, 0x01, 0x06, 0x1e, 0xcd, 0x20, 0x12, 0x3a, 0xa9, 
+0x1e, 0xd6, 0x01, 0xc6, 0xff, 0x9f, 0xf5, 0x3a, 0xa8, 0x1e, 0xd6, 0x2c, 
+0xc6, 0xff, 0x9f, 0xf5, 0x3a, 0xa8, 0x1e, 0xd6, 0x0d, 0xc6, 0xff, 0x9f, 
+0xc1, 0x48, 0xa1, 0xc1, 0x48, 0xb1, 0x1f, 0xd2, 0xb0, 0x07, 0x01, 0xbc, 
+0x04, 0xcd, 0xaf, 0x09, 0x3a, 0xa8, 0x1e, 0xd6, 0x0d, 0xc6, 0xff, 0x9f, 
+0x32, 0xa7, 0x1f, 0xc3, 0xb3, 0x06, 0x3a, 0xa3, 0x1e, 0xfe, 0x0f, 0xc2, 
+0xce, 0x07, 0x0e, 0x1a, 0xcd, 0x45, 0x0e, 0xcd, 0xcf, 0x15, 0x3a, 0xa3, 
+0x1e, 0xfe, 0x00, 0xc2, 0xdb, 0x07, 0x0e, 0x00, 0xcd, 0x31, 0x19, 0x3a, 
+0xa5, 0x1e, 0x32, 0xcc, 0x1e, 0xc3, 0x14, 0x05, 0xfb, 0x76, 0x21, 0xf2, 
+0x1d, 0x71, 0x21, 0xf2, 0x07, 0xe5, 0x2a, 0x38, 0x02, 0xe9, 0xc9, 0x21, 
+0xfb, 0x07, 0xe5, 0x2a, 0x36, 0x02, 0xe9, 0x3a, 0x09, 0x01, 0xc9, 0x3e, 
+0xfa, 0xcd, 0xa6, 0x1d, 0x3e, 0xfa, 0xcd, 0xa6, 0x1d, 0xc9, 0x11, 0x00, 
+0x00, 0x0e, 0x03, 0xcd, 0x05, 0x00, 0xc9, 0x11, 0x00, 0x00, 0x0e, 0x01, 
+0xcd, 0x05, 0x00, 0xc9, 0x21, 0xab, 0x1e, 0x71, 0x3a, 0xab, 0x1e, 0xe6, 
+0x7f, 0x5f, 0x16, 0x00, 0x0e, 0x02, 0xcd, 0x05, 0x00, 0xc9, 0x0e, 0x0d, 
+0xcd, 0x1c, 0x08, 0x0e, 0x0a, 0xcd, 0x1c, 0x08, 0xc9, 0x21, 0xad, 0x1e, 
+0x70, 0x2b, 0x71, 0xcd, 0x2e, 0x08, 0x2a, 0xac, 0x1e, 0xeb, 0x0e, 0x09, 
+0xcd, 0x05, 0x00, 0xc9, 0x11, 0x00, 0x00, 0x0e, 0x0c, 0xcd, 0x05, 0x00, 
+0xc9, 0x11, 0x00, 0x00, 0x0e, 0x0d, 0xcd, 0x05, 0x00, 0xc9, 0x21, 0xaf, 
+0x1e, 0x71, 0x2a, 0xaf, 0x1e, 0x26, 0x00, 0xeb, 0x0e, 0x0e, 0xcd, 0x05, 
+0x00, 0xc9, 0x21, 0xb1, 0x1e, 0x70, 0x2b, 0x71, 0x2a, 0xb0, 0x1e, 0xeb, 
+0x0e, 0x0f, 0xcd, 0x05, 0x00, 0x32, 0xae, 0x1e, 0xc9, 0x21, 0xb3, 0x1e, 
+0x70, 0x2b, 0x71, 0x2a, 0xb2, 0x1e, 0xeb, 0x0e, 0x10, 0xcd, 0x05, 0x00, 
+0x32, 0xae, 0x1e, 0xc9, 0x21, 0xb5, 0x1e, 0x70, 0x2b, 0x71, 0x2a, 0xb4, 
+0x1e, 0xeb, 0x0e, 0x11, 0xcd, 0x05, 0x00, 0x32, 0xae, 0x1e, 0xc9, 0x11, 
+0x00, 0x00, 0x0e, 0x12, 0xcd, 0x05, 0x00, 0x32, 0xae, 0x1e, 0xc9, 0x21, 
+0xb7, 0x1e, 0x70, 0x2b, 0x71, 0x2a, 0xb6, 0x1e, 0xeb, 0x0e, 0x13, 0xcd, 
+0x05, 0x00, 0xc9, 0x21, 0xb9, 0x1e, 0x70, 0x2b, 0x71, 0x2a, 0xb8, 0x1e, 
+0xeb, 0x0e, 0x14, 0xcd, 0x05, 0x00, 0xc9, 0x21, 0xbb, 0x1e, 0x70, 0x2b, 
+0x71, 0x2a, 0xba, 0x1e, 0xeb, 0x0e, 0x15, 0xcd, 0x05, 0x00, 0xc9, 0x21, 
+0xbd, 0x1e, 0x70, 0x2b, 0x71, 0x2a, 0xbc, 0x1e, 0xeb, 0x0e, 0x16, 0xcd, 
+0x05, 0x00, 0x32, 0xae, 0x1e, 0xc9, 0x21, 0xbf, 0x1e, 0x70, 0x2b, 0x71, 
+0x2a, 0xbe, 0x1e, 0xeb, 0x0e, 0x17, 0xcd, 0x05, 0x00, 0xc9, 0x21, 0xc3, 
+0x1e, 0x70, 0x2b, 0x71, 0x2a, 0xc2, 0x1e, 0xeb, 0x0e, 0x1e, 0xcd, 0x05, 
+0x00, 0xc9, 0x11, 0xff, 0x00, 0x0e, 0x20, 0xcd, 0x05, 0x00, 0xc9, 0x21, 
+0xc4, 0x1e, 0x71, 0x2a, 0xc4, 0x1e, 0x26, 0x00, 0xeb, 0x0e, 0x20, 0xcd, 
+0x05, 0x00, 0xc9, 0x2a, 0xc0, 0x1e, 0x4d, 0xcd, 0x1f, 0x09, 0xc9, 0x2a, 
+0xc1, 0x1e, 0x4d, 0xcd, 0x1f, 0x09, 0xc9, 0x21, 0xc6, 0x1e, 0x70, 0x2b, 
+0x71, 0x2a, 0xc5, 0x1e, 0xeb, 0x0e, 0x21, 0xcd, 0x05, 0x00, 0xc9, 0x21, 
+0xc8, 0x1e, 0x70, 0x2b, 0x71, 0x2a, 0xc7, 0x1e, 0xeb, 0x0e, 0x22, 0xcd, 
+0x05, 0x00, 0xc9, 0x21, 0xca, 0x1e, 0x70, 0x2b, 0x71, 0x2a, 0xc9, 0x1e, 
+0xeb, 0x0e, 0x24, 0xcd, 0x05, 0x00, 0xc9, 0x21, 0xcb, 0x1e, 0x36, 0x80, 
+0x11, 0xcb, 0x1e, 0x0e, 0x0a, 0xcd, 0x05, 0x00, 0xc9, 0x11, 0x00, 0x00, 
+0x0e, 0x0b, 0xcd, 0x05, 0x00, 0xc9, 0x21, 0x6b, 0x1f, 0x70, 0x2b, 0x71, 
+0x2a, 0x6a, 0x1f, 0xeb, 0x0e, 0x1a, 0xcd, 0x05, 0x00, 0xc9, 0x3e, 0x0c, 
+0xd3, 0x01, 0x3e, 0x08, 0xd3, 0x01, 0xdb, 0x01, 0x07, 0x07, 0x07, 0x1f, 
+0xda, 0xaa, 0x09, 0xc3, 0x9e, 0x09, 0xdb, 0x03, 0xe6, 0x7f, 0xc9, 0x21, 
+0x71, 0x1f, 0x70, 0x2b, 0x71, 0xcd, 0x2f, 0x09, 0x2a, 0x70, 0x1f, 0x44, 
+0x4d, 0xcd, 0x39, 0x08, 0x0e, 0x3a, 0xcd, 0x1c, 0x08, 0x0e, 0x20, 0xcd, 
+0x1c, 0x08, 0x3a, 0x4d, 0x1f, 0x32, 0x72, 0x1f, 0x3a, 0x4e, 0x1f, 0x21, 
+0x72, 0x1f, 0xbe, 0xda, 0xf8, 0x09, 0x21, 0xcc, 0x1e, 0x3a, 0x72, 0x1f, 
+0xbe, 0xd2, 0xf1, 0x09, 0x2a, 0x72, 0x1f, 0x26, 0x00, 0x01, 0xcd, 0x1e, 
+0x09, 0x4e, 0xcd, 0x1c, 0x08, 0x21, 0x72, 0x1f, 0x34, 0xc2, 0xd0, 0x09, 
+0x21, 0xcc, 0x1e, 0x36, 0x00, 0x01, 0x3a, 0x02, 0xcd, 0x94, 0x08, 0x3a, 
+0xae, 0x1e, 0xfe, 0xff, 0xca, 0x11, 0x0a, 0x01, 0x3a, 0x02, 0xcd, 0xb3, 
+0x08, 0xcd, 0x2e, 0x08, 0xc3, 0x0e, 0x05, 0xc9, 0x21, 0x77, 0x1f, 0x73, 
+0x2b, 0x70, 0x2b, 0x71, 0x2b, 0xd1, 0xc1, 0x70, 0x2b, 0x71, 0xd5, 0x3a, 
+0x77, 0x1f, 0x3d, 0x32, 0x77, 0x1f, 0xfe, 0xff, 0xca, 0x4e, 0x0a, 0x2a, 
+0x73, 0x1f, 0xe5, 0x2a, 0x75, 0x1f, 0xc1, 0x0a, 0x77, 0x2a, 0x73, 0x1f, 
+0x23, 0x22, 0x73, 0x1f, 0x2a, 0x75, 0x1f, 0x23, 0x22, 0x75, 0x1f, 0xc3, 
+0x27, 0x0a, 0xc9, 0x21, 0x00, 0x00, 0x22, 0x9d, 0x1e, 0x2a, 0x03, 0x1e, 
+0x4d, 0xcd, 0x5e, 0x08, 0xcd, 0x37, 0x09, 0x21, 0x78, 0x1f, 0x36, 0x00, 
+0x3a, 0xfb, 0x1d, 0x21, 0x78, 0x1f, 0xbe, 0xda, 0xbe, 0x0a, 0x2a, 0x9d, 
+0x1e, 0xeb, 0x2a, 0x01, 0x1e, 0x19, 0x44, 0x4d, 0xcd, 0x86, 0x09, 0x01, 
+0x06, 0x1e, 0xcd, 0xc3, 0x08, 0x32, 0x79, 0x1f, 0xfe, 0x00, 0xca, 0xad, 
+0x0a, 0x3a, 0x79, 0x1f, 0xfe, 0x01, 0xca, 0x97, 0x0a, 0x01, 0x94, 0x02, 
+0xcd, 0xaf, 0x09, 0x2a, 0x9d, 0x1e, 0x22, 0x9f, 0x1e, 0xeb, 0x2a, 0x01, 
+0x1e, 0x19, 0x36, 0x1a, 0x3a, 0xfb, 0x1d, 0x32, 0x78, 0x1f, 0xc3, 0xb7, 
+0x0a, 0x11, 0x80, 0x00, 0x2a, 0x9d, 0x1e, 0x19, 0x22, 0x9d, 0x1e, 0x21, 
+0x78, 0x1f, 0x34, 0xc2, 0x64, 0x0a, 0x21, 0x00, 0x00, 0x22, 0x9d, 0x1e, 
+0xcd, 0x2f, 0x09, 0xc9, 0x0e, 0x07, 0x21, 0xa1, 0x1e, 0xcd, 0x6a, 0x1d, 
+0x7d, 0x3d, 0x32, 0x7c, 0x1f, 0xfe, 0xff, 0xc2, 0xdb, 0x0a, 0xc9, 0x21, 
+0x00, 0x00, 0x22, 0xa1, 0x1e, 0x2a, 0x4b, 0x1e, 0x4d, 0xcd, 0x5e, 0x08, 
+0x01, 0x27, 0x1e, 0xcd, 0x5f, 0x09, 0x21, 0x7a, 0x1f, 0x36, 0x00, 0x3a, 
+0x7c, 0x1f, 0x21, 0x7a, 0x1f, 0xbe, 0xda, 0x31, 0x0b, 0x2a, 0xa1, 0x1e, 
+0x01, 0xca, 0x1f, 0x09, 0x22, 0x7d, 0x1f, 0x2a, 0x7d, 0x1f, 0x44, 0x4d, 
+0xcd, 0x86, 0x09, 0x01, 0x27, 0x1e, 0xcd, 0xd3, 0x08, 0xfe, 0x00, 0xca, 
+0x20, 0x0b, 0x01, 0xa4, 0x02, 0xcd, 0xaf, 0x09, 0x11, 0x80, 0x00, 0x2a, 
+0xa1, 0x1e, 0x19, 0x22, 0xa1, 0x1e, 0x21, 0x7a, 0x1f, 0x34, 0xc2, 0xf3, 
+0x0a, 0x3a, 0x65, 0x1f, 0x1f, 0xd2, 0xc9, 0x0b, 0x21, 0x00, 0x00, 0x22, 
+0xa1, 0x1e, 0x01, 0x80, 0x00, 0xcd, 0x86, 0x09, 0x21, 0x7a, 0x1f, 0x36, 
+0x00, 0x3a, 0x7c, 0x1f, 0x21, 0x7a, 0x1f, 0xbe, 0xda, 0xc0, 0x0b, 0x01, 
+0x27, 0x1e, 0xcd, 0x3f, 0x09, 0xd6, 0x00, 0xd6, 0x01, 0x9f, 0x32, 0x7f, 
+0x1f, 0x2a, 0x48, 0x1e, 0x23, 0x22, 0x48, 0x1e, 0x21, 0x7b, 0x1f, 0x36, 
+0x00, 0x3a, 0x7b, 0x1f, 0xd6, 0x80, 0x9f, 0x21, 0x7f, 0x1f, 0xa6, 0x1f, 
+0xd2, 0xa2, 0x0b, 0x2a, 0x7b, 0x1f, 0x26, 0x00, 0x01, 0x80, 0x00, 0x09, 
+0x3a, 0x7b, 0x1f, 0x11, 0xa1, 0x1e, 0xe5, 0xcd, 0x34, 0x1d, 0x01, 0xca, 
+0x1f, 0x09, 0xc1, 0x0a, 0x96, 0xd6, 0x01, 0x9f, 0x32, 0x7f, 0x1f, 0x21, 
+0x7b, 0x1f, 0x34, 0xc3, 0x6d, 0x0b, 0x11, 0x80, 0x00, 0x2a, 0xa1, 0x1e, 
+0x19, 0x22, 0xa1, 0x1e, 0x3a, 0x7f, 0x1f, 0x1f, 0xda, 0xb9, 0x0b, 0x01, 
+0xb5, 0x02, 0xcd, 0xaf, 0x09, 0x21, 0x7a, 0x1f, 0x34, 0xc2, 0x49, 0x0b, 
+0x01, 0x27, 0x1e, 0xcd, 0xd3, 0x08, 0x32, 0x7f, 0x1f, 0x21, 0x00, 0x00, 
+0x22, 0xa1, 0x1e, 0xc9, 0x21, 0x80, 0x1f, 0x71, 0x3a, 0x80, 0x1f, 0xfe, 
+0x20, 0xda, 0xf4, 0x0b, 0x21, 0xf3, 0x1d, 0x34, 0x3e, 0x00, 0x21, 0x53, 
+0x1f, 0xbe, 0xd2, 0xf4, 0x0b, 0x3a, 0x53, 0x1f, 0x21, 0xf3, 0x1d, 0xbe, 
+0xd2, 0xf4, 0x0b, 0xc9, 0x3a, 0x03, 0x00, 0x32, 0x81, 0x1f, 0x2a, 0xa3, 
+0x1e, 0x4d, 0x06, 0x00, 0x21, 0xdd, 0x0c, 0x09, 0x09, 0x5e, 0x23, 0x56, 
+0xeb, 0xe9, 0x01, 0xff, 0x1d, 0x11, 0xa1, 0x1e, 0xcd, 0x8e, 0x1d, 0xda, 
+0x19, 0x0c, 0xcd, 0xc8, 0x0a, 0x2a, 0xa1, 0x1e, 0x01, 0xca, 0x1f, 0x09, 
+0x3a, 0x80, 0x1f, 0x77, 0x2a, 0xa1, 0x1e, 0x23, 0x22, 0xa1, 0x1e, 0xc3, 
+0x05, 0x0d, 0xc3, 0x3d, 0x0c, 0xc3, 0x3d, 0x0c, 0xc3, 0x3d, 0x0c, 0xc3, 
+0x3d, 0x0c, 0xc3, 0x3d, 0x0c, 0x01, 0xc2, 0x02, 0xcd, 0xaf, 0x09, 0xc3, 
+0x05, 0x0d, 0x2a, 0x80, 0x1f, 0x4d, 0xcd, 0xe6, 0x07, 0xc3, 0x05, 0x0d, 
+0x21, 0x03, 0x00, 0x36, 0x80, 0xc3, 0x71, 0x0c, 0xc3, 0x05, 0x0d, 0x21, 
+0x03, 0x00, 0x36, 0xc0, 0xc3, 0x71, 0x0c, 0xc3, 0x05, 0x0d, 0x21, 0x03, 
+0x00, 0x36, 0x80, 0xc3, 0x71, 0x0c, 0xc3, 0x05, 0x0d, 0x2a, 0x80, 0x1f, 
+0x26, 0x00, 0xeb, 0x0e, 0x05, 0xcd, 0x05, 0x00, 0xc3, 0x05, 0x0d, 0x21, 
+0x03, 0x00, 0x36, 0x10, 0xc3, 0xa0, 0x0c, 0xc3, 0x05, 0x0d, 0x21, 0x03, 
+0x00, 0x36, 0x20, 0xc3, 0xa0, 0x0c, 0xc3, 0x05, 0x0d, 0x21, 0x03, 0x00, 
+0x36, 0x30, 0xc3, 0xa0, 0x0c, 0xc3, 0x05, 0x0d, 0x2a, 0x80, 0x1f, 0x26, 
+0x00, 0xeb, 0x0e, 0x04, 0xcd, 0x05, 0x00, 0xc3, 0x05, 0x0d, 0x21, 0x03, 
+0x00, 0x36, 0x00, 0xc3, 0xcf, 0x0c, 0xc3, 0x05, 0x0d, 0x21, 0x03, 0x00, 
+0x36, 0x01, 0xc3, 0xcf, 0x0c, 0xc3, 0x05, 0x0d, 0x21, 0x03, 0x00, 0x36, 
+0x03, 0xc3, 0xcf, 0x0c, 0xc3, 0x05, 0x0d, 0x2a, 0x80, 0x1f, 0x26, 0x00, 
+0xeb, 0x0e, 0x02, 0xcd, 0x05, 0x00, 0xc3, 0x05, 0x0d, 0x0a, 0x0c, 0x2e, 
+0x0c, 0x31, 0x0c, 0x34, 0x0c, 0x37, 0x0c, 0x3a, 0x0c, 0x3d, 0x0c, 0x46, 
+0x0c, 0x50, 0x0c, 0x5b, 0x0c, 0x66, 0x0c, 0x71, 0x0c, 0x7f, 0x0c, 0x8a, 
+0x0c, 0x95, 0x0c, 0xa0, 0x0c, 0xae, 0x0c, 0xb9, 0x0c, 0xc4, 0x0c, 0xcf, 
+0x0c, 0x3a, 0x81, 0x1f, 0x32, 0x03, 0x00, 0xc9, 0x21, 0x82, 0x1f, 0x71, 
+0x3a, 0x82, 0x1f, 0xfe, 0x09, 0xca, 0x22, 0x0d, 0x2a, 0x82, 0x1f, 0x4d, 
+0xcd, 0xd0, 0x0b, 0xc3, 0x6e, 0x0d, 0x3a, 0x63, 0x1f, 0xfe, 0x00, 0xc2, 
+0x34, 0x0d, 0x2a, 0x82, 0x1f, 0x4d, 0xcd, 0xd0, 0x0b, 0xc3, 0x6e, 0x0d, 
+0x3a, 0xf3, 0x1d, 0x32, 0x83, 0x1f, 0x21, 0x63, 0x1f, 0x3a, 0x83, 0x1f, 
+0xbe, 0xda, 0x51, 0x0d, 0x21, 0x63, 0x1f, 0x3a, 0x83, 0x1f, 0x96, 0x32, 
+0x83, 0x1f, 0xc3, 0x3a, 0x0d, 0x21, 0x83, 0x1f, 0x3a, 0x63, 0x1f, 0x96, 
+0x77, 0x3e, 0x00, 0x21, 0x83, 0x1f, 0xbe, 0xd2, 0x6e, 0x0d, 0x21, 0x83, 
+0x1f, 0x35, 0x0e, 0x20, 0xcd, 0xd0, 0x0b, 0xc3, 0x59, 0x0d, 0x3a, 0x82, 
+0x1f, 0xfe, 0x0d, 0xc2, 0x7b, 0x0d, 0x21, 0xf3, 0x1d, 0x36, 0x00, 0xc9, 
+0x21, 0x84, 0x1f, 0x71, 0x3a, 0x84, 0x1f, 0xd6, 0x00, 0xd6, 0x01, 0x9f, 
+0x21, 0x6c, 0x1f, 0xa6, 0x77, 0x1f, 0xd2, 0x99, 0x0d, 0x0e, 0x20, 0xcd, 
+0x0c, 0x0d, 0xc3, 0xa2, 0x0d, 0x3a, 0x84, 0x1f, 0xc6, 0x30, 0x4f, 0xcd, 
+0x0c, 0x0d, 0xc9, 0x21, 0x85, 0x1f, 0x71, 0x3a, 0x85, 0x1f, 0xe6, 0xf8, 
+0x1f, 0x1f, 0x1f, 0x1f, 0x4f, 0xcd, 0x7c, 0x0d, 0x3a, 0x85, 0x1f, 0xe6, 
+0x0f, 0x4f, 0xcd, 0x7c, 0x0d, 0xc9, 0x21, 0x86, 0x1f, 0x36, 0x01, 0x3a, 
+0x5d, 0x1f, 0xd6, 0x01, 0xd6, 0x01, 0x9f, 0x32, 0x6c, 0x1f, 0x3a, 0x6f, 
+0x1f, 0x86, 0x27, 0x32, 0x6f, 0x1f, 0x3a, 0x6e, 0x1f, 0xce, 0x00, 0x27, 
+0x32, 0x6e, 0x1f, 0x3a, 0x6d, 0x1f, 0xce, 0x00, 0x27, 0x32, 0x6d, 0x1f, 
+0x2a, 0x6d, 0x1f, 0x4d, 0xcd, 0xa3, 0x0d, 0x2a, 0x6e, 0x1f, 0x4d, 0xcd, 
+0xa3, 0x0d, 0x2a, 0x6f, 0x1f, 0x4d, 0xcd, 0xa3, 0x0d, 0x3a, 0x5d, 0x1f, 
+0xfe, 0x01, 0xc2, 0x12, 0x0e, 0x0e, 0x3a, 0xcd, 0x0c, 0x0d, 0x0e, 0x20, 
+0xcd, 0x0c, 0x0d, 0xc3, 0x17, 0x0e, 0x0e, 0x09, 0xcd, 0x0c, 0x0d, 0xc9, 
+0x2a, 0xa1, 0x1e, 0x7d, 0xe6, 0x7f, 0x32, 0x89, 0x1f, 0x11, 0x80, 0xff, 
+0xcd, 0x44, 0x1d, 0x22, 0x87, 0x1f, 0xcd, 0xc8, 0x0a, 0x2a, 0x87, 0x1f, 
+0x01, 0xca, 0x1f, 0x09, 0xe5, 0x2a, 0x89, 0x1f, 0xeb, 0xcd, 0x18, 0x0a, 
+0x2a, 0x89, 0x1f, 0x26, 0x00, 0x22, 0xa1, 0x1e, 0xc9, 0x21, 0x8a, 0x1f, 
+0x71, 0x3a, 0x55, 0x1f, 0x1f, 0xd2, 0x59, 0x0e, 0x3a, 0x8a, 0x1f, 0xfe, 
+0x0c, 0xc2, 0x59, 0x0e, 0xc9, 0x3a, 0xa6, 0x1e, 0x1f, 0xd2, 0xa9, 0x0e, 
+0x3a, 0x8a, 0x1f, 0xfe, 0x0c, 0xca, 0xa9, 0x0e, 0x3a, 0x5f, 0x1f, 0x32, 
+0x8b, 0x1f, 0xfe, 0x00, 0xca, 0x98, 0x0e, 0x3a, 0x8b, 0x1f, 0xfe, 0x01, 
+0xc2, 0x80, 0x0e, 0x21, 0x8b, 0x1f, 0x36, 0x3c, 0x3a, 0xf4, 0x1d, 0x3c, 
+0x32, 0xf4, 0x1d, 0x21, 0x8b, 0x1f, 0xbe, 0xda, 0x98, 0x0e, 0x21, 0xf4, 
+0x1d, 0x36, 0x00, 0x0e, 0x0c, 0xcd, 0x0c, 0x0d, 0x3e, 0x00, 0x21, 0x5d, 
+0x1f, 0xbe, 0xd2, 0xa4, 0x0e, 0xcd, 0xbe, 0x0d, 0x21, 0xa6, 0x1e, 0x36, 
+0x00, 0x3a, 0x51, 0x1f, 0x1f, 0xd2, 0xcc, 0x0e, 0x3a, 0x8a, 0x1f, 0xd6, 
+0x13, 0xd6, 0x01, 0x9f, 0xf5, 0x3a, 0xa3, 0x1e, 0xd6, 0x00, 0xd6, 0x01, 
+0x9f, 0xc1, 0x48, 0xa1, 0x1f, 0xd2, 0xcc, 0x0e, 0xcd, 0x18, 0x0e, 0xc9, 
+0x3a, 0x8a, 0x1f, 0xfe, 0x0c, 0xc2, 0xd9, 0x0e, 0x21, 0xf4, 0x1d, 0x36, 
+0x00, 0x2a, 0x8a, 0x1f, 0x4d, 0xcd, 0x0c, 0x0d, 0x3a, 0x8a, 0x1f, 0xfe, 
+0x0a, 0xc2, 0xed, 0x0e, 0x21, 0xa6, 0x1e, 0x36, 0x01, 0xc9, 0x21, 0x8c, 
+0x1f, 0x71, 0x3a, 0x8c, 0x1f, 0xd6, 0x61, 0x9f, 0x2f, 0xf5, 0x3e, 0x7a, 
+0x21, 0x8c, 0x1f, 0x96, 0x9f, 0x2f, 0xc1, 0x48, 0xa1, 0x1f, 0xd2, 0x11, 
+0x0f, 0x3a, 0x8c, 0x1f, 0xe6, 0x5f, 0x32, 0x8c, 0x1f, 0x3a, 0x8c, 0x1f, 
+0xc9, 0x21, 0x8d, 0x1f, 0x71, 0x3a, 0x8d, 0x1f, 0xd6, 0x41, 0x9f, 0x2f, 
+0xf5, 0x3e, 0x5a, 0x21, 0x8d, 0x1f, 0x96, 0x9f, 0x2f, 0xc1, 0x48, 0xa1, 
+0x1f, 0xd2, 0x38, 0x0f, 0x3a, 0x8d, 0x1f, 0xf6, 0x20, 0x32, 0x8d, 0x1f, 
+0x3a, 0x8d, 0x1f, 0xc9, 0x3a, 0xa4, 0x1e, 0x3d, 0x4f, 0x3e, 0x05, 0xb9, 
+0xda, 0x6d, 0x0f, 0x3a, 0x57, 0x1f, 0x21, 0x51, 0x1f, 0xb6, 0xf5, 0xcd, 
+0x7d, 0x09, 0xc1, 0x48, 0xa1, 0x1f, 0xd2, 0x6d, 0x0f, 0xcd, 0x13, 0x08, 
+0xfe, 0x1a, 0xc2, 0x64, 0x0f, 0x3e, 0x1a, 0xc9, 0x01, 0xd7, 0x02, 0xcd, 
+0x39, 0x08, 0x3e, 0x13, 0xc9, 0x21, 0x90, 0x1f, 0x36, 0x01, 0x3a, 0x03, 
+0x00, 0x32, 0x8e, 0x1f, 0x2a, 0xa4, 0x1e, 0x4d, 0x06, 0x00, 0x21, 0x45, 
+0x10, 0x09, 0x09, 0x5e, 0x23, 0x56, 0xeb, 0xe9, 0x01, 0xfd, 0x1d, 0x11, 
+0x9d, 0x1e, 0xcd, 0x8e, 0x1d, 0xda, 0x97, 0x0f, 0xcd, 0x4f, 0x0a, 0x2a, 
+0x9d, 0x1e, 0xeb, 0x2a, 0x01, 0x1e, 0x19, 0x7e, 0x32, 0x8f, 0x1f, 0x2a, 
+0x9d, 0x1e, 0x23, 0x22, 0x9d, 0x1e, 0xc3, 0x6d, 0x10, 0xcd, 0xf3, 0x07, 
+0x32, 0x8f, 0x1f, 0xc3, 0x6d, 0x10, 0xcd, 0x96, 0x09, 0x32, 0x8f, 0x1f, 
+0xc3, 0x6d, 0x10, 0x21, 0x03, 0x00, 0x36, 0x04, 0xc3, 0xe0, 0x0f, 0xc3, 
+0x6d, 0x10, 0x21, 0x03, 0x00, 0x36, 0x08, 0xc3, 0xe0, 0x0f, 0xc3, 0x6d, 
+0x10, 0x21, 0x03, 0x00, 0x36, 0x0c, 0xc3, 0xe0, 0x0f, 0xc3, 0x6d, 0x10, 
+0x11, 0x00, 0x00, 0x0e, 0x03, 0xcd, 0x05, 0x00, 0xe6, 0x7f, 0x32, 0x8f, 
+0x1f, 0xc3, 0x6d, 0x10, 0xc3, 0x08, 0x10, 0xc3, 0x08, 0x10, 0xc3, 0x08, 
+0x10, 0xc3, 0x08, 0x10, 0xc3, 0x08, 0x10, 0xc3, 0x08, 0x10, 0xc3, 0x08, 
+0x10, 0xc3, 0x08, 0x10, 0x01, 0xe9, 0x02, 0xcd, 0xaf, 0x09, 0xc3, 0x6d, 
+0x10, 0x21, 0x03, 0x00, 0x36, 0x00, 0xc3, 0x32, 0x10, 0xc3, 0x6d, 0x10, 
+0x21, 0x03, 0x00, 0x36, 0x01, 0xc3, 0x32, 0x10, 0xc3, 0x6d, 0x10, 0x21, 
+0x03, 0x00, 0x36, 0x03, 0xc3, 0x32, 0x10, 0xc3, 0x6d, 0x10, 0x21, 0x90, 
+0x1f, 0x36, 0x00, 0x11, 0x00, 0x00, 0x0e, 0x01, 0xcd, 0x05, 0x00, 0x32, 
+0x8f, 0x1f, 0xc3, 0x6d, 0x10, 0x88, 0x0f, 0xad, 0x0f, 0xb6, 0x0f, 0xbf, 
+0x0f, 0xca, 0x0f, 0xd5, 0x0f, 0xe0, 0x0f, 0xf0, 0x0f, 0xf3, 0x0f, 0xf6, 
+0x0f, 0xf9, 0x0f, 0xfc, 0x0f, 0xff, 0x0f, 0x02, 0x10, 0x05, 0x10, 0x08, 
+0x10, 0x11, 0x10, 0x1c, 0x10, 0x27, 0x10, 0x32, 0x10, 0x3a, 0x8e, 0x1f, 
+0x32, 0x03, 0x00, 0x3a, 0x54, 0x1f, 0x1f, 0xd2, 0x92, 0x10, 0x3a, 0xa3, 
+0x1e, 0x32, 0x8e, 0x1f, 0x21, 0xa3, 0x1e, 0x36, 0x13, 0x2a, 0x8f, 0x1f, 
+0x4d, 0xcd, 0x45, 0x0e, 0x3a, 0x8e, 0x1f, 0x32, 0xa3, 0x1e, 0x3a, 0x90, 
+0x1f, 0x1f, 0xd2, 0xdc, 0x10, 0x3a, 0x5e, 0x1f, 0x1f, 0xd2, 0xb2, 0x10, 
+0x3a, 0xa7, 0x1e, 0x3c, 0x32, 0xa7, 0x1e, 0xd6, 0x00, 0xd6, 0x01, 0x9f, 
+0x32, 0x90, 0x1f, 0xc3, 0xbd, 0x10, 0x3a, 0x8f, 0x1f, 0xd6, 0x0a, 0xd6, 
+0x01, 0x9f, 0x32, 0x90, 0x1f, 0x3a, 0x90, 0x1f, 0x1f, 0xd2, 0xdc, 0x10, 
+0xcd, 0x7d, 0x09, 0x1f, 0xd2, 0xdc, 0x10, 0xcd, 0x13, 0x08, 0xfe, 0x1a, 
+0xc2, 0xd6, 0x10, 0x3e, 0x1a, 0xc9, 0x01, 0x00, 0x03, 0xcd, 0xaf, 0x09, 
+0x3a, 0x69, 0x1f, 0x1f, 0xd2, 0xeb, 0x10, 0x3a, 0x8f, 0x1f, 0xe6, 0x7f, 
+0x32, 0x8f, 0x1f, 0x3a, 0x64, 0x1f, 0x1f, 0xd2, 0xfa, 0x10, 0x2a, 0x8f, 
+0x1f, 0x4d, 0xcd, 0xee, 0x0e, 0xc9, 0x3a, 0x5b, 0x1f, 0x1f, 0xd2, 0x09, 
+0x11, 0x2a, 0x8f, 0x1f, 0x4d, 0xcd, 0x15, 0x0f, 0xc9, 0x3a, 0x8f, 0x1f, 
+0xc9, 0x3e, 0x00, 0x21, 0xfa, 0x1d, 0xbe, 0xd2, 0x28, 0x11, 0x3a, 0xfa, 
+0x1d, 0x3d, 0x32, 0xfa, 0x1d, 0xfe, 0x01, 0xc2, 0x25, 0x11, 0x3e, 0x0a, 
+0xc9, 0x3e, 0x1a, 0xc9, 0x3e, 0x00, 0x21, 0xf8, 0x1d, 0xbe, 0xd2, 0x46, 
+0x11, 0x21, 0xf8, 0x1d, 0x35, 0x2b, 0x4e, 0x06, 0x00, 0x21, 0xcd, 0x1e, 
+0x09, 0x7e, 0x32, 0x91, 0x1f, 0x21, 0xf7, 0x1d, 0x34, 0xc9, 0xcd, 0x3c, 
+0x0f, 0x32, 0x91, 0x1f, 0xfe, 0x1a, 0xc2, 0x54, 0x11, 0x3e, 0x1a, 0xc9, 
+0x3e, 0x00, 0x21, 0x62, 0x1f, 0xbe, 0xd2, 0x7d, 0x11, 0x2a, 0x62, 0x1f, 
+0x4d, 0xcd, 0xad, 0x11, 0x1f, 0xd2, 0x7a, 0x11, 0x21, 0x62, 0x1f, 0x7e, 
+0x32, 0xf7, 0x1d, 0x36, 0x00, 0x21, 0xf9, 0x1d, 0x7e, 0x36, 0x00, 0x3c, 
+0x2b, 0x77, 0xc3, 0xa9, 0x11, 0x3e, 0x00, 0x21, 0x60, 0x1f, 0xbe, 0xd2, 
+0xa5, 0x11, 0x2a, 0x60, 0x1f, 0x4d, 0xcd, 0xad, 0x11, 0x1f, 0xd2, 0x9e, 
+0x11, 0x21, 0x60, 0x1f, 0x36, 0x00, 0x21, 0xfa, 0x1d, 0x36, 0x02, 0x3e, 
+0x0d, 0xc9, 0x3a, 0x91, 0x1f, 0xc9, 0xc3, 0xa9, 0x11, 0x3a, 0x91, 0x1f, 
+0xc9, 0xc3, 0x28, 0x11, 0xc9, 0x21, 0x92, 0x1f, 0x71, 0x3a, 0xf9, 0x1d, 
+0x21, 0x92, 0x1f, 0x86, 0x77, 0x4f, 0x06, 0x00, 0x21, 0xcd, 0x1e, 0x09, 
+0x7e, 0x32, 0x93, 0x1f, 0xfe, 0x1a, 0xc2, 0xd9, 0x11, 0x2a, 0x92, 0x1f, 
+0x26, 0x00, 0x01, 0xcd, 0x1e, 0x09, 0x3a, 0x91, 0x1f, 0x77, 0x3e, 0x01, 
+0xc9, 0x21, 0x91, 0x1f, 0x3a, 0x93, 0x1f, 0xbe, 0xc2, 0xea, 0x11, 0x21, 
+0xf9, 0x1d, 0x34, 0xc3, 0xef, 0x11, 0x21, 0xf9, 0x1d, 0x36, 0x00, 0x3e, 
+0x00, 0xc9, 0x3a, 0x4e, 0x1f, 0x3c, 0x32, 0x4e, 0x1f, 0x21, 0xcc, 0x1e, 
+0xbe, 0xda, 0x03, 0x12, 0x3e, 0x0d, 0xc9, 0x2a, 0x4e, 0x1f, 0x26, 0x00, 
+0x01, 0xcd, 0x1e, 0x09, 0x4e, 0xcd, 0xee, 0x0e, 0xc9, 0xcd, 0xf2, 0x11, 
+0x32, 0xa8, 0x1e, 0xfe, 0x20, 0xc2, 0x1f, 0x12, 0xc3, 0x11, 0x12, 0xc9, 
+0x21, 0x96, 0x1f, 0x70, 0x2b, 0x71, 0x21, 0xf5, 0x1d, 0x36, 0x00, 0x21, 
+0xa9, 0x1e, 0x36, 0x00, 0x2b, 0x36, 0x20, 0x21, 0xaa, 0x1e, 0x36, 0x00, 
+0x3a, 0xaa, 0x1e, 0xfe, 0x20, 0xd2, 0x53, 0x12, 0x3a, 0xaa, 0x1e, 0xfe, 
+0x0b, 0xc2, 0x4d, 0x12, 0x21, 0xa8, 0x1e, 0x36, 0x00, 0xcd, 0x67, 0x14, 
+0xc3, 0x38, 0x12, 0xcd, 0x11, 0x12, 0x3a, 0x4e, 0x1f, 0x32, 0x4d, 0x1f, 
+0x2a, 0xa8, 0x1e, 0x4d, 0xcd, 0x38, 0x14, 0x1f, 0xd2, 0x70, 0x12, 0xcd, 
+0xc1, 0x15, 0x21, 0xa9, 0x1e, 0x36, 0x01, 0xc9, 0x21, 0x94, 0x1f, 0x36, 
+0x00, 0x21, 0x97, 0x1f, 0x36, 0x00, 0x3e, 0x19, 0x21, 0x97, 0x1f, 0xbe, 
+0xda, 0x95, 0x12, 0x2a, 0x97, 0x1f, 0x26, 0x00, 0x01, 0x50, 0x1f, 0x09, 
+0x36, 0x00, 0x21, 0x97, 0x1f, 0x34, 0xc2, 0x7a, 0x12, 0x21, 0xf6, 0x1d, 
+0x36, 0x00, 0x21, 0xf8, 0x1d, 0x36, 0x00, 0x23, 0x36, 0x00, 0x23, 0x36, 
+0x00, 0x21, 0xaa, 0x1e, 0x36, 0x00, 0x2a, 0xa8, 0x1e, 0x4d, 0xcd, 0x38, 
+0x14, 0x1f, 0xda, 0xda, 0x12, 0x3a, 0xaa, 0x1e, 0xfe, 0x08, 0xda, 0xbe, 
+0x12, 0xc9, 0x3a, 0xa8, 0x1e, 0xfe, 0x2a, 0xc2, 0xce, 0x12, 0x0e, 0x08, 
+0xcd, 0x87, 0x14, 0xc3, 0xd1, 0x12, 0xcd, 0x67, 0x14, 0xcd, 0xf2, 0x11, 
+0x32, 0xa8, 0x1e, 0xc3, 0xaa, 0x12, 0x3a, 0xa8, 0x1e, 0xfe, 0x3a, 0xc2, 
+0xbf, 0x13, 0x3a, 0x94, 0x1f, 0xfe, 0x00, 0xca, 0xeb, 0x12, 0xc9, 0x3a, 
+0xaa, 0x1e, 0xfe, 0x01, 0xc2, 0x2c, 0x13, 0x0e, 0x01, 0xcd, 0xa1, 0x14, 
+0xd6, 0x41, 0x3c, 0x32, 0x94, 0x1f, 0x4f, 0x3e, 0x1a, 0xb9, 0xd2, 0x06, 
+0x13, 0xc9, 0xcd, 0x11, 0x12, 0x2a, 0xa8, 0x1e, 0x4d, 0xcd, 0x38, 0x14, 
+0x1f, 0xd2, 0x29, 0x13, 0x3a, 0xa8, 0x1e, 0xfe, 0x5b, 0xc2, 0x1f, 0x13, 
+0xcd, 0xb1, 0x14, 0x21, 0x4e, 0x1f, 0x35, 0x21, 0xa9, 0x1e, 0x36, 0x04, 
+0xc9, 0xc3, 0xb1, 0x13, 0x3a, 0xaa, 0x1e, 0xfe, 0x03, 0xca, 0x35, 0x13, 
+0xc9, 0x21, 0xa1, 0x1f, 0x36, 0xff, 0x23, 0x36, 0x00, 0x3e, 0x14, 0x21, 
+0xa2, 0x1f, 0xbe, 0xda, 0xb0, 0x13, 0x21, 0xa0, 0x1f, 0x36, 0x00, 0x3a, 
+0xa0, 0x1f, 0x3c, 0x32, 0xa0, 0x1f, 0x4f, 0x3e, 0x03, 0x91, 0x9f, 0x2f, 
+0xf5, 0x3a, 0xa0, 0x1f, 0x21, 0xa1, 0x1f, 0x86, 0x4f, 0x06, 0x00, 0x21, 
+0x54, 0x02, 0x09, 0xe5, 0x2a, 0xa0, 0x1f, 0x4d, 0xcd, 0xa1, 0x14, 0xe1, 
+0x96, 0xd6, 0x01, 0x9f, 0xc1, 0x48, 0xa1, 0x1f, 0xd2, 0x7e, 0x13, 0xc3, 
+0x4b, 0x13, 0x3a, 0xa0, 0x1f, 0xfe, 0x04, 0xc2, 0xa1, 0x13, 0x21, 0xa9, 
+0x1e, 0x36, 0x03, 0xcd, 0xf2, 0x11, 0xfe, 0x5b, 0xc2, 0x96, 0x13, 0xcd, 
+0xb1, 0x14, 0x21, 0x4e, 0x1f, 0x35, 0x3a, 0xa2, 0x1f, 0x32, 0xa8, 0x1e, 
+0xc9, 0x3a, 0xa1, 0x1f, 0xc6, 0x03, 0x32, 0xa1, 0x1f, 0x21, 0xa2, 0x1f, 
+0x34, 0xc2, 0x3d, 0x13, 0xc9, 0x3a, 0xa8, 0x1e, 0xfe, 0x5b, 0xc2, 0xbc, 
+0x13, 0xcd, 0xb1, 0x14, 0xc3, 0x34, 0x14, 0x3a, 0xaa, 0x1e, 0xfe, 0x00, 
+0xc2, 0xc8, 0x13, 0xc9, 0x21, 0xaa, 0x1e, 0x36, 0x08, 0x3a, 0xa8, 0x1e, 
+0xfe, 0x2e, 0xc2, 0x02, 0x14, 0xcd, 0xf2, 0x11, 0x32, 0xa8, 0x1e, 0x4f, 
+0xcd, 0x38, 0x14, 0x1f, 0xda, 0x02, 0x14, 0x3a, 0xaa, 0x1e, 0xfe, 0x0b, 
+0xda, 0xec, 0x13, 0xc9, 0x3a, 0xa8, 0x1e, 0xfe, 0x2a, 0xc2, 0xfc, 0x13, 
+0x0e, 0x0b, 0xcd, 0x87, 0x14, 0xc3, 0xff, 0x13, 0xcd, 0x67, 0x14, 0xc3, 
+0xd5, 0x13, 0x3a, 0xa8, 0x1e, 0xfe, 0x5b, 0xc2, 0x0d, 0x14, 0xcd, 0xb1, 
+0x14, 0x21, 0x4e, 0x1f, 0x35, 0x21, 0xa9, 0x1e, 0x36, 0x02, 0x3a, 0x94, 
+0x1f, 0xfe, 0x00, 0xc2, 0x25, 0x14, 0x3a, 0xfc, 0x1d, 0x3c, 0x32, 0x94, 
+0x1f, 0x2a, 0x95, 0x1f, 0x36, 0x00, 0x01, 0x20, 0x00, 0x2a, 0x95, 0x1f, 
+0x09, 0x36, 0x00, 0xc9, 0xc3, 0xa5, 0x12, 0xc9, 0x21, 0x9a, 0x1f, 0x71, 
+0x21, 0x9b, 0x1f, 0x36, 0x00, 0x3e, 0x0a, 0x21, 0x9b, 0x1f, 0xbe, 0xda, 
+0x64, 0x14, 0x2a, 0x9b, 0x1f, 0x26, 0x00, 0x01, 0x49, 0x02, 0x09, 0x3a, 
+0x9a, 0x1f, 0xbe, 0xc2, 0x5d, 0x14, 0x3e, 0x01, 0xc9, 0x21, 0x9b, 0x1f, 
+0x34, 0xc2, 0x41, 0x14, 0x3e, 0x00, 0xc9, 0x3a, 0xaa, 0x1e, 0x3c, 0x32, 
+0xaa, 0x1e, 0x4f, 0x06, 0x00, 0x2a, 0x95, 0x1f, 0x09, 0x3a, 0xa8, 0x1e, 
+0x77, 0x3a, 0xa8, 0x1e, 0xfe, 0x3f, 0xc2, 0x86, 0x14, 0x21, 0xf5, 0x1d, 
+0x36, 0x01, 0xc9, 0x21, 0x9c, 0x1f, 0x71, 0x21, 0xa8, 0x1e, 0x36, 0x3f, 
+0x21, 0x9c, 0x1f, 0x3a, 0xaa, 0x1e, 0xbe, 0xd2, 0xa0, 0x14, 0xcd, 0x67, 
+0x14, 0xc3, 0x90, 0x14, 0xc9, 0x21, 0x9d, 0x1f, 0x71, 0x2a, 0x9d, 0x1f, 
+0x26, 0x00, 0xeb, 0x2a, 0x95, 0x1f, 0x19, 0x7e, 0xc9, 0x21, 0xf6, 0x1d, 
+0x36, 0x01, 0x3a, 0xc0, 0x1e, 0x32, 0xc1, 0x1e, 0xcd, 0xf2, 0x11, 0x32, 
+0xa8, 0x1e, 0x3a, 0xa8, 0x1e, 0xd6, 0x0d, 0xd6, 0x01, 0x9f, 0xf5, 0x3a, 
+0xa8, 0x1e, 0xd6, 0x5d, 0xd6, 0x01, 0x9f, 0xc1, 0x48, 0xb1, 0x1f, 0xda, 
+0xba, 0x15, 0x3a, 0xa8, 0x1e, 0xd6, 0x41, 0x32, 0x9e, 0x1f, 0x4f, 0x3e, 
+0x19, 0xb9, 0xd2, 0x03, 0x15, 0x3a, 0xa8, 0x1e, 0xfe, 0x20, 0xc2, 0xfa, 
+0x14, 0xcd, 0xf2, 0x11, 0x32, 0xa8, 0x1e, 0xc3, 0x00, 0x15, 0x01, 0x08, 
+0x03, 0xcd, 0xaf, 0x09, 0xc3, 0xb7, 0x15, 0x3a, 0xa8, 0x1e, 0xd6, 0x53, 
+0xd6, 0x01, 0x9f, 0xf5, 0x3a, 0xa8, 0x1e, 0xd6, 0x51, 0xd6, 0x01, 0x9f, 
+0xc1, 0x48, 0xb1, 0x1f, 0xd2, 0x49, 0x15, 0x3a, 0x4e, 0x1f, 0x3c, 0x32, 
+0x9f, 0x1f, 0xcd, 0xf2, 0x11, 0x32, 0xa8, 0x1e, 0xd6, 0x1a, 0xd6, 0x01, 
+0x9f, 0xf5, 0x3a, 0xa8, 0x1e, 0xd6, 0x0d, 0xd6, 0x01, 0x9f, 0xc1, 0x48, 
+0xb1, 0x1f, 0xda, 0x40, 0x15, 0xc3, 0x22, 0x15, 0xcd, 0xf2, 0x11, 0x32, 
+0xa8, 0x1e, 0xc3, 0x8d, 0x15, 0xcd, 0xf2, 0x11, 0x32, 0xa8, 0x1e, 0xd6, 
+0x30, 0x32, 0x9f, 0x1f, 0x4f, 0x3e, 0x09, 0xb9, 0xd2, 0x63, 0x15, 0x21, 
+0x9f, 0x1f, 0x36, 0x01, 0xc3, 0x8d, 0x15, 0xcd, 0xf2, 0x11, 0x32, 0xa8, 
+0x1e, 0xd6, 0x30, 0x32, 0x99, 0x1f, 0x4f, 0x3e, 0x09, 0xb9, 0xda, 0x8d, 
+0x15, 0x2a, 0x9f, 0x1f, 0x26, 0x00, 0xcd, 0x4f, 0x1d, 0xe5, 0x2a, 0x99, 
+0x1f, 0x26, 0x00, 0xc1, 0x09, 0xeb, 0x21, 0x9f, 0x1f, 0x73, 0xc3, 0x63, 
+0x15, 0x2a, 0x9e, 0x1f, 0x26, 0x00, 0x01, 0x50, 0x1f, 0x09, 0x3a, 0x9f, 
+0x1f, 0x77, 0x3a, 0x9e, 0x1f, 0xfe, 0x06, 0xc2, 0xb7, 0x15, 0x3e, 0x1f, 
+0x21, 0x9f, 0x1f, 0xbe, 0xd2, 0xb1, 0x15, 0x01, 0x16, 0x03, 0xcd, 0xaf, 
+0x09, 0x3a, 0x9f, 0x1f, 0x32, 0xc1, 0x1e, 0xc3, 0xc2, 0x14, 0xcd, 0xf2, 
+0x11, 0x32, 0xa8, 0x1e, 0xc9, 0x3a, 0xa8, 0x1e, 0xfe, 0x5f, 0xc2, 0xce, 
+0x15, 0x21, 0xa8, 0x1e, 0x36, 0x3d, 0xc9, 0x21, 0xa3, 0x1f, 0x36, 0x00, 
+0x3e, 0x27, 0x21, 0xa3, 0x1f, 0xbe, 0xda, 0xe9, 0x15, 0x0e, 0x00, 0xcd, 
+0x45, 0x0e, 0x21, 0xa3, 0x1f, 0x34, 0xc2, 0xd4, 0x15, 0xc9, 0x21, 0xa9, 
+0x1f, 0x70, 0x2b, 0x71, 0x2a, 0xa8, 0x1f, 0xe5, 0x1e, 0x03, 0x01, 0x30, 
+0x1e, 0xcd, 0x18, 0x0a, 0xc9, 0x21, 0xad, 0x1f, 0x72, 0x2b, 0x73, 0x2b, 
+0x70, 0x2b, 0x71, 0x2a, 0xac, 0x1f, 0x7e, 0xfe, 0x24, 0xca, 0x37, 0x16, 
+0x2a, 0xac, 0x1f, 0x3e, 0x7f, 0xa6, 0x2a, 0xaa, 0x1f, 0xf5, 0x3e, 0x7f, 
+0xa6, 0xc1, 0x48, 0xb9, 0xca, 0x26, 0x16, 0x3e, 0x00, 0xc9, 0x2a, 0xaa, 
+0x1f, 0x23, 0x22, 0xaa, 0x1f, 0x2a, 0xac, 0x1f, 0x23, 0x22, 0xac, 0x1f, 
+0xc3, 0x07, 0x16, 0x3e, 0x01, 0xc9, 0xcd, 0x0d, 0x11, 0x32, 0xa8, 0x1e, 
+0x3a, 0x5e, 0x1f, 0x1f, 0xd2, 0x52, 0x16, 0x01, 0x9d, 0x1e, 0x11, 0x9f, 
+0x1e, 0xcd, 0x8e, 0x1d, 0x9f, 0xc9, 0x3a, 0xa8, 0x1e, 0xd6, 0x1a, 0xd6, 
+0x01, 0x9f, 0xc9, 0x21, 0xaf, 0x1f, 0x36, 0x01, 0x21, 0x9c, 0x1e, 0x36, 
+0x00, 0xcd, 0x3d, 0x17, 0x32, 0xb5, 0x1f, 0xfe, 0x3a, 0xca, 0x99, 0x16, 
+0x21, 0x9c, 0x1e, 0x36, 0x00, 0x3a, 0xb5, 0x1f, 0xfe, 0x1a, 0xc2, 0x93, 
+0x16, 0x01, 0x48, 0x03, 0xcd, 0x39, 0x08, 0xcd, 0x13, 0x08, 0xfe, 0x1a, 
+0xc2, 0x8e, 0x16, 0x3e, 0x01, 0xc9, 0x21, 0x9c, 0x1e, 0x36, 0x00, 0xcd, 
+0x2d, 0x17, 0xc3, 0x65, 0x16, 0x21, 0xb5, 0x1f, 0x36, 0x00, 0xcd, 0xbb, 
+0x17, 0x32, 0xb4, 0x1f, 0xfe, 0x00, 0xc2, 0xc7, 0x16, 0xcd, 0x3d, 0x17, 
+0x32, 0xb4, 0x1f, 0xfe, 0x1a, 0xca, 0xba, 0x16, 0xcd, 0x2d, 0x17, 0xc3, 
+0xa9, 0x16, 0x3a, 0xaf, 0x1f, 0x1f, 0xd2, 0xc4, 0x16, 0x3e, 0x01, 0xc9, 
+0x3e, 0x02, 0xc9, 0xcd, 0xc4, 0x17, 0x22, 0xb7, 0x1f, 0xcd, 0xbb, 0x17, 
+0x32, 0xb6, 0x1f, 0x3a, 0xb4, 0x1f, 0xd6, 0x00, 0xc6, 0xff, 0x9f, 0x21, 
+0xaf, 0x1f, 0xa6, 0x1f, 0xd2, 0xf0, 0x16, 0x21, 0xb4, 0x1f, 0x35, 0xcd, 
+0xbb, 0x17, 0x32, 0xb3, 0x1f, 0xc3, 0xd3, 0x16, 0xcd, 0xac, 0x17, 0x21, 
+0xb5, 0x1f, 0x86, 0xfe, 0x00, 0xca, 0x02, 0x17, 0x01, 0x5c, 0x03, 0xcd, 
+0x12, 0x17, 0xcd, 0x2d, 0x17, 0x3a, 0xaf, 0x1f, 0x1f, 0xd2, 0x0f, 0x17, 
+0x3e, 0x00, 0xc9, 0x3e, 0x02, 0xc9, 0x21, 0xb1, 0x1f, 0x70, 0x2b, 0x71, 
+0x3a, 0xaf, 0x1f, 0x1f, 0xd2, 0x2c, 0x17, 0x21, 0xaf, 0x1f, 0x36, 0x00, 
+0x2a, 0xb0, 0x1f, 0x44, 0x4d, 0xcd, 0x39, 0x08, 0xc9, 0x3a, 0xae, 0x1f, 
+0x1f, 0xd2, 0x3c, 0x17, 0x21, 0xae, 0x1f, 0x36, 0x00, 0xcd, 0x18, 0x0e, 
+0xc9, 0x3a, 0xaf, 0x1f, 0x1f, 0xd2, 0x7a, 0x17, 0xcd, 0x0d, 0x11, 0x32, 
+0xb2, 0x1f, 0xfe, 0x13, 0xc2, 0x57, 0x17, 0x21, 0xae, 0x1f, 0x36, 0x01, 
+0xc3, 0x44, 0x17, 0x2a, 0x9c, 0x1e, 0x26, 0x00, 0x01, 0x4c, 0x1e, 0x09, 
+0x3a, 0xb2, 0x1f, 0x77, 0x3a, 0x9c, 0x1e, 0x3c, 0x32, 0x9c, 0x1e, 0xfe, 
+0x4f, 0xda, 0x76, 0x17, 0x01, 0x2a, 0x03, 0xcd, 0x12, 0x17, 0x3a, 0xb2, 
+0x1f, 0xc9, 0x3e, 0x1a, 0xc9, 0xcd, 0x3d, 0x17, 0x32, 0xb9, 0x1f, 0xd6, 
+0x30, 0x4f, 0x3e, 0x09, 0xb9, 0xda, 0x92, 0x17, 0x3a, 0xb9, 0x1f, 0xd6, 
+0x30, 0xc9, 0x3a, 0xb9, 0x1f, 0xd6, 0x41, 0x4f, 0x3e, 0x05, 0xb9, 0xd2, 
+0xa4, 0x17, 0x01, 0x3a, 0x03, 0xcd, 0x12, 0x17, 0x3a, 0xb9, 0x1f, 0xd6, 
+0x41, 0xc6, 0x0a, 0xc9, 0xcd, 0x7d, 0x17, 0x87, 0x87, 0x87, 0x87, 0xf5, 
+0xcd, 0x7d, 0x17, 0xc1, 0x48, 0xb1, 0xc9, 0xcd, 0xac, 0x17, 0x21, 0xb5, 
+0x1f, 0x86, 0x77, 0xc9, 0xcd, 0xbb, 0x17, 0x4f, 0x06, 0x00, 0x60, 0x69, 
+0x0e, 0x08, 0xcd, 0x64, 0x1d, 0xe5, 0xcd, 0xbb, 0x17, 0xe1, 0xcd, 0x56, 
+0x1d, 0xc9, 0xcd, 0x5b, 0x16, 0x32, 0xba, 0x1f, 0x4f, 0x3e, 0x01, 0xb9, 
+0xda, 0x32, 0x18, 0x3a, 0xba, 0x1f, 0xd6, 0x01, 0xd6, 0x01, 0x9f, 0x21, 
+0x58, 0x1f, 0xa6, 0x1f, 0xda, 0x1c, 0x18, 0x21, 0xbb, 0x1f, 0x36, 0x01, 
+0x3a, 0x9c, 0x1e, 0x21, 0xbb, 0x1f, 0xbe, 0xda, 0x1c, 0x18, 0x3a, 0xbb, 
+0x1f, 0x3d, 0x4f, 0x06, 0x00, 0x21, 0x4c, 0x1e, 0x09, 0x4e, 0xcd, 0x45, 
+0x0e, 0x21, 0xbb, 0x1f, 0x34, 0xc2, 0xfc, 0x17, 0x0e, 0x0d, 0xcd, 0x45, 
+0x0e, 0x0e, 0x0a, 0xcd, 0x45, 0x0e, 0x3a, 0xba, 0x1f, 0xfe, 0x01, 0xc2, 
+0x2f, 0x18, 0xc9, 0xc3, 0xda, 0x17, 0xcd, 0x2e, 0x08, 0x2a, 0x9c, 0x1e, 
+0x26, 0x00, 0x01, 0x4c, 0x1e, 0x09, 0x36, 0x24, 0x01, 0x4c, 0x1e, 0xcd, 
+0x39, 0x08, 0x01, 0x6b, 0x03, 0xcd, 0x39, 0x08, 0xcd, 0x2e, 0x08, 0xcd, 
+0x13, 0x08, 0xfe, 0x1a, 0xc2, 0x58, 0x18, 0xc9, 0xc3, 0xda, 0x17, 0xc9, 
+0x01, 0x8f, 0x03, 0xcd, 0xaf, 0x09, 0xc9, 0x2a, 0x4b, 0x1e, 0x4d, 0xcd, 
+0x5e, 0x08, 0x11, 0x9e, 0x03, 0x01, 0x30, 0x1e, 0xcd, 0xfd, 0x15, 0x32, 
+0x05, 0x1e, 0x01, 0x30, 0x1e, 0xc5, 0x1e, 0x03, 0x01, 0xa4, 0x1f, 0xcd, 
+0x18, 0x0a, 0x3a, 0x30, 0x1e, 0xe6, 0x7f, 0x32, 0x30, 0x1e, 0x3a, 0x31, 
+0x1e, 0xe6, 0x7f, 0x32, 0x31, 0x1e, 0x01, 0xa2, 0x03, 0xcd, 0xea, 0x15, 
+0x01, 0x27, 0x1e, 0xcd, 0xb3, 0x08, 0x01, 0x27, 0x1e, 0xcd, 0xe3, 0x08, 
+0x3a, 0xae, 0x1e, 0xfe, 0xff, 0xc2, 0xb2, 0x18, 0x01, 0xa5, 0x03, 0xcd, 
+0xaf, 0x09, 0x21, 0x47, 0x1e, 0x36, 0x00, 0x21, 0x00, 0x00, 0x22, 0xa1, 
+0x1e, 0xc9, 0x21, 0xff, 0xff, 0x22, 0x9f, 0x1e, 0xcd, 0x37, 0x09, 0x2a, 
+0x03, 0x1e, 0x4d, 0xcd, 0x5e, 0x08, 0x01, 0x06, 0x1e, 0xcd, 0x6e, 0x08, 
+0xcd, 0x2f, 0x09, 0x3a, 0x61, 0x1f, 0x2f, 0xf5, 0x3a, 0x10, 0x1e, 0x07, 
+0xc1, 0x48, 0xa1, 0x1f, 0xd2, 0xec, 0x18, 0x21, 0xae, 0x1e, 0x36, 0xff, 
+0x3a, 0xae, 0x1e, 0xfe, 0xff, 0xc2, 0xfa, 0x18, 0x01, 0xb8, 0x03, 0xcd, 
+0xaf, 0x09, 0x21, 0x26, 0x1e, 0x36, 0x00, 0x11, 0xc0, 0x03, 0x01, 0x0f, 
+0x1e, 0xcd, 0xfd, 0x15, 0x32, 0x04, 0x1e, 0x2a, 0xfd, 0x1d, 0x22, 0x9d, 
+0x1e, 0xc9, 0x3e, 0x00, 0x21, 0x62, 0x1f, 0xbe, 0xd2, 0x21, 0x19, 0x01, 
+0xc4, 0x03, 0xcd, 0xaf, 0x09, 0x3e, 0x00, 0x21, 0x60, 0x1f, 0xbe, 0xd2, 
+0x30, 0x19, 0x01, 0xd4, 0x03, 0xcd, 0xaf, 0x09, 0xc9, 0x21, 0xbc, 0x1f, 
+0x71, 0x3a, 0xbc, 0x1f, 0x1f, 0xd2, 0x45, 0x19, 0x3a, 0x13, 0x1e, 0x32, 
+0x34, 0x1e, 0xc3, 0x4a, 0x19, 0x21, 0x34, 0x1e, 0x36, 0x00, 0x2a, 0xa1, 
+0x1e, 0x7d, 0xe6, 0x7f, 0xfe, 0x00, 0xca, 0x61, 0x19, 0x21, 0x34, 0x1e, 
+0x34, 0x0e, 0x1a, 0xcd, 0x45, 0x0e, 0xc3, 0x4a, 0x19, 0xcd, 0x12, 0x19, 
+0xcd, 0xc8, 0x0a, 0x2a, 0x4b, 0x1e, 0x4d, 0xcd, 0x5e, 0x08, 0x01, 0x27, 
+0x1e, 0xcd, 0x81, 0x08, 0x3a, 0xae, 0x1e, 0xfe, 0xff, 0xc2, 0x82, 0x19, 
+0x01, 0xe3, 0x03, 0xcd, 0xaf, 0x09, 0x01, 0xa4, 0x1f, 0xcd, 0xea, 0x15, 
+0x21, 0x33, 0x1e, 0x36, 0x00, 0x01, 0x27, 0x1e, 0xcd, 0x6e, 0x08, 0x3a, 
+0xae, 0x1e, 0xfe, 0xff, 0xca, 0xe9, 0x19, 0x3a, 0x30, 0x1e, 0x07, 0x1f, 
+0xd2, 0xe3, 0x19, 0x3a, 0x66, 0x1f, 0x1f, 0xda, 0xd5, 0x19, 0x01, 0x01, 
+0x04, 0xcd, 0x39, 0x08, 0xcd, 0x13, 0x08, 0x4f, 0xcd, 0xee, 0x0e, 0xfe, 
+0x59, 0xca, 0xd2, 0x19, 0x01, 0x23, 0x04, 0xcd, 0x39, 0x08, 0xcd, 0x2e, 
+0x08, 0x01, 0x33, 0x04, 0xcd, 0xea, 0x15, 0x01, 0x27, 0x1e, 0xcd, 0xb3, 
+0x08, 0xc9, 0xcd, 0x2e, 0x08, 0x3a, 0x30, 0x1e, 0xe6, 0x7f, 0x32, 0x30, 
+0x1e, 0x01, 0x27, 0x1e, 0xcd, 0x06, 0x09, 0x01, 0x27, 0x1e, 0xcd, 0xb3, 
+0x08, 0x01, 0x27, 0x1e, 0xc5, 0x1e, 0x10, 0x01, 0x37, 0x1e, 0xcd, 0x18, 
+0x0a, 0x01, 0x36, 0x04, 0xcd, 0xea, 0x15, 0x01, 0x27, 0x1e, 0xcd, 0xf6, 
+0x08, 0xc9, 0x0e, 0x07, 0x21, 0xff, 0x1d, 0xcd, 0x6a, 0x1d, 0x3e, 0xff, 
+0xcd, 0x41, 0x1d, 0x2b, 0xeb, 0x21, 0xfb, 0x1d, 0x73, 0xc9, 0x21, 0xca, 
+0x1f, 0x22, 0x01, 0x1e, 0x01, 0x00, 0x40, 0x11, 0xff, 0x1d, 0xcd, 0x93, 
+0x1d, 0xda, 0x31, 0x1a, 0x21, 0x80, 0x7f, 0x22, 0xff, 0x1d, 0xc3, 0x3c, 
+0x1a, 0x2a, 0xfd, 0x1d, 0xeb, 0x2a, 0xff, 0x1d, 0x19, 0x22, 0xff, 0x1d, 
+0xcd, 0x02, 0x1a, 0xc9, 0x01, 0xca, 0x1f, 0x11, 0x06, 0x00, 0xcd, 0x93, 
+0x1d, 0x0e, 0x01, 0xe5, 0xcd, 0x6e, 0x1d, 0x01, 0xca, 0x1f, 0x09, 0x22, 
+0x01, 0x1e, 0x11, 0x00, 0xff, 0xe1, 0xcd, 0x44, 0x1d, 0x0e, 0x01, 0xcd, 
+0x6e, 0x1d, 0x22, 0xfd, 0x1d, 0x22, 0xff, 0x1d, 0xcd, 0x02, 0x1a, 0xc9, 
+0x3a, 0xa4, 0x1e, 0xd6, 0x00, 0xc6, 0xff, 0x9f, 0x21, 0x51, 0x1f, 0xa6, 
+0x32, 0xbd, 0x1f, 0x1f, 0xd2, 0x82, 0x1a, 0xcd, 0x16, 0x1a, 0x3a, 0x58, 
+0x1f, 0x21, 0x57, 0x1f, 0xb6, 0x1f, 0xd2, 0x93, 0x1a, 0xcd, 0xda, 0x17, 
+0xc3, 0xa4, 0x1a, 0xcd, 0x3a, 0x16, 0x1f, 0xda, 0xa4, 0x1a, 0x2a, 0xa8, 
+0x1e, 0x4d, 0xcd, 0x45, 0x0e, 0xc3, 0x93, 0x1a, 0x3a, 0xbd, 0x1f, 0x1f, 
+0xd2, 0xb1, 0x1a, 0xcd, 0x18, 0x0e, 0xcd, 0x40, 0x1a, 0xc9, 0xcd, 0x40, 
+0x1a, 0x3a, 0x4f, 0x1f, 0x32, 0x4d, 0x1f, 0xcd, 0x63, 0x18, 0xcd, 0xbe, 
+0x18, 0x21, 0xbe, 0x1f, 0x36, 0x01, 0x23, 0x36, 0x00, 0x3e, 0x19, 0x21, 
+0xbf, 0x1f, 0xbe, 0xda, 0x29, 0x1b, 0x2a, 0xbf, 0x1f, 0x26, 0x00, 0x01, 
+0x50, 0x1f, 0x09, 0x7e, 0xfe, 0x00, 0xca, 0x22, 0x1b, 0x3a, 0xbf, 0x1f, 
+0xd6, 0x06, 0xd6, 0x01, 0x9f, 0xf5, 0x3a, 0xbf, 0x1f, 0xd6, 0x0e, 0xd6, 
+0x01, 0x9f, 0xc1, 0x48, 0xb1, 0xf5, 0x3a, 0xbf, 0x1f, 0xd6, 0x11, 0xd6, 
+0x01, 0x9f, 0xc1, 0x48, 0xb1, 0xf5, 0x3a, 0xbf, 0x1f, 0xd6, 0x15, 0xd6, 
+0x01, 0x9f, 0xc1, 0x48, 0xb1, 0xf5, 0x3a, 0xbf, 0x1f, 0xd6, 0x16, 0xd6, 
+0x01, 0x9f, 0xc1, 0x48, 0xb1, 0x1f, 0xda, 0x22, 0x1b, 0x21, 0xbe, 0x1f, 
+0x36, 0x00, 0x21, 0xbf, 0x1f, 0x34, 0xc2, 0xc9, 0x1a, 0x3a, 0xbe, 0x1f, 
+0x1f, 0xd2, 0x5f, 0x1b, 0xcd, 0x16, 0x1a, 0xcd, 0x6a, 0x1b, 0x1f, 0xda, 
+0x59, 0x1b, 0xcd, 0x4f, 0x0a, 0xcd, 0x6a, 0x1b, 0x1f, 0xd2, 0x4d, 0x1b, 
+0x2a, 0x9f, 0x1e, 0x22, 0xa1, 0x1e, 0xc3, 0x53, 0x1b, 0x2a, 0xff, 0x1d, 
+0x22, 0xa1, 0x1e, 0xcd, 0xc8, 0x0a, 0xc3, 0x33, 0x1b, 0xcd, 0x40, 0x1a, 
+0xc3, 0x62, 0x1b, 0xcd, 0x6c, 0x1a, 0x2a, 0xbe, 0x1f, 0x4d, 0xcd, 0x31, 
+0x19, 0xc9, 0x01, 0xff, 0xff, 0x11, 0x9f, 0x1e, 0xcd, 0x93, 0x1d, 0xb5, 
+0xc6, 0xff, 0x9f, 0xc9, 0x21, 0x00, 0x00, 0x22, 0xc0, 0x1f, 0x22, 0xc4, 
+0x1f, 0xcd, 0x37, 0x09, 0x2a, 0x03, 0x1e, 0x4d, 0xcd, 0x5e, 0x08, 0x01, 
+0x80, 0x00, 0xcd, 0x86, 0x09, 0x01, 0x5c, 0x00, 0xcd, 0x94, 0x08, 0x21, 
+0x00, 0x00, 0x22, 0xc2, 0x1f, 0x3a, 0xae, 0x1e, 0xd6, 0xff, 0xc6, 0xff, 
+0x9f, 0x01, 0xc0, 0x1f, 0x11, 0xc2, 0x1f, 0xf5, 0xcd, 0x8e, 0x1d, 0x9f, 
+0xc1, 0x48, 0xa1, 0x1f, 0xd2, 0xc4, 0x1b, 0x2a, 0xc2, 0x1f, 0x23, 0x22, 
+0xc2, 0x1f, 0xcd, 0xa7, 0x08, 0xc3, 0x9d, 0x1b, 0xcd, 0x2f, 0x09, 0x3a, 
+0xae, 0x1e, 0xfe, 0xff, 0xc2, 0xe5, 0x1b, 0x3e, 0x00, 0x11, 0xc4, 0x1f, 
+0xcd, 0x9b, 0x1d, 0xb5, 0xc2, 0xe1, 0x1b, 0x01, 0x39, 0x04, 0xcd, 0xaf, 
+0x09, 0xcd, 0x2e, 0x08, 0xc9, 0x2a, 0xc2, 0x1f, 0x23, 0x22, 0xc0, 0x1f, 
+0x3a, 0xae, 0x1e, 0xe6, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x5f, 0x16, 
+0x00, 0x21, 0x80, 0x00, 0x19, 0xe5, 0x1e, 0x10, 0x01, 0x27, 0x1e, 0xcd, 
+0x18, 0x0a, 0x21, 0x27, 0x1e, 0x36, 0x00, 0x21, 0x33, 0x1e, 0x36, 0x00, 
+0x01, 0x27, 0x1e, 0xc5, 0x1e, 0x10, 0x01, 0x06, 0x1e, 0xcd, 0x18, 0x0a, 
+0x3a, 0x31, 0x1e, 0x07, 0x2f, 0x21, 0x61, 0x1f, 0xb6, 0x1f, 0xd2, 0x45, 
+0x1c, 0x2a, 0xc4, 0x1f, 0x23, 0x22, 0xc4, 0x1f, 0x3e, 0x01, 0xcd, 0x7a, 
+0x1d, 0xb5, 0xc2, 0x3f, 0x1c, 0x01, 0x43, 0x04, 0xcd, 0x39, 0x08, 0xcd, 
+0x49, 0x1c, 0xcd, 0xb2, 0x1a, 0xc3, 0x81, 0x1b, 0xc9, 0xcd, 0x2e, 0x08, 
+0x21, 0xc6, 0x1f, 0x36, 0x01, 0x3e, 0x0b, 0x21, 0xc6, 0x1f, 0xbe, 0xda, 
+0x87, 0x1c, 0x2a, 0xc6, 0x1f, 0x26, 0x00, 0x01, 0x27, 0x1e, 0x09, 0x7e, 
+0x32, 0xc7, 0x1f, 0xfe, 0x20, 0xca, 0x80, 0x1c, 0x3a, 0xc6, 0x1f, 0xfe, 
+0x09, 0xc2, 0x79, 0x1c, 0x0e, 0x2e, 0xcd, 0x1c, 0x08, 0x2a, 0xc7, 0x1f, 
+0x4d, 0xcd, 0x1c, 0x08, 0x21, 0xc6, 0x1f, 0x34, 0xc2, 0x51, 0x1c, 0xc9, 
+0x3e, 0x00, 0x21, 0x94, 0x1f, 0xbe, 0xd2, 0x9b, 0x1c, 0x3a, 0x94, 0x1f, 
+0x3d, 0x32, 0x03, 0x1e, 0xc3, 0xa1, 0x1c, 0x3a, 0xfc, 0x1d, 0x32, 0x03, 
+0x1e, 0xc9, 0x3a, 0xf6, 0x1d, 0x1f, 0xd2, 0xac, 0x1c, 0xcd, 0x5c, 0x18, 
+0x3e, 0x00, 0x21, 0x94, 0x1f, 0xbe, 0xd2, 0xbf, 0x1c, 0x3a, 0x94, 0x1f, 
+0x3d, 0x32, 0x4b, 0x1e, 0xc3, 0xc5, 0x1c, 0x3a, 0xfc, 0x1d, 0x32, 0x4b, 
+0x1e, 0xc9, 0x21, 0xc0, 0x1e, 0x3a, 0xc1, 0x1e, 0xbe, 0xca, 0xd1, 0x1c, 
+0xc9, 0x21, 0x03, 0x1e, 0x3a, 0x4b, 0x1e, 0xbe, 0xc2, 0xde, 0x1c, 0xcd, 
+0x5c, 0x18, 0xc9, 0xcd, 0x11, 0x12, 0x3a, 0xa8, 0x1e, 0xfe, 0x0d, 0xca, 
+0xed, 0x1c, 0xcd, 0x5c, 0x18, 0xc9, 0x21, 0xc9, 0x1f, 0x70, 0x2b, 0x71, 
+0xcd, 0x88, 0x1c, 0xcd, 0xdf, 0x1c, 0x01, 0x06, 0x1e, 0xc5, 0x2a, 0xc8, 
+0x1f, 0x44, 0x4d, 0x1e, 0x21, 0xcd, 0x18, 0x0a, 0xcd, 0xc6, 0x1c, 0xc9, 
+0x01, 0x06, 0x1e, 0xcd, 0x20, 0x12, 0x3a, 0xa9, 0x1e, 0xd6, 0x01, 0xd6, 
+0x01, 0x9f, 0xf5, 0x3a, 0xa8, 0x1e, 0xd6, 0x3d, 0xd6, 0x01, 0x9f, 0xc1, 
+0x48, 0xa1, 0x1f, 0xda, 0x2d, 0x1d, 0xcd, 0x5c, 0x18, 0x3a, 0x4e, 0x1f, 
+0x32, 0x4f, 0x1f, 0xc9, 0xeb, 0x5f, 0x16, 0x00, 0xeb, 0x1a, 0x85, 0x6f, 
+0x13, 0x1a, 0x8c, 0x67, 0xc9, 0x5f, 0x16, 0x00, 0x7b, 0xa5, 0x6f, 0x7a, 
+0xa4, 0x67, 0xc9, 0x5e, 0x23, 0x56, 0xeb, 0x29, 0xe5, 0x29, 0x29, 0xc1, 
+0x09, 0xc9, 0x5f, 0x16, 0x00, 0x7b, 0xb5, 0x6f, 0x7a, 0xb4, 0x67, 0xc9, 
+0x5e, 0x23, 0x56, 0xeb, 0x29, 0x0d, 0xc2, 0x64, 0x1d, 0xc9, 0x5e, 0x23, 
+0x56, 0xeb, 0x7c, 0xb7, 0x1f, 0x67, 0x7d, 0x1f, 0x6f, 0x0d, 0xc2, 0x6e, 
+0x1d, 0xc9, 0x5f, 0x16, 0x00, 0x7b, 0x95, 0x6f, 0x7a, 0x9c, 0x67, 0xc9, 
+0x4f, 0x06, 0x00, 0x7b, 0x91, 0x6f, 0x7a, 0x98, 0x67, 0xc9, 0x69, 0x60, 
+0x4e, 0x23, 0x46, 0x1a, 0x91, 0x6f, 0x13, 0x1a, 0x98, 0x67, 0xc9, 0x6f, 
+0x26, 0x00, 0x1a, 0x95, 0x6f, 0x13, 0x1a, 0x9c, 0x67, 0xc9, 0x06, 0x0c, 
+0x48, 0x0d, 0xc2, 0xa9, 0x1d, 0x3d, 0xc2, 0xa8, 0x1d, 0xc9, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0xc3, 0x33, 0x04, 0x20, 0x20, 0x20, 0x43, 0x6f, 
+0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 
+0x31, 0x39, 0x37, 0x39, 0x2c, 0x20, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 
+0x6c, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3f, 0x3f, 
+0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 
+0x00, 0x43, 0x4f, 0x4e, 0x3a, 0x52, 0x44, 0x52, 0x3a, 0x50, 0x55, 0x4e, 
+0x3a, 0x4c, 0x53, 0x54, 0x3a, 0x44, 0x45, 0x56, 0x3a, 0x56, 0x41, 0x4c, 
+0x3a, 0x55, 0x53, 0x52, 0x3a, 0x44, 0x53, 0x4b, 0x3a, 0x4f, 0x43, 0x43, 
+0x3a, 0x45, 0x43, 0x43, 0x3a, 0x42, 0x41, 0x54, 0x3a, 0x41, 0x55, 0x58, 
+0x3a, 0x43, 0x4f, 0x4d, 0x3a, 0x43, 0x52, 0x54, 0x3a, 0x41, 0x55, 0x58, 
+0x3a, 0x50, 0x52, 0x49, 0x3a, 0x43, 0x4f, 0x4d, 0x3a, 0x43, 0x52, 0x54, 
+0x3a, 0x41, 0x55, 0x58, 0x3a, 0x50, 0x52, 0x4f, 0x3a, 0x4c, 0x50, 0x54, 
+0x3a, 0x43, 0x52, 0x54, 0x3a, 0x43, 0x4f, 0x4d, 0x3a, 0x41, 0x55, 0x58, 
+0x3a, 0x52, 0x2f, 0x4f, 0x00, 0x52, 0x2f, 0x57, 0x00, 0x53, 0x59, 0x53, 
+0x00, 0x44, 0x49, 0x52, 0x00, 0x52, 0x2f, 0x4f, 0x20, 0x52, 0x2f, 0x57, 
+0x20, 0x53, 0x59, 0x53, 0x20, 0x44, 0x49, 0x52, 0x20, 0x2a, 0x2a, 0x20, 
+0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x2a, 0x2a, 0x00, 0x41, 
+0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x55, 0x73, 0x65, 0x72, 0x20, 0x3a, 
+0x00, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x46, 0x69, 0x6c, 0x65, 
+0x73, 0x3a, 0x00, 0x20, 0x20, 0x20, 0x20, 0x00, 0x20, 0x44, 0x72, 0x69, 
+0x76, 0x65, 0x20, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 
+0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x00, 0x36, 0x35, 0x35, 0x33, 0x36, 
+0x3a, 0x20, 0x00, 0x31, 0x32, 0x38, 0x20, 0x42, 0x79, 0x74, 0x65, 0x20, 
+0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x43, 0x61, 0x70, 0x61, 0x63, 
+0x69, 0x74, 0x79, 0x00, 0x4b, 0x69, 0x6c, 0x6f, 0x62, 0x79, 0x74, 0x65, 
+0x20, 0x44, 0x72, 0x69, 0x76, 0x65, 0x20, 0x20, 0x43, 0x61, 0x70, 0x61, 
+0x63, 0x69, 0x74, 0x79, 0x00, 0x33, 0x32, 0x20, 0x20, 0x42, 0x79, 0x74, 
+0x65, 0x20, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 
+0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x00, 0x43, 0x68, 0x65, 0x63, 
+0x6b, 0x65, 0x64, 0x20, 0x20, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 
+0x72, 0x79, 0x20, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x00, 0x52, 
+0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x20, 0x45, 0x78, 0x74, 0x65, 
+0x6e, 0x74, 0x00, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x20, 
+0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x00, 0x53, 0x65, 0x63, 0x74, 0x6f, 0x72, 
+0x73, 0x2f, 0x20, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x00, 0x52, 0x65, 0x73, 
+0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 
+0x00, 0x20, 0x69, 0x73, 0x20, 0x00, 0x54, 0x65, 0x6d, 0x70, 0x20, 0x52, 
+0x2f, 0x4f, 0x20, 0x44, 0x69, 0x73, 0x6b, 0x3a, 0x20, 0x64, 0x3a, 0x3d, 
+0x52, 0x2f, 0x4f, 0x00, 0x53, 0x65, 0x74, 0x20, 0x49, 0x6e, 0x64, 0x69, 
+0x63, 0x61, 0x74, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x3a, 0x66, 0x69, 0x6c, 
+0x65, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x20, 0x24, 0x52, 
+0x2f, 0x4f, 0x20, 0x24, 0x52, 0x2f, 0x57, 0x20, 0x24, 0x53, 0x59, 0x53, 
+0x20, 0x24, 0x44, 0x49, 0x52, 0x00, 0x44, 0x69, 0x73, 0x6b, 0x20, 0x53, 
+0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x20, 0x3a, 0x20, 0x44, 0x53, 0x4b, 
+0x3a, 0x20, 0x64, 0x3a, 0x44, 0x53, 0x4b, 0x3a, 0x00, 0x55, 0x73, 0x65, 
+0x72, 0x20, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x20, 0x3a, 0x20, 
+0x55, 0x53, 0x52, 0x3a, 0x00, 0x49, 0x6f, 0x62, 0x79, 0x74, 0x65, 0x20, 
+0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x00, 0x20, 0x3d, 0x00, 0x42, 
+0x61, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 
+0x00, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x41, 0x73, 0x73, 
+0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x42, 0x61, 0x64, 0x20, 
+0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x00, 0x3a, 0x20, 
+0x00, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x52, 0x65, 0x6d, 0x61, 0x69, 
+0x6e, 0x69, 0x6e, 0x67, 0x20, 0x4f, 0x6e, 0x20, 0x00, 0x52, 0x2f, 0x00, 
+0x2c, 0x20, 0x53, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x20, 0x00, 0x49, 0x6e, 
+0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x49, 
+0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x00, 0x2a, 0x2a, 0x20, 
+0x54, 0x6f, 0x6f, 0x20, 0x4d, 0x61, 0x6e, 0x79, 0x20, 0x46, 0x69, 0x6c, 
+0x65, 0x73, 0x20, 0x2a, 0x2a, 0x00, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x4e, 
+0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x00, 0x20, 0x53, 0x69, 
+0x7a, 0x65, 0x20, 0x00, 0x20, 0x52, 0x65, 0x63, 0x73, 0x20, 0x20, 0x42, 
+0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x45, 0x78, 0x74, 0x20, 0x41, 0x63, 
+0x63, 0x00, 0x36, 0x35, 0x35, 0x33, 0x36, 0x00, 0x20, 0x73, 0x65, 0x74, 
+0x20, 0x74, 0x6f, 0x20, 0x00, 0x52, 0x2f, 0x4f, 0x20, 0x49, 0x6e, 0x76, 
+0x61, 0x6c, 0x69, 0x64, 0x20, 0x44, 0x69, 0x73, 0x6b, 0x20, 0x41, 0x73, 
+0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x57, 0x72, 0x6f, 
+0x6e, 0x67, 0x20, 0x43, 0x50, 0x2f, 0x4d, 0x20, 0x56, 0x65, 0x72, 0x73, 
+0x69, 0x6f, 0x6e, 0x20, 0x28, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 
+0x73, 0x20, 0x32, 0x2e, 0x30, 0x29, 0x00, 0x21, 0x00, 0x00, 0x39, 0x22, 
+0x32, 0x15, 0x21, 0x54, 0x15, 0xf9, 0xcd, 0xed, 0x04, 0xfe, 0x20, 0xd2, 
+0x4f, 0x04, 0x01, 0x11, 0x04, 0xcd, 0xd2, 0x04, 0xc3, 0x8b, 0x04, 0x21, 
+0x5d, 0x15, 0x36, 0x01, 0x3a, 0x5c, 0x00, 0xd6, 0x00, 0xd6, 0x01, 0x9f, 
+0xf5, 0x3a, 0x5d, 0x00, 0xd6, 0x20, 0xd6, 0x01, 0x9f, 0xc1, 0x48, 0xa1, 
+0x1f, 0xd2, 0x72, 0x04, 0xcd, 0x33, 0x0d, 0xc3, 0x8b, 0x04, 0x3a, 0x5c, 
+0x00, 0xfe, 0x00, 0xca, 0x80, 0x04, 0xcd, 0x02, 0x14, 0xc3, 0x8b, 0x04, 
+0xcd, 0x87, 0x0a, 0x2f, 0x1f, 0xd2, 0x8b, 0x04, 0xcd, 0xba, 0x0d, 0x2a, 
+0x32, 0x15, 0xf9, 0xc9, 0x21, 0x22, 0x15, 0x71, 0x2a, 0x22, 0x15, 0x26, 
+0x00, 0xeb, 0x0e, 0x02, 0xcd, 0x4c, 0x14, 0xc9, 0x0e, 0x0d, 0xcd, 0x90, 
+0x04, 0x0e, 0x0a, 0xcd, 0x90, 0x04, 0xc9, 0x0e, 0x20, 0xcd, 0x90, 0x04, 
+0xc9, 0x21, 0x24, 0x15, 0x70, 0x2b, 0x71, 0x2a, 0x23, 0x15, 0x7e, 0xfe, 
+0x00, 0xca, 0xd1, 0x04, 0x2a, 0x23, 0x15, 0x4e, 0xcd, 0x90, 0x04, 0x2a, 
+0x23, 0x15, 0x23, 0x22, 0x23, 0x15, 0xc3, 0xb7, 0x04, 0xc9, 0x21, 0x26, 
+0x15, 0x70, 0x2b, 0x71, 0xcd, 0xa0, 0x04, 0x2a, 0x25, 0x15, 0x44, 0x4d, 
+0xcd, 0xb1, 0x04, 0xc9, 0x11, 0x00, 0x00, 0x0e, 0x0b, 0xcd, 0x4f, 0x14, 
+0xc9, 0x11, 0x00, 0x00, 0x0e, 0x0c, 0xcd, 0x4f, 0x14, 0xc9, 0x21, 0x28, 
+0x15, 0x71, 0x2a, 0x28, 0x15, 0x26, 0x00, 0xeb, 0x0e, 0x0e, 0xcd, 0x4c, 
+0x14, 0xc9, 0x21, 0x2a, 0x15, 0x70, 0x2b, 0x71, 0x2a, 0x29, 0x15, 0xeb, 
+0x0e, 0x0f, 0xcd, 0x4f, 0x14, 0x32, 0x27, 0x15, 0xc9, 0x21, 0x2c, 0x15, 
+0x70, 0x2b, 0x71, 0x2a, 0x2b, 0x15, 0xeb, 0x0e, 0x11, 0xcd, 0x4f, 0x14, 
+0x32, 0x27, 0x15, 0xc9, 0x11, 0x00, 0x00, 0x0e, 0x12, 0xcd, 0x4f, 0x14, 
+0x32, 0x27, 0x15, 0xc9, 0x11, 0x00, 0x00, 0x0e, 0x19, 0xcd, 0x4f, 0x14, 
+0xc9, 0x21, 0x2e, 0x15, 0x70, 0x2b, 0x71, 0x2a, 0x2d, 0x15, 0xeb, 0x0e, 
+0x1a, 0xcd, 0x4c, 0x14, 0xc9, 0x11, 0x00, 0x00, 0x0e, 0x1b, 0xcd, 0x52, 
+0x14, 0xc9, 0x11, 0x00, 0x00, 0x0e, 0x18, 0xcd, 0x52, 0x14, 0xc9, 0x11, 
+0x00, 0x00, 0x0e, 0x1c, 0xcd, 0x4c, 0x14, 0xc9, 0x11, 0x00, 0x00, 0x0e, 
+0x1d, 0xcd, 0x52, 0x14, 0xc9, 0x11, 0x5c, 0x00, 0x0e, 0x1e, 0xcd, 0x4c, 
+0x14, 0xc9, 0x11, 0x00, 0x00, 0x0e, 0x1f, 0xcd, 0x52, 0x14, 0x22, 0x1e, 
+0x15, 0xc9, 0x11, 0xff, 0x00, 0x0e, 0x20, 0xcd, 0x4f, 0x14, 0xc9, 0x21, 
+0x2f, 0x15, 0x71, 0x2a, 0x2f, 0x15, 0x26, 0x00, 0xeb, 0x0e, 0x20, 0xcd, 
+0x4c, 0x14, 0xc9, 0x21, 0x31, 0x15, 0x70, 0x2b, 0x71, 0x2a, 0x30, 0x15, 
+0xeb, 0x0e, 0x23, 0xcd, 0x4c, 0x14, 0xc9, 0xcd, 0x7e, 0x05, 0x2a, 0x1e, 
+0x15, 0x23, 0x23, 0x4e, 0x21, 0x01, 0x00, 0xcd, 0xbd, 0x14, 0x11, 0x80, 
+0x00, 0xcd, 0x9e, 0x14, 0x22, 0x54, 0x15, 0xc9, 0x21, 0x56, 0x15, 0x71, 
+0x2a, 0x56, 0x15, 0x4d, 0xcd, 0xf6, 0x04, 0xcd, 0xb3, 0x05, 0xc9, 0x21, 
+0x58, 0x15, 0x70, 0x2b, 0x71, 0x0e, 0x03, 0x21, 0x57, 0x15, 0xcd, 0xc3, 
+0x14, 0xeb, 0x2a, 0x20, 0x15, 0x19, 0x3e, 0x07, 0x11, 0x57, 0x15, 0xe5, 
+0xcd, 0x72, 0x14, 0x23, 0x4d, 0xe1, 0xcd, 0xb2, 0x14, 0xc9, 0x21, 0x5f, 
+0x15, 0x70, 0x2b, 0x71, 0x21, 0x60, 0x15, 0x36, 0x00, 0x3e, 0x03, 0x21, 
+0x60, 0x15, 0xbe, 0xda, 0x36, 0x06, 0x2a, 0x60, 0x15, 0x26, 0x00, 0xeb, 
+0x2a, 0x5e, 0x15, 0x19, 0xe5, 0x2a, 0x60, 0x15, 0x26, 0x00, 0x01, 0x59, 
+0x15, 0x09, 0xd1, 0x1a, 0xbe, 0xca, 0x2f, 0x06, 0x3e, 0x00, 0xc9, 0x21, 
+0x60, 0x15, 0x34, 0xc2, 0x09, 0x06, 0x3e, 0x01, 0xc9, 0x2a, 0x5d, 0x15, 
+0x26, 0x00, 0x01, 0x80, 0x00, 0x09, 0x7e, 0xfe, 0x20, 0xc2, 0x4f, 0x06, 
+0x21, 0x5d, 0x15, 0x34, 0xc3, 0x39, 0x06, 0x21, 0x61, 0x15, 0x36, 0x00, 
+0x3a, 0x61, 0x15, 0xfe, 0x04, 0xd2, 0xe6, 0x06, 0x2a, 0x5d, 0x15, 0x26, 
+0x00, 0x01, 0x80, 0x00, 0x09, 0x7e, 0x32, 0x62, 0x15, 0x4f, 0x3e, 0x01, 
+0xb9, 0xd2, 0x7a, 0x06, 0x2a, 0x62, 0x15, 0x4d, 0xcd, 0xeb, 0x06, 0xc3, 
+0x7f, 0x06, 0x0e, 0x20, 0xcd, 0xeb, 0x06, 0x3e, 0x01, 0x21, 0x62, 0x15, 
+0x96, 0x9f, 0x2f, 0xf5, 0x7e, 0xd6, 0x2c, 0xd6, 0x01, 0x9f, 0xc1, 0x48, 
+0xb1, 0xf5, 0x7e, 0xd6, 0x3a, 0xd6, 0x01, 0x9f, 0xc1, 0x48, 0xb1, 0xf5, 
+0x7e, 0xd6, 0x2a, 0xd6, 0x01, 0x9f, 0xc1, 0x48, 0xb1, 0xf5, 0x7e, 0xd6, 
+0x2e, 0xd6, 0x01, 0x9f, 0xc1, 0x48, 0xb1, 0xf5, 0x7e, 0xd6, 0x3e, 0xd6, 
+0x01, 0x9f, 0xc1, 0x48, 0xb1, 0xf5, 0x7e, 0xd6, 0x3c, 0xd6, 0x01, 0x9f, 
+0xc1, 0x48, 0xb1, 0xf5, 0x7e, 0xd6, 0x3d, 0xd6, 0x01, 0x9f, 0xc1, 0x48, 
+0xb1, 0x1f, 0xd2, 0xdf, 0x06, 0x2a, 0x5d, 0x15, 0x26, 0x00, 0x01, 0x80, 
+0x00, 0x09, 0x36, 0x01, 0xc3, 0xe3, 0x06, 0x21, 0x5d, 0x15, 0x34, 0xc3, 
+0x54, 0x06, 0x21, 0x5d, 0x15, 0x34, 0xc9, 0x21, 0x63, 0x15, 0x71, 0x2a, 
+0x61, 0x15, 0x26, 0x00, 0x01, 0x59, 0x15, 0x09, 0x3a, 0x63, 0x15, 0x77, 
+0x21, 0x61, 0x15, 0x34, 0xc9, 0x21, 0x67, 0x15, 0x72, 0x2b, 0x73, 0x2b, 
+0x70, 0x2b, 0x71, 0x21, 0x68, 0x15, 0x36, 0x01, 0x3e, 0x00, 0x11, 0x66, 
+0x15, 0xcd, 0xea, 0x14, 0xb5, 0xca, 0x72, 0x07, 0x2a, 0x64, 0x15, 0xeb, 
+0x2a, 0x66, 0x15, 0xcd, 0x7f, 0x14, 0x21, 0x69, 0x15, 0x73, 0x2a, 0x64, 
+0x15, 0xeb, 0xcd, 0x81, 0x14, 0x22, 0x64, 0x15, 0x50, 0x59, 0x21, 0x0a, 
+0x00, 0xcd, 0x7f, 0x14, 0xeb, 0x22, 0x66, 0x15, 0x3e, 0x00, 0xcd, 0xd3, 
+0x14, 0xb5, 0xc6, 0xff, 0x9f, 0x21, 0x68, 0x15, 0xa6, 0x23, 0xf5, 0x7e, 
+0x93, 0xd6, 0x01, 0x9f, 0xc1, 0x48, 0xa1, 0x1f, 0xd2, 0x61, 0x07, 0xcd, 
+0xab, 0x04, 0xc3, 0x6f, 0x07, 0x21, 0x68, 0x15, 0x36, 0x00, 0x3a, 0x69, 
+0x15, 0xc6, 0x30, 0x4f, 0xcd, 0x90, 0x04, 0xc3, 0x10, 0x07, 0xc9, 0x21, 
+0x6d, 0x15, 0x72, 0x2b, 0x73, 0x2b, 0x70, 0x2b, 0x71, 0x2a, 0x6c, 0x15, 
+0x11, 0x54, 0x15, 0xe5, 0xcd, 0x5a, 0x14, 0xeb, 0xe1, 0x73, 0x23, 0x72, 
+0x2a, 0x6c, 0x15, 0xeb, 0x01, 0x00, 0x04, 0xcd, 0xe2, 0x14, 0xda, 0xb6, 
+0x07, 0x2a, 0x6c, 0x15, 0xeb, 0x01, 0x00, 0x04, 0xcd, 0xe2, 0x14, 0xeb, 
+0x2b, 0x73, 0x23, 0x72, 0x2a, 0x6a, 0x15, 0x4e, 0x23, 0x46, 0x03, 0x2b, 
+0x71, 0x23, 0x70, 0xc3, 0x8c, 0x07, 0xc9, 0x21, 0x6e, 0x15, 0x71, 0x21, 
+0x00, 0x00, 0x22, 0x6f, 0x15, 0x22, 0x71, 0x15, 0x7d, 0x32, 0x75, 0x15, 
+0x6f, 0x26, 0x00, 0x22, 0x73, 0x15, 0x01, 0x05, 0x00, 0x2a, 0x1e, 0x15, 
+0x09, 0xeb, 0x01, 0x73, 0x15, 0xcd, 0xdd, 0x14, 0xda, 0x0e, 0x08, 0x3a, 
+0x6e, 0x15, 0x1f, 0xd2, 0xf1, 0x07, 0x2a, 0x73, 0x15, 0x44, 0x4d, 0xcd, 
+0xdb, 0x05, 0x32, 0x75, 0x15, 0x3a, 0x75, 0x15, 0x1f, 0xda, 0x01, 0x08, 
+0x11, 0x71, 0x15, 0x01, 0x6f, 0x15, 0xcd, 0x73, 0x07, 0x11, 0x01, 0x00, 
+0x2a, 0x73, 0x15, 0x19, 0x22, 0x73, 0x15, 0xd2, 0xce, 0x07, 0x2a, 0x6f, 
+0x15, 0xc9, 0x01, 0xb9, 0x01, 0xcd, 0xd2, 0x04, 0xc9, 0x01, 0xc7, 0x01, 
+0xcd, 0xd2, 0x04, 0xcd, 0x8a, 0x05, 0x4f, 0x06, 0x00, 0x11, 0x0a, 0x00, 
+0xcd, 0x01, 0x07, 0x01, 0xd5, 0x01, 0xcd, 0xd2, 0x04, 0x21, 0x76, 0x15, 
+0x36, 0x00, 0x3e, 0x1f, 0x21, 0x76, 0x15, 0xbe, 0xda, 0x51, 0x08, 0x2a, 
+0x76, 0x15, 0x26, 0x00, 0x01, 0x77, 0x15, 0x09, 0x36, 0x00, 0x60, 0x69, 
+0x2b, 0x34, 0xc2, 0x36, 0x08, 0x01, 0xcf, 0x29, 0xcd, 0x41, 0x05, 0x01, 
+0x2a, 0x01, 0xcd, 0x19, 0x05, 0x3a, 0x27, 0x15, 0xfe, 0xff, 0xca, 0x93, 
+0x08, 0x3a, 0x27, 0x15, 0xe6, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x4f, 
+0x06, 0x00, 0x21, 0xcf, 0x29, 0x09, 0x7e, 0x32, 0x76, 0x15, 0xfe, 0xe5, 
+0xca, 0x8d, 0x08, 0x3a, 0x76, 0x15, 0xe6, 0x1f, 0x4f, 0x06, 0x00, 0x21, 
+0x77, 0x15, 0x09, 0x36, 0x01, 0xcd, 0x2c, 0x05, 0xc3, 0x5d, 0x08, 0x21, 
+0x76, 0x15, 0x36, 0x00, 0x3e, 0x1f, 0x21, 0x76, 0x15, 0xbe, 0xda, 0xc2, 
+0x08, 0x2a, 0x76, 0x15, 0x26, 0x00, 0x01, 0x77, 0x15, 0x09, 0x7e, 0x1f, 
+0xd2, 0xbb, 0x08, 0x2a, 0x76, 0x15, 0x4d, 0x06, 0x00, 0x11, 0x0a, 0x00, 
+0xcd, 0x01, 0x07, 0x21, 0x76, 0x15, 0x34, 0xc2, 0x98, 0x08, 0xc9, 0x01, 
+0xe3, 0x01, 0xcd, 0xd2, 0x04, 0xcd, 0x38, 0x05, 0xc6, 0x41, 0x4f, 0xcd, 
+0x90, 0x04, 0x0e, 0x3a, 0xcd, 0x90, 0x04, 0x01, 0xe8, 0x01, 0xcd, 0xb1, 
+0x04, 0x2a, 0x1e, 0x15, 0x23, 0x23, 0x4e, 0x21, 0x01, 0x00, 0xcd, 0xbd, 
+0x14, 0x22, 0x97, 0x15, 0x01, 0x05, 0x00, 0x2a, 0x1e, 0x15, 0x09, 0x4e, 
+0x23, 0x46, 0x03, 0x2a, 0x97, 0x15, 0xeb, 0xcd, 0xa0, 0x14, 0x22, 0x99, 
+0x15, 0x3e, 0x00, 0xcd, 0xd3, 0x14, 0xb5, 0xd6, 0x01, 0x9f, 0x21, 0x97, 
+0x15, 0xf5, 0xcd, 0xf8, 0x14, 0xb5, 0xc6, 0xff, 0x9f, 0xc1, 0x48, 0xa1, 
+0x1f, 0xd2, 0x25, 0x09, 0x01, 0xff, 0x01, 0xcd, 0xd2, 0x04, 0xc3, 0x2d, 
+0x09, 0x2a, 0x99, 0x15, 0x44, 0x4d, 0xcd, 0xc0, 0x09, 0x01, 0x07, 0x02, 
+0xcd, 0xb1, 0x04, 0x0e, 0x00, 0xcd, 0xb7, 0x07, 0x44, 0x4d, 0xcd, 0xc0, 
+0x09, 0x01, 0x20, 0x02, 0xcd, 0xb1, 0x04, 0x01, 0x07, 0x00, 0x2a, 0x1e, 
+0x15, 0x09, 0x4e, 0x23, 0x46, 0x03, 0xcd, 0xc0, 0x09, 0x01, 0x39, 0x02, 
+0xcd, 0xb1, 0x04, 0x01, 0x0b, 0x00, 0x2a, 0x1e, 0x15, 0x09, 0x5e, 0x23, 
+0x56, 0xeb, 0x29, 0x29, 0x44, 0x4d, 0xcd, 0xc0, 0x09, 0x01, 0x54, 0x02, 
+0xcd, 0xb1, 0x04, 0x01, 0x04, 0x00, 0x2a, 0x1e, 0x15, 0x09, 0x7e, 0x3c, 
+0x6f, 0x26, 0x00, 0x11, 0x80, 0x00, 0xcd, 0x9e, 0x14, 0x44, 0x4d, 0xcd, 
+0xc0, 0x09, 0x01, 0x6f, 0x02, 0xcd, 0xb1, 0x04, 0x2a, 0x97, 0x15, 0x44, 
+0x4d, 0xcd, 0xc0, 0x09, 0x01, 0x7f, 0x02, 0xcd, 0xb1, 0x04, 0x2a, 0x1e, 
+0x15, 0x4e, 0x23, 0x46, 0xcd, 0xc0, 0x09, 0x01, 0x8e, 0x02, 0xcd, 0xb1, 
+0x04, 0x01, 0x0d, 0x00, 0x2a, 0x1e, 0x15, 0x09, 0x4e, 0x23, 0x46, 0xcd, 
+0xc0, 0x09, 0x01, 0x9d, 0x02, 0xcd, 0xb1, 0x04, 0xcd, 0xa0, 0x04, 0xc9, 
+0x21, 0x9c, 0x15, 0x70, 0x2b, 0x71, 0xcd, 0xa0, 0x04, 0x2a, 0x9b, 0x15, 
+0x44, 0x4d, 0x11, 0x10, 0x27, 0xcd, 0x01, 0x07, 0x0e, 0x3a, 0xcd, 0x90, 
+0x04, 0xcd, 0xab, 0x04, 0xc9, 0xcd, 0x5a, 0x05, 0x22, 0x9d, 0x15, 0x21, 
+0x9f, 0x15, 0x36, 0x00, 0x3e, 0x00, 0x11, 0x9d, 0x15, 0xcd, 0xea, 0x14, 
+0xb5, 0xca, 0x18, 0x0a, 0x2a, 0x9d, 0x15, 0x7d, 0x1f, 0xd2, 0x06, 0x0a, 
+0x2a, 0x9f, 0x15, 0x4d, 0xcd, 0xcc, 0x05, 0xcd, 0xc3, 0x08, 0x0e, 0x01, 
+0x21, 0x9d, 0x15, 0xcd, 0xc3, 0x14, 0xeb, 0x2b, 0x73, 0x23, 0x72, 0x23, 
+0x34, 0xc3, 0xe8, 0x09, 0xc9, 0x21, 0xa2, 0x15, 0x73, 0x2b, 0x70, 0x2b, 
+0x71, 0x21, 0xa4, 0x15, 0x36, 0x00, 0x21, 0xa6, 0x15, 0x36, 0x00, 0x36, 
+0x01, 0x3a, 0xa2, 0x15, 0x21, 0xa6, 0x15, 0xbe, 0xda, 0x84, 0x0a, 0x21, 
+0xa5, 0x15, 0x36, 0x01, 0x21, 0xa3, 0x15, 0x36, 0x00, 0x3e, 0x03, 0x21, 
+0xa3, 0x15, 0xbe, 0xda, 0x72, 0x0a, 0x2a, 0xa4, 0x15, 0x26, 0x00, 0xeb, 
+0x2a, 0xa0, 0x15, 0x19, 0xe5, 0x2a, 0xa3, 0x15, 0x26, 0x00, 0x01, 0x59, 
+0x15, 0x09, 0xd1, 0x1a, 0xbe, 0xca, 0x69, 0x0a, 0x21, 0xa5, 0x15, 0x36, 
+0x00, 0x21, 0xa4, 0x15, 0x34, 0x2b, 0x34, 0xc2, 0x41, 0x0a, 0x3a, 0xa5, 
+0x15, 0x1f, 0xd2, 0x7d, 0x0a, 0x3a, 0xa6, 0x15, 0xc9, 0x21, 0xa6, 0x15, 
+0x34, 0xc2, 0x2d, 0x0a, 0x3e, 0x00, 0xc9, 0x21, 0xaa, 0x15, 0x36, 0x00, 
+0xcd, 0x39, 0x06, 0x1e, 0x08, 0x01, 0x39, 0x01, 0xcd, 0x19, 0x0a, 0x32, 
+0xa7, 0x15, 0xfe, 0x00, 0xc2, 0xa8, 0x0a, 0x3a, 0xaa, 0x15, 0xd6, 0x00, 
+0xc6, 0xff, 0x9f, 0xc9, 0x21, 0xaa, 0x15, 0x34, 0x3a, 0xa7, 0x15, 0xfe, 
+0x05, 0xc2, 0x18, 0x0b, 0x3a, 0x03, 0x00, 0x32, 0xa9, 0x15, 0x21, 0xa8, 
+0x15, 0x36, 0x00, 0x2b, 0x36, 0x00, 0x3e, 0x03, 0x21, 0xa7, 0x15, 0xbe, 
+0xda, 0x15, 0x0b, 0x3a, 0xa7, 0x15, 0x87, 0x87, 0x4f, 0x06, 0x00, 0x21, 
+0x39, 0x01, 0x09, 0x44, 0x4d, 0xcd, 0x69, 0x0c, 0x01, 0xad, 0x02, 0xcd, 
+0xb1, 0x04, 0x3a, 0xa9, 0x15, 0xe6, 0x03, 0x87, 0x87, 0x21, 0xa8, 0x15, 
+0x86, 0x4f, 0x06, 0x00, 0x21, 0x59, 0x01, 0x09, 0x44, 0x4d, 0xcd, 0x69, 
+0x0c, 0x3a, 0xa8, 0x15, 0xc6, 0x10, 0x32, 0xa8, 0x15, 0x3a, 0xa9, 0x15, 
+0xe6, 0xfe, 0x1f, 0x1f, 0x32, 0xa9, 0x15, 0xcd, 0xa0, 0x04, 0x21, 0xa7, 
+0x15, 0x34, 0xc2, 0xc2, 0x0a, 0xc3, 0x46, 0x0c, 0x3a, 0xa7, 0x15, 0xfe, 
+0x06, 0xc2, 0xae, 0x0b, 0x01, 0xb2, 0x02, 0xcd, 0xd2, 0x04, 0x01, 0xc8, 
+0x02, 0xcd, 0xd2, 0x04, 0x01, 0xfa, 0x02, 0xcd, 0xd2, 0x04, 0x01, 0x15, 
+0x03, 0xcd, 0xd2, 0x04, 0x01, 0x29, 0x03, 0xcd, 0xd2, 0x04, 0x21, 0xa7, 
+0x15, 0x36, 0x00, 0x3e, 0x03, 0x21, 0xa7, 0x15, 0xbe, 0xda, 0xab, 0x0b, 
+0xcd, 0xa0, 0x04, 0x3a, 0xa7, 0x15, 0x87, 0x87, 0x4f, 0x06, 0x00, 0x21, 
+0x39, 0x01, 0x09, 0x44, 0x4d, 0xcd, 0x69, 0x0c, 0x01, 0x38, 0x03, 0xcd, 
+0xb1, 0x04, 0x21, 0xa8, 0x15, 0x36, 0x00, 0x3e, 0x0c, 0x21, 0xa8, 0x15, 
+0xbe, 0xda, 0xa4, 0x0b, 0xc3, 0x85, 0x0b, 0x3a, 0xa8, 0x15, 0xc6, 0x04, 
+0x32, 0xa8, 0x15, 0xd2, 0x6b, 0x0b, 0xc3, 0xa4, 0x0b, 0x0e, 0x20, 0xcd, 
+0x90, 0x04, 0x3a, 0xa7, 0x15, 0x87, 0x87, 0x87, 0x87, 0x21, 0xa8, 0x15, 
+0x86, 0x4f, 0x06, 0x00, 0x21, 0x59, 0x01, 0x09, 0x44, 0x4d, 0xcd, 0x69, 
+0x0c, 0xc3, 0x77, 0x0b, 0x21, 0xa7, 0x15, 0x34, 0xc2, 0x43, 0x0b, 0xc3, 
+0x46, 0x0c, 0x3a, 0xa7, 0x15, 0xfe, 0x07, 0xc2, 0xbf, 0x0b, 0xcd, 0x19, 
+0x08, 0x3e, 0x01, 0xc9, 0xc3, 0x46, 0x0c, 0x3a, 0xa7, 0x15, 0xfe, 0x08, 
+0xc2, 0xcd, 0x0b, 0xcd, 0xdd, 0x09, 0xc3, 0x46, 0x0c, 0x3a, 0xa7, 0x15, 
+0x3d, 0x32, 0xa7, 0x15, 0x87, 0x87, 0x87, 0x87, 0x32, 0xa8, 0x15, 0xcd, 
+0x39, 0x06, 0x3a, 0x59, 0x15, 0xfe, 0x3d, 0xca, 0xef, 0x0b, 0x01, 0x3b, 
+0x03, 0xcd, 0xd2, 0x04, 0x3e, 0x01, 0xc9, 0xcd, 0x39, 0x06, 0x2a, 0xa8, 
+0x15, 0x26, 0x00, 0x01, 0x59, 0x01, 0x09, 0x44, 0x4d, 0x1e, 0x04, 0xcd, 
+0x19, 0x0a, 0x3d, 0x32, 0xa8, 0x15, 0xfe, 0xff, 0xc2, 0x14, 0x0c, 0x01, 
+0x49, 0x03, 0xcd, 0xd2, 0x04, 0x3e, 0x01, 0xc9, 0x21, 0xa9, 0x15, 0x36, 
+0xfc, 0x3a, 0xa7, 0x15, 0x3d, 0x32, 0xa7, 0x15, 0xfe, 0xff, 0xca, 0x38, 
+0x0c, 0x3a, 0xa9, 0x15, 0x07, 0x07, 0x32, 0xa9, 0x15, 0x3a, 0xa8, 0x15, 
+0x87, 0x87, 0x32, 0xa8, 0x15, 0xc3, 0x19, 0x0c, 0x3a, 0xa9, 0x15, 0x21, 
+0x03, 0x00, 0xa6, 0x21, 0xa8, 0x15, 0xb6, 0x32, 0x03, 0x00, 0xcd, 0x39, 
+0x06, 0x3a, 0x59, 0x15, 0xfe, 0x20, 0xc2, 0x54, 0x0c, 0x3e, 0x01, 0xc9, 
+0x3a, 0x59, 0x15, 0xfe, 0x2c, 0xca, 0x65, 0x0c, 0x01, 0x5c, 0x03, 0xcd, 
+0xd2, 0x04, 0x3e, 0x01, 0xc9, 0xc3, 0x8c, 0x0a, 0xc9, 0x21, 0xac, 0x15, 
+0x70, 0x2b, 0x71, 0x2a, 0xab, 0x15, 0x7e, 0xfe, 0x3a, 0xca, 0x89, 0x0c, 
+0x2a, 0xab, 0x15, 0x4e, 0xcd, 0x90, 0x04, 0x2a, 0xab, 0x15, 0x23, 0x22, 
+0xab, 0x15, 0xc3, 0x6f, 0x0c, 0x0e, 0x3a, 0xcd, 0x90, 0x04, 0xc9, 0x21, 
+0xae, 0x15, 0x70, 0x2b, 0x71, 0x21, 0x10, 0x27, 0x22, 0xb1, 0x15, 0x21, 
+0xb0, 0x15, 0x36, 0x00, 0x3e, 0x00, 0x11, 0xb1, 0x15, 0xcd, 0xea, 0x14, 
+0xb5, 0xca, 0xfc, 0x0c, 0x2a, 0xad, 0x15, 0xeb, 0x2a, 0xb1, 0x15, 0xcd, 
+0x7f, 0x14, 0x7b, 0x32, 0xaf, 0x15, 0x2a, 0xad, 0x15, 0xeb, 0xcd, 0x81, 
+0x14, 0x22, 0xad, 0x15, 0x50, 0x59, 0x21, 0x0a, 0x00, 0xcd, 0x7f, 0x14, 
+0xeb, 0x22, 0xb1, 0x15, 0x3e, 0x00, 0xcd, 0xd3, 0x14, 0xb5, 0xd6, 0x01, 
+0x9f, 0x21, 0xb0, 0x15, 0xb6, 0x2b, 0xf5, 0x7e, 0x93, 0xc6, 0xff, 0x9f, 
+0xc1, 0x48, 0xb1, 0x1f, 0xd2, 0xf9, 0x0c, 0x21, 0xb0, 0x15, 0x36, 0x01, 
+0x3a, 0xaf, 0x15, 0xc6, 0x30, 0x4f, 0xcd, 0x90, 0x04, 0xc3, 0xa0, 0x0c, 
+0x0e, 0x6b, 0xcd, 0x90, 0x04, 0xcd, 0xa0, 0x04, 0xc9, 0xcd, 0x51, 0x05, 
+0x22, 0x20, 0x15, 0xcd, 0x38, 0x05, 0xc6, 0x41, 0x4f, 0xcd, 0x90, 0x04, 
+0x01, 0x6a, 0x03, 0xcd, 0xb1, 0x04, 0xc9, 0x0e, 0x01, 0xcd, 0xb7, 0x07, 
+0x44, 0x4d, 0xcd, 0x8f, 0x0c, 0xc9, 0x01, 0x6d, 0x03, 0xcd, 0xd2, 0x04, 
+0xcd, 0x05, 0x0d, 0xcd, 0x1b, 0x0d, 0xc9, 0xcd, 0x5a, 0x05, 0x22, 0xb3, 
+0x15, 0xcd, 0x6c, 0x05, 0x22, 0xb5, 0x15, 0x21, 0xb7, 0x15, 0x36, 0x00, 
+0x3e, 0x00, 0x11, 0xb3, 0x15, 0xcd, 0xea, 0x14, 0xb5, 0xca, 0xa5, 0x0d, 
+0x2a, 0xb3, 0x15, 0x7d, 0x1f, 0xd2, 0x86, 0x0d, 0x2a, 0xb7, 0x15, 0x4d, 
+0xcd, 0xcc, 0x05, 0xcd, 0x05, 0x0d, 0x01, 0x81, 0x03, 0xcd, 0xb1, 0x04, 
+0x2a, 0xb5, 0x15, 0x7d, 0x1f, 0xd2, 0x78, 0x0d, 0x0e, 0x4f, 0xcd, 0x90, 
+0x04, 0xc3, 0x7d, 0x0d, 0x0e, 0x57, 0xcd, 0x90, 0x04, 0x01, 0x84, 0x03, 
+0xcd, 0xb1, 0x04, 0xcd, 0x1b, 0x0d, 0x0e, 0x01, 0x21, 0xb3, 0x15, 0xcd, 
+0xc3, 0x14, 0xeb, 0x2b, 0x73, 0x23, 0x72, 0x0e, 0x01, 0x21, 0xb5, 0x15, 
+0xcd, 0xc3, 0x14, 0xeb, 0x2b, 0x73, 0x23, 0x72, 0x23, 0x34, 0xc3, 0x44, 
+0x0d, 0xcd, 0xa0, 0x04, 0xc9, 0x3a, 0x5c, 0x00, 0xfe, 0x00, 0xca, 0xb9, 
+0x0d, 0x3a, 0x5c, 0x00, 0x3d, 0x4f, 0xcd, 0xcc, 0x05, 0xc9, 0xcd, 0xb3, 
+0x05, 0xcd, 0xa9, 0x0d, 0x21, 0x1d, 0x15, 0x36, 0x00, 0x21, 0xcc, 0x29, 
+0x36, 0xff, 0xcd, 0x6c, 0x13, 0x1f, 0xd2, 0xe4, 0x0d, 0x3a, 0xcc, 0x29, 
+0xfe, 0x00, 0xc2, 0xda, 0x0d, 0xc9, 0x3a, 0xcc, 0x29, 0x3d, 0x32, 0xcc, 
+0x29, 0xc3, 0xf0, 0x0d, 0x3a, 0x5d, 0x00, 0xfe, 0x20, 0xc2, 0xf0, 0x0d, 
+0xcd, 0x26, 0x0d, 0xc9, 0x21, 0x00, 0x00, 0x22, 0xb8, 0x15, 0x7d, 0x32, 
+0x5c, 0x00, 0x21, 0x68, 0x00, 0x36, 0x3f, 0x21, 0x6a, 0x00, 0x36, 0x3f, 
+0x01, 0x5c, 0x00, 0xcd, 0x19, 0x05, 0x3a, 0x27, 0x15, 0xfe, 0xff, 0xca, 
+0x43, 0x10, 0x3a, 0x27, 0x15, 0xe6, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 
+0xc6, 0x80, 0x6f, 0x26, 0x00, 0x22, 0xba, 0x29, 0x21, 0xcb, 0x29, 0x36, 
+0x00, 0x21, 0x00, 0x00, 0x22, 0xbe, 0x29, 0x3a, 0xcb, 0x29, 0x2f, 0x01, 
+0xb8, 0x15, 0x11, 0xbe, 0x29, 0xf5, 0xcd, 0xdd, 0x14, 0x9f, 0xc1, 0x48, 
+0xa1, 0x1f, 0xd2, 0x98, 0x0e, 0xcd, 0x5d, 0x13, 0x21, 0xc6, 0x29, 0x36, 
+0x01, 0x3e, 0x0b, 0x21, 0xc6, 0x29, 0xbe, 0xda, 0x8e, 0x0e, 0x2a, 0xc6, 
+0x29, 0x26, 0x00, 0xeb, 0x2a, 0xba, 0x29, 0x19, 0xe5, 0x2a, 0xc6, 0x29, 
+0x26, 0x00, 0xeb, 0x2a, 0xbc, 0x29, 0x19, 0xc1, 0x0a, 0xbe, 0xca, 0x79, 
+0x0e, 0x21, 0xc6, 0x29, 0x36, 0x0b, 0xc3, 0x84, 0x0e, 0x3a, 0xc6, 0x29, 
+0xd6, 0x0b, 0xd6, 0x01, 0x9f, 0x32, 0xcb, 0x29, 0x3a, 0xc6, 0x29, 0x3c, 
+0x32, 0xc6, 0x29, 0xc2, 0x4d, 0x0e, 0x2a, 0xbe, 0x29, 0x23, 0x22, 0xbe, 
+0x29, 0xc3, 0x2f, 0x0e, 0x3a, 0xcb, 0x29, 0x1f, 0xd2, 0xa9, 0x0e, 0x2a, 
+0xbe, 0x29, 0x2b, 0x22, 0xbe, 0x29, 0xc3, 0x60, 0x0f, 0x2a, 0xb8, 0x15, 
+0x22, 0xbe, 0x29, 0x23, 0x22, 0xb8, 0x15, 0xcd, 0x5d, 0x13, 0x11, 0x00, 
+0x02, 0x21, 0xb8, 0x15, 0xcd, 0xf8, 0x14, 0x9f, 0x11, 0x10, 0x00, 0x2a, 
+0xbc, 0x29, 0x19, 0xeb, 0x21, 0x06, 0x00, 0xf5, 0xcd, 0xf8, 0x14, 0x9f, 
+0x2f, 0xc1, 0x48, 0xb1, 0x1f, 0xd2, 0xed, 0x0e, 0x01, 0xa5, 0x03, 0xcd, 
+0xd2, 0x04, 0x21, 0x00, 0x00, 0x22, 0xbe, 0x29, 0x21, 0x01, 0x00, 0x22, 
+0xb8, 0x15, 0xcd, 0x5d, 0x13, 0x2a, 0xbe, 0x29, 0x01, 0xba, 0x15, 0x29, 
+0x09, 0xe5, 0x2a, 0xbe, 0x29, 0xeb, 0xe1, 0x73, 0x23, 0x72, 0x21, 0xc6, 
+0x29, 0x36, 0x00, 0x3e, 0x0b, 0x21, 0xc6, 0x29, 0xbe, 0xda, 0x2e, 0x0f, 
+0x2a, 0xc6, 0x29, 0x26, 0x00, 0xeb, 0x2a, 0xba, 0x29, 0x19, 0xe5, 0x2a, 
+0xc6, 0x29, 0x26, 0x00, 0xeb, 0x2a, 0xbc, 0x29, 0x19, 0xc1, 0x0a, 0x77, 
+0x3a, 0xc6, 0x29, 0x3c, 0x32, 0xc6, 0x29, 0xc2, 0x03, 0x0f, 0x2a, 0xbe, 
+0x29, 0x01, 0xba, 0x19, 0x29, 0x09, 0x3e, 0x00, 0x77, 0x23, 0x36, 0x00, 
+0x2a, 0xbe, 0x29, 0x01, 0xba, 0x1d, 0x29, 0x09, 0x77, 0x23, 0x36, 0x00, 
+0x2a, 0xbe, 0x29, 0x01, 0xba, 0x21, 0x29, 0x09, 0x77, 0x23, 0x36, 0x00, 
+0x2a, 0xbe, 0x29, 0x01, 0xba, 0x25, 0x29, 0x09, 0x77, 0x23, 0x36, 0x00, 
+0x2a, 0xbe, 0x29, 0x01, 0xba, 0x19, 0x29, 0x09, 0x4e, 0x23, 0x46, 0x03, 
+0x2a, 0xbe, 0x29, 0xc5, 0x01, 0xba, 0x19, 0x29, 0x09, 0xc1, 0x71, 0x23, 
+0x70, 0x2a, 0xbe, 0x29, 0x01, 0xba, 0x25, 0x29, 0x09, 0x01, 0x0f, 0x00, 
+0xe5, 0x2a, 0xba, 0x29, 0x09, 0x7e, 0xd1, 0xcd, 0x65, 0x14, 0x01, 0x0c, 
+0x00, 0xe5, 0x2a, 0xba, 0x29, 0x09, 0x01, 0x04, 0x00, 0xe5, 0x2a, 0x1e, 
+0x15, 0x09, 0x7e, 0xe1, 0xa6, 0x6f, 0x26, 0x00, 0x11, 0x80, 0x00, 0xcd, 
+0x9e, 0x14, 0xc1, 0x09, 0xe5, 0x2a, 0xbe, 0x29, 0x01, 0xba, 0x25, 0x29, 
+0x09, 0xc1, 0x71, 0x23, 0x70, 0x21, 0xc7, 0x29, 0x36, 0x01, 0x01, 0x05, 
+0x00, 0x2a, 0x1e, 0x15, 0x09, 0x3e, 0xff, 0xcd, 0xf5, 0x14, 0xd2, 0xd2, 
+0x0f, 0x21, 0xc7, 0x29, 0x36, 0x02, 0x21, 0xc6, 0x29, 0x36, 0x10, 0x3e, 
+0x1f, 0x21, 0xc6, 0x29, 0xbe, 0xda, 0x3d, 0x10, 0xc3, 0xf1, 0x0f, 0x3a, 
+0xc7, 0x29, 0x21, 0xc6, 0x29, 0x86, 0x77, 0xd2, 0xd7, 0x0f, 0xc3, 0x3d, 
+0x10, 0x2a, 0xc6, 0x29, 0x26, 0x00, 0xeb, 0x2a, 0xba, 0x29, 0x19, 0x7e, 
+0x32, 0xc8, 0x29, 0x3a, 0xc7, 0x29, 0xfe, 0x02, 0xc2, 0x1c, 0x10, 0x2a, 
+0xc6, 0x29, 0x26, 0x00, 0x01, 0x01, 0x00, 0x09, 0xeb, 0x2a, 0xba, 0x29, 
+0x19, 0x3a, 0xc8, 0x29, 0xb6, 0x32, 0xc8, 0x29, 0x3a, 0xc8, 0x29, 0xfe, 
+0x00, 0xca, 0x3a, 0x10, 0x2a, 0xbe, 0x29, 0x01, 0xba, 0x21, 0x29, 0x09, 
+0xe5, 0x2a, 0xbe, 0x29, 0x01, 0xba, 0x1d, 0x29, 0x09, 0xeb, 0xc1, 0xcd, 
+0x73, 0x07, 0xc3, 0xe3, 0x0f, 0xcd, 0x2c, 0x05, 0xc3, 0x0a, 0x0e, 0x3e, 
+0x00, 0x11, 0xb8, 0x15, 0xcd, 0xea, 0x14, 0xb5, 0xc2, 0x58, 0x10, 0x01, 
+0xba, 0x03, 0xcd, 0xd2, 0x04, 0xc3, 0x5c, 0x13, 0x3a, 0xcc, 0x29, 0xfe, 
+0xff, 0xc2, 0x93, 0x12, 0x3e, 0x01, 0x21, 0xb8, 0x15, 0xcd, 0xf5, 0x14, 
+0xd2, 0x64, 0x11, 0x21, 0x01, 0x00, 0x22, 0xc0, 0x29, 0x3e, 0x00, 0x21, 
+0xc0, 0x29, 0xcd, 0xf5, 0x14, 0xd2, 0x64, 0x11, 0x21, 0x00, 0x00, 0x22, 
+0xc0, 0x29, 0x21, 0x00, 0x00, 0x22, 0xc4, 0x29, 0x2a, 0xb8, 0x15, 0x2b, 
+0x2b, 0xeb, 0x21, 0xc4, 0x29, 0xcd, 0xf8, 0x14, 0xda, 0x61, 0x11, 0x2a, 
+0xc4, 0x29, 0x01, 0xbc, 0x15, 0x29, 0x09, 0x5e, 0x23, 0x56, 0xeb, 0x22, 
+0xbe, 0x29, 0xcd, 0x5d, 0x13, 0x2a, 0xbc, 0x29, 0x22, 0xba, 0x29, 0x2a, 
+0xc4, 0x29, 0x01, 0xba, 0x15, 0x29, 0x09, 0x5e, 0x23, 0x56, 0xeb, 0x22, 
+0xbe, 0x29, 0xcd, 0x5d, 0x13, 0x21, 0xc6, 0x29, 0x36, 0x01, 0x3e, 0x0b, 
+0x21, 0xc6, 0x29, 0xbe, 0xda, 0x54, 0x11, 0x2a, 0xc6, 0x29, 0x26, 0x00, 
+0xeb, 0x2a, 0xba, 0x29, 0x19, 0x7e, 0x32, 0xc9, 0x29, 0xe5, 0x2a, 0xc6, 
+0x29, 0x26, 0x00, 0xeb, 0x2a, 0xbc, 0x29, 0x19, 0x7e, 0x32, 0xca, 0x29, 
+0x4f, 0xd1, 0x1a, 0xb9, 0xd2, 0x3b, 0x11, 0x2a, 0xc4, 0x29, 0x01, 0xba, 
+0x15, 0x29, 0x09, 0x5e, 0x23, 0x56, 0xeb, 0x22, 0xc2, 0x29, 0x2a, 0xc4, 
+0x29, 0x01, 0xbc, 0x15, 0x29, 0x09, 0xe5, 0x2a, 0xc4, 0x29, 0x01, 0xba, 
+0x15, 0x29, 0x09, 0xe3, 0x4e, 0x23, 0x46, 0xe1, 0x71, 0x23, 0x70, 0x2a, 
+0xc4, 0x29, 0x01, 0xbc, 0x15, 0x29, 0x09, 0xe5, 0x2a, 0xc2, 0x29, 0xeb, 
+0xe1, 0x73, 0x23, 0x72, 0x2a, 0xc0, 0x29, 0x23, 0x22, 0xc0, 0x29, 0x21, 
+0xc6, 0x29, 0x36, 0x0b, 0xc3, 0x4a, 0x11, 0x3a, 0xca, 0x29, 0x21, 0xc9, 
+0x29, 0xbe, 0xd2, 0x4a, 0x11, 0x21, 0xc6, 0x29, 0x36, 0x0b, 0x3a, 0xc6, 
+0x29, 0x3c, 0x32, 0xc6, 0x29, 0xc2, 0xc6, 0x10, 0x11, 0x01, 0x00, 0x2a, 
+0xc4, 0x29, 0x19, 0x22, 0xc4, 0x29, 0xd2, 0x88, 0x10, 0xc3, 0x71, 0x10, 
+0x3a, 0x1d, 0x15, 0x1f, 0xd2, 0x74, 0x11, 0x01, 0xc9, 0x03, 0xcd, 0xd2, 
+0x04, 0xc3, 0x77, 0x11, 0xcd, 0xa0, 0x04, 0x01, 0xd0, 0x03, 0xcd, 0xb1, 
+0x04, 0x21, 0x00, 0x00, 0x22, 0xc0, 0x29, 0x01, 0xb8, 0x15, 0x11, 0xc0, 
+0x29, 0xcd, 0xdd, 0x14, 0xd2, 0x8d, 0x12, 0x2a, 0xc0, 0x29, 0x01, 0xba, 
+0x15, 0x29, 0x09, 0x5e, 0x23, 0x56, 0xeb, 0x22, 0xbe, 0x29, 0xcd, 0x5d, 
+0x13, 0xcd, 0xa0, 0x04, 0x2e, 0x10, 0xe5, 0x2a, 0xbc, 0x29, 0x44, 0x4d, 
+0x11, 0x5c, 0x00, 0xe1, 0x0a, 0x12, 0x03, 0x13, 0x2d, 0xc2, 0xb0, 0x11, 
+0x21, 0x5c, 0x00, 0x36, 0x00, 0x3a, 0x1d, 0x15, 0x1f, 0xd2, 0xe9, 0x11, 
+0x01, 0x5c, 0x00, 0xcd, 0xa3, 0x05, 0x3a, 0x7f, 0x00, 0xfe, 0x00, 0xca, 
+0xdb, 0x11, 0x01, 0xe6, 0x03, 0xcd, 0xb1, 0x04, 0xc3, 0xe6, 0x11, 0x2a, 
+0x7d, 0x00, 0x44, 0x4d, 0x11, 0x10, 0x27, 0xcd, 0x01, 0x07, 0xcd, 0xab, 
+0x04, 0x2a, 0xbe, 0x29, 0x01, 0xba, 0x25, 0x29, 0x09, 0x4e, 0x23, 0x46, 
+0x11, 0x10, 0x27, 0xcd, 0x01, 0x07, 0xcd, 0xab, 0x04, 0x2a, 0xbe, 0x29, 
+0x01, 0xba, 0x21, 0x29, 0x09, 0x4e, 0x23, 0x46, 0x11, 0x10, 0x27, 0xcd, 
+0x01, 0x07, 0x0e, 0x6b, 0xcd, 0x90, 0x04, 0xcd, 0xab, 0x04, 0x2a, 0xbe, 
+0x29, 0x01, 0xba, 0x19, 0x29, 0x09, 0x4e, 0x23, 0x46, 0x11, 0xe8, 0x03, 
+0xcd, 0x01, 0x07, 0xcd, 0xab, 0x04, 0x0e, 0x52, 0xcd, 0x90, 0x04, 0x0e, 
+0x2f, 0xcd, 0x90, 0x04, 0x01, 0x09, 0x00, 0x2a, 0xbc, 0x29, 0x09, 0x7e, 
+0x07, 0x1f, 0xd2, 0x49, 0x12, 0x0e, 0x4f, 0xcd, 0x90, 0x04, 0xc3, 0x4e, 
+0x12, 0x0e, 0x57, 0xcd, 0x90, 0x04, 0xcd, 0xab, 0x04, 0xcd, 0x38, 0x05, 
+0xc6, 0x41, 0x4f, 0xcd, 0x90, 0x04, 0x0e, 0x3a, 0xcd, 0x90, 0x04, 0x01, 
+0x0a, 0x00, 0x2a, 0xbc, 0x29, 0x09, 0x7e, 0x07, 0x32, 0xc8, 0x29, 0x1f, 
+0xd2, 0x74, 0x12, 0x0e, 0x28, 0xcd, 0x90, 0x04, 0xcd, 0xc0, 0x13, 0x3a, 
+0xc8, 0x29, 0x1f, 0xd2, 0x83, 0x12, 0x0e, 0x29, 0xcd, 0x90, 0x04, 0x2a, 
+0xc0, 0x29, 0x23, 0x22, 0xc0, 0x29, 0xc3, 0x83, 0x11, 0xcd, 0x26, 0x0d, 
+0xc3, 0x5c, 0x13, 0x21, 0x00, 0x00, 0x22, 0xc0, 0x29, 0x01, 0xb8, 0x15, 
+0x11, 0xc0, 0x29, 0xcd, 0xdd, 0x14, 0xd2, 0x5c, 0x13, 0xcd, 0xe4, 0x04, 
+0x1f, 0xd2, 0xb0, 0x12, 0xcd, 0x12, 0x08, 0xc9, 0x2a, 0xc0, 0x29, 0x22, 
+0xbe, 0x29, 0xcd, 0x5d, 0x13, 0xcd, 0xa0, 0x04, 0xcd, 0xc0, 0x13, 0x2a, 
+0xcc, 0x29, 0x4d, 0x06, 0x00, 0x21, 0x17, 0x13, 0x09, 0x09, 0x5e, 0x23, 
+0x56, 0xeb, 0xe9, 0x01, 0x09, 0x00, 0x2a, 0xbc, 0x29, 0x09, 0x3e, 0x80, 
+0xb6, 0x2a, 0xbc, 0x29, 0x09, 0x77, 0xc3, 0x1f, 0x13, 0x01, 0x09, 0x00, 
+0x2a, 0xbc, 0x29, 0x09, 0x3e, 0x7f, 0xa6, 0x2a, 0xbc, 0x29, 0x09, 0x77, 
+0xc3, 0x1f, 0x13, 0x01, 0x0a, 0x00, 0x2a, 0xbc, 0x29, 0x09, 0x3e, 0x80, 
+0xb6, 0x2a, 0xbc, 0x29, 0x09, 0x77, 0xc3, 0x1f, 0x13, 0x01, 0x0a, 0x00, 
+0x2a, 0xbc, 0x29, 0x09, 0x3e, 0x7f, 0xa6, 0x2a, 0xbc, 0x29, 0x09, 0x77, 
+0xc3, 0x1f, 0x13, 0xcf, 0x12, 0xe1, 0x12, 0xf3, 0x12, 0x05, 0x13, 0x2e, 
+0x10, 0xe5, 0x2a, 0xbc, 0x29, 0x44, 0x4d, 0x11, 0x5c, 0x00, 0xe1, 0x0a, 
+0x12, 0x03, 0x13, 0x2d, 0xc2, 0x2b, 0x13, 0x21, 0x5c, 0x00, 0x36, 0x00, 
+0xcd, 0x75, 0x05, 0x01, 0xec, 0x03, 0xcd, 0xb1, 0x04, 0x3a, 0xcc, 0x29, 
+0x87, 0x87, 0x4f, 0x06, 0x00, 0x21, 0x99, 0x01, 0x09, 0x44, 0x4d, 0xcd, 
+0xb1, 0x04, 0x2a, 0xc0, 0x29, 0x23, 0x22, 0xc0, 0x29, 0xc3, 0x99, 0x12, 
+0xc9, 0x2a, 0xbe, 0x29, 0x29, 0x29, 0x29, 0x29, 0x11, 0xcf, 0x29, 0x19, 
+0x22, 0xbc, 0x29, 0xc9, 0x3a, 0x6d, 0x00, 0xfe, 0x20, 0xc2, 0x77, 0x13, 
+0x3e, 0x00, 0xc9, 0x2e, 0x04, 0x11, 0x59, 0x15, 0x01, 0x6e, 0x00, 0x0a, 
+0x12, 0x03, 0x13, 0x2d, 0xc2, 0x7f, 0x13, 0x3a, 0x59, 0x15, 0xd6, 0x53, 
+0xd6, 0x01, 0x9f, 0xf5, 0x3a, 0x5a, 0x15, 0xd6, 0x20, 0xd6, 0x01, 0x9f, 
+0xc1, 0x48, 0xa1, 0x1f, 0xd2, 0xa7, 0x13, 0x21, 0x1d, 0x15, 0x36, 0x01, 
+0x3e, 0xfe, 0xc9, 0x1e, 0x04, 0x01, 0xa9, 0x01, 0xcd, 0x19, 0x0a, 0x32, 
+0xcc, 0x29, 0xfe, 0x00, 0xc2, 0xbd, 0x13, 0x01, 0x8e, 0x03, 0xcd, 0xd2, 
+0x04, 0x3e, 0x01, 0xc9, 0x21, 0xcd, 0x29, 0x36, 0x01, 0x3e, 0x0b, 0x21, 
+0xcd, 0x29, 0xbe, 0xda, 0x01, 0x14, 0x2a, 0xcd, 0x29, 0x26, 0x00, 0xeb, 
+0x2a, 0xbc, 0x29, 0x19, 0x3e, 0x7f, 0xa6, 0x32, 0xce, 0x29, 0xfe, 0x20, 
+0xca, 0xf7, 0x13, 0x3a, 0xcd, 0x29, 0xfe, 0x09, 0xc2, 0xf0, 0x13, 0x0e, 
+0x2e, 0xcd, 0x90, 0x04, 0x2a, 0xce, 0x29, 0x4d, 0xcd, 0x90, 0x04, 0x3a, 
+0xcd, 0x29, 0x3c, 0x32, 0xcd, 0x29, 0xc2, 0xc5, 0x13, 0xc9, 0xcd, 0x39, 
+0x06, 0xcd, 0x39, 0x06, 0x3a, 0x59, 0x15, 0xfe, 0x3d, 0xc2, 0x2f, 0x14, 
+0xcd, 0x39, 0x06, 0x01, 0xf5, 0x03, 0xcd, 0xfe, 0x05, 0x1f, 0xd2, 0x26, 
+0x14, 0xcd, 0xa9, 0x0d, 0xcd, 0x63, 0x05, 0xc3, 0x2c, 0x14, 0x01, 0xf9, 
+0x03, 0xcd, 0xd2, 0x04, 0xc3, 0x48, 0x14, 0xcd, 0xa9, 0x0d, 0x1e, 0x08, 
+0x01, 0x39, 0x01, 0xcd, 0x19, 0x0a, 0xfe, 0x08, 0xc2, 0x45, 0x14, 0xcd, 
+0xc3, 0x08, 0xc3, 0x48, 0x14, 0xcd, 0xba, 0x0d, 0xc9, 0xc3, 0x00, 0x00, 
+0xc3, 0x05, 0x00, 0xc3, 0x05, 0x00, 0xcd, 0x05, 0x00, 0xc9, 0xc9, 0xc9, 
+0x69, 0x60, 0x4e, 0x23, 0x46, 0x1a, 0x81, 0x6f, 0x13, 0x1a, 0x88, 0x67, 
+0xc9, 0xeb, 0x5f, 0x16, 0x00, 0xeb, 0x1a, 0x85, 0x6f, 0x13, 0x1a, 0x8c, 
+0x67, 0xc9, 0xeb, 0x5f, 0x16, 0x00, 0xeb, 0x1a, 0xa5, 0x6f, 0x13, 0x1a, 
+0xa4, 0x67, 0xc9, 0x44, 0x4d, 0x21, 0x00, 0x00, 0x3e, 0x10, 0xf5, 0x29, 
+0xeb, 0x97, 0x29, 0xeb, 0x8d, 0x91, 0x6f, 0x7c, 0x98, 0x67, 0x13, 0xd2, 
+0x98, 0x14, 0x09, 0x1b, 0xf1, 0x3d, 0xc2, 0x86, 0x14, 0xc9, 0x44, 0x4d, 
+0x21, 0x00, 0x00, 0x3e, 0x10, 0x29, 0xeb, 0x29, 0xeb, 0xd2, 0xad, 0x14, 
+0x09, 0x3d, 0xc2, 0xa5, 0x14, 0xc9, 0x7e, 0x07, 0x0d, 0xc2, 0xb3, 0x14, 
+0xc9, 0x5e, 0x23, 0x56, 0xeb, 0x29, 0x0d, 0xc2, 0xbd, 0x14, 0xc9, 0x5e, 
+0x23, 0x56, 0xeb, 0x7c, 0xb7, 0x1f, 0x67, 0x7d, 0x1f, 0x6f, 0x0d, 0xc2, 
+0xc7, 0x14, 0xc9, 0x5f, 0x16, 0x00, 0x7b, 0x95, 0x6f, 0x7a, 0x9c, 0x67, 
+0xc9, 0x69, 0x60, 0x4e, 0x23, 0x46, 0x1a, 0x91, 0x6f, 0x13, 0x1a, 0x98, 
+0x67, 0xc9, 0x6f, 0x26, 0x00, 0x1a, 0x95, 0x6f, 0x13, 0x1a, 0x9c, 0x67, 
+0xc9, 0x5f, 0x16, 0x00, 0x7b, 0x96, 0x5f, 0x7a, 0x23, 0x9e, 0x57, 0xeb, 
+0xc9, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 
+0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 
+0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x6d, 0x53, 0xbd, 0x55, 0x0a, 0x8d, 
+0x03, 0x1a, 0x1a, 0x1a, 0x00, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 
+0x1a, 0x1a, 0xa9, 0x44, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 
+0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 
+0x9f, 0x04, 0xaa, 0x04, 0x9f, 0x04, 0xaa, 0x04, 0xa8, 0x0d, 0x6f, 0x04, 
+0x00, 0x04, 0x00, 0xf2, 0x00, 0x1a, 0x1a, 0x1a, 0x1a, 0x01, 0x1a, 0x1a, 
+0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x6f, 0x15, 
+0x71, 0x15, 0x01, 0x47, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x02, 0x1a, 0x1a, 
+0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0xcd, 0x07, 0x13, 0xcd, 
+0xfe, 0x12, 0xca, 0x8f, 0x13, 0xcd, 0xf3, 0x12, 0xc3, 0x83, 0x13, 0x0e, 
+0x04, 0x36, 0x00, 0x23, 0x0d, 0xc2, 0x91, 0x13, 0x1d, 0xc2, 0x53, 0x13, 
+0x36, 0x00, 0xc3, 0x16, 0x0f, 0xcd, 0x01, 0x11, 0xcd, 0x17, 0x11, 0xda, 
+0x16, 0x0f, 0x0a, 0x03, 0x77, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x01, 0x78, 0x23, 0xae, 0xe6, 0x7f, 0xc0, 0x79, 0x23, 
+0xae, 0xe6, 0x7f, 0xc9, 0xeb, 0x2a, 0xb4, 0x21, 0x7d, 0x93, 0x7c, 0x9a, 
+0xeb, 0xc9, 0xcd, 0xc4, 0x13, 0xd0, 0x22, 0xb4, 0x21, 0xc9, 0x3a, 0x4d, 
+0x21, 0xfe, 0x01, 0xd0, 0xe5, 0x21, 0x00, 0x00, 0xcd, 0xc4, 0x13, 0xe1, 
+0xc9, 0xcd, 0xd0, 0x1a, 0xda, 0x5d, 0x18, 0xca, 0x71, 0x14, 0xcd, 0x67, 
+0x19, 0xe5, 0x21, 0x01, 0x00, 0x3d, 0x3a, 0x4a, 0x21, 0xca, 0x06, 0x14, 
+0xb7, 0xc2, 0x5d, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x39, 0x22, 0x64, 0x05, 0x31, 
+0xaf, 0x05, 0xcd, 0x04, 0x05, 0x09, 0x09, 0x2a, 0x2a, 0x2a, 0x20, 0x53, 
+0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x53, 0x75, 0x72, 0x76, 0x65, 0x79, 
+0x20, 0x28, 0x4a, 0x75, 0x6e, 0x65, 0x20, 0x38, 0x32, 0x29, 0x20, 0x2a, 
+0x2a, 0x2a, 0x0d, 0x0a, 0x0d, 0x8a, 0x21, 0x08, 0x00, 0x0e, 0x18, 0xe5, 
+0xcd, 0x05, 0x00, 0xe1, 0x1f, 0xd2, 0x50, 0x02, 0xf5, 0xe5, 0xcd, 0x04, 
+0x05, 0x44, 0x72, 0x69, 0x76, 0x65, 0xa0, 0x3e, 0x41, 0x84, 0x5f, 0xcd, 
+0x1c, 0x05, 0xcd, 0x04, 0x05, 0x3a, 0xa0, 0xe1, 0xe5, 0x5c, 0x0e, 0x0e, 
+0xcd, 0x05, 0x00, 0x0e, 0x1b, 0xcd, 0x05, 0x00, 0x6f, 0x60, 0xe5, 0x0e, 
+0x0c, 0xcd, 0x05, 0x00, 0x7d, 0xb7, 0xc2, 0x87, 0x01, 0x2a, 0x06, 0x00, 
+0x2e, 0x3c, 0x7e, 0x32, 0x6c, 0x05, 0x23, 0x23, 0x6e, 0x26, 0x00, 0x22, 
+0x6d, 0x05, 0x06, 0x20, 0xc3, 0xb9, 0x01, 0x3e, 0x3f, 0x32, 0x44, 0x05, 
+0x0e, 0x1f, 0xcd, 0x05, 0x00, 0x23, 0x23, 0x7e, 0x32, 0x6c, 0x05, 0x23, 
+0x23, 0x23, 0x7e, 0x23, 0x66, 0x6f, 0x22, 0x6d, 0x05, 0x23, 0x06, 0x03, 
+0x7c, 0xb7, 0x1f, 0x67, 0x7d, 0x1f, 0x6f, 0x05, 0xc2, 0xa4, 0x01, 0x45, 
+0x3a, 0x6d, 0x05, 0xe6, 0x03, 0xca, 0xb9, 0x01, 0x04, 0xe1, 0x11, 0x00, 
+0x00, 0x0e, 0x08, 0x7e, 0x1f, 0xd2, 0xc5, 0x01, 0x13, 0x0d, 0xc2, 0xc0, 
+0x01, 0x23, 0x05, 0xc2, 0xbd, 0x01, 0xcd, 0x21, 0x05, 0xe5, 0xcd, 0xd7, 
+0x04, 0xcd, 0x04, 0x05, 0x4b, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x20, 
+0x69, 0x6e, 0xa0, 0x11, 0x44, 0x05, 0x0e, 0x11, 0xcd, 0x05, 0x00, 0x21, 
+0x00, 0x00, 0xfe, 0xff, 0xca, 0x11, 0x02, 0x87, 0x87, 0x87, 0x87, 0x87, 
+0xc6, 0x80, 0x5f, 0x16, 0x00, 0x1a, 0xfe, 0xe5, 0xca, 0x04, 0x02, 0x23, 
+0x11, 0x44, 0x05, 0x0e, 0x12, 0xe5, 0xcd, 0x05, 0x00, 0xe1, 0xc3, 0xee, 
+0x01, 0xcd, 0xd7, 0x04, 0xcd, 0x04, 0x05, 0x20, 0x66, 0x69, 0x6c, 0x65, 
+0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0xa0, 0x2a, 0x6d, 0x05, 0xeb, 0x13, 
+0xcd, 0x21, 0x05, 0xeb, 0xe1, 0x7c, 0x2f, 0x67, 0x7d, 0x2f, 0x6f, 0x23, 
+0x19, 0xcd, 0xd7, 0x04, 0xcd, 0x04, 0x05, 0x4b, 0x20, 0x62, 0x79, 0x74, 
+0x65, 0x73, 0x20, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 
+0x0d, 0x8a, 0xe1, 0xf1, 0x24, 0x2d, 0xc2, 0x3c, 0x01, 0xcd, 0x04, 0x05, 
+0x0d, 0x0a, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6d, 0x61, 0x70, 
+0x3a, 0x0d, 0x0a, 0x30, 0x09, 0x38, 0x09, 0x31, 0x36, 0x09, 0x32, 0x34, 
+0x09, 0x33, 0x32, 0x09, 0x34, 0x30, 0x09, 0x34, 0x38, 0x09, 0x35, 0x36, 
+0x09, 0x36, 0x34, 0x0d, 0x0a, 0x7c, 0x09, 0x7c, 0x09, 0x7c, 0x09, 0x7c, 
+0x09, 0x7c, 0x09, 0x7c, 0x09, 0x7c, 0x09, 0x7c, 0x09, 0x7c, 0x0d, 0x0a, 
+0x20, 0xd4, 0x21, 0x66, 0x05, 0x36, 0xff, 0x23, 0x36, 0x03, 0x06, 0x04, 
+0x23, 0x36, 0x00, 0x05, 0xc2, 0xa0, 0x02, 0x21, 0x00, 0x04, 0x0e, 0x3f, 
+0x11, 0x00, 0x04, 0xaf, 0x32, 0x6a, 0x05, 0x32, 0x6b, 0x05, 0x7e, 0x47, 
+0x2f, 0x77, 0x96, 0x70, 0xc2, 0xcd, 0x02, 0xe5, 0x21, 0x66, 0x05, 0x34, 
+0xc2, 0xc9, 0x02, 0x23, 0x34, 0xe1, 0xc3, 0xee, 0x02, 0x32, 0x6a, 0x05, 
+0x3e, 0xff, 0x90, 0xc2, 0xe0, 0x02, 0x3a, 0x6b, 0x05, 0xa7, 0xca, 0xee, 
+0x02, 0xc3, 0xe3, 0x02, 0x32, 0x6b, 0x05, 0xe5, 0x21, 0x68, 0x05, 0x34, 
+0xc2, 0xed, 0x02, 0x23, 0x34, 0xe1, 0x23, 0x1b, 0xaf, 0xb2, 0xb3, 0xc2, 
+0xb6, 0x02, 0xc5, 0xe5, 0x3a, 0x6a, 0x05, 0xa7, 0xc2, 0x23, 0x03, 0x25, 
+0x3a, 0x07, 0x00, 0xbc, 0xda, 0x0e, 0x03, 0xcd, 0x04, 0x05, 0xd4, 0xc3, 
+0x35, 0x03, 0x3a, 0x02, 0x00, 0xbc, 0xda, 0x1c, 0x03, 0xcd, 0x04, 0x05, 
+0xc3, 0xc3, 0x35, 0x03, 0xcd, 0x04, 0x05, 0xc2, 0xc3, 0x35, 0x03, 0x3a, 
+0x6b, 0x05, 0xa7, 0xca, 0x31, 0x03, 0xcd, 0x04, 0x05, 0xd2, 0xc3, 0x35, 
+0x03, 0xcd, 0x04, 0x05, 0xa0, 0xe1, 0xc1, 0x0d, 0xc2, 0xac, 0x02, 0xcd, 
+0x04, 0x05, 0x0d, 0x0a, 0x54, 0x3d, 0x54, 0x50, 0x41, 0x09, 0x43, 0x3d, 
+0x43, 0x50, 0x4d, 0x09, 0x42, 0x3d, 0x42, 0x49, 0x4f, 0x53, 0x20, 0x6f, 
+0x72, 0x20, 0x75, 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 
+0x09, 0x52, 0x3d, 0x52, 0x4f, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x62, 0x61, 
+0x64, 0x0d, 0x8a, 0xcd, 0x04, 0x05, 0x42, 0x49, 0x4f, 0x53, 0x20, 0x61, 
+0x74, 0xa0, 0xc3, 0x94, 0x03, 0xf5, 0x0f, 0x0f, 0x0f, 0x0f, 0xcd, 0x86, 
+0x03, 0xf1, 0xe6, 0x0f, 0xc6, 0x90, 0x27, 0xce, 0x40, 0x27, 0x5f, 0x0e, 
+0x02, 0xc3, 0x05, 0x00, 0x3a, 0x02, 0x00, 0xcd, 0x7d, 0x03, 0x3a, 0x01, 
+0x00, 0xcd, 0x7d, 0x03, 0xcd, 0x04, 0x05, 0x09, 0x69, 0x6f, 0x62, 0x79, 
+0x74, 0x65, 0xa0, 0x3a, 0x03, 0x00, 0xcd, 0x7d, 0x03, 0xcd, 0x04, 0x05, 
+0x09, 0x64, 0x72, 0x69, 0x76, 0x65, 0xa0, 0x3a, 0x04, 0x00, 0xcd, 0x7d, 
+0x03, 0xcd, 0x04, 0x05, 0x09, 0x42, 0x44, 0x4f, 0x53, 0x20, 0x61, 0x74, 
+0xa0, 0x3a, 0x07, 0x00, 0xcd, 0x7d, 0x03, 0x3a, 0x06, 0x00, 0xcd, 0x7d, 
+0x03, 0xcd, 0x04, 0x05, 0x0d, 0x0a, 0x0d, 0x8a, 0x2a, 0x66, 0x05, 0xe5, 
+0xcd, 0xd7, 0x04, 0xcd, 0x04, 0x05, 0x20, 0x42, 0x79, 0x74, 0x65, 0x73, 
+0x20, 0x52, 0x41, 0x4d, 0x09, 0x89, 0x2a, 0x68, 0x05, 0xe5, 0xcd, 0xd7, 
+0x04, 0xcd, 0x04, 0x05, 0x20, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x52, 
+0x4f, 0x4d, 0x09, 0x89, 0x2a, 0x06, 0x00, 0xcd, 0xd7, 0x04, 0xcd, 0x04, 
+0x05, 0x20, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x54, 
+0x50, 0x41, 0x0d, 0x8a, 0xd1, 0xe1, 0x19, 0xe5, 0x11, 0x00, 0x00, 0x7c, 
+0x2f, 0x67, 0x7d, 0x2f, 0x6f, 0x19, 0xcd, 0xd7, 0x04, 0xcd, 0x04, 0x05, 
+0x20, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 
+0x20, 0x20, 0x20, 0x89, 0xe1, 0xcd, 0xd7, 0x04, 0xcd, 0x04, 0x05, 0x20, 
+0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 
+0x20, 0x42, 0x79, 0x74, 0x65, 0x73, 0x0d, 0x0a, 0x0d, 0x0a, 0x41, 0x63, 
+0x74, 0x69, 0x76, 0x65, 0x20, 0x49, 0x2f, 0x4f, 0x20, 0x70, 0x6f, 0x72, 
+0x74, 0x73, 0xba, 0x21, 0x00, 0x10, 0x2b, 0x7c, 0xb5, 0xc2, 0x7a, 0x04, 
+0x21, 0x00, 0x00, 0x16, 0x00, 0x1e, 0xff, 0x7a, 0x47, 0x32, 0x8d, 0x04, 
+0xdb, 0x00, 0xfe, 0xff, 0xca, 0xb4, 0x04, 0xb8, 0xca, 0xb4, 0x04, 0x7a, 
+0xe6, 0xf0, 0xbb, 0xca, 0xa7, 0x04, 0xcd, 0x04, 0x05, 0x0d, 0x8a, 0x7a, 
+0xe6, 0xf0, 0x5f, 0x7a, 0xd5, 0xe5, 0xcd, 0x7d, 0x03, 0xe1, 0xd1, 0x23, 
+0xcd, 0x04, 0x05, 0xa0, 0x14, 0xc2, 0x87, 0x04, 0xcd, 0x04, 0x05, 0x0d, 
+0x8a, 0xcd, 0xd7, 0x04, 0xcd, 0x04, 0x05, 0x20, 0x50, 0x6f, 0x72, 0x74, 
+0x73, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x0d, 0x8a, 0x2a, 0x64, 
+0x05, 0xf9, 0xc9, 0xc3, 0x00, 0x05, 0xc5, 0xd5, 0xe5, 0x01, 0xf6, 0xff, 
+0x11, 0xff, 0xff, 0x09, 0x13, 0xda, 0xe3, 0x04, 0x01, 0x0a, 0x00, 0x09, 
+0xeb, 0x7c, 0xb5, 0xc4, 0xda, 0x04, 0x7b, 0xc6, 0x30, 0x5f, 0x0e, 0x02, 
+0x5f, 0xcd, 0x05, 0x00, 0xe1, 0xd1, 0xc1, 0xc9, 0xcd, 0xda, 0x04, 0xc9, 
+0xe3, 0xd5, 0x7e, 0x57, 0xe6, 0x7f, 0x5f, 0xe5, 0xd5, 0xcd, 0x1c, 0x05, 
+0xd1, 0xe1, 0x23, 0x3e, 0x80, 0xa2, 0xf2, 0x06, 0x05, 0xd1, 0xe3, 0xc9, 
+0x0e, 0x02, 0xc3, 0x05, 0x00, 0x3a, 0x6c, 0x05, 0xfe, 0x03, 0xc2, 0x2d, 
+0x05, 0x6b, 0x26, 0x00, 0xc9, 0xfe, 0x02, 0xc2, 0x3a, 0x05, 0x7b, 0x0f, 
+0xe6, 0x7f, 0x6f, 0xc3, 0x2a, 0x05, 0xd6, 0x03, 0x47, 0xeb, 0x29, 0x05, 
+0xc2, 0x3e, 0x05, 0xc9, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 
+0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 
+0xda, 0x04, 0x7b, 0xc6, 0x30, 0x5f, 0x0e, 0x02, 0x5f, 0xcd, 0x05, 0x00, 
+0xe1, 0xd1, 0xc1, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+};
+
+#define BYTES_PER_SECTOR 128
+static uint16_t index = 0;
+
+/* read next byte */
+uint8_t cpm_disk_read(void)
+{
+       uint8_t data = cpm_disk[index];
+       index++;
+       return(data);
+}
+
+/* select new sector (0..255) */
+void cpm_disk_write(uint8_t data)
+{
+       //printf("\n[ROMDISK SECT %i @ 0x%x]\n", data, data*BYTES_PER_SECTOR);
+       index = data * BYTES_PER_SECTOR;
+       return;
+}
+
diff --git a/avr/cpm.h b/avr/cpm.h
new file mode 100644 (file)
index 0000000..9568e55
--- /dev/null
+++ b/avr/cpm.h
@@ -0,0 +1,10 @@
+/* CP/M support header */
+#ifndef _CPM_H_
+#define _CPM_H_
+
+#include <stdint.h>
+
+uint8_t cpm_disk_read(void);
+void    cpm_disk_write(uint8_t);
+
+#endif /* _CPM_H_ */
diff --git a/avr/i2c.c b/avr/i2c.c
new file mode 100644 (file)
index 0000000..a970a38
--- /dev/null
+++ b/avr/i2c.c
@@ -0,0 +1,80 @@
+/* I2C communication */
+
+#include <stdio.h>
+
+#include <util/twi.h>
+
+#include "i2c.h"
+
+//#define I2C_DEBUG { printf("<0x%02x>", (TWSR & 0xF8)); }
+#define I2C_DEBUG
+
+void i2c_init(void)
+{
+       TWSR = 0;       /* Prescaler 1 */
+       TWBR = 12;      /* 72 = 100 kHz @ 16 MHz, 12 = 400 kHz @ 16 MHz */
+       TWCR = (1 << TWEN);     /* enable I2C pins */
+
+       /* test low address PCF8574 */
+       i2c_write(I2C_ALOW, 0x33); if(i2c_read(I2C_ALOW) != 0x33) while(1);
+       i2c_write(I2C_ALOW, 0x55); if(i2c_read(I2C_ALOW) != 0x55) while(1);
+       i2c_write(I2C_ALOW, 0xAA); if(i2c_read(I2C_ALOW) != 0xAA) while(1);
+       i2c_write(I2C_ALOW, 0xFF); if(i2c_read(I2C_ALOW) != 0xFF) while(1);
+
+       /* test high address PCF8574 */
+       i2c_write(I2C_AHIGH, 0x33); if(i2c_read(I2C_AHIGH) != 0x33) while(1);
+       i2c_write(I2C_AHIGH, 0x55); if(i2c_read(I2C_AHIGH) != 0x55) while(1);
+       i2c_write(I2C_AHIGH, 0xAA); if(i2c_read(I2C_AHIGH) != 0xAA) while(1);
+       i2c_write(I2C_AHIGH, 0xFF); if(i2c_read(I2C_AHIGH) != 0xFF) while(1);
+
+       /* test data PCF8574 */
+       i2c_write(I2C_DATA, 0x33); if(i2c_read(I2C_DATA) != 0x33) while(1);
+       i2c_write(I2C_DATA, 0x55); if(i2c_read(I2C_DATA) != 0x55) while(1);
+       i2c_write(I2C_DATA, 0xAA); if(i2c_read(I2C_DATA) != 0xAA) while(1);
+       i2c_write(I2C_DATA, 0xFF); if(i2c_read(I2C_DATA) != 0xFF) while(1);
+}
+
+static void i2c_start(void)
+{
+       TWCR = (1 << TWINT) | (1 << TWSTA) | (1 << TWEN);       /* START */
+       while(!(TWCR & (1 << TWINT)));                          /* wait */
+       I2C_DEBUG;
+}
+
+static void i2c_stop(void)
+{
+       TWCR = (1 << TWINT) | (1 << TWSTO) | (1 << TWEN);       /* STOP */
+       I2C_DEBUG;
+}
+
+uint8_t i2c_read(uint8_t addr)
+{
+       uint8_t data;
+
+       i2c_start();
+       TWDR = (addr << 1) | 0x01;              /* target address */
+       TWCR = (1 << TWINT) | (1 << TWEN);      /* start transmission */
+       while(!(TWCR & (1 << TWINT)));          /* wait until done */
+       I2C_DEBUG;
+       TWCR = (1 << TWINT) | (1 << TWEN);      /* read date, NAK */
+       while(!(TWCR & (1 << TWINT)));          /* wait until done */
+       data = TWDR;
+       i2c_stop();
+
+       return(data);
+}
+
+void i2c_write(uint8_t addr, uint8_t data)
+{
+       i2c_start();
+       TWDR = (addr << 1);                     /* target address */
+       TWCR = (1 << TWINT) | (1 << TWEN);      /* start transmission */
+       while(!(TWCR & (1 << TWINT)));          /* wait until done */
+       I2C_DEBUG;
+       TWDR = data;
+       TWCR = (1 << TWINT) | (1 << TWEN);      /* receive data with NAK */
+       while(!(TWCR & (1 << TWINT)));          /* wait until done */
+       I2C_DEBUG;
+       i2c_stop();
+}
+
diff --git a/avr/i2c.h b/avr/i2c.h
new file mode 100644 (file)
index 0000000..6b327f1
--- /dev/null
+++ b/avr/i2c.h
@@ -0,0 +1,14 @@
+/* I2C communication header */
+#ifndef _I2C_H_
+#define _I2C_H_
+
+#define I2C_ALOW       0x20
+#define I2C_AHIGH      0x21
+#define I2C_DATA       0x22
+
+void i2c_init(void);
+void i2c_test(void);
+uint8_t i2c_read(uint8_t addr);
+void i2c_write(uint8_t addr, uint8_t data);
+
+#endif /* _I2C_H_ */
diff --git a/avr/io.c b/avr/io.c
new file mode 100644 (file)
index 0000000..9106872
--- /dev/null
+++ b/avr/io.c
@@ -0,0 +1,101 @@
+/* I/O request code */
+
+#include <stdio.h>
+
+#include <avr/pgmspace.h>
+#include <avr/interrupt.h>
+
+#include "i2c.h"
+#include "bus.h"
+
+#include "monitor.h"
+#include "uart.h"
+#include "cpm.h"
+
+#define UNDEF_RD(ADDR, REG)    0xFF; printf_P(PSTR("<IORD %04x %s>"),ADDR,REG);
+#define UNDEF_WR(ADDR, REG)    printf_P(PSTR("<IOWR %04x %s>"), ADDR, REG);
+
+void io_init(void)
+{
+       /* nothing */
+}
+
+/* Z80 doing an I/O read */
+void io_read(void)
+{
+       uint8_t data;
+       uint8_t addr = i2c_read(I2C_ALOW);
+
+       /* select register to read from */
+       switch(addr) {
+               /* 0x00-0x07: return Slot ID */
+               case 0x00: data = slots[0]; break;
+               case 0x01: data = slots[1]; break;
+               case 0x02: data = slots[2]; break;
+               case 0x03: data = slots[3]; break;
+               case 0x04: data = slots[4]; break;
+               case 0x05: data = slots[5]; break;
+               case 0x06: data = slots[6]; break;
+               case 0x07: data = slots[7]; break;
+
+               /* 0x08-0x0F: SYSTEM */
+               case 0x0f: data = cpm_disk_read(); break;       /* ROMDISK */
+
+               /* 0x10-0x17: SERIAL PORT */
+               case 0x10:                                      /* DATA   */
+                       data = uart_rx_state() ? uart_getc(NULL) : 0xFF;
+                       break;
+               case 0x11: data = uart_rx_state(); break;       /* RXFILL */
+               case 0x12: data = UART_RXBUFSIZE;  break;       /* RXSIZE */
+               case 0x13: data = uart_tx_state(); break;       /* TXFILL */
+               case 0x14: data = UART_TXBUFSIZE;  break;       /* TXSIZE */
+               case 0x15: data = UNDEF_RD(addr, "UART_SET"); break;
+               case 0x16: data = UNDEF_RD(addr, "UART_IRQ"); break;
+
+               /* undefined address: return 0xFF */
+               default: data = 0xFF;
+       }
+
+//     printf_P(PSTR("<IORD @ %02xh = %02xh>"), addr, data);
+
+       i2c_write(I2C_DATA, data);      /* write data on bus */
+       bus_nowait();                   /* let Z80 read data */
+       bus_lock();                     /* lock bus */
+       while(!(MEMPIN & (1 << RD)));   /* wait until /RD goes high */
+       i2c_write(I2C_DATA, 0xFF);      /* remove data from bus */
+       bus_unlock();                   /* release bus */
+
+       bus_wait();     /* enable autowait for next cycle */
+       return;
+}
+
+/* Z80 doing an I/O write */
+void io_write(void)
+{
+       uint8_t addr = i2c_read(I2C_ALOW);
+       uint8_t data = i2c_read(I2C_DATA);
+
+       /* select register to write to */
+       switch(addr) {
+               /* 0x08-0x0F: SYSTEM */
+               case 0x0f: cpm_disk_write(data); break;         /* ROMDISK */
+
+               /* 0x10-0x17: SERIAL PORT */
+               case 0x10: uart_putc(data, NULL); break;        /* DATA */
+               case 0x15: UNDEF_WR(addr, "UART_SET"); break;
+               case 0x16: UNDEF_WR(addr, "UART_IRQ"); break;
+
+               /* invalid address: ignore request */
+               default: break;
+       }
+
+//     printf_P(PSTR("<IOWR @ %04x = %02x>"), addr, data);
+
+       /* release /WAIT and wait until /WR goes high */
+       bus_nowait();
+       while(!(MEMPIN & (1 << WR)));
+
+       bus_wait();     /* enable autowait for next cycle */
+       return;
+}
+
diff --git a/avr/io.h b/avr/io.h
new file mode 100644 (file)
index 0000000..b1a3251
--- /dev/null
+++ b/avr/io.h
@@ -0,0 +1,10 @@
+/* I/O header */
+#ifndef _IO_H_
+#define _IO_H_
+
+void io_init(void);
+
+void io_read(void);
+void io_write(void);
+
+#endif /* _IO_H_ */
diff --git a/avr/main.c b/avr/main.c
new file mode 100644 (file)
index 0000000..8e6510a
--- /dev/null
@@ -0,0 +1,84 @@
+/* Z80 Mainboard Controller */
+
+#include <stdio.h>
+
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <avr/pgmspace.h>
+#include <util/delay.h>
+
+#include "uart.h"
+#include "bus.h"
+#include "i2c.h"
+#include "mem.h"
+#include "io.h"
+
+#include "monitor.h"
+
+uint8_t xorshift(uint8_t new_seed)
+{
+       static uint8_t seed = 0xA5;
+       if(new_seed) seed=new_seed;
+
+       seed ^= (seed << 1);
+       seed ^= (seed >> 1);
+       seed ^= (seed << 2);
+       return(seed);
+}
+
+int main(void)
+{
+       /* initialize serial port and stdin/stdout */
+       uart_init();
+       stdout = &uart_out;
+       stdin  = &uart_in;
+       sei();
+
+       /* initialize hardware and monitor */
+       printf_P(PSTR("\nAVR INIT "));
+       printf_P(PSTR("[BUS")); bus_init(); printf_P(PSTR("] "));
+       printf_P(PSTR("[I2C")); i2c_init(); printf_P(PSTR("] "));
+       printf_P(PSTR("[MEM")); mem_init(); printf_P(PSTR("] "));
+       printf_P(PSTR("[I/O"));  io_init(); printf_P(PSTR("] "));
+       printf_P(PSTR("[MON] ")); monitor_init();
+       printf_P(PSTR("DONE.\nSend BREAK to enter monitor.\n"));
+
+       /* load initial program into memory */
+       menu_ihex();
+
+#if 0
+       mem_start();
+       for(uint8_t i = 0; i < 8; i++) printf("%02x ", mem_read(i));
+       mem_stop();
+#endif
+
+       /* reset Z80 */
+       printf_P(PSTR("Go!\n"));
+       bus_reset();
+       bus_unlock();
+       bus_wait();
+
+       while(1) {
+               if(!(MEMPIN & (1 << SEL))) {    /* got I/O request */
+
+                       /* answer the I/O request */
+                       if(!(MEMPIN & (1 << RD))) {
+//                             printf_P(PSTR("<IORD>"));
+                               io_read();
+                       } else if(!(MEMPIN & (1 << WR))) {
+//                             printf_P(PSTR("<IOWR>"));
+                               io_write();
+                       } else {
+                               printf_P(PSTR("<IOFAIL>"));
+                               while(1);
+                       }
+
+                       while(!(MEMPIN & (1 << SEL)));
+               }
+
+               if(uart_break) monitor();       /* enter monitor on break */
+       }
+
+       printf_P(PSTR("\nAVR END\n"));
+       while(1);
+}
diff --git a/avr/mem.c b/avr/mem.c
new file mode 100644 (file)
index 0000000..f662ffe
--- /dev/null
+++ b/avr/mem.c
@@ -0,0 +1,91 @@
+/* MEMORY access */
+
+#include <stdio.h>
+
+#include <avr/io.h>
+
+#include "i2c.h"
+#include "bus.h"
+#include "mem.h"
+
+#define MEMTEST_MAX 512
+
+static uint8_t rand(uint16_t *x)
+{
+       *x ^= (*x <<  1);
+       *x ^= (*x >>  1);
+       *x ^= (*x << 14);
+       return(*x & 0xFF);
+}
+
+void mem_init(void)
+{
+       int seed;
+       int s = 0;
+
+       mem_start();
+       seed = 0x4D7A;
+       for(uint16_t i = 0; i < MEMTEST_MAX; i++) {
+               if(!(i%512)) printf("|");
+               mem_write(i, rand(&seed));
+       }
+       mem_stop();
+
+       mem_start();
+       seed = 0x4D7A;
+       for(uint16_t i = 0; i < MEMTEST_MAX; i++) {
+               if(!(i%512)) printf("-");
+               uint8_t v1 = mem_read(i);
+               uint8_t v2 = rand(&seed);
+
+               if((v1 & 0xFF) != (v2 & 0xFF)) {
+                       if(!s) printf("<0x%x-", i);
+                       s = 1;
+               } else {
+                       if(s) printf("0x%x>", i-1);
+                       s = 0;
+               }
+       }
+       mem_stop();
+}
+
+void mem_start(void)
+{
+       bus_lock();                                     /* get bus access */
+       MEMPORT |= (1 << MREQ) | (1 << RD) | (1 << WR); /* turn on pullups */
+       MEMDDR  |= (1 << MREQ) | (1 << RD) | (1 << WR); /* pins as outputs */
+}
+
+void mem_stop(void)
+{
+       MEMDDR  &= ~((1 << MREQ) | (1 << RD) | (1 << WR)); /* pins as inputs */
+       i2c_write(I2C_ALOW,  0xFF);                     /* tristate PCF8574s */
+       i2c_write(I2C_AHIGH, 0xFF);
+       i2c_write(I2C_DATA,  0xFF);
+}
+
+uint8_t mem_read(uint16_t addr)
+{
+       uint8_t data;
+
+       /* do a read request */
+       i2c_write(I2C_ALOW,  (addr & 0x00FF));
+       i2c_write(I2C_AHIGH, (addr & 0xFF00) >> 8);
+       i2c_write(I2C_DATA,  0xFF);
+       MEMPORT &= ~((1 << MREQ) | (1 << RD));
+       data = i2c_read(I2C_DATA);
+       MEMPORT |= (1 << MREQ) | (1 << RD);
+
+       return(data);
+}
+
+void mem_write(uint16_t addr, uint8_t data)
+{
+       /* do a write request */
+       i2c_write(I2C_ALOW,  (addr & 0x00FF));
+       i2c_write(I2C_AHIGH, (addr & 0xFF00) >> 8);
+       i2c_write(I2C_DATA,  data);
+       MEMPORT &= ~((1 << MREQ) | (1 << WR));
+       MEMPORT |= (1 << MREQ) | (1 << WR);
+}
+
diff --git a/avr/mem.h b/avr/mem.h
new file mode 100644 (file)
index 0000000..6c9270a
--- /dev/null
+++ b/avr/mem.h
@@ -0,0 +1,16 @@
+/* MEMORY access header */
+#ifndef _MEMORY_H_
+#define _MEMORY_H_
+
+void mem_init(void);
+void mem_test(void);
+
+/* start/stop memory access */
+void mem_start(void);
+void mem_stop(void);
+
+/* single read/write cycle */
+uint8_t mem_read(uint16_t addr);
+void mem_write(uint16_t addr, uint8_t data);
+
+#endif /* _MEMORY_H_ */
diff --git a/avr/monitor.h b/avr/monitor.h
new file mode 100644 (file)
index 0000000..8931880
--- /dev/null
@@ -0,0 +1,13 @@
+/* MONITOR header */
+#ifndef _MONITOR_H_
+#define _MONITOR_H_
+
+void monitor_init(void);
+void monitor(void);
+uint8_t menu_main(void);
+uint8_t menu_slots(void);
+void menu_ihex(void);
+
+extern uint8_t slots[8];
+
+#endif /* _MONITOR_H_ */
diff --git a/avr/monitor/ihex.c b/avr/monitor/ihex.c
new file mode 100644 (file)
index 0000000..675804f
--- /dev/null
@@ -0,0 +1,95 @@
+/* IHEX loader */
+
+#include <avr/pgmspace.h>
+
+#include <stdio.h>
+
+#include "../mem.h"
+#include "../uart.h"
+#include "../monitor.h"
+
+static uint8_t get_hex(char c)
+{
+       switch(c) {
+       case '0': return 0;
+       case '1': return 1;
+       case '2': return 2;
+       case '3': return 3;
+       case '4': return 4;
+       case '5': return 5;
+       case '6': return 6;
+       case '7': return 7;
+       case '8': return 8;
+       case '9': return 9;
+       case 'A': case 'a': return 10;
+       case 'B': case 'b': return 11;
+       case 'C': case 'c': return 12;
+       case 'D': case 'd': return 13;
+       case 'E': case 'e': return 14;
+       case 'F': case 'f': return 15;
+       }
+}
+
+void menu_ihex(void)
+{
+       char c;
+
+       uint8_t  state = 0;
+       uint8_t  len, count, sum, type = 0;
+       uint16_t addr;
+       uint8_t  byte;
+       uint8_t  echo = uart_echo;
+
+       mem_start();
+       uart_echo = 0;
+       printf_P(PSTR("Please send IHEX file now.\n"));
+
+       while(type != 0x01) {
+               /* wait for RECORD START */
+               sum = 0;
+               while(c != ':') c = uart_getc(NULL);
+
+               /* read RECORD LENGTH */
+               c=uart_getc(NULL); len  = get_hex(c) << 4;
+               c=uart_getc(NULL); len |= get_hex(c);
+               sum += len;
+
+               /* read LOAD OFFSET */
+               c=uart_getc(NULL); addr  = get_hex(c) << 12;
+               c=uart_getc(NULL); addr |= get_hex(c) <<  8;
+               c=uart_getc(NULL); addr |= get_hex(c) <<  4;
+               c=uart_getc(NULL); addr |= get_hex(c);
+               sum += (addr >> 8);
+               sum += (addr & 0xFF);
+
+               /* read RECORD TYPE */
+               c=uart_getc(NULL); type  = get_hex(c) << 4;
+               c=uart_getc(NULL); type |= get_hex(c);
+               sum += type;
+
+               /* read DATA */
+               for(uint8_t i = 0; i < len; i++) {
+                       c = uart_getc(NULL); byte  = get_hex(c) << 4;
+                       c = uart_getc(NULL); byte |= get_hex(c);
+                       sum += byte;
+
+                       mem_write(addr + i, byte);
+               }
+
+               /* read CHKSUM */
+               c = uart_getc(NULL); byte  = get_hex(c) << 4;
+               c = uart_getc(NULL); byte |= get_hex(c);
+               sum += byte;
+
+               if(sum) printf_P(PSTR("\nFAIL:0x%02x"), sum);
+               else    printf_P(PSTR("\r0x%04x"), addr);
+       }
+
+       /* read last CRLF */
+       if((char)(uart_getc(NULL)) == '\r') uart_getc(NULL);
+
+       printf_P(PSTR("\nReading IHEX file finished.\n"));
+       uart_echo = echo;
+       mem_stop();
+}
+
diff --git a/avr/monitor/monitor.c b/avr/monitor/monitor.c
new file mode 100644 (file)
index 0000000..737998e
--- /dev/null
@@ -0,0 +1,92 @@
+/* AVR Monitor */
+
+#include <avr/pgmspace.h>
+#include <avr/eeprom.h>
+
+#include <stdio.h>
+
+#include "../monitor.h"
+#include "../uart.h"
+#include "../bus.h"
+
+/* variables mirrored in EEPROM */
+uint8_t ee_slots[8] EEMEM;
+uint8_t slots[8];
+
+uint8_t menu_main(void)
+{
+       uint8_t need_save = 0;
+       char    sel = 0;
+
+       while(sel != '9') {
+               printf_P(PSTR("\nAVR Monitor\n===========\n"));
+               printf_P(PSTR("\t(1) Change Slot Configuration\n"));
+               printf_P(PSTR("\t(2) Load IHEX file to memory\n"));
+               printf_P(PSTR("\t(3) Reset System\n"));
+               printf_P(PSTR("\t(9) Exit\n"));
+               printf_P(PSTR("Select: "));
+               sel = uart_getc(NULL);
+               printf_P(PSTR("\n\n"));
+
+               switch(sel) {
+               case '1': if(menu_slots() != 0) need_save = 1; break;
+               case '2': menu_ihex(); break;
+               case '3': bus_reset(); break;
+               case '9': break;
+               default:  printf_P(PSTR("Invalid Entry!\n")); break;
+               }
+       }
+       return(need_save);
+}
+
+void monitor()
+{
+       /* clear break flag and turn on serial echo */
+       bus_lock();
+       uart_break = 0;
+       uart_echo  = 1;
+
+       /* run main menu and save if changes happened and user wishes */
+       if(menu_main()) {
+               printf_P(PSTR("Settings have been changed. Save [y/N]? "));
+               int res = uart_getc(NULL);
+
+               switch((char)res) {
+               case 'y': case 'Y':
+                       printf_P(PSTR("\n\tSaving..."));
+                       for(uint8_t i = 0; i < 8; i++)
+                               eeprom_update_byte(&ee_slots[i], slots[i]);
+                       printf_P(PSTR("done.\n"));
+                       break;
+               default:
+                       printf_P(PSTR("\n\tSettings have NOT been saved.\n"));
+               }
+       }
+       /* turn off serial echo */
+       uart_echo = 0;
+
+       printf_P(PSTR("Returning to system.\n"));
+       bus_unlock();
+}
+
+void monitor_init()
+{
+       uint8_t run_monitor = 0;
+
+       /* read variables from EEPROM */
+       for(uint8_t i = 0; i < 8; i++)
+               slots[i] = eeprom_read_byte(&ee_slots[i]);
+
+       /* check for valid values */
+       for(uint8_t i = 0; i < 8; i++)
+               if(slots[i] == 0xFF)
+                       run_monitor = 1;
+
+       /* run monitor if necessary */
+       if(run_monitor) {
+               printf_P(PSTR("\nEEPROM contains invalid entries.\n"));
+               monitor();
+       }
+       return;
+}
+
diff --git a/avr/monitor/slots.c b/avr/monitor/slots.c
new file mode 100644 (file)
index 0000000..98ef292
--- /dev/null
@@ -0,0 +1,85 @@
+/* Slot Configuration */
+
+#include <stdio.h>
+
+#include <avr/pgmspace.h>
+
+#include "../uart.h"
+#include "../monitor.h"
+
+static char* boards[] = {
+       "Empty",
+       "AVR Board",
+       "32K SRAM",
+       "-- ID 0x03 --",
+       "-- ID 0x04 --",
+};
+static uint8_t num_boards = sizeof(boards) / sizeof(boards[0]);
+
+static uint8_t change_slot(uint8_t slot)
+{
+       if(slot > 8) return(0);
+
+       uint8_t changed = 0;
+       uint8_t old_id = slots[slot];
+       char    sel = 0;
+
+       printf_P(PSTR("CHANGING SLOT\n============\n"), slot);
+       for(uint8_t i = 0; i < num_boards; i++) {
+               printf_P(PSTR("\t(%2u) %s\n"), i, boards[i]);
+       }
+
+       while(1) {
+               /* TODO: fix this for IDs greater 9 */
+               printf_P(PSTR("Select new board for slot %u: "), slot);
+               sel = uart_getc(NULL);
+               printf("\n\n");
+
+               if((unsigned)(sel - '0') < num_boards) {
+                       slots[slot] = (sel - '0');
+                       if(slots[slot] != old_id) changed = 1;
+                       printf_P(PSTR("Set to ID 0x%02x ['%s']\n"),
+                               (sel - '0'), boards[slots[slot]]);
+               } else {
+                       printf_P(PSTR("ID was NOT not changed.\n"));
+               }
+               break;
+       }
+
+       return(changed);
+}
+
+uint8_t menu_slots(void)
+{
+       int slots_changed = 0;
+       char sel = 0;
+
+       while(sel != '9') {
+               printf_P(PSTR("\nSLOT CONFIGURATION\n==================\n"));
+               for(uint8_t i = 1; i <= 8; i++) {
+                       char *name = "Invalid Entry";
+
+                       if(slots[i] != 0xFF) name = boards[slots[i]];
+                       printf_P(PSTR("\t(%u) Change Slot %u: 0x%02x [%s]\n"),
+                               i, (i-1), slots[i], name);
+               }
+               printf_P(PSTR("\t(9) Exit\n"));
+               printf_P(PSTR("Select: "));
+               sel = uart_getc(NULL);
+               printf_P(PSTR("\n\n"));
+
+               switch(sel) {
+               case '1': case '2': case '3': case '4':
+               case '5': case '6': case '7': case '8':
+                       printf_P(PSTR("Changing Slot %i\n"), (sel - '0'));
+                       if(change_slot(sel - '0')) slots_changed = 1;
+                       break;
+               case '9':
+                       break;
+               default:
+                       printf_P(PSTR("Invalid Entry!\n")); break;
+               }
+       }
+       return(slots_changed);
+}
+
diff --git a/avr/uart.c b/avr/uart.c
new file mode 100644 (file)
index 0000000..f4459f3
--- /dev/null
@@ -0,0 +1,113 @@
+/* interrupt-driven UART routines */
+
+#include <stdio.h>
+
+#include <avr/io.h>
+#include <avr/interrupt.h>
+
+#include "uart.h"
+
+static volatile uint8_t uart_txbuf[UART_TXBUFSIZE];
+static volatile uint8_t uart_tx_rp = 0;
+static volatile uint8_t uart_tx_wp = 0;
+static volatile uint8_t uart_rxbuf[UART_RXBUFSIZE];
+static volatile uint8_t uart_rx_rp = 0;
+static volatile uint8_t uart_rx_wp = 0;
+
+/* global, external accessable variables */
+volatile uint8_t uart_break = 0;       /* 0: no break detected */
+volatile uint8_t uart_echo  = 0;       /* 0: disabled, otherwise enabled */
+
+void uart_init(void)
+{
+       UBRR0  = ((F_CPU + BAUDRATE * 8) / (BAUDRATE * 16) - 1);
+       UCSR0B = (1<<RXCIE0) | (1<<RXEN0) | (1<<TXEN0);
+       UCSR0C = (1<<UCSZ01) | (1<<UCSZ00);
+}
+
+uint8_t uart_rx_state(void)
+{
+       /* number of bytes in Rx buffer */
+       return((uint8_t)(uart_rx_wp - uart_rx_rp) % UART_RXBUFSIZE);
+}
+
+uint8_t uart_tx_state(void)
+{
+       /* number of bytes in Tx buffer */
+       return((uint8_t)(uart_tx_wp - uart_tx_rp) & UART_TXBUFSIZE);
+}
+
+int uart_putc(char c, FILE *stream)
+{
+       if(c == '\n') uart_putc('\r', stream);
+
+       uint8_t tmp = (uart_tx_wp + 1) % UART_TXBUFSIZE;
+
+       /* buffer full -> block */
+       while(tmp == uart_tx_rp);
+
+       /* enqueue */
+       uart_txbuf[uart_tx_wp] = c;
+       uart_tx_wp = tmp;
+
+       /* enable UDRE interrupt */
+       UCSR0B |= (1<<UDRIE0);
+
+       return 0;
+}
+
+ISR(USART_UDRE_vect)
+{
+       uint8_t tmp;
+
+       if(uart_tx_rp != uart_tx_wp) {
+               /* dequeue */
+               tmp = (uart_tx_rp + 1) % UART_TXBUFSIZE;
+               UDR0 = uart_txbuf[uart_tx_rp];
+               uart_tx_rp = tmp;
+       } else {
+               /* buffer empty -> disable interrupt */
+               UCSR0B &= ~(1<<UDRIE0);
+       }
+}
+
+int uart_getc(FILE *stream)
+{
+       uint8_t tmp = (uart_rx_rp + 1) % UART_RXBUFSIZE;
+
+       /* empty buffer -> block */
+       while(uart_rx_rp == uart_rx_wp);
+
+       /* dequeue data */
+       uart_rx_rp = tmp;
+       unsigned char c = uart_rxbuf[uart_rx_rp];
+
+       if(uart_echo) {
+               /* echo */
+               if(c == '\r') uart_putc('\n', stream);
+               uart_putc(c, stream);
+       }
+
+       return c;
+}
+
+ISR(USART_RX_vect) {
+       uint8_t tmp  = (uart_rx_wp + 1) % UART_RXBUFSIZE;
+       uint8_t ferr = UCSR0A & (1<<FE0);
+       uint8_t data = UDR0;
+
+       /* check for BREAK */
+       if(ferr && (data == 0)) {
+               uart_break = 1;
+               return;
+       }
+
+       /* enqueue if space in buffer */
+       if(uart_rx_rp != tmp) {
+               uart_rx_wp = tmp;
+               uart_rxbuf[uart_rx_wp] = data;
+       }
+}
+
+FILE uart_out = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);
+FILE uart_in  = FDEV_SETUP_STREAM(NULL, uart_getc, _FDEV_SETUP_READ);
diff --git a/avr/uart.h b/avr/uart.h
new file mode 100644 (file)
index 0000000..ed3729e
--- /dev/null
@@ -0,0 +1,24 @@
+/* UART header */
+#ifndef _UART_H_
+#define _UART_H_
+
+#include <stdio.h>
+
+#define BAUDRATE       9600UL
+#define UART_TXBUFSIZE 16
+#define UART_RXBUFSIZE 16
+
+extern FILE uart_out;
+extern FILE uart_in;
+
+extern volatile uint8_t uart_break;
+extern volatile uint8_t uart_echo;
+
+void uart_init(void);
+int  uart_putc(char c, FILE *stream);
+int  uart_getc(FILE *stream);
+
+uint8_t uart_rx_state(void);
+uint8_t uart_tx_state(void);
+
+#endif /* _UART_H_ */