]> Zhao Yanbai Git Server - minix.git/commitdiff
fb: introduce framebuffer support to Minix
authorThomas Veerman <thomas@minix3.org>
Fri, 1 Feb 2013 12:13:19 +0000 (13:13 +0100)
committerThomas Veerman <thomas@minix3.org>
Thu, 21 Feb 2013 10:29:08 +0000 (10:29 +0000)
This patch introduces a framebuffer to Minix. It's written for the ARM
port of Minix, but has an architectural split that separates the
hardware dependent part from the non-hardware dependent part. Futhermore,
this driver was developed using a screen that has a native resolution of
1024x600 pixels and having lack of support for obtaining EDID from the
screen. Consequently, it uses a hardcoded resolution of 1024x600.

The driver uses an interface based on the Linux ioctl API, but supports
only a very limited subset.

23 files changed:
commands/MAKEDEV/MAKEDEV.sh
commands/Makefile
distrib/sets/lists/minix/md.evbarm
distrib/sets/lists/minix/mi
drivers/Makefile
drivers/fb/Makefile [new file with mode: 0644]
drivers/fb/arch/earm/Makefile.inc [new file with mode: 0644]
drivers/fb/arch/earm/dss.h [new file with mode: 0644]
drivers/fb/arch/earm/fb_arch.c [new file with mode: 0644]
drivers/fb/fb.c [new file with mode: 0644]
drivers/fb/fb.h [new file with mode: 0644]
drivers/fb/logos.h [new file with mode: 0644]
drivers/ramdisk/Makefile
drivers/ramdisk/proto.arm.small
drivers/ramdisk/proto.dev
drivers/ramdisk/rc.arm
etc/system.conf
include/minix/Makefile
include/minix/dmap.h
include/minix/fb.h [new file with mode: 0644]
include/sys/Makefile
include/sys/ioc_fb.h [new file with mode: 0644]
sys/sys/ioctl.h

index 43f547b3fd0083218a45b0a7cd0f9ca792dd5e24..d41ba53f25f247babf1c691606f4347ad8283f64 100644 (file)
@@ -23,13 +23,14 @@ case $#:$1 in
        ttypa ttypb ttypc ttypd ttype ttypf \
        ttyq0 ttyq1 ttyq2 ttyq3 ttyq4 ttyq5 ttyq6 ttyq7 ttyq8 ttyq9 \
        ttyqa ttyqb ttyqc ttyqd ttyqe ttyqf \
-       eth klog random uds filter fbd hello
+       eth klog random uds filter fbd hello fb0
     ;;
 0:|1:-\?)
     cat >&2 <<EOF
 Usage: $0 [-n] key ...
 Where key is one of the following:
   ram mem kmem null boot zero    # One of these makes all these memory devices
+  fb0                    # Make /dev/fb0
   fd0 fd1 ...            # Floppy devices for drive 0, 1, ...
   fd0p0 fd1p0 ...        # Make floppy partitions fd0p[0-3], fd1p[0-3], ...
   c0d0 c0d1 ...                  # Make disks c0d0, c0d1, ...
@@ -254,7 +255,7 @@ do
        ;;
     uds)
        # unix domain sockets device
-       $e mknod uds c 18 0;    $e chmod 644 random
+       $e mknod uds c 18 0;
        $e chgrp operator uds
        $e chmod 666 uds
        ;;
@@ -278,6 +279,11 @@ do
        $e mknod hello c 17 0
        $e chmod 644 hello
        ;;
+    fb0)
+       # framebuffer driver
+       $e mknod fb0 c 19 0
+       $e chmod 644 fb0
+       ;;
     *)
        echo "$0: don't know about $dev" >&2
        ex=1
index 40be52a6a6f1e05ff51921adf06b6d34eb80b67b..c5eeee6d95eb8872fe5fde423ecff4ac79c81cdc 100644 (file)
@@ -38,5 +38,4 @@ SUBDIR+=      atnormalize dosread fdisk loadfont \
        autopart part partition playwave  \
        recwave repartition screendump
 .endif
-
 .include <bsd.subdir.mk>
index 615228e390d8f87e6ee3d490a6e42cfce5940383..1903024437b38456344bba5fa128b1fbd6ddf490 100644 (file)
@@ -95,5 +95,6 @@
 ./usr/lib/libpadconf.a                 minix-sys
 ./usr/lib/libpadconf_pic.a             minix-sys
 ./usr/mdec                             minix-sys
+./usr/sbin/fb                          minix-sys
 ./usr/sbin/gpio                                minix-sys
 ./usr/sbin/random                      minix-sys
index 4461eada6a7d01c97336a6d599cbe7adba4bfd2f..d1616b56c8ead4bea520b3aa07bdc3d7f3fd35cb 100644 (file)
 ./usr/include/minix/drvlib.h           minix-sys
 ./usr/include/minix/ds.h               minix-sys
 ./usr/include/minix/endpoint.h         minix-sys
+./usr/include/minix/fb.h               minix-sys
 ./usr/include/minix/fslib.h            minix-sys
 ./usr/include/minix/gcov.h             minix-sys
 ./usr/include/minix/gpio.h             minix-sys
 ./usr/include/sys/ioc_block.h          minix-sys
 ./usr/include/sys/ioccom.h             minix-sys
 ./usr/include/sys/ioc_disk.h           minix-sys
+./usr/include/sys/ioc_fb.h             minix-sys
 ./usr/include/sys/ioc_fbd.h            minix-sys
 ./usr/include/sys/ioc_file.h           minix-sys
 ./usr/include/sys/ioc_memory.h         minix-sys
index 10f4a03572a2d27f3dbf237fbf7c9903fb367cf5..a5306585f37fb0ffaa04a243cf6ee757bf4a52e7 100644 (file)
@@ -23,7 +23,7 @@ SUBDIR= ahci amddev atl2 at_wini audio dec21140A dp8390 dpeth \
 .endif
 
 .if ${MACHINE_ARCH} == "earm"
-SUBDIR=  gpio mmc log tty random
+SUBDIR=  fb gpio mmc log tty random
 .endif
 
 .endif # ${MKIMAGEONLY} != "yes"
diff --git a/drivers/fb/Makefile b/drivers/fb/Makefile
new file mode 100644 (file)
index 0000000..2744ccf
--- /dev/null
@@ -0,0 +1,15 @@
+# Makefile for the framebuffer driver.
+PROG=  fb
+
+.include "arch/${MACHINE_ARCH}/Makefile.inc"
+
+SRCS+= fb.c
+
+DPADD+=        ${LIBCHARDRIVER} ${LIBSYS}
+LDADD+=        -lchardriver -lsys
+
+MAN=
+
+BINDIR?= /usr/sbin
+
+.include <minix.service.mk>
diff --git a/drivers/fb/arch/earm/Makefile.inc b/drivers/fb/arch/earm/Makefile.inc
new file mode 100644 (file)
index 0000000..2afe6fe
--- /dev/null
@@ -0,0 +1,7 @@
+# Makefile for arch-dependent framebuffer code
+.include <bsd.own.mk>
+
+HERE=${.CURDIR}/arch/${MACHINE_ARCH}
+.PATH:  ${HERE}
+
+SRCS +=        fb_arch.c
diff --git a/drivers/fb/arch/earm/dss.h b/drivers/fb/arch/earm/dss.h
new file mode 100644 (file)
index 0000000..4e5a2ae
--- /dev/null
@@ -0,0 +1,65 @@
+#ifndef __DSS_H__
+#define __DSS_H__ 
+
+/* DSS Base Registers */
+#define OMAP3_DSS_BASE                 0x48050000
+#define OMAP3_DISPC_BASE               0x48050400
+#define OMAP3_VENC_BASE                        0x48050C00
+
+#define OMAP3_DSS_SYSCONFIG(b)         (b + 0x10)
+#define OMAP3_DSS_SYSSTATUS(b)         (b + 0x14)
+
+#define OMAP3_DISPC_IRQSTATUS(b)       (b + 0x18)
+#define OMAP3_DISPC_CONTROL(b)         (b + 0x40)
+#define OMAP3_DISPC_CONFIG(b)          (b + 0x44)
+#define OMAP3_DISPC_DEFAULT_COLOR0(b)  (b + 0x4c)
+#define OMAP3_DISPC_DEFAULT_COLOR1(b)  (b + 0x50)
+#define OMAP3_DISPC_TIMINGH(b)         (b + 0x64)
+#define OMAP3_DISPC_TIMINGV(b)         (b + 0x68)
+#define OMAP3_DISPC_POL_FREQ(b)                (b + 0x6c)
+#define OMAP3_DISPC_DIVISOR(b)         (b + 0x70)
+#define OMAP3_DISPC_SIZE_DIG(b)                (b + 0x78)
+#define OMAP3_DISPC_SIZE_LCD(b)                (b + 0x7c)
+#define OMAP3_DISPC_GFX_BA0(b)         (b + 0x80)
+#define OMAP3_DISPC_GFX_BA1(b)         (b + 0x84)
+#define OMAP3_DISPC_GFX_SIZE(b)                (b + 0x8c)
+#define OMAP3_DISPC_GFX_ATTRIBUTES(b)  (b + 0xa0)
+#define OMAP3_DISPC_GFX_ROW_INC(b)     (b + 0xac)
+#define OMAP3_DISPC_GFX_PIXEL_INC(b)   (b + 0xb0)
+
+#define LOADMODE_SHIFT         1
+#define TFTSTN_SHIFT           3
+#define DATALINES_SHIFT                8
+#define GFXFORMAT_SHIFT                1
+#define GFXBURSTSIZE_SHIFT     6
+
+#define DSS_SOFTRESET                  (1 << 1)
+#define DSS_RESETDONE                  (1 << 0)
+
+#define DISPC_LCDENABLE                        (1 << 0)
+#define DISPC_DIGITALENABLE            (1 << 1)
+#define DISPC_GOLCD                    (1 << 5)
+#define DISPC_GODIGITAL                        (1 << 6)
+#define DISPC_GPIN0                    (1 << 13)
+#define DISPC_GPIN1                    (1 << 14)
+#define DISPC_GPOUT0                   (1 << 15)
+#define DISPC_GPOUT1                   (1 << 16)
+#define DISPC_ENABLESIGNAL             (1 << 28)
+#define DISPC_FRAMEDONE                        (1 << 0)
+#define DISPC_GFXENABLE                        (1 << 0)
+#define DISPC_GFXFORMAT_BMP1           0x0
+#define DISPC_GFXFORMAT_BMP2           0x1
+#define DISPC_GFXFORMAT_BMP4           0x2
+#define DISPC_GFXFORMAT_BMP8           0x3
+#define DISPC_GFXFORMAT_RGB12          0x4
+#define DISPC_GFXFORMAT_ARGB16         0x5
+#define DISPC_GFXFORMAT_RGB16          0x6
+#define DISPC_GFXFORMAT_RGB24          0x8
+#define DISPC_GFXFORMAT_RGB24P         0x9
+#define DISPC_GFXFORMAT_ARGB32         0xC
+#define DISPC_GFXFORMAT_RGBA32         0xD
+#define DISPC_GFXFORMAT_RGBx           0xE
+#define DISPC_GFXBURSTSIZE_4           0x0
+#define DISPC_GFXBURSTSIZE_8           0x1
+#define DISPC_GFXBURSTSIZE_16          0x2
+#endif /* __DSS_H__ */
diff --git a/drivers/fb/arch/earm/fb_arch.c b/drivers/fb/arch/earm/fb_arch.c
new file mode 100644 (file)
index 0000000..5dbf734
--- /dev/null
@@ -0,0 +1,271 @@
+/* Architecture dependent part for the framebuffer on the OMAP3. Since we don't
+ * have support for EDID (which requires support for i2c, also something we
+ * don't have, yet), but we do have a screen with 1024*600 resolution for our
+ * testing purposes, we hardcode that resolution here. There's obvious room for
+ * improvement. */
+
+#include <minix/chardriver.h>
+#include <minix/drivers.h>
+#include <minix/fb.h>
+#include <minix/type.h>
+#include <minix/vm.h>
+#include <assert.h>
+#include <sys/mman.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "dss.h"
+#define SCREEN_WIDTH 1024
+#define SCREEN_HEIGHT 600
+#define PAGES_NR 2
+
+static vir_bytes dss_phys_base;                /* Address of dss phys memory map */
+static vir_bytes dispc_phys_base;      /* Address of dispc phys memory map */
+static vir_bytes fb_vir;
+static phys_bytes fb_phys;
+static size_t fb_size;
+static int initialized = 0;
+
+struct panel_config {
+        u32_t timing_h;
+        u32_t timing_v;
+        u32_t pol_freq;
+        u32_t divisor;
+        u32_t lcd_size;
+        u32_t panel_type;
+        u32_t data_lines;
+        u32_t load_mode;
+        u32_t panel_color;
+};
+
+static const struct panel_config default_cfg = {
+       /* See OMAP TRM section 15.7 for the register values/encoding */
+        .timing_h       = 0x1a4024c9,  /* Horizontal timing */
+        .timing_v       = 0x02c00509,  /* Vertical timing */
+        .pol_freq       = 0x00007028,  /* Pol Freq */
+        .divisor        = 0x00010001,  /* 96MHz Pixel Clock */
+       .lcd_size       = ((SCREEN_HEIGHT - 1) << 16 | (SCREEN_WIDTH - 1)),
+        .panel_type     = 0x01,                /* TFT */
+        .data_lines     = 0x03,                /* 24 Bit RGB */
+        .load_mode      = 0x02,                /* Frame Mode */
+        .panel_color    = 0xFFFFFF     /* WHITE */
+};
+
+static const struct fb_fix_screeninfo fbfs = {
+       .xpanstep       = 0,
+       .ypanstep       = 0,
+       .ywrapstep      = 0,
+       .line_length    = SCREEN_WIDTH * 4,
+       .mmio_start     = 0,    /* Not implemented for char. special, so */
+       .mmio_len       = 0     /* these are set to 0 */
+};
+
+static struct fb_var_screeninfo fbvs = {
+       .xres           = SCREEN_WIDTH,
+       .yres           = SCREEN_HEIGHT,
+       .xres_virtual   = SCREEN_WIDTH,
+       .yres_virtual   = SCREEN_HEIGHT*2,
+       .xoffset        = 0,
+       .yoffset        = 0,
+       .bits_per_pixel = 32,
+       .red =  {
+               .offset = 16,
+               .length = 8,
+               .msb_right = 0
+               },
+       .green = {
+               .offset = 8,
+               .length = 8,
+               .msb_right = 0
+               },
+       .blue = {
+               .offset = 0,
+               .length = 8,
+               .msb_right = 0
+               },
+       .transp = {
+               .offset = 24,
+               .length = 8,
+               .msb_right = 0
+               }
+};
+
+static inline u32_t
+readw(vir_bytes addr)
+{
+        return *((volatile u32_t *) addr);
+}
+
+static inline void
+writew(vir_bytes addr, u32_t val)
+{
+        *((volatile u32_t *) addr) = val;
+}
+
+static void
+arch_configure_display(int minor)
+{
+/* Tell hardware where frame buffer is and turn display on */
+       u32_t off, rdispc;
+
+       if (!initialized) return;
+       if (minor != 0) return;
+
+       off = fbvs.yoffset * fbvs.xres_virtual * (fbvs.bits_per_pixel/8);
+
+       writew((vir_bytes) OMAP3_DISPC_GFX_BA0(dispc_phys_base),
+               fb_phys + (phys_bytes) off);
+       rdispc = readw((vir_bytes) OMAP3_DISPC_CONTROL(dispc_phys_base));
+       rdispc |= DISPC_LCDENABLE | DISPC_DIGITALENABLE | DISPC_GOLCD |
+                               DISPC_GODIGITAL | DISPC_GPOUT0 | DISPC_GPOUT1;
+       writew((vir_bytes) OMAP3_DISPC_CONTROL(dispc_phys_base), rdispc);
+}
+
+int
+arch_get_device(int minor, struct device *dev)
+{
+       if (!initialized) return ENXIO;
+       if (minor != 0) return ENXIO;
+       dev->dv_base = fb_vir;
+       dev->dv_size = fb_size;
+       return OK;
+}
+
+int
+arch_get_varscreeninfo(int minor, struct fb_var_screeninfo *fbvsp)
+{
+       if (!initialized) return ENXIO;
+       if (minor != 0) return ENXIO;
+
+       *fbvsp = fbvs;
+       return OK;
+}
+
+int
+arch_put_varscreeninfo(int minor, struct fb_var_screeninfo *fbvsp)
+{
+       int r = OK;
+       
+       assert(fbvsp != NULL);
+
+       if (!initialized) return ENXIO;
+       if (minor != 0) return ENXIO;
+
+       /* For now we only allow to play with the yoffset setting */
+       if (fbvsp->yoffset != fbvs.yoffset) {
+               if (fbvsp->yoffset < 0 || fbvsp->yoffset > fbvs.yres) {
+                       return EINVAL;
+               }
+
+               fbvs.yoffset = fbvsp->yoffset;
+       }
+       
+       /* Now update hardware with new settings */
+       arch_configure_display(minor);
+       return OK;
+}
+
+int
+arch_get_fixscreeninfo(int minor, struct fb_fix_screeninfo *fbfsp)
+{
+       if (!initialized) return ENXIO;
+       if (minor != 0) return ENXIO;
+
+       *fbfsp = fbfs;
+       return OK;
+}
+
+int
+arch_pan_display(int minor, struct fb_var_screeninfo *fbvsp)
+{
+       return arch_put_varscreeninfo(minor, fbvsp);
+}
+
+int
+arch_fb_init(int minor, struct device *dev)
+{
+       u32_t rdispc;
+       struct minix_mem_range mr;
+
+       const struct panel_config *panel_cfg = &default_cfg;
+
+       assert(dev != NULL);
+       if (minor != 0) return ENXIO;   /* We support only one minor */
+
+       if (initialized) {
+               dev->dv_base = fb_vir;
+               dev->dv_size = fb_size;
+               return OK;
+       }
+
+       initialized = 1;
+
+        /* Configure DSS memory access */
+        mr.mr_base = OMAP3_DSS_BASE;
+        mr.mr_limit = mr.mr_base + 0x60;
+        if (sys_privctl(SELF, SYS_PRIV_ADD_MEM, &mr) != OK) {
+                panic("Unable to request access to DSS(1) memory");
+        }
+
+        dss_phys_base = (vir_bytes) vm_map_phys(SELF, (void *) OMAP3_DSS_BASE,
+                                               0x60);
+
+        if (dss_phys_base == (vir_bytes) MAP_FAILED) {
+                panic("Unable to request access to DSS(2) memory");
+        }
+
+        /* Configure DISPC memory access */
+        mr.mr_base = OMAP3_DISPC_BASE;
+        mr.mr_limit = mr.mr_base + 0x430;
+        if (sys_privctl(SELF, SYS_PRIV_ADD_MEM, &mr) != OK) {
+                panic("Unable to request access to DISPC(1) memory");
+        }
+        dispc_phys_base = (vir_bytes) vm_map_phys(SELF,
+                                                 (void *) OMAP3_DISPC_BASE,
+                                                 0x430);
+
+        if (dispc_phys_base == (vir_bytes) MAP_FAILED) {
+                panic("Unable to request access to DISPC(2) memory");
+        }
+
+       /* Set timings, screen mode, screen size, etc. */
+       writew(OMAP3_DISPC_TIMINGH(dispc_phys_base), panel_cfg->timing_h);
+       writew(OMAP3_DISPC_TIMINGV(dispc_phys_base), panel_cfg->timing_v);
+       writew(OMAP3_DISPC_POL_FREQ(dispc_phys_base), panel_cfg->pol_freq);
+       writew(OMAP3_DISPC_DIVISOR(dispc_phys_base), panel_cfg->divisor);
+       writew(OMAP3_DISPC_CONFIG(dispc_phys_base),
+                               panel_cfg->load_mode << LOADMODE_SHIFT);
+       writew(OMAP3_DISPC_CONTROL(dispc_phys_base),
+                               panel_cfg->panel_type << TFTSTN_SHIFT |
+                               panel_cfg->data_lines << DATALINES_SHIFT);
+       
+       writew((vir_bytes) OMAP3_DISPC_SIZE_LCD(dispc_phys_base),
+                               panel_cfg->lcd_size);
+       writew((vir_bytes) OMAP3_DISPC_GFX_SIZE(dispc_phys_base),
+                               panel_cfg->lcd_size);
+       writew(OMAP3_DISPC_DEFAULT_COLOR0(dispc_phys_base),
+                               panel_cfg->panel_color);
+
+       /* Enable gfx engine */
+        writew(OMAP3_DISPC_GFX_ATTRIBUTES(dispc_phys_base),
+                               (DISPC_GFXBURSTSIZE_16 << GFXBURSTSIZE_SHIFT) |
+                               (DISPC_GFXFORMAT_RGB24 << GFXFORMAT_SHIFT) |
+                               (DISPC_GFXENABLE));
+       writew(OMAP3_DISPC_GFX_ROW_INC(dispc_phys_base), 1);
+       writew(OMAP3_DISPC_GFX_PIXEL_INC(dispc_phys_base), 1);
+
+       /* Allocate contiguous physical memory for the display buffer */
+       fb_size = fbvs.yres_virtual * fbvs.xres_virtual *
+                               (fbvs.bits_per_pixel / 8);
+       fb_vir = (vir_bytes) alloc_contig(fb_size, 0, &fb_phys);
+       if (fb_vir == (vir_bytes) MAP_FAILED) {
+               panic("Unable to allocate contiguous memory\n");
+       } 
+       dev->dv_base = fb_vir;
+       dev->dv_size = fb_size;
+
+       /* Configure buffer settings and turn on LCD/Digital */
+       arch_configure_display(minor);
+
+       return OK;
+}
+
diff --git a/drivers/fb/fb.c b/drivers/fb/fb.c
new file mode 100644 (file)
index 0000000..d97fc36
--- /dev/null
@@ -0,0 +1,426 @@
+#include <minix/fb.h>
+#include <minix/chardriver.h>
+#include <minix/drivers.h>
+#include <minix/ds.h>
+#include <minix/type.h>
+#include <minix/vm.h>
+#include <sys/ioc_fb.h>
+#include <assert.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "logos.h"
+#include "fb.h"
+
+#define FB_DEV_NR      1
+/*
+ * Function prototypes for the fb driver.
+ */
+static int fb_open(message *m);
+static int fb_close(message *m);
+static struct device * fb_prepare(dev_t device);
+static int fb_transfer(endpoint_t endpt, int opcode, u64_t position,
+       iovec_t *iov, unsigned int nr_req, endpoint_t user_endpt, unsigned int
+       flags);
+static int fb_do_read(endpoint_t ep, iovec_t *iov, int minor, u64_t pos,
+       size_t *io_bytes);
+static int fb_do_write(endpoint_t ep, iovec_t *iov, int minor, u64_t pos,
+       size_t *io_bytes);
+static int fb_ioctl(message *m);
+static void paint_bootlogo(int minor);
+static void paint_restartlogo(int minor);
+static void paint_centered(int minor, char *data, int width, int height);
+static int do_get_varscreeninfo(int minor, endpoint_t ep, cp_grant_id_t gid);
+static int do_put_varscreeninfo(int minor, endpoint_t ep, cp_grant_id_t gid);
+static int do_get_fixscreeninfo(int minor, endpoint_t ep, cp_grant_id_t gid);
+static int do_pan_display(int minor, endpoint_t ep, cp_grant_id_t gid);
+
+/* SEF functions and variables. */
+static void sef_local_startup(void);
+static int sef_cb_init(int type, sef_init_info_t *info);
+static int sef_cb_lu_state_save(int);
+static int lu_state_restore(void);
+
+/* Entry points to the fb driver. */
+static struct chardriver fb_tab =
+{
+       fb_open,
+       fb_close,
+       fb_ioctl,
+       fb_prepare,
+       fb_transfer,
+       nop_cleanup,
+       nop_alarm,
+       nop_cancel,
+       nop_select,
+       NULL
+};
+
+/** Represents the /dev/fb device. */
+static struct device fb_device[FB_DEV_NR];
+static int fb_minor, has_restarted = 0;
+
+static int open_counter[FB_DEV_NR];            /* Open count */
+
+static int
+fb_open(message *m)
+{
+       static int initialized = 0;
+
+       if (m->DEVICE < 0 || m->DEVICE >= FB_DEV_NR) return ENXIO;
+
+       if (arch_fb_init(m->DEVICE, &fb_device[m->DEVICE]) == OK) {
+               open_counter[m->DEVICE]++;
+               if (!initialized) {
+                       if (has_restarted) {
+                               paint_restartlogo(m->DEVICE);
+                               has_restarted = 0;
+                       } else {
+                               paint_bootlogo(m->DEVICE);
+                       }
+                       initialized = 1;
+               }
+               return OK;
+       }
+       return ENXIO ;
+}
+
+static int
+fb_close(message *m)
+{
+       if (m->DEVICE < 0 || m->DEVICE >= FB_DEV_NR) return ENXIO;
+       assert(open_counter[m->DEVICE] > 0);
+       open_counter[m->DEVICE]--;
+       return OK;
+}
+
+static struct device *
+fb_prepare(dev_t dev)
+{
+       if (dev < 0 || dev >= FB_DEV_NR) return NULL;
+       assert(open_counter[dev] > 0);
+       fb_minor = dev;
+       return &fb_device[dev];
+}
+
+static int
+fb_transfer(endpoint_t endpt, int opcode, u64_t position,
+    iovec_t *iov, unsigned nr_req, endpoint_t UNUSED(user_endpt),
+    unsigned int UNUSED(flags))
+{
+       size_t io_bytes = 0, ret;
+
+       if (nr_req != 1) {
+               /* This should never trigger for char drivers at the moment. */
+               printf("fb: vectored transfer, using first element only\n");
+       }
+
+       switch (opcode) {
+       case DEV_GATHER_S:
+           /* Userland read operation */
+           ret = fb_do_read(endpt, iov, fb_minor, position, &io_bytes);
+           iov->iov_size -= io_bytes;
+            break;
+       case DEV_SCATTER_S:
+           /* Userland write operation */
+           ret = fb_do_write(endpt, iov, fb_minor, position, &io_bytes);
+           iov->iov_size -= io_bytes;
+           break;
+       default:
+           return EINVAL;
+       }
+       return ret;
+}
+
+static int
+fb_do_read(endpoint_t ep, iovec_t *iov, int minor, u64_t pos, size_t *io_bytes)
+{
+       struct device dev;
+
+       arch_get_device(minor, &dev);
+
+       if (pos >= dev.dv_size) return EINVAL;
+
+       if (dev.dv_size - pos < iov->iov_size) {
+               *io_bytes = dev.dv_size - pos;
+       } else {
+               *io_bytes = iov->iov_size;
+       }
+
+        if (*io_bytes <= 0) {
+                return OK;
+        }
+
+       return sys_safecopyto(ep, (cp_grant_id_t) iov->iov_addr, 0,
+                               (vir_bytes) (dev.dv_base + ex64lo(pos)),
+                               *io_bytes);
+}
+
+static int
+fb_ioctl(message *m)
+{
+/* Process I/O control requests */
+       endpoint_t ep;
+       cp_grant_id_t gid;
+       int minor;
+       unsigned int request;
+       int r;
+
+       minor = m->DEVICE;
+       request = m->COUNT;
+       ep = (endpoint_t) m->USER_ENDPT;
+       gid = (cp_grant_id_t) m->IO_GRANT;
+
+       if (minor != 0) return EINVAL;
+
+       switch(request) {
+       case FBIOGET_VSCREENINFO:
+               r = do_get_varscreeninfo(minor, ep, gid);
+               return r;
+       case FBIOPUT_VSCREENINFO:
+               r = do_put_varscreeninfo(minor, ep, gid);
+               return r;
+       case FBIOGET_FSCREENINFO:
+               r = do_get_fixscreeninfo(minor, ep, gid);
+               return r;
+       case FBIOPAN_DISPLAY:
+               r = do_pan_display(minor, ep, gid);
+               return r;
+       }
+
+       return EINVAL;
+}
+
+static int
+do_get_varscreeninfo(int minor, endpoint_t ep, cp_grant_id_t gid)
+{
+       int r;
+       struct fb_var_screeninfo fbvs;
+
+       if ((r = arch_get_varscreeninfo(minor, &fbvs)) == OK) {
+               r = sys_safecopyto(ep, gid, 0, (vir_bytes) &fbvs, sizeof(fbvs));
+       }
+
+       return r;
+}
+
+static int
+do_put_varscreeninfo(int minor, endpoint_t ep, cp_grant_id_t gid)
+{
+       int r;
+       struct fb_var_screeninfo fbvs_copy;
+
+       if ((r = sys_safecopyfrom(ep, gid, 0, (vir_bytes) &fbvs_copy,
+           sizeof(fbvs_copy))) != OK) {
+               return r;
+       }
+
+       return arch_put_varscreeninfo(minor, &fbvs_copy);
+}
+
+static int
+do_pan_display(int minor, endpoint_t ep, cp_grant_id_t gid)
+{
+       int r;
+        struct fb_var_screeninfo fbvs_copy;
+
+        if ((r = sys_safecopyfrom(ep, gid, 0, (vir_bytes) &fbvs_copy,
+            sizeof(fbvs_copy))) != OK) {
+                return r;
+        }
+
+        return arch_pan_display(minor, &fbvs_copy);
+}
+
+static int
+do_get_fixscreeninfo(int minor, endpoint_t ep, cp_grant_id_t gid)
+{
+        int r;
+        struct fb_fix_screeninfo fbfs;
+
+        if ((r = arch_get_fixscreeninfo(minor, &fbfs)) == OK) {
+                r = sys_safecopyto(ep, gid, 0, (vir_bytes) &fbfs, sizeof(fbfs));
+        }
+
+        return r;
+}
+
+static int
+fb_do_write(endpoint_t ep, iovec_t *iov, int minor, u64_t pos, size_t *io_bytes)
+{
+       struct device dev;
+
+       arch_get_device(minor, &dev);
+
+       if (pos >= dev.dv_size) {
+               return EINVAL;
+       }
+
+       if (dev.dv_size - pos < iov->iov_size) {
+               *io_bytes = dev.dv_size - pos;
+       } else {
+               *io_bytes = iov->iov_size;
+       }
+
+        if (*io_bytes <= 0) {
+                return OK;
+        }
+
+       return sys_safecopyfrom(ep, (cp_grant_id_t) iov->iov_addr, 0,
+                               (vir_bytes) (dev.dv_base + ex64lo(pos)),
+                               *io_bytes);
+}
+
+static int
+sef_cb_lu_state_save(int UNUSED(state)) {
+/* Save the state. */
+       ds_publish_u32("open_counter", open_counter[0], DSF_OVERWRITE);
+
+       return OK;
+}
+
+static int
+lu_state_restore() {
+/* Restore the state. */
+       u32_t value;
+
+       ds_retrieve_u32("open_counter", &value);
+       ds_delete_u32("open_counter");
+       open_counter[0] = (int) value;
+
+       return OK;
+}
+
+static void
+sef_local_startup()
+{
+       /* Register init callbacks. Use the same function for all event types */
+       sef_setcb_init_fresh(sef_cb_init);
+       sef_setcb_init_lu(sef_cb_init);
+       sef_setcb_init_restart(sef_cb_init);
+
+       /* Register live update callbacks  */
+       /* - Agree to update immediately when LU is requested in a valid state*/
+       sef_setcb_lu_prepare(sef_cb_lu_prepare_always_ready);
+       /* - Support live update starting from any standard state */
+       sef_setcb_lu_state_isvalid(sef_cb_lu_state_isvalid_standard);
+       /* - Register a custom routine to save the state. */
+       sef_setcb_lu_state_save(sef_cb_lu_state_save);
+
+       /* Let SEF perform startup. */
+       sef_startup();
+}
+
+static int
+sef_cb_init(int type, sef_init_info_t *UNUSED(info))
+{
+/* Initialize the fb driver. */
+       int do_announce_driver = TRUE;
+
+       open_counter[0] = 0;
+       switch(type) {
+       case SEF_INIT_FRESH:
+           printf("framebuffer fresh: pid %d\n", getpid());
+           break;
+
+       case SEF_INIT_LU:
+           /* Restore the state. */
+           lu_state_restore();
+           do_announce_driver = FALSE;
+
+           printf("framebuffer: I'm a new version!\n");
+           break;
+
+       case SEF_INIT_RESTART:
+           printf("framebuffer restarted: pid %d\n", getpid());
+           has_restarted = 1;
+           break;
+       }
+
+       /* Announce we are up when necessary. */
+       if (do_announce_driver) {
+               chardriver_announce();
+       }
+
+       /* Initialization completed successfully. */
+       return OK;
+}
+
+int
+main(void)
+{
+       sef_local_startup();
+       chardriver_task(&fb_tab, CHARDRIVER_SYNC);
+       return OK;
+}
+
+static void
+paint_bootlogo(int minor)
+{
+       paint_centered(minor, bootlogo_data, bootlogo_width, bootlogo_height);
+}
+
+static void
+paint_restartlogo(int minor)
+{
+       paint_centered(minor, restartlogo_data, restartlogo_width,
+                       restartlogo_height);
+       micro_delay(1 * 1000000);       /* 1 second */
+}
+
+static void
+paint_centered(int minor, char *data, int width, int height)
+{
+       u8_t pixel[3];
+       u32_t i, min_x, min_y, max_x, max_y, x_painted = 0, rows = 0;
+       int r, bytespp;
+       struct device dev;
+       struct fb_var_screeninfo fbvs;
+
+       /* Put display in a known state to simplify positioning code below */
+       if ((r = arch_get_varscreeninfo(minor, &fbvs)) != OK) {
+               printf("fb: unable to get screen info: %d\n", r);
+       }
+       fbvs.yoffset = 0;
+       if ((r = arch_pan_display(minor, &fbvs)) != OK) {
+               printf("fb: unable to pan display: %d\n", r);
+       }
+
+       arch_get_device(minor, &dev);
+
+       /* Paint on a white canvas */
+       bytespp = fbvs.bits_per_pixel / 8;
+       for (i = 0; i < fbvs.xres * fbvs.yres * bytespp; i+= bytespp)
+               *((u32_t *)((u32_t) dev.dv_base + i)) = 0x00FFFFFF;
+
+       /* First seek to start */
+       min_x = fbvs.xres / 2 - width / 2;
+       max_x = fbvs.xres / 2 + width / 2;
+       min_y = fbvs.yres / 2 - height / 2;
+       max_y = fbvs.yres / 2 + height / 2;
+       i = min_x * fbvs.xres + min_y;
+
+       /* Add the image data */
+       for (i = ((min_y * fbvs.xres) + min_x) * bytespp; rows < height;) {
+               GET_PIXEL(data, pixel);
+
+               ((unsigned char *)((u32_t) dev.dv_base + i))[0] = pixel[2];
+               ((unsigned char *)((u32_t) dev.dv_base + i))[1] = pixel[1];
+                ((unsigned char *)((u32_t) dev.dv_base + i))[2] = pixel[0];
+               ((unsigned char *)((u32_t) dev.dv_base + i))[3] = 0;
+
+               x_painted++;/* Keep tab of how many row pixels we've painted */
+               if (x_painted == width) {
+                       /* We've reached the end of the row, carriage return
+                        * and go to next line.
+                        */
+                       x_painted = 0;
+                       rows++;
+                       i = (((min_y + rows) * fbvs.xres) + min_x) * 4;
+               } else {
+                       i += 4;
+               }
+       }
+}
+
diff --git a/drivers/fb/fb.h b/drivers/fb/fb.h
new file mode 100644 (file)
index 0000000..2784ef6
--- /dev/null
@@ -0,0 +1,13 @@
+#ifndef __FB_H__
+#define __FB_H__
+
+int arch_fb_init(int minor, struct device *dev);
+int arch_get_device(int minor, struct device *dev);
+int arch_get_varscreeninfo(int minor, struct fb_var_screeninfo *fbvsp);
+int arch_put_varscreeninfo(int minor, struct fb_var_screeninfo *fbvs_copy);
+int arch_get_fixscreeninfo(int minor, struct fb_fix_screeninfo *fbfsp);
+int arch_pan_display(int minor, struct fb_var_screeninfo *fbvs_copy);
+
+#define FB_MESSAGE "Hello, world! From framebuffer!\n"
+
+#endif /* __FB_H__ */
diff --git a/drivers/fb/logos.h b/drivers/fb/logos.h
new file mode 100644 (file)
index 0000000..a88c4be
--- /dev/null
@@ -0,0 +1,3054 @@
+#ifndef __FB_BOOTLOGO_H_
+#define __FB_BOOTLOGO_H_
+
+static unsigned int bootlogo_width = 170;
+static unsigned int bootlogo_height = 220;
+
+#define GET_PIXEL(data,pixel) {\
+pixel[0] = (((data[0] - 33) << 2) | ((data[1] - 33) >> 4)); \
+pixel[1] = ((((data[1] - 33) & 0xF) << 4) | ((data[2] - 33) >> 2)); \
+pixel[2] = ((((data[2] - 33) & 0x3) << 6) | ((data[3] - 33))); \
+data += 4; \
+}
+static char *bootlogo_data =
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````_0DY\\_`P\\_`P`0T]````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "^P<W^`@X_PL[_@HZ_0DY_0DY_@HZ`0T]`P\\_````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````0T]\\O\\OY_0D_`P\\_PHZ"
+       "X^\\@R-,$P,S]SML+W>H:Z/4E````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````_`P\\YO(BV.05U=`1RM8'O<CZNL3VN<3V"
+       "O\\K[W.D9`0T]`````````````````P\\_````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "``````\\`]`,TVN87SMD*OLCZK[GKK+?IOLCZK[KLL;SNUN$2^04U````^04UQM,#"
+       "^04U````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````Y_(CY.\\@``\\`_PDZ]0$Q[ODJX^X?S]H+N</UVN86`0P\\``\\_`P\\_````"
+       "`P\\_]P,S\\/TM]0$Q_@HZ````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````P\\_````_PL[[/@ISMH+LKWOQ,`![?@IZ_8G"
+       "P<O]K+;HLKWOTM\\/_0DY`P\\_````````ZO<GM<#RVN46`0T]````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "``````````````````````````````````````````````\\_SMD*R]@(`@X^````"
+       "`````P\\_`````````0T]^0,T\\OXO\\/LL\\_`P^`@X`@X^````^`@XZ_@HU>(2U>(2"
+       "Z?8F_0DY````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````````P\\_`````@X^"
+       "]@(RY/$AT-T-O,?XJ;3FN,3UZ?8F`````P\\_`````0T]_0DY_`P\\`````P\\_````"
+       "`P\\_````S=H*K[KKM\\+TVN<7````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````Z?4FK+;HL;WN]`0T`````P```P```P\\_````````````"
+       "`````0T]^04U\\?XN[?HJ\\/TM_@HZ`P\\__@HZW.D9OLK[O\\O\\V^@8^P<W_`P\\^04U"
+       "^@8V`@X^````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````P\\_`````````P\\_[/DIVN46R=0%J[;GI;#BI:_AUN(2`@X^"
+       "`````P\\_`P\\_`P\\_`````````````````````````@X^`@X^W^P<ZO<GR]8'PL[_"
+       "^`@X````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````_`P\\QM$\""
+       "I*_@Q,_```\\``````````P\\_``````````\\``````````P\\_````````````^@8V"
+       "\\O\\O`@X^````````_0DYWNL;O<GZN,3UPLS^Q=(\"U.$1U>(2]P,S````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````````P\\_````````"
+       "^04US-D)S=@)]/`Q\\OTNJ;/EGJC:X>P=``\\``````P\\_````````````_@HZY?(B"
+       "SML+T-L,Y_(C_`P\\`````@X^````````ZO<GO<GZ\\/TM````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````\\_\\OM;_QI*[@T]`0^`@X\\?XNXN\\?W^H;"
+       "W.<8R=0%N\\7WN</UNL3VO\\G[Q](#UN(2Y_(C]/\\P_@DY``\\`````````````````"
+       "^`@XR=8&J;3EP\\[_`@T^U-\\0P,O\\[_PL````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````0T]W^L;M+_PT-L,`0P]````S-D)F:76"
+       "VN<7````````````````_`P\\ZO4FR=0%I;#BD)S-FJ;7LKSNM\\'SK;?IRM4&``X_"
+       "`P\\__`P\\]`0TO\\G[Z?8F````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````Y?$AK+;HJ++DQ,[`PLS^H*K<D)C*C97'BY/%BY/%BY/%BY/%C97'BY/%"
+       "CI;(CI;(DYO-F:+4HZO=M+[PUN$2]?`Q`P\\_````````````X^`@LK[OY/$A````"
+       "TM\\/OLK[\\O\\O````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````^@8VPL[_J+/EW.@8````````````UN,3X^`@````````````\\_`PSML+J[?H"
+       "D9O-DIS.L;OMW^H;\\OTNR=0%EJ#2BI+$B9+#N,+T\\O\\O^@8V\\O\\OO,?Y[/DI````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````_`P\\QM$\"IK'CK+?HPLS^"
+       "J;+DC97'CY?)CI;(CY?)CY?)D)C*CY?)D9G+D9G+CY?)D)C*C)3&C)3&C)3&BI+$"
+       "C97'I:_AX^X?``\\`````````````YO,CN,3U\\_`P`P\\_V.45P\\_`]`0T````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````P\\_^04UYO,CM<'RIK+CY/$A`````P\\_"
+       "`P\\_`````P\\_````````[/DIOLK[F:76BI;'DI[/N\\7W[?@I`@P]XNT>I:_ABI+$"
+       "C97'D)C*CI;(GJ;8Y>`A`0T]YO$BO<CZ\\_`P````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````YO$BKKCJI['CL+OLPLS^FZ77D)C*D9G+CY?)D)C*CY?)"
+       "CY?)D)C*CY?)D)C*CI;(EJ#2IK#BI*[@G*;8EI[0CI;(B9'#DIS.M;_QTMT.\\?XN"
+       "````````X>X>W^P<````````V^@8R=8&^`@X````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````]P,SX.T=X.T=N<7VI+#AX^`@`````0T]```^`P\\]^@8V_PL[\\_`PP,S]DY_0"
+       "B97&G*;8P\\W_[ODJ``X_Y_(CL;OMCI;(BY/%CY?)CY?)D9G+CY7(HZS>ZO4F````"
+       "YO$BP<O]]`0T````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````WND:"
+       "K[KLHZ[@LKSNQ,[`EZ'3D)C*D)C*CY?)CI;(D9G+E9_1EY_1F*#2EY_1DYO-RM,$"
+       "^`0U[/4FXNL<U=`1Q,[`KKCJF:/5BI3&B)+$EZ'3V^87`````````P\\_````````"
+       "````U>(2T=T-`@X^````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````\\_`PT]`0\\_`P`P\\_ZO<GUN,3"
+       "X>X>R=8&T=X.[/DGVN<6T-T+P,S]G*;8B)+$GZG;S]H+^P4V``X_\\?PMQ<`!J[7G"
+       "FZ77DIK,CI;(D)C*CY?)D)C*C97'JK+D_0DY`P\\_[ODJP<S^]`0T````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````W^L;L+OLM\\+TOLCZQM$\"G:?9CI;("
+       "D)C*D)C*D9G+AX_!8FR>5F\"24%J,3EB*4ER.:'*DN</U^@0U``\\``P\\__PL[^0,T"
+       "Z/,DT-L,N,+TH:O=KKCJ[/DI`````````P\\_`P\\_`````0T]R-0%WNH:`P\\_````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````P\\_`````0T]UN,3[/DI````````]`0TTM\\/O<GZR]@(S=H*U-`.UN(0K[GK"
+       "CIC*DYW/P<O]^0,T``\\`^`@XU>(2N</ULKSNJ;/EG*36CY?)CY?)CY?)D)C*D)C*"
+       "C97'M\\'S````````X>X>Q<`!_PL[````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````Z?0EL[[PRM8'R]8'R-4%NL3VE9W/CY?)D)C*F*#24ER.!1!!!!!!"
+       "!!!!!!!!!1%\"!!!!\"15&/$AYEZ/4[/DI`````0L\\_PDZ`@P]^`8W]/\\P\\/LL^@0U"
+       "_`H[`P\\_````^04UT=X.[_PL\\?TNN\\7WZ_<G`````P\\_````````````````````"
+       "`````````P\\_````````````````````````_@HZ`0T]````````````````````"
+       "````````````````````````````````````````````````````[?HJV^@8````"
+       "````[_PLR=8&P,S]U>(2Y.`A[/<H\\_XOK;?IBY7'K;?IY_(C``\\`_`P\\Y?(BO\\O\\"
+       "B)3%2E2&8VV?CYG+CI;(CY?)D)C*CY?)CY?)D)C*BY/%R]8'`````P\\_Q],$U^,4"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````^00UNL3VN,/U"
+       "S]L+R=@'RM<'L;OMCY?)CY?)DYW/66.5*35F14^!45N-*C1F!A!\"!1%\"!!!!!!!!"
+       "!!!!*S=HF:76]/\\P``\\`_`H[_0<X_PDZ`0L\\ZO4FUN$2\\/TM````_0DYR=8&Q-$!"
+       "[?@IT-L,O\\G[_@HZ`````````````````P\\_^04U\\O\\O]P,S_PL[`P\\_^04U[OLK"
+       "^04U_@HZX^`@Q-$!XN\\?\\O\\OV>86T=X.Z_@H_`P\\_0DY]@(R_@HZ`````P\\_^@8V"
+       "\\O\\O_0DY`````@X^`0T]````````W.D9\\O\\O````Y?(BP,S]P<W^W^P<ZO<G^P4V"
+       "]?`QI['CD)K,S-<(_@HZ````_PL[S=H*D)S-/TM\\\"Q=(!!!!+#9HDIS.CY?)CY?)"
+       "CY?)D)C*D)C*D)C*DYO-[OHK````[?HJNL7V\\/PM````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````T=X.J++DPLS^S-D)RM<'O,;XD9G+CY?)"
+       "D)C*D9G+DYO-G:77\\/PJ[_PJK[OJ9W.B+3EJ#1E*!!!!!!!#!A)%/4EZJ[?H^P4V"
+       "``\\`_PDZ_@@Y^@0UT]X/OLK[T]`0]0$Q\\?XNQ]0$Q]0$T=X.ML+SX>X>`0T]]0$Q"
+       "[_LKY_,CSMD*NL7VN,+TN<3VO,CYQM,#P\\_`LKWNN,/TN\\7WLKSNM\\/TR-,$M;_Q"
+       "LKWNL+OMO,CYTM\\/O<CZL[WOOLG[R-4%PL[_N,/UMK_QOLK[Q]0$P<W^PL[_W.D9"
+       "\\/TMV>86_0DYW^P<O<GZQ]0$[_PL_PL[`0T]Z_8GGZG;EJ+3XN\\?`````P\\_````"
+       "X.T=9W.D#AA*!!%!!!!!(2M=='ZPDYO-CY?)CY?)CY?)CY?)D)C*BI+$N\\7W````"
+       "````R-4%Q],$`@X^````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````[OLKK[GKJK3FQM,#R]@(O,;XCYG+CY?)D)C*CY?)D)C*BY/#J+/B\\_\\M"
+       "```^`PX\\\\OXLRM<'C9G*-$!Q!!!!!1%\"\"15&35F*P,K\\`PT^``X__@@Y_PDZZ?8F"
+       "R-4%O\\O\\X.T=Y_0DQ]0$R-4%QM,#K+CIK[OLK[GKK;?IJ+/EJ+3EJK7FJK3FJ[7G"
+       "L+OLM,#QO,CYML+SJ;7FJK3FJK3FQ-$!P\\[_J;/EJK3FLK[ORM<'O<CZJ++DJK7G"
+       "I['CI[+CI[+CJ[7GK+?HJK;GJ;7FJK3FIK#BI:_AN,/TV.45U^04OLK[SML+]P,S"
+       "`0T]````Y?(BF*+4G*;8[?HJ`P\\_`@X^````Z/4E7VN<!1%\"!!!!%B)3=X.TN,+T"
+       "G:77CI;(CY?)D)C*CY?)D)C*C)3&FJ36^0,T````Y?(BM,#QYO(C`P\\_````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````P\\_Q](#IK'BP,S]"
+       "R]@(QM,#H:O=C97'CY?)D)C*CY?)CY?)BI+$G*?6T]\\-[OHH^P8T``\\]```^]P,Q"
+       "IK+A/DIY!Q-\"!1%\"$!Q-9G*CVN<7``\\`_`P\\_PL[^`@XX.L<P\\W_Q]0$R=8&Q=(\""
+       "R-4%N,3UH:O=HJW>I['CL+SMK+CIHJS>J++DML'SN\\7WQM$\"QM,#Q=(\"JK;GHZW?"
+       "I['CP\\_`O,CYH:O=J;/EQM,#Q-$!HZ[?L[WOP<W^K+CIHZ[?I*[@K+;HM,#QP<W^"
+       "NL;WI*[@IJ_AK;;GM;_QQ=(\"O\\O\\UN,3^`@X_PL[`0T][_PLFZ?8GZG;\\?PM````"
+       "`@X^````T=X./TM\\!!!!!!!!+#AILKSNP\\W_DYW/C97'CY?)D)C*CY?)CY?)CI;("
+       "C9?)XNT>````]`0TN</UQM$\"_PL[````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````P\\_Z/4EP,O]S-D)R=8&RM<'P\\W_F*+4CI;(CY?)"
+       "D)C*D)C*CY?)C)3&C)3$F:'1J[/CP\\[]V>05Z/0B^@4S_@DWO\\OZ,#QM!!!!!1%\""
+       "(BY?E*#1]`0T````_0<X_`H[]`(SU^04PL[_PL[_QM,#QM,#KKKKH*K<NL;WPL[_"
+       "OLK[I*[@H*K<L+KLJ;/EI*_AO,CYQM,#LK[OG*;8HJS>P<W^ML+SFZ77ML'SQ=(\""
+       "L+SMHZO=JK3FO\\O\\PL[_H*K<H:O=L+KLQ-$!P<W^IK#BJ++DML'SJ[7GN</UP,S]"
+       "TM\\/^04U_`P\\_`P\\^`@XML+SGZO<]0$Q`````@X^````WNL;+3EJ!!!!!!!!*C9G"
+       "O\\G[M;WOC)3&CI;(CY?)CY?)CY?)D)C*CY?)BI+$S]L+````_0DYPLW_L;SNU=`1"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````_`P\\TM\\/R]@(SML+R=8&R=8&IK#BC97'D)C*CY?)CY?)D)C*CY?)DYO-CY?)"
+       "CI;(A(Z`<WVO55^14UV/<WVOR]8'\\O\\O9'\"A\"15&!!!!!1%\"2U>(T-L,``\\`]/\\P"
+       "X^X?[?HJY/$AS-D)P<W^QM,#P,S]IK+CH*S=LK[OO<GZNL;WH:O=F*/4I:_AFZ77"
+       "GJK;OLK[O\\O\\IK#BHJS>P\\W_KKKKHJS>PLS^NL;WI;'BIZ_AK;?IP<W^ML+SF*/4"
+       "H:O=O,;XOLK[HJS>I*_@O\\O\\PL[_NL;WP,S]P,S]QM$\"YO,C_@HZ`0T]\\?XNR]@("
+       "[_PL````[/DIX^`@Z_@H5&\"1!!!!!1%\"'BI;GZG;F*+4BY/%D)C*CY?)CY?)D)C*"
+       "CY?)CY?)C)3&J+#B``X_````T]`0L+OLML#RTMX.````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````P\\_[OLKR-,$S]P,R]@("
+       "S-D)K;?IC);(CY?)D)C*D)C*CY?)D)C*:G*D4EJ,3%:(2%*$-T%S,3MM,#IL+SEK"
+       ".D1VB9/%KKCJ5F*3%B)3\"!1%!!!!)S-DT-L,``X_XNT>P<O]SML+Y?(BU>(2P<W^"
+       "Q-$!O<GZGJK;E*#1I;'BNL;WN,3UG:?9F:/5IK#BGZO<M\\/TP<W^OLK[N\\?XP\\W_"
+       "I[/DK;GJQ,[`KKCJH:O=IK#BO,CYPL[_H*S=E)[0K[GKP<W^J+3EI:_AO,CYP<W^"
+       "OLS\\P<__P,S]O,CYRM4&Z_@H_`P\\^@8VYO,C^P<W````[_PLS]P,T=X.56&2!1%\""
+       "!A)#&2566V>8.4-U76>9E)S.D)C*CY?)CY?)CI;(D)C*C);(B)+$V^87````````"
+       "\\/TMP<S]N,/T[OLK````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````0T]TMT.Q](#S]P,R]@(Q-$!H*K<CY?)D9G+CY?)"
+       "D9G+CI;(9V^A1$Y`,CQN+SEK-$!Q-D!R-T%S-#YP+#9H)2]A*S5G/$9X,SUO#AI+"
+       "!A)#%2%2O,;X``X_`@P]\\/LLR=8&PL[]W^P<W>H:Q-$!PL[_NL;WG*C9DYW/J[?H"
+       "P,S]L[_PFZ77L[WOHZW?KKKKO\\O\\P,S]O\\O\\P<W^IK+CL[_PO<GZI:_AH:O=M<'R"
+       "PL[_J[7GD9O-I*[@P<O]L+SMI;'BNL;WP,S]O\\O\\NL;WM,#QK+CISML+^0,T]@(R"
+       "W>H:T=X.\\O\\O````]0$QZ/4E^04UJK;G!1%\"!!!!(\"Q=2%2%(RU?45N-EJ#2B9'#"
+       "A(R^B9'#D)C*D)C*BI+$C);(RM4&``````````X_Y.`@L;SMU>(2````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````Z_<HM+[PQM,#SML+RM<'Q<`!I:_ACI;(CY?)CY?)CY?)D9O-C);(=H\"R3EB*"
+       ",SUO-#YP-3]Q1E\"\"<7NM=X&S:W6G4UV/0$I\\*35F&2569'\"AZ_8G`0L\\_0<X_`H["
+       "^`8WU.$/O\\OZU>(2X.T=Q]0$P<W^N\\?XI['CKKKKP\\_`P,S]M\\/TNL3VH*K<E)[0"
+       "G:G:ML3TO\\O\\OLK[L;WNN<7VML+SH*K<JK3FP<W^LK[OEJ#2G:?9N\\?XNL;WI+#A"
+       "NL3VO\\W]O,CYKKKKI:_AHJS>M+[PWNL;V>86Q-$!OLK[XN\\?````Z_@HRM<'R-4%"
+       "U^04?(BY!!!!*S=H3EJ++#9H45N-6F262U6'>X6WBY/%D)C*CY?)B)'\"HZO=Z/,D"
+       "``\\``@`_````]`,SN,/UOLG[^P<W````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````P\\_S=D)K;?IQ]0$S=H*"
+       "R=8&QM,#I*[@CI;(CY?)D);)D9?*D9G+DYO-C9?):W6G04M]+CAJ>8.U[OLK_PL["
+       "^`@XZ_@HT]`0LKSNCYG+NL3V^P4V_@@Y_PDZ_PDZ_`H[^`8WR-,$O<GZS=H*V^@8"
+       "R=8&P<W^O<GZL;WNHZ_@NL;WOLK[N<7VJ[?HDYW/I:_AN,3UO\\O\\OLK[O<GZP<W^"
+       "L;WNGZO<N,+TO<GZG*C9FZ77NL3VP,K\\J++DK[OLPL[_O<?YJ;/EH:O=K+CIO<GZ"
+       "QM,#QM,#P,S]O\\O\\V^@8`@X^]P,SRM<'R=8&SML+TM\\/SML+C);(8FR>.4-U3EB*"
+       "*35F&25686V>DYO-CY?)BY/%AI'\"M\\'S_@HZ`````P\\_`````P\\_R-4%L;OM[?@I"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````]`0TN,+TJ[?HR=8&R]@(R-4%Q<`!F:/5BI+$C97'"
+       "CI;(CY?)D)C*DIK,EJ#2A(R^/DAZ.T5W7FB:BI;'W^P<`````P\\_````_@@YV.,4"
+       "SMD*T-T-UN,3W^P<\\/TM``X_VN46I;'BO,CYR-4%T=X.Q-$!P<W^M,#QFJ;7I;'B"
+       "O\\O\\N<7VN<7VFZ77K;?IP<W^O\\O\\O<GZOLK[P,S]K[OLIK+CO\\O\\N<7VH:W>M\\/T"
+       "P,K\\KKCJI;'BO<GZOLK[J++DHZW?M\\/TQ-$!Q=(\"PL[_P\\_`PL[_S]P,_@HZ_0DY"
+       "[_PL]@(R^`@X_`P\\^`@X]0$QY/$A>H2V96^A'2=9,CQN?(:XEI[0CI;(C97'H*K<"
+       "U-\\0``\\``````P\\_`P\\_`P\\_S]P,JK;GX^\\?``\\`````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````Y_,CJK7GKKKKRM<'R=8&R=8&P,K\\HZW?E9_1CI;(BY/%C)3&AHZ`=7VO9V^A"
+       ".T5W-#YP,#IL*C1F8&J<Y_0D`@X^`P\\__0DYU.$1S=H*VN<7U.$1PL[_OLK[W^P<"
+       "_PL[Q,[`HJS>NL;WP\\_`P\\_`PL[_P,S]ML+SL;WNN\\?XN\\?XML+SLKSNEZ'3LKSN"
+       "O\\O\\OLK[OLK[O\\O\\ML+SM<'RP,S]O,CYK[OLP,S]N,3UIK+CNL;WP,S]K+CIHZ_@"
+       "M\\/TP\\_`P\\_`P\\_`Q-$!O,CYN\\?X\\O\\O`@X^]`0T`P\\_`````````````0T]\\?XN"
+       "[?HJT]X/B)+$9W&CC);(DIK,BI+$GJC:[ODJ`0L\\`````P\\_`P\\_`````P\\_R-4%"
+       "I;'BT]`0````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````P\\_TMT.HZW?LK[OS-D)"
+       "QM,#Y_0D^`@X[ODJVN46OLCZHZW?C);(;WFK3EB*.4-U,#IL,#IL,CQN*3-EGZG;"
+       "_`P\\T-T-PL[_Q]0$SMD*X^`@`@X^]`0TW.D9PL[_Z?8F`0L\\P,K\\H:O=L[_PP<W^"
+       "PL[_PL[_O\\O\\N,3UOLK[P\\_`L+KLO<?YIK#BF*+4M+[PO\\O\\OLK[O\\O\\O<GZP,S]"
+       "O\\O\\J[7GK+CIP,S]O<GZO\\O\\O\\O\\L;WNHZW?M\\/TP<W^P,S]P\\_`N\\?XKKKKK+CI"
+       "U>(2`@X^\\_`PY/$AY?(BZ/4EX^`@V^@8S=H*Q]0$P,S]OLK[T]`0T-L,FJ36C97'"
+       "BI+$IK#B`P\\_`````P\\_`````P\\_````X.T=I;#BNL7V_0DY````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````P\\__0@XO<CYHZW?N\\?XR]@(V.45[OLK\\_`P^P<W`@X^"
+       "]`0TXN\\?S=H*N\\7WI:_A@(J\\5V&314^!2E2&KKKK_PL[VN<7O\\O\\J++DHZW?IK#B"
+       "P\\_`]P,S````Y_0DPL[_[_PL]`(SO\\G[I+#AJ+3EO<GZP\\_`P\\_`O<GZNL;WQ=(\""
+       "ML+SJ;/EP\\W_K;?II['CO,CYO,CYL;WNO<GZP,S]L+SMH:O=L[_PP,S]OLK[OLK["
+       "M\\/THZ_@N</UP,S]O<GZP<W^L;WNJK3FM\\'SV^87Y>`AQ]0$KKKKK+CIML+SO<GZ"
+       "O<GZO,CYP<W^PL[_Q=(\"Y/$A`P\\_\\/TMT]`0X>P=X^X?[?HJ`P\\_`````P\\_`P\\_"
+       "````_@HZOLGZJ++DVN46`P\\_````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````[/@IK+;HI;'BQM,#R]@(V^@8ZO<GX^`@ZO<G_@HZ`0\\^`0\\^`0T]_`P\\]`0T"
+       "Z_@HW.D9Y/$A^04U_@HZ`P\\_``X_[_HKSMD*M;_QH:W>L;WN[/DI`P\\_T]`0O\\O\\"
+       "U.$1R]@(OLK[JK;GIK+CN<7VP\\_`P\\_`NL;WOLK[P\\_`IK+CL[_PQ<`!I:_AL[_P"
+       "OLK[HZ_@M<'RM<'RHJS>K+;HOLK[OLK[OLK[OLK[KKKKM\\/TN</UKKCJK+;HKKCJ"
+       "L+KLO<?YN\\7WK;?IIK#BJ[?HM\\/TP,S]O\\O\\NL;WM\\/TM<'RN,3UT-T-\\O\\O````"
+       "````XN\\?W.D9_PL[`````````@X^`````P\\_`````@X^S=H*IK#BO\\O\\_@HZ````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "``````````````````````````````````````````````\\`WNH;I*_@J;7FR-4%"
+       "R=8&WNL;^@8V]`0T^`@X_0DY^`@X_0DY_0DY_PL[`0T]`P\\_`0T]_@HZ_@HZ]P,S"
+       "Z/,DWND:UN$2SML+P<W^L+SMNL;WZO<G_@HZT-T-NL;WPL[_QM,#P\\_`KKKKI:_A"
+       "M<'RO,CYO<GZN<7VP\\_`M\\/THZ_@PLS^M+[PIK+CO,CYI[/DJ++DI*[@J++DO,CY"
+       "O\\O\\NL;WO\\O\\O<GZO<GZL[_PI[/DJ[7GL+KLN</UO,;XK[GKI:_AK+;HN\\7WP<W^"
+       "N\\?XL+SMJ;7FIK+CJ;7FN\\?XW^P<`0T]`P\\_^04U]P,S^`@XZ_@HVN<7_0DY````"
+       "````````````_`P\\S-D)I*_@LKSN]0$Q````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "``````````````````````````\\`X>P=HZW?IK+CR-4%R]@(V^@8_0DY_@HZ_0DY"
+       "_0DY_0DY_0DY_0DY_@HZ_@HZ_@HZ_0DY_`P\\^P<WW^P<OLK[LK[ON<7VP\\_`R=8&"
+       "P\\_`P\\_`Y_0D`0T]U^04K[OLN\\?XQ=(\"Q=(\"LKSNHZW?K+CIN<7VN\\?XO<GZP\\_`"
+       "J+3ELKSNP<W^HZ_@M<'RKKKKHJS>I*[@N,+TO\\O\\K;GJJK;GO\\O\\P,S]O<GZL;WN"
+       "M<'RO\\G[O\\G[M;_QI;'BI;'BM<'RP<W^O,CYK;GJI;'BJ[?HN<7VTM\\/[OLK````"
+       "`@X^X>X>P\\_`N,+TN,+TN,+TM\\'SM+[PN</UO,CYP<W^R-4%SML+N,3UH:O=I[+C"
+       "Y_(C````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````RM<'EJ#2KKCJU^04ZO<G`0T]_`P\\_@HZ_@HZ_0DY_0DY_PL[_@HZ_0DY"
+       "_0DY^04U[?HJZO<G]0$Q\\_`PU>(2LK[OIK#BL+KLP,K\\Q=(\"Q-$!Y_0D````W.D9"
+       "J;7FL[WOQ<`!Q=(\"L[_PHJS>I['CL;OMM;_QP<W^N,3UI;'BP\\W_L;OMI['CL+KL"
+       "HZW?K;GJOLK[K+;HHJS>L[WOP,K\\K[OLM<'RX>X>Q=(\"ML#RJ;/EH:O=J;/ENL3V"
+       "OLK[K[OLI[/DK[GKQ,[`WNL;]`0T`````0T]X.L<M+[PH:O=HZW?HZ_@I+#AI;'B"
+       "I['CJ;/EK+;HL+SMM;_QL+KLEZ'3EZ'3I:_AW.D9````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````X>X>HZW?JK3FNL;W"
+       "R-4%W.D9[/DI^04U_@HZ_PL[_`P\\Z?8FO<GZNL;WO,CYN\\?XOLCZO\\O\\P,S]R]@("
+       "Y/$A]`0TX>X>N\\?XIK+CK+CINL;WP,S]Y/$A`P\\_Y?(BK;?IL[WOQ-$!QM,#K[OL"
+       "HJS>HJS>HZW?L;WNQ-$!J+3EN<7VP<O]I:_AHZW?IK#BNL3VJ[?HHZW?J;/ELKSN"
+       "IK#BN<7V^04UV>86J++DH:W>HJ[?KKKKT]`0VN<7K;GJLK[OQ-$!W^P<^P<W````"
+       "]P,SW>H:NL;WHZ_@L+SMO,;XO\\O\\P,S]OLK[N,3UML#RM\\'SN,+TN,3UN\\7WO<?Y"
+       "LKSNN,+TQ-$!V.45_@HZ````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````\\?XNO,CYK;?IJ;3EIK#BI*[@HJS>J;/EM\\/TQ]0$U.$1"
+       "U^04O\\O\\J;7FH:W>H:O=H*K<I*[@I['CI:_AH:O=HJS>L[_PX.T=_PL[Y_0DO,CY"
+       "I:_AI['CJ;/ET]X/``\\`ZO<GO<GZPL[_P\\_`PL[_KKKKLK[OJK3FI+#AP,S]N,3U"
+       "L[_PQM,#KKCJH:O=KKCJN</UI:_AIK#BI:_AHZW?P<W^`0T]Z_@HIK#BHZW?J[?H"
+       "M\\/TZ/4E^`@XTM\\/QM,#V>86]`0T````[?HJSML+P<W^OLK[N\\?XP,S]P\\_`PL[_"
+       "PL[_O\\O\\J[?HHZ_@IK+CI+#AI['CI['CIK#BI['CJK3FM;_QQ=(\"K;GJNL;W^04U"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````P\\_\\/TMT-T-ML#R"
+       "KKGKK;?IJK3FIK#BI;#BI:_AHJS>H*K<HJS>HJ[?I[/DK+;HM;_QM\\'SN,+TM;_Q"
+       "K;?II['CHZW?HZW?I*[@HJS>H*S=O<GZ\\?XN_PL[WNL;M;_QI*[@I*[@T-T-`P\\_"
+       "[/DIQM,#R-4%P\\_`Q-$!QM,#N\\?XHJS>L[WOQ-$!O\\O\\QM,#L;WNH:O=ML#RO\\G["
+       "I['CHZW?J++DP<W^^@8V^04UL+SMI+#AML#ROLK[Z_@H^`@XS=H*RM<'Z?8F````"
+       "^04UU>(2OLK[O\\O\\P<W^O,CYM\\/TP,S]P<W^P<W^PL[_P,S]NL;WO,CYOLK[O\\O\\"
+       "P,S]P<O]S-<(T-L,S=@)QM$\"T-T-Q-$!J+3EN<7V\\_`P````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````^04UT=X.N<3VL[WOL+OMK[GKJ[7GJ;/EIK#BI*[@I*[@"
+       "HZW?I*[@I*[@HZW?I*[@I:_AHJS>IK#BK+;HM,#QO,CYNL;WML#RJ[7GHZW?I*[@"
+       "HZW?H*K<L;WNV^@8_PL[^P<WT]X/K+CIJ;7FWNL;_`X]Y/$AU^04U^04ML+SQ=(\""
+       "Q=(\"K[GKJ++DP<W^P\\_`Q=(\"LK[OHZW?OLCZN\\7WHJS>K+;HOLK[Z_@H`@X^P\\_`"
+       "JK;GO,CYOLK[Z_@H]@(RM,#QPL[_]P,S`P\\_X^`@PL[_OLK[P<W^N\\7WK+;HJ++D"
+       "L+KLP,S]O\\O\\P,S]P<W^PL[_P\\_`Q-$!P\\_`P\\_`N,3UJ[7GK[GKNL3VQM,#T]`0"
+       "VN<7W>H:T]`0L;WNN,3U[OLK````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````Y_0DP<S^"
+       "N,/UML#RN,+TN\\7WN</UN,+TL;OMI;#BI*[@I*[@I*[@HZW?HJS>JK3FN</UO,;X"
+       "N<7VL[_PKKKKJ[?HJ[?HK[OLL[_PN<7VN,+TK;?IIK#BI:_AML#RM\\/TQ-$!Z?8F"
+       "````\\O\\OT=X.Q]0$Y/$A_@HZW^P<\\?XNQ]0$L[_PQM,#M\\'SHZW?NL;WQ=(\"Q-$!"
+       "M<'RI;'BOLK[IK+CK;GJO\\O\\U>(2````W>H:M\\/TOLK[O,CY[/DI\\_XOL;WNP,S]"
+       "^P<W^`@XT]`0O<GZP,S]P<W^P<W^N,+TML#RML#RL+KLJ+3EI[/DM,#QP\\_`OLK["
+       "NL;WN<7VN<7VO<GZLK[OI*[@I['CHZW?H:W>JK;GN<7VR-4%VN<7TMX/L+SMML+S"
+       "YO,C````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````@X^W>@9O,?YN,/UM;_QLKSNLKSNKKGJJK3FJ++D"
+       "J++DHZW?HZW?HJS>HJS>HZW?HJ[?HZW?I[/DKKKKML+SN\\?XO<GZO<GZO,CYN,3U"
+       "L;WNJ+3EJK3FL[WOM\\'SML+SNL;WNL;WN,3UNL;WT]`0]P,S_`P\\ZO<GT=X.\\_XO"
+       "]P,SZ?8F]`0TM<'RN\\?XO\\G[HZW?N<7VQ-$!Q=(\"P,S]O\\O\\NL;WK[OLP\\_`Q-$!"
+       "]@(R^P<WP<W^O,CYO,CYZ?8F]@(RM;_QQ-$!_@HZ_0DWU>(0O<GZO\\O\\OLK[P,S]"
+       "O\\O\\M\\/TKKCJJK3FKKKKLK[ON,3UO,CYK+CIHJ[?I*[@HJS>HJS>I*[@HZ_@I:_A"
+       "LKSNP,K\\NL;WJK;GHZ_@I;'BK[GKOLCZR=0%OLCZN<7VX^`@````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````````````````@X^"
+       "V>86O,;XN\\7WM<#QL[WOL+KLL;OMK[GKJ++DI:_AK+;HML#RM+[PJK;GJK;GLK[O"
+       "M\\/TML+SL;WNJ[?HI[/DI[/DJ;7FKKKKL[_PN<7VO<GZN\\7WK[GKHZW?I[/DO<GZ"
+       "Q-$!O<GZN,3UM\\/TN,3UT]`0Y_0D_@HZ]0$QX^X?^@0U]`0T_`P\\Y/$AJ[?HP,K\\"
+       "K;?IO\\O\\Q-$!M<'RQ-$!Q-$!P<W^Q-$!P<W^U^04````VN<7N\\?XNL;WX.T=^`@X"
+       "Q=(\"U.$1_PL[`0T]X^`>R]@&O,CYQ=(\"WNL;U.$1NL;WL[_PN<7VP<W^PL[_PL[_"
+       "P,S]P<W^NL;WL+KLKKCJLKSNN,+TN\\7WN</UL[WOJ[7GQ-$!VN<7TM\\/R-4%NL;W"
+       "K[GKJ;/EL+KLQ,[`R]@(QM,#ZO<G````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````W.@8O<?YP,O\\OLCZM\\+TLKSNLKSN"
+       "KKCJJ;/EI;#BI*[@I:_AJ;/EK+CIN<7VO<GZO<GZO,CYO,CYO,CYO,CYN\\?XM\\/T"
+       "L[_PK;GJJ;7FJ;7FL;WNNL;WNL;WM,#QI+#AK+CIZO<G\\O\\OW^P<Q]0$N<7VVN<7"
+       "\\?XN]@(R_`P\\\\_XOYO,C_@HZ_@HZ`0T]QM,#L;OMPLS^Q-$!N\\?XHJS>O,;XQ-$!"
+       "QM,#ML+SLK[O]0$Q]@(ROLK[N<7VVN<7_`P\\S-D)WNL;`P``````ZO<GS-D)Q-$!"
+       "X>X>`0T]````WNL;P\\_`S-D)SML+S-D)S-D)R=8&RM<'P,S]M<'RK+CIK+CIL+KL"
+       "L[WOM;_QM\\'SN,+TN,+TP<O]T-T-V.45V>86V.45U>(2R-4%N<7VL[_PO<GZTM\\/"
+       "V^@8`@X^````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````Z_@HOLG[N\\;XML#RL+KLJ[;HJ;/EJ++DJ+3EK+CII+#AHJS>HZW?H:O="
+       "J+3EN\\?XO,CYNL;WN\\?XO,CYN\\?XN\\?XN\\?XO,CYNL;WN<7VN<7VM<'RP<W^\\?XN"
+       "X>X>SML+T=X.X.T=_`P\\`````````P\\_\\O\\O_PL[````_`P\\_@HZ_@HZ[_PL\\?XN"
+       "_@HZ_`P\\[_PLKKCJN\\7WQM,#M\\/TH*K<N</UQM,#M,#QGZO<R=8&````U.$1ML+S"
+       "U>(2`P\\_U^04XN\\?````]`0TT-T-J;/EHZW?JK;GU.$1[/DI^@8V^`@X^@8V````"
+       "`P\\_[?HJX.T=\\?XN`0T]\\O\\OYO,CV^@8Q-$!L+SMJ;7FJ+3EJ;/EJ;/EI:_AH:W>"
+       "I+#AL+SMRM<'TM\\/T]`0TMT.U^(3V.45T=X.P,S]P<W^^04U````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````WNL;N</UML'RK[KL"
+       "J[7GL[WOS]P,V.45UN,3QM,#M,#QIK#BHJS>H:O=J;/EN<7VO<GZO,CYN\\?XN\\?X"
+       "N\\?XO,CYP\\_`S-D)T=X.UN,3TM\\/S=H*WNL;`````````````@X^`P\\__0DYWNL;"
+       "Q-$!P\\_`Q]0$N\\?XUN,3^`@X`P\\_`@X^_0DY^04U_@HZ_0DY_`P\\R=8&J;/EPLS^"
+       "M\\'SH*K<ML#RO,;XH*S=L;WNZ/4E^P<WP,S]Q=(\"_PL[[OLKN\\?XA)#!4%R-*CAH"
+       "%B14#!I*\"QE)#AQ,$1]/(2]?,D!P1U.$56&2<GZOP,S]^P<W`P\\_`````P\\_````"
+       "`````````@X^[/DIX.T=U>(2S]P,SML+R=8&O<GZML+SM<'RQM,#S=H*M\\/TI:_A"
+       "K+;HO,;XQ](#KKCJIK#BQ<`!_@@Y`P\\_````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````P\\_Y_,DM;_QL;SMK+;HJ;/EK+;HX^`@^@8V`0T]`@X^"
+       "]`0TZ_@HU>(2N</UI*[@I*[@K+;HM<'RN<7VN,3UN<7VN,3UO<GZTM\\/^`@X````"
+       "````````_0DYV>86GJK;6666.T=X.45V,S]P$AY/!!!!!1%\"!!!!!!!!#QM,+SML"
+       "3EJ+UN,3`P\\__PL[^`@X_@HZ`@X^Y_0DJ;/ELKSNL[WOHJS>J;/EIK#BJ[?HQ-$!"
+       "^04UY/$AM\\/TYO,C`P\\_P<W^/$AY!!!!!!!!!1%\"!!!!!1-#!!)\"!!)\"!!!!!!!!"
+       "!!!!!!!!!!!!!1%\"\"15&-T-T>(2US-D)`````````````P\\_`P\\_`````````P\\_"
+       "^`@X\\O\\OZ?8FW.D9VN<7W^P<V>86V.45TM\\/P,S]K[GKI*_@J;/EL+KLKKGKJ[7G"
+       "P<O]^@8V`P\\_````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````^04U"
+       "R=4&L+OLK+;HIK#BI*[@HJS>GJK;M<'RY/$A[OLK\\_`P^04U`0T]_@HZZ?0ES]H+"
+       "N\\7WNL;WQ-$!R=8&UN,3YO,C^P<W````````Z/4EJ[?H:76F,S]P\"Q=(!!!!!1%\""
+       "!!!!!1%\"!!!!!!%!!Q5%!1-#!1-#!1-#!!%!!!%!!!%!'BI;R-4%`P\\__PL[^`@X"
+       "_@HZ^04UN</UJ;/EJK3FI*[@HZW?I*[@O<GZTM\\/_0DYS=H*Q=(\"````QM,#*S=H"
+       "!!%!!A1$!A1$!Q-$!Q-$!Q5%!A1$!A1$!Q-$\"!1%!A1$!A1$!A1$!Q5%!!)\"!!!!"
+       "!!!!#1E*7&B9PL[__0DY`````P\\_`````@X^`@X^`````````P\\_X>X>X>X>U>(2"
+       "M<'RQ]0$U>(2U^04U.$1R-4%M<'RJK3FK;?ILKSNM+[PW^P<````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````^@8VQ](#M+_PM\\/TP,S]TM\\/WNL;YO,C"
+       "[/DI]@(R^`@X]`0T]@(R\\/TM\\_`P_`P\\`````````@X^_PL[_@HZ`P\\_````````"
+       "[OLKIK+C45V.%B)3!!!!!1%\"!!!!!1%\"\"!1%!Q-$!Q-$\"!1%\"!1%!1-#!A1$!Q5%"
+       "!A1$!Q5%!A1$!A1$!A1$!!%!#!I*@HZ_^P<W_`P\\_@HZ`0T]S-D)I['CJ++DI*[@"
+       "H:O=M+[PPL[_W>H:^P<WP,S]Z/4EX^`@'\"A9!!)\"!Q5%!A1$!A1$!Q5%!Q5%!!-#"
+       "!A9&!A1$!A1$!A1$!15%!A1$!Q5%!1-#!A1$!A1$!A1$!!%!!!)\"\"A9'.T=XC9G*"
+       "WNL;`````P\\_`````@X^`@X^`@X^_`P\\]P,SZ?8FV.45T=X.VN<7VN<7W.D9W^P<"
+       "X.T=T]`0N\\?XPLS^T]X/X.T=````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````P\\_WNH;ML'RO,CYU>(2]@(R^P<W^P<W_@HZ`````P\\_`````P\\_````````"
+       "`P\\_`P\\_`0T]`P\\_````````````^P<WN<7V7VN<&\"15!!%!!!%!!!%!!1-#!A1$"
+       "!Q5%!Q5%!A1$!1-#!!)\"!!%!!!%!!!%!!!%!!!%!!!%!!1-#!Q5%!Q5%!A1$!A1$"
+       "!!%!!!!!>(2U````_@HZ_`P\\Z/4EIK#BI*[@HZW?IK#BP,S]PL[_\\O\\O\\?XNQ=(\""
+       "````<7VN!!!!!A1$!1-#!A1$!A1$!A)#!A)#!!%!!!!!!1%\"!!!!!!!!!!%!!!!!"
+       "!A)#!Q5%!Q5%!1-#!Q5%!A1$!A1$!!)\"!!!!!1%\"#AI+3UN,KKKK]0$Q````````"
+       "`P\\_`@X^`````````````P\\_`0T]_`P\\`0T]`@X^`0T]`0T]`@X^`P\\_]0$QUN,3"
+       "`P\\_````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "``````````````````````````````````````````````\\`Y_,DN,/TR=8&TM\\/"
+       "Y?(B^P<W_PL[_`P\\`@X^`@X^`0T]`@X^`@X^`@X^`@X^`0T]`````P\\_`@X^U>(2"
+       "?HJ[*35F!!!!!!!!!!%!!A1$!A1$!A1$!A1$!A1$!A1$!A1$!!)\"!!%!.4=W@(Z^"
+       "JKCHML3TM,+RC)K*.DAX!!%!!!)\"!A1$!A1$!A1$!A1$!1%\"!A)#M,#Q`P\\__@HZ"
+       "^P<WR]@(KKCJH*K<LKSNPL[_T]`0`P\\_Z_@H[?HJZ?8F&\"15!!!!!A1$!Q5%!A1$"
+       "!Q5%!!)\"!!%!-$)RA9/#K+CIL;WNJ[GI@Y/#/4EZ!A)#!!!!!A)#!A1$!A1$!A1$"
+       "!A1$!Q5%!A1$!A1$!!%!!1%\"!!!!(\"Q=<7VNR=8&_`P\\`````````@X^`@X^`@X^"
+       "`P\\_`P\\_`@X^`0T]`P\\_`P\\_````````R-4%L;WN^P<W````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````0T]WNL;R]@(RM<'SML+V^@8\\_`P_PL[^@8V_@HZ"
+       "`@X^`@X^`@X^`@X^````````]P,SH:W>0DY_\"1='!!%!!!!!!A1$!A1$!A1$!Q5%"
+       "!A1$!A1$!A1$!15'!Q-\"!1!!)C-FML?[[/(:P+/.G(68C&]`H8ZBR,3E^04SL,#R"
+       "'\"A9!!!!!!1!!Q5%!A1$!Q5%!!!!&256W.D9````_PL[Z?8FP<W^HZ_@PL[_Q]0$"
+       "\\/TM`@X^Y_0D``\\`DJ#.!1!!!15%!A1$!Q-$!A1$!Q!!$1U.G*WAY^L2O*[(E8\"2"
+       "B&IUG(>9Q;S:]/\\PR=<),CYM!!!!!Q-$!A1\"!Q5%!A1$!A1$!A1$!Q5%!Q5%!A1$"
+       "!1-#!!%!!!%!!A1$-T-TDI[/Z_@H`````````P\\_`@X^`@X^`P\\_`0T]`@X^`0T]"
+       "`0L\\_`H[PLS^I:_AS-<(````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "X.T=N<7VNL;WU.$1TM\\/T]`0[?HJ]`0T]P,S_`P\\`0T]`P\\_````````Y_0DB)3%"
+       ")C)C!!!!!!%!!!)\"!A1$!Q-$!A1$!A1$!A1$!Q5%!A1$!A1$!A1$!Q5#!!!!.TQY"
+       "]0,PT<ON<U!78#M#9SY#:4)&8CU#83E#=UYRZ>T6VN@<&RA;!!!!!Q5%!A1$!Q5%"
+       "!Q-$!!!!=(\"Q`P\\__PL[[_PLQ-$!M,#QR-4%S]P,_0DY^`@X[_PL_`P^.$5X!!!!"
+       "!A1$!Q5%!Q-\"!!!!#!U1PM,$T<CF<4Y58#M#9T!&:T1(9C]%8#M!=UQFW]\\'^0<T"
+       "1%&$!!!!!19#!A1$\"!1%!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!1-#!!)\"!!!!"
+       "%R-4<'RMV.45`````````P\\_`P\\_^04UY/$AWNL;W>@9R=0%GZG;I:_AT=T.````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````P\\_U.$1I['CUN$2^`@X]`0T^04U"
+       "^04U]P,S]`0T_@HZ````````S]P,9W.D$Q]0!!!!!!%!!A1$!Q5%!A1$!A1$!Q5%"
+       "!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!!!!'\"Q<ZO@JRL/E94!&:41*<DI,;DM0;4I-"
+       "<DM/;DE/9#Q%94E7Z.`=N\\GY!1!!!!)\"!Q5%!A1$!A1$!!%!*C9G]@(R`0T]^04U"
+       "S]P,QM,#QM,#T]`0_PL[_0DY````QM,#!A)#!!)!!Q-\"!15%!A)#!!%!G:WASL7C"
+       "8#U\":49+;TM,<$Q-:4I0<TM,;DE/:$!!9451V]`%[?XO)C!D!1!!!A1\"!A1\"!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!Q5%!!%!!!!!\"Q=(56&2PL[_`0T]"
+       "````````_PL[^@8V]P,S]0$QY_(CWNH;T]\\/ZO<G````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````P\\_Z_@HPL[_N\\?XUN,3Z?8F]`0T^04U]`0T_`P\\````_0DYM\\/T2U>("
+       "\"!1%!!%!!!)\"!A1$!Q5%!Q5%!A1$!Q5%!A1$!A1$!A1$!A1$!Q5%!A1$!A1$!Q5%"
+       "!1-#!!%!HJ[=^O\\LBW.$@VAZ@%YM54)6)R-''QY&-BU-9$9/;TU,7CM\"=6=]``\\]"
+       "66:9!!%!!1-#!A1$!Q5%!!)\"!A)#R]@(````_@HZV.45QM,#QM,#U^04_`P\\_`P\\"
+       "````<7VN!!%!!A1\"\"!1#!1-!!!%$.TM]ZNP6AVQ\\BG!]BFU^9%%F*BA,&1Q$*RA&"
+       "7T!.<$Q/8SY&=F!V````J;/E!!!!!A1\"!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!Q5%!A1$!A1$!A1$!!%!!!)\"!!%!/$AYI+#A]@(R````````````````"
+       "````_`P\\T=P-Q,_`X.P=_PL[````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````^`@XY/$AS]P,SML+X^`@\\?XN"
+       "\\?XN\\_`P]`0T_PL[````[/DICIK++SML!!!!!!!!!1-#!A1$!A1$!Q5%!1-#!A1$"
+       "!Q5%!A1$!A1$!Q5%!A1$!A1$!A1$!A1$!Q5%!A1$!!%!)S-D^P<YXN0.S\\OOT\\WP"
+       "G)J^-TA\\\"AQ-!!!#!!!!&QI#8T5.<DE0431%S]'XP-$\"!!!!!A1$!Q5%!1-#!Q5%"
+       "!!!!FJ;7````_`P\\X^`@Q=(\"QM,#VN<7_PL[`@X^^`@X,CYQ!!%$!A1$!Q-$!Q5#"
+       "!!!#FJC8W]O_P[K:V]H!P\\7M=8&R+#QN\"1E+!1%\"#15#63],;DM25C9!O\\'I`P``"
+       "*3EI!!!!!!1&!A1$!A1$!A1$!A1$!A1$!Q5%!Q5%!Q5%!A1$!A1$!A1$!Q5%!A1$"
+       "!A1$!A1$!1-#!!%!!!%!(BY?G*C9`P\\_`````0T]`@X^`@X^`0T][_LLQ<`!T]X/"
+       "]@(R````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````]`0TSML+Q,_`VN<7_0DY_PL[^P<W^@8V^@8V`P\\_`0T]DI[/&B97"
+       "!!!!!!!!!1-#!Q5%!A1$!A1$!Q5%!1-#\"!9&!1-#!Q5%!1-#!A1$!A1$!Q5%!A1$"
+       "!A1$!A1$!Q5%!A1$!!%!:WBK`0``]_\\K`````0PXX>X>F:;;1%!_\"QM-!1%$!!)\""
+       ",RI*<$Q/5S9!D8JJ]P,U'\"A9!!%!!A1$!Q5%!A1$!!%!9'\"A````_`P\\Z?8FQM,#"
+       "Q=(\"W>H:`0T]`P\\_Y/$A%2%0!!!#!A1\"\"!1%!!)\"\"QE)T=T+X>$(^00P```^_0DW"
+       "V.45C9G*-4-S\"1='!!)!(R%';4E*63I!AGV;`P``:76H!1!!!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!1-#!A1$!Q5%!A1$!A1$!A1$!A1$!!%!"
+       "!!!!6666Y?(B`````0T]`P\\__PL[]`0TQ,[`N\\;WO\\G[UN(3]P,S````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````\\/TMQ=(\"O,?Y"
+       "R-4%Z?8F]P,S^`@X_@HZ````[?HJ5&\"1!!!!!!!!\"!1%!A1$!A1$!1-#!Q5%!A1$"
+       "!A1$!A1$!A1$!Q5%!A1$\"!9&!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!1%\"G:G:"
+       "`P``]?HG`@`_`````P\\_\\/\\LCYO,(#%>!!)\"!!!!%!E$:$=/7CU$;%]\\^PL\\-T-T"
+       "!!!!!1-#!Q5%!A1$!!%!+CIK^04U`@X^\\/TMR-4%Q=(\"X.T=````````O<GZ!!%!"
+       "!1-#!Q5#!A1$!!!!(3%AZ.\\?T\\WP]`(S```^``\\````\\YO,C=X.T%R55!!!#!Q1!"
+       "74--83Q%;F%\\```\\IK+C!!!!\"!)$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!Q5%!A1$!A1$!A1$!A1$!Q5%!A1$!A1$!1%\"&R=8LK[O`````P\\_"
+       "`P\\__0DYVN46V>05Q,[`LKSNO,?Y[?HJ````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````\\/TMRM4&K[KLJ[?HM,#QP\\_`Y_0DQ]0$"
+       "+#AI!A)#!A)#!Q-$!A1$!A1$!A1$!Q5%!A1$!A1$!Q5%!A1$!A1$!A1$!A1$!A1$"
+       "!Q5%!A1$!A1$!A1$!A1$!A1$!A1$!1-#!!!!RMD(]_TGP+G9Y^T7]/`N^`@VZ_8I"
+       "B);&(\"Q?!!)\"!!!##A=#84-.6#Q*7%-S_@HX04U^!!%!!Q5%!A1$!A1$!!%!$1U."
+       "VN<7````YO,CR=8&QM,#U.$1\\_`P````B97&!1%\"!!1&\"!1%!!1&!1!!*3EIZ?(?"
+       "IY6NRL/CX^P9[O\\P^@8VV^<5;7NK%\"!1!!!!!1-#6#Y+7SY&;&)^````T=P-!!-#"
+       "!!1!!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!Q5%!A1$!Q5%!1-#!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!Q5%!A1$!1%\"\"!1%JK;G````````]`0TT=X.I*[@?(>X<WZP"
+       ">X:WQ]0$````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````_PL[Y?(BP\\W_KKCJJK3F?XN\\%R-4!1%\"!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!Q5%!A1$"
+       "!Q5%!!%!$1]/Y_8E\\_LGBW\"\"GHB>F96Y=H:X7FN>*SEI\"A9'!1%\"!!!%&!Q\"9D5/"
+       "2C-&95^\"_PL],T%Q!!%!!A1$!Q5%!A1$!1-#!A)#PL[__`P\\S-D)QM,#R-4%QM,#"
+       "T-T-````<GZO!!)\"!A1$!Q5%!Q-\"!!!!'BQ:WN83@V1SB6U[CH.B;'RN;X&R4%R-"
+       "'RQ?\"!)$!1%$#15%8$5+6CI&;F!``P``ZO8D$2%1!1!#!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!Q5%!A1$!A1$"
+       "!A1$!1)\"'2E:Z?8F````_0DYX^`@;WFK1$Y`66268FR>G*?8`P\\_````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````````````@X^X^`@"
+       "XN\\??HJ[$!Q-!A)#\"!9&!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!1-#!A1$!Q5%!Q5%!A1$!!%!%2-3[_XM``\\]@F=W"
+       "<$E/;T];%\"%-!!-'!A%!!1-#!A)#!!!!.C!*9T52/\"I#D(NT\\?PM%\")2!!%!!A1$"
+       "!A1$!Q5%!!)\"!!!!M<'R`0T]R]@(R-4%R-4%QM,#TM\\/`P\\_@HZ_!!!!\"!1#!!1$"
+       "!Q5#!1%\"!!1%R]@&CG:%:41*<T]8(R90!!1(\"!1#!!)\"!1)!!!!#,2A(<$E-2C1\""
+       "B86I```^\\O`R'\"A7!!!#!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!A1$!Q5%!A1$!A1$!A1$!1%\"K+CI````]P,S"
+       "Y/$AQ=(\"G:?9A9#\"@HR^@HV^H:S=UN,3`0T]````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````P\\_````````````\\O\\OR]@(VN<7N\\?X$1U.\"A9'\"1='!Q5%!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!Q5%!A1$!A1$!A1$!!%!$B!0Z/4E`P``JI^^7CE!;DI-33A*\"11#!!!!!!!#"
+       "!Q!!*\"1&:D9/6SY/.2M%UML(L,#R!!%!!A1$!Q5%!A1$!Q5%!!)\"!1%\"M\\/T````"
+       "U>(2QM,#R-4%Q]0$VN<7````FJ;7!!!!!Q-\"!!1&!A1\"!Q5%!!%#CI[.PKC483I!"
+       "<$E-6C])$!=\"!1%\"!1!#!!!!'\"!&945/945/13)'Q\\SW````[/DI%R-2!!!#!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!Q5%!A1$!Q5%!Q5%!A1$!!!!GJK;`````P\\_`@X^````````[?HJJ[?HI;#B"
+       "IK#BDIW/P<W^````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````P\\__@HZ]`0TZ/4E"
+       "T]`0Q<`!V.45````IK+C#!A)\"1='\"1='\"!9&!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!Q5%!!)\""
+       "!!%!Q<`!```^[/8?9U!C8C]&;TQ17D!+.\"Y*+2A'2#=(;4A.8T5..2E\"=&Z5`P``"
+       "1U.&!!%!!A1$!A1$!A1$!A1$!!)\"#!A)R]@(````X>X>Q]0$Q]0$Q]0$Y/$A````"
+       "H*S=!!!!!!1$!A-&!Q5#!1-#!!!!+CQLZO,@>F!L94%\";DM0945//C!(,\"E)1C1+"
+       ":TA-:TA/1R]!=6Z0```^````RM@*!!!!!!)\"!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!Q5%!A1$!A1$!A1$!A1$!1-#"
+       "!1%\"FZ?8`````@X^`0T]`P\\_`@X^`P\\_V^@8KKGJKKGJL;OML[[P`0T]````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````]`0TXN\\?Z?8FX.T=WNL;YO,C^P<W`````P\\_Q=(\"\"15&"
+       "\"!9&!Q5%!Q5%!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!!%!@Y##``\\`````P\\;P3C=*"
+       "5SA&:T9.<DM/<TQ.;TM.84-,/BM!44AH\\_LHI+'F!!!!!A1$!Q5%!A1$!Q5%!A1$"
+       "!!%!$Q]0U>(2````W.D9QM,#R=8&Q]0$[OLK`P\\_H*S=!!!!!!1$!A-&!A1\"!Q-$"
+       "\"!-\"!!!!E*38YNL0;$E08CU%<$E/<DQ,<4U-<DM-8T1+1B]\"6E%QZ_,=````````"
+       "B)7(!1!!!!1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!!!!GZO<`````@X^`P\\_`@X^"
+       "`@X^`P\\_````\\/LLML#RJ;3EHZ_@`0T]````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````]`0TN<7V"
+       "[OLK`````````P\\_````````````````_0DY,CYO!A-#!A1$!Q5%!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!A1$"
+       "!A1$!Q5%!A1$!A1$!!%!+#IJ]@0S`@`]````RL_Z6E%M0BQ!2C)!43)#2\"]#.RU'"
+       ";6>,ZO<EZ_<C(\"Y>!1%!!A1$!A1$!A1$!A1$!A1$!!%!#1E*QM,#^`@XRM<'Q]0$"
+       "QM,#R]@(]`0T````DY_0!!!!!Q5#!Q5%!!5\"\"!1#!Q5%!!!#$AY/UN08Y>L5=V!S"
+       "6#E'6SA!5S=!3S-!1C-(<FR/ZO8B``\\`````]@8W+CIK!!!!!15%!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%"
+       "!A1$!A1$!A1$!1-#!!!!O<GZ`P\\_`@X^`P\\_`P\\_`P\\_`@X^````_`H[O,CYAI+#"
+       "H*S=````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````_PL[?8FZIK+C````````````````````"
+       "`````P\\_````AI+#!A)#\"!9&!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!Q5%!Q5%!A1$!A1$!A1$!A1$!A1$!!!!"
+       "<'RO```^`P\\_````]P,SO;[ICXVSBX>KEY:_R]/[````\\`$S0$Y^!!!#!Q%#!Q5%"
+       "!1-#!Q5%!A1$!Q5%!!)\"!!!!L[_P]0$QR-4%QM,#R-4%S]P,^@8V````B)3%!!!!"
+       "!Q-\"!Q-\"!15%\"!1%!!1$!A-&!1!!*C9EY?(@```^R<STHIV^G)6UH:#(U-D&``P["
+       "`@`]``\\``@`_?(BW!1%$!!5\"!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!1-#!Q5%!A1$!A1$!!)\"&B97Z?8F"
+       "`0T]]P,S]P,S]`0T_@HZ`P\\_````Z/,DJ[7G;GJKSML+````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````PL[_35F*;WNLT=X.````````````````````````\\?XN+CIK!!%!"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!A1$!Q5%!1-#!!!!>HBX`@\\```````\\]``\\`"
+       "`P`````````^````Y>`A/DIY!!!!!A1\"\"!1'!A1$!A1$!A1$!Q5%!A1$!!)\"!!!!"
+       "K;GJ^04UR]@(Q]0$Q]0$S]P,V.45_`P\\GJK;!!!#!Q-&\"!1#!!-#!A1$!Q5#\"!-\""
+       "!!1$!!!!*35HU.,2``````\\```X``0`````\\`````0````\\`BIC(!1!!!1%\"!Q5#"
+       "!A-&!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$"
+       "!A1$!A1$!A1$!Q5%!A1$!A1$!Q5%!!%!3%B)_0DY_@HZ^04U[_PL]0$Q`0T]````"
+       "]P,SM\\+TD)O->X>X_0DY````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````FJ;7/$AY"
+       "+CIKA9'\"[_PL`````````````````P\\_N\\?X!!!!!A)#!A1$!1-#!!%!!!)\"!!!!"
+       "!!)\"!A1$!A1$!Q5%!A1$!A1$!A1$!Q5%!A1$!!1$!!1$!A1$!A1$!Q5%!A1$!A1$"
+       "!Q5%!A1$!Q5%!Q5%!1-#!!)\"15&\"RM<'````````````````_0DYI+#A'BI;!!!!"
+       "!A1$!Q5%!A1$!A1$!A1$!A1$!A1$!A1$!!)\"!1%\"KKKK_PL[SML+QM,#Q]0$S]P,"
+       "QM,#^@8VIK+C!!!!!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!!%!$Q]0D)S-]`0T"
+       "`P\\_````````````V.455V.4!!!!!1%\"!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%"
+       "!Q5%!Q5%!A1$!A1$!Q5%!A1$!Q5%!A1$!A1$!A1$!A1$!A1$!!)\"!!%!!!!!!!!!"
+       "\"!1%!1%\"@(R]_`P\\\\?XN\\O\\O^04U_@HZ`0T]\\_XOM\\'SHZ_@9G*CO,CY````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````P\\_J;7F+CIK+SML:76FJ;7FY_0D````"
+       "`````````P\\_6666!!!!!!%!(2]?IK+C?HJ[/DI[$AY/!!!!!!%!!!!!!A)#!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!1-#!Q5%!1-#!Q5%!A1$!Q5%!A1$"
+       "!!%!\"15&/DI[=H*SB)3%;7FJ+#AI!!!!!1%\"!A1$!A1$!A1$!A1$!A1$!Q5%!A1$"
+       "!Q5%!A1$!1-#!1%\"LK[O````U>(2QM,#R=8&T=X.R-4%_PL[GZO<!!!!!Q5%!1-#"
+       "!Q5%!A1$!A1$!A1$!A1$!A1$!A1$!!)\"!!!!(2U>9W.DB)3%>H:W2%2%#AI+!!!!"
+       "!A)#!A1$!1-#!Q5%!Q5%!Q5%!A1$!A1$!A1$!A1$!Q5%!1-#\"!9&!Q5%!A1$!Q5%"
+       "!1-#!A1$!!)\"!!%!!!!!!!!!%2%215&\"C9G*G*C9#1E*!!!!PL[_^P<W\\?XN\\?XN"
+       "^04U^@8VX.T=L[WOFZ778V^@@X^``0T]````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````V^@80$Q]+SML)C)C%B)3(\"Q=K;GJ````````````T=X.\"Q=(!!!!"
+       "%2%2EZ/4X>X>^@8V\\/TMO,CY;WNL*35F!A)#!!!!!!!!!!)\"\"!9&!A1$!Q5%!A1$"
+       "!Q5%!A1$!Q5%!A1$!A1$!Q5%!A1$!A1$!A1$!A1$!A1$!!)\"!!%!!!!!!!!!!!!!"
+       "!1%\"!A1$!A1$!A1$!A1$!Q5%!A1$!A1$!A1$!A1$!A1$!A1$!!)\"!A)#N,3U````"
+       "X.T=Q-$!T=X.TM\\/R-4%_PL[ML+S!!!!!A)#!Q5%!1-#!Q5%!A1$!Q5%!A1$!A1$"
+       "!Q5%!A1$!Q5%!!%!!!!!!!!!!!!!!!%!!1-#!A1$!A1$!A1$!Q5%!A1$!A1$!1-#"
+       "\"!9&!A1$!A1$!A1$!A1$!A1$!A1$!Q-$\"!1%!1%\"!!!!!!!!!A)#,#QM=X.TPL[_"
+       "\\_`P^@8VUN,3AI+#!1%\"*35F[?HJ]`0T]`0T]P$RY.\\@OLCZGJC:@XV_4%J,<W^P"
+       "]0$Q````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````P\\_F*351E*#.45V"
+       ",CYO,CYO.45VK+CI`P\\_`````````P\\_:W>H!!!!!A)#!!!!!Q-$(C!@7&B9IK+C"
+       "Y_0D_0DYU^04@X^`,#QM!A)#!!!!!!!!!1-#!A1$!A1$!Q5%!1-#!Q5%!A1$!A1$"
+       "!Q5%!A1$!A1$!Q5%!A1$!Q5%!A1$!A1$!Q5%!Q5%!Q5%!A1$!A1$!Q5%!A1$!A1$"
+       "!A1$!Q5%!A1$!A1$!A1$!Q5%!1-#!A)#OLK[````Z?8FP\\_`U^04S]P,RM<'_0DY"
+       "Y?(B%2%2!!!!!A1$!A1$!A1$!A1$!Q5%!A1$!A1$!Q5%!A1$!A1$!A1$!A1$!A1$"
+       "!Q5%!Q5%!A1$!A1$!Q5%!Q5%!A1$!A1$!Q5%!Q5%!A1$!A1$!A1$!A1$!Q-$!Q-$"
+       "!A)#!1%\"!!!!\"A9'.T=XD)S-WNL;^`@XW^P<G:G:5&\"1'RM<!A)#!!!!!!!!45V."
+       "````^04UQM,#J++DD9O-DIS.;7>I,S]P3%B)ZO<G````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````P\\_`7&B9@8V^R=8&T]`0T-T-Z?8F````````"
+       "`P\\_````]`0T256&!!!!\"!1%!1-#!!)\"!!%!!!%!\"Q=(.45VB97&W.D9_PL[U^04"
+       "?HJ[)C)C!!%!!!%!!!)\"!A1$!Q5%!Q5%!A1$!A1$!A1$!1-#!Q5%!A1$!A1$!A1$"
+       "!Q5%!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!Q5%!A1$!A1$!1-#!A1$!Q5%"
+       "!!%!$!Q-RM<'````ZO<GQM,#S-D)RM<'S]P,_PL[^P<W+CIK!1%\"!A1$!1-#!Q5%"
+       "!A1$!1-#!Q5%!A1$!A1$!Q5%!A1$!A1$!A1$!Q5%!A1$!A1$!A1$\"!9&!A1$!Q5%"
+       "!1-#!Q5%!A1$!A1$!A1$!Q5%!1-#\"!1%!1%\"!!!!!!!!,CYOCYO,X^`@_`P\\TM\\/"
+       "?8FZ,#QM\"!1%!!!!!!!!!!!!!1%\"!1%\"!!!!J;7F````U^04C9G*F*35L;OMHJS>"
+       ".T=X-4%R;7FJ_`P\\````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````P\\_H*S==(\"QR-4%_`P\\````````````````````````````]P,S45V.!!!!"
+       "!A)#!A1$!Q5%!Q5%!!)\"!!!!!!!!!A)#-$!QBY?(W>H:^04UQ=(\"7VV=$B!0!!%!"
+       "!!%!!1-#!Q5%!A1$!A1$!Q5%!A1$!A1$!Q5%!A1$!1-#!A1$!A1$!Q5%!A1$!Q5%"
+       "!A1$!Q5%!A1$!A1$!Q5%!1-#!Q5%!A1$!Q5%!1-#!!)\")C)CZ/4E````Z?8FR=8&"
+       "QM,#Q=(\"U.$1`0T]````5&\"1!!!!!Q5%!A1$!A1$!Q5%!A1$!Q5%!A1$!1-#!Q5%"
+       "!A1$!A1$!A1$!A1$!Q5%!A1$\"!9&!1-#!Q5%!A1$!A1$!A1$!A1$!Q5%!A1$!A1$"
+       "!!!!!!!!&\"15;WNLTM\\/_0DYU>(2?XN\\*S=H!!%!!!%!!!)\"!!)\"!Q-$!A)#!!!!"
+       "!!!!\"A9'FJ;7`P\\_`@X^^`@X]P,S^`@X``\\`R=0%/DI[15&\"6666T]`0````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````^04UCIK+7&B9DI[/"
+       "T]`0^@8V`P\\_`````````````P\\_````_PL[=X.T!!!!!1%\"!A)#!1-#!Q5%!Q-$"
+       "!Q-$!A)#!1%\"!!!!!!!!.D9WFZ?8\\O\\O\\_`PF*35+3EJ!!!!!!!!!1%\"\"!1%!A1$"
+       "!Q5%!A1$!A1$!1-#!Q5%!A1$!A1$!Q5%!A1$!A1$!Q5%!1-#!Q5%!Q5%!A1$!Q5%"
+       "!A1$!A)#\"!1%!!!!!!!!9W.D````````W.D9V>86S=H*Q-$!Y?(B`P\\_`P\\_E*#1"
+       "!!!!!!!!!Q5%!Q5%!A1$!A1$!A1$!A1$!Q5%!A1$!Q5%!Q5%!A1$!Q5%!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!Q5%!A1$!A1$!A)#!!!!!!!!-T-THZ_@]`0TZO<GCIK++CIK"
+       "!1%\"!!!!!!!!!1-#!Q5%!!)\"!!%!!!!!\"15&1%\"!FJ;7SML+_`P\\`P\\_`@X^_`P\\"
+       "^`@X]/\\P]/\\PS-<(35F*2%2%<'RMY?(B````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````^`@XJK;G8V^@8&R=CIK+PL[_U.$1U>(2W>H:"
+       "[_PL_PL[`````P\\_M\\/T*35F!!!!!!)\"!!%!!!!!!!!!!1%\"!!!!!1%\"!!!!!!!!"
+       "!!!!$!Q-9W.DUN,3`0T]M\\/T0DY_!1%\"!!!!!1-#!A1$!A1$!A1$!Q5%!A1$!A1$"
+       "!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!A1$!A)#!!!!#QM,:G:G[?HJ"
+       "````_@HZSML+TM\\/S=H*S-D)^`@XVN<7Z/4E^P<W>(2U%\"!1!!%!!!)\"!A1$!A1$"
+       "!Q5%!A1$!A1$!A1$!Q5%!A1$!Q5%!A1$!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!1-#"
+       "!!!!\"!1%4%R-R-4%`P\\_R=8&5V.4#1E*!!!!!!!!!1%\"!Q-$!!!!!!!!!!!!\"1='"
+       "04]_A9'\"ML+SY/$A`@X^`````P\\__PL[\\?XNZ/,DZO4F]P$R[OHJ='^P0$Q]?8FZ"
+       "Z/4E````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````]0$QP<W^=X.T0DY_,S]P*#1E*C1F>X6WK;?IZ?8F````````]P,S"
+       "K+CI9W.D-D)S&B97&R=8&B97%\")2#1M+#1M+$AY/$Q]0#!A)!!!!!!!!.T=XOLK["
+       "^@8VQ=(\"35N+!Q-$!!!!!1-#!Q5%!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!Q5%"
+       "!A1$!Q5%!A1$!1%\"!!!!$AY/;WNLW^P<````````````Z_@HQM,#R=8&QM,#V.45"
+       "YO,CP,S]X.T=````````YO,C>H:W%2%2!!)\"!!)\"!A1$!A1$!1-#!Q5%!A1$!Q5%"
+       "!A1$!Q5%!A1$!A1$!A1$!Q5%!A1$!!)\"!!!!\"A9'86V>W>H:`@X^JK;G-4%R!!!!"
+       "!!!!!!!!!!!!!1%\"!!!!!A)#'BI;2U>(@(R]N,+TX^X?Z?0EZ?0EZ/,DZ_8G[_HK"
+       "[ODJZ?0EZ/,D\\O\\O`P\\__@HZBY?(.45VF*35_PL[````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````U-\\0"
+       "9W&C+3EJ$!Q-+CAJ>H2VK[OL^P<W`````P\\_````````````_0DYZO<GZ_@HZO<G"
+       "W^P<U>(2TM\\/U.$1V.45T]`0P\\_`J[?HE*#1C9G*J;7FY?(B`P\\_R=8&45V.!A)#"
+       "!!%!!!)\"!Q5%!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!A1$!!%!$!Q-<W^PY/$A"
+       "`````````````P\\_````W.D9Q]0$R=8&R-4%R=8&RM<'QM,#]0$Q`````P\\_````"
+       "````ZO<G>8>W$R%1!!%!!!)\"!Q5%!A1$!A1$!A1$!A1$!A1$!A1$!Q5%!A1$!!)\""
+       "!!%!\"!9&9'\"AY?(B_@HZDY_0&B97!!!!!!!!!!!!$AY/-D)S04U^2%2%<7VNJ+3E"
+       "TM\\/Y/$AZ?0EX^X?V^87X>P=\\?PM^@0U\\_`P[/DI[OLK]P,S_`H[````^04UA)#!"
+       "+SML@8V^`P\\_`P\\_````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````^P<WX.P=L+KLDIS.A(Z`=7^QDYW/N\\7W\\_`P"
+       "`````````P\\_`P\\_`````````````````````P\\_````````````````````````"
+       "`````````P\\_`````@X^]`0T`@X^````````SML+86V>$!Q-!!%!!1-#!A1$!1-#"
+       "!A1$!1-#!A1$!A1$!!%!!!!!5V.4W>H:`````````````````````````P\\_W^P<"
+       "Q]0$Q]0$R=8&Q]0$Q=(\"T]`0`````P\\_`````````P\\_````````X^`@8&Z>!!)\""
+       "!!%!!1-#\"!9&!A1$!A1$!A1$!A1$!A)#!1%\"!A)#56&2W.D9^04UA9'\"$AY/!!!!"
+       ".T=X>H:WB)3%G*C9S-D)[?HJ]@(R^@8V^@8VZO4FWND:W.<8V^87X.L<X.L<X>P="
+       "XNT>Z_@H`0T]`````@X^]`0T\\/LLO\\O\\35F*)S-D6V>8]0$Q````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "_@HZK[GKIK'BK;?IM;_QQ],$X>X>]`(S`PT^`@P]]P,SZ?8FXN\\?^`@X`P\\_````"
+       "````^@8V]`0T````````_0DY\\?PM[/<HZO4FZ/,D]0$Q`````P\\_````````````"
+       "`````````````P\\_````XN\\?=(\"Q#1E*!!!!!Q5%!A1$!A1$!A1$!!!!&\"15JK;G"
+       "`````````````P\\_`````P\\_````````````YO,CQM,#R-4%R-4%R-4%Q=(\"Z/4E"
+       "`P\\_````````````````````````````````NL;W(C!@!!%!!A1$!Q5%!A1$!A1$"
+       "!!!!!!!!0$Q]Q=(\"_`P\\IK+C,#QM+#AI<'RMT-T-`````````````````````0T]"
+       "_0DY^04U\\OTNZ/,DW.<8W.<8W.<8WND:X^X?Y>`AY>`AYO$BZ_@HYO,CX.L<W^H;"
+       "S]H+/TM\\(\"Q=-4%R76F:\\/TM````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````Z/4E9W.DD9W.Z?0E``\\`````"
+       "`@X^Z?8FW^H;V^87V^87V>05V^87Z/,D_PDZ``\\`^`8W]`0T``````\\`\\?PMX.L<"
+       "W.<8V>05V.,4WNL;^@8V`P\\_`````````````````````````````````P\\_````"
+       "````U>(2.45V!!%!!1-#!A1$!1%\"-T-TWNL;`````````````````````P\\_````"
+       "`````P\\_`P\\_\\O\\OR=8&Q]0$R-4%R-4%QM,#[/DI`````P\\_````````````````"
+       "`P\\_````````````Z/4E/TM\\!!)\"!A1$!1%\"!!!!+#AIK[OL^P<WU>(2K[OLN,3U"
+       "V^@8_0DY`````````P\\_`P\\_`````@X^^`@X]`0T]`0T^04U_0<X^P4VX^X?V^87"
+       "W>@9X.L<W^H;W^H;WND:W.<8V^87V>05V^87W.<8WND:T-L,BY7'3UF+8V^@I[/D"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````Z/4E8&R=1E*#BI;'U^04\\_`P````\\_`P\\/TM]/\\P[_HKV^87"
+       "T]X/QM$\"O,;XO,;XQ<`!VN46Z_8GY>`AWND:WND:X.L<YO$B]P$R`@X^````````"
+       "`P\\_`````````````P\\_````````````````````````````^`@XAI+#\"Q=(!!!!"
+       "+3EJZ_@H`````````````````P\\_````````````````````````````XN\\?S]P,"
+       "S]P,T=X.T-T-\\?XN`````````````P\\_````````````````````````````\\_`P"
+       "/$AY!!!!%\"!1BY?(^@8V\\_`PU.$1YO,C`@X^`````````````P\\_`0T]`P\\_`P\\_"
+       "`P\\_`@X^_`P\\_PL[_@HZ_0DY^`8W\\_XOXNT>VN46T=P-R-,$OLCZN,+TN</US]H+"
+       "V.,4V^87W>@9W.<8W^H;Y>`AZ_8GT]X/CIG+K[OL````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````_PL[AI+#"
+       "256&,CYO+CIK/4EZCIK+`P\\__PDZXNT>V^87VN46T-L,P\\W_N\\7WK+;HGJC:FZ77"
+       "GJC:I:_ALKSNNL3VPLS^Z/,D_@HZ`````````````````````P\\_````````````"
+       "`````````````P\\_`````P\\_````````U.$16F:7S]P,`````````P\\_`````P\\_"
+       "````````````````````````V^@8D)S-56&2.D9W0$Q]2E:'8V^@JK;G_PL[````"
+       "`````````````````P\\_`````````````````P\\_U>(27FJ;Y?(B`0T]Y_0D\\O\\O"
+       "`````````P\\_`0T]`P\\_`@X^`@X^`P\\_`0T]_PL[]0$QZO<GYO$BWND:U-\\0R-,$"
+       "O,;XM\\'SLKSNJ++DGJC:FJ36HZW?LKSNO<?YR=0%U=`1W.<8W>@9W>@9X.L<Z/0E"
+       "X>T=E9_1F:36]P,S````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````ML+S4%R-/4EZ)C)C&256;GJK]P,S"
+       "W^H;V>05V^87V^87W.<8W>@9W.<8V.,4T=P-Q,[`ML#RK+;HJK3FI['CGZG;F:76"
+       "G*C9J;7FN<7VS-D)WND:ZO4F\\?PM]0$Q^@8V`0T]````````````````````````"
+       "````I[/DGJK;`````````````````````````````````P\\_````````ZO<G7&B9"
+       "$1U.,3UN4%R-'2E:!!!!!!!!!!!!!1%\"-4%RP\\_``````````P\\_````````````"
+       "````````````````````^P<WE:'2T-T-`P\\_`````@X^`@X^`@X^`@X^`@X^`P\\_"
+       "`P\\_````````^`@XU^(3PLS^LKSNI*[@F:/5FJ36HJS>J;/EL+KLLKSNO,;XQ<`!"
+       "TMT.V^87W^H;XNT>X.L<WND:W^H;X^X?Z_8GRM4&>(*TH*O<^P<W````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````EJ+36V>81E\"\"8VV?ML#RX.P=WND:V^87W.<8V^87V^87VN46V^87"
+       "V^87V^87W>@9WND:X>P=X.L<W>@9V>05T=P-P\\W_M<'RKKKKH*S=EZ/4FZ?8J[?H"
+       "R-,$V^87XNT>Y_(C]P$R````````````````````````2E:'45V.````````````"
+       "`P``````````````````````````ZO<G*C9G(\"Q=HZ_@\\O\\O````G:G:\"A9'!A)#"
+       "\"!1%!Q-$!!!!\"15&L;WN````````````````````````_@HZ`P\\_````````Y?(B"
+       "\"!1%I+#A`````@X^`@X^`@X^````````````_PL[]`0TZ/4ES=H*KKCJFJ36F*+4"
+       "FZ77IK+CLK[OQ<`!T]X/V>05WND:X.L<X>P=W^H;W^H;^0,T`@X^`@X^_`P\\^`@X"
+       "`P\\_\\/LLG*;8:'2EO,CY`P\\_````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````OLK[DY_0J;7F"
+       "X^X?\\OTNZ?0EY.\\@WND:V^87VN46V^87V^87V^87V^87V>05V^87VN46W.<8V^87"
+       "V^87V^87WND:]?`Q````````_@HZ[/DIU^04O,CYIK+CH*K<IK#BL[WOQ,[`Z_@H"
+       "`0T]````````````\\?XN(2M=FZ77_@HZ````Z_@HK;GJ[/DI`````P\\_````````"
+       "````<'RM\"Q=(P,S]````````_`P\\?(BY!A)#!Q-$\"!1%!Q-$!Q-$!!!!+3EJ^`@X"
+       "`````````P\\_````X>X>+CIKTM\\/`````P\\_````/DI[6666````````````````"
+       "_0DYY?(BR=8&K[OLH:W>FZ?8I+#ALK[OP,K\\S=@)V.,4X.L<XNT>X.L<W>@9W>@9"
+       "W.<8W.<8W.<8V^87X.L<^0,T^P<W\\/TM_@HZ````R-4%8FR>AY+$Z/4E`P\\_````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````Z_@HN,3UI;'BDY_0CYK+KKCJVN46\\/LL"
+       "[/<HW.<8VN86VN46VN46W.<8VN46V^87VN46V^87VN46VN46V^87W.<8W>H:Y_0D"
+       "[?HJ]P,S`@X^`````@X^[_PLTM\\/M<'RG:G:F:76L+SMS]P,[OLK````R]@(%1]1"
+       "RM4&]`(S````UN,3@X^`]P,S`````````````P\\_````256&%R-4UN,3````]@(R"
+       ">X>X#AI+!1%\"\"!1%!Q-$\"!1%\"15&!!!!$Q]0Z?8F`````P\\_````````[/DI;WNL"
+       "WNL;````````````=8&R,#QM_@HZ_`P\\\\?XNS]P,J[?HFJ;7H:W>NL;WUN,3\\_`P"
+       "`````@X^X>X>V^87W.<8VN46VN46VN46W.<8V^87W.<8W.<8V^87V^87V>05V>05"
+       "V>86YO,C`@X^````>(2U/TM\\[OLK````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````_PL[E:'276F:256&.45V-$!Q?8FZX>X>````Y/$AV>05V^87V>05V>05"
+       "V^87VN46V^87V^87VN46W.<8V>05W.<8[/DI^@8V_PL[`0T]`P\\_`@X^`@X^````"
+       "````````_`P\\Z_@HS=H*L[_PH*S=M,#QDY_01%\"!T]X/[?@I````````````````"
+       "`````P\\_````````````@HZ_!!!!6&25GZO<5V.4\"!1%!1%\"\"!1%\"!1%\"15&\"!1%"
+       "\"!1%!!!!.$1U`@X^`````````P\\_`````````````````````````@X^EZ/42E:'"
+       "QM,#LK[OJ;7FML+ST]`0\\?XN````````````````````_`P\\\\?XNZ?0EX>P=WND<"
+       "W>@;WNL;W^H;WND:W>@9W>@9^@0U\\OTNYO,CY>`A]`0T````````V.4535F*-4%R"
+       "D)S-`@X^````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````]@(RO\\O\\D)S-"
+       "=(\"Q6666,S]P97&BZ_@H_0DYXN\\?WNL;WND:W>@9V^87V^87V^87V^87VN46VN46"
+       "W>@9^P4V``````\\``````````````P\\_`````````P\\__PL[]P,Q]P,Q^`@V`@X\\"
+       "^P<WZ/4EA)#!1%\"!I[/DL[_P?XN\\SML+````?8FZKKKK`````````````P\\_[_PL"
+       "*S=H!!!!!1%\"!!!!!A)#\"!1%\"15&\"!1%!Q-$\"15&!!!!!1%\"M\\/T````````````"
+       "````GZO<BI;'````ZO<G:W>HL+SMML+S?HJ[/DI[L;WNY/$A_PL[````````````"
+       "`@X^`P\\__@HZ^@8V^04U^@8V`0L\\`````````0T]_`P\\_PL[_`P\\^@8VW.<8WND:"
+       "[OLK`````P\\_````]0$QGJK;3EJ+(\"Q=-D)S?(BY>X>XZ/4E````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````X>X>35F*,3UND9W.````"
+       "`P\\__`P\\_PL[_@HZ^`@XWND:V.,4V>05VN46VN46X.L<]@(R]P,S]P$R\\_`P\\O\\O"
+       "]0$Q]0$Q]0$Q]0$Q]P,S_PL[`@X^`0T[^@8T\\_`N_0DY````H*S=)3%BS=H*GZO<"
+       "2%2%V>86`@X^2E:'B97&`````P\\_`````````P\\_U^04)3%B!!!!!1%\"\"!1%\"15&"
+       "!Q-$\"15&!Q-$!!!!!Q-$FJ;7`````P\\_`````````P\\_?8FZ5&\"1````V^@8,#QM"
+       "J[?HR-4%CYO,'RM<[?HH`P\\_`P\\_`0T]`P\\_`@X^`@X^`P\\__0DYZ_<EX>T;W^L9"
+       "X^\\=[OLI]0$O\\_`N]@(P`@X^`0T]X^`@Z?8F_`P\\_`P\\`@X^`@X^````R-4%0$Q]"
+       "6V>8FJ;7XN\\?````R=8&]@(R````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````^@8V;'BI0T]`<GZO^`@X`````````P\\_`P\\_`0T]]?`Q"
+       "\\OTNZ/4EW.<8V.,4VN46V^@8Z?8F\\?PM\\_`P]`0T^04U]`0T]@(R\\O\\O[OLK[/<H"
+       "[?@I]0$Q`0T]`@X^`P\\_````LK[O(2U>V>86X^X?\\?XN`````````P\\_`P\\_`P\\_"
+       "`````````````````P\\_Z?8F86V>\"A9'!!!!!!!!!!!!!!!!!!!!-T-TP<W^````"
+       "`````````````````````0T]`@X^`````````P\\_````_PL[EJ+1*C9E\\/TK`P\\_"
+       "`@X^`0T]`@X^`@X^`@X^`@X^`@X^`@X\\^`@V\\O\\M\\?XLZ/4CX.T;YO,A\\_`N`@X^"
+       "`0T]_0DY`0T]`P\\_`@X^`@X^`@X^`P\\_`````P\\_`````````P\\_R]@(O,CY````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "Q=(\"66664EZ/;'BIF:76V.45`````````````````P\\_````_0DY\\OTN]/\\P^@8V"
+       "^`@X_`H[_PL[_0DY^`@X_0DY_PL[`0T]`PT^`@P]_`H[^04U^`@X`@X^`@X^````"
+       "T=X.%R-4Q<`!W^H;[ODJ`P\\_````````````````````````````````````````"
+       "````V>86E:'2;'BI9G*C@X^`P<W^_@HZ````````````````````````````````"
+       "````````````````_0DY[_PL<GZM0DY]`@X\\`P\\_`0T]`P\\_`P\\_`@X^`@X^`@X^"
+       "`@X^`P\\_`P\\_`````````@X^_0DY`@X^`````0T]`0T]`P\\_`@X^`@X^`@X^`@X^"
+       "`@X^`@X^`@X^`````P\\_X^`@NL;WQ=(\"_PL[````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````N\\?X;7FJ2U>(/DI[@X^`"
+       "X.T=[/DI_PL[`````````@X^`P\\_`P\\_````[?@IX>P=Z/,D[ODJ\\?PM]/\\P]/\\P"
+       "]?`Q^0,T_0<X_@@Y_`H[`0T]`P\\_`@X^`@X^`P\\_\\_`P'\"A9F:/5YO$BW^H;_@HZ"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````P\\_`````````````@P][/<HYO$B"
+       "/DI[=(\"Q`````@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`P\\_`@X^`@X^`@X^"
+       "`@X^`P\\_`@X^`@X^`@X^`@X^`@X^`P\\_`````````````````@X^R]@(BI;'FJ;7"
+       "Y/$A````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````^04UML+S6&25:'2E?HJ[9'\"AB)3%K;GJU.$1`P\\_"
+       "`P\\_`@X^`@X^^P4V^@0U_`P\\`0T]``X_`PT^`PT^`0L\\_`H[_@@Y^P4V^`8W_0DY"
+       "_`P\\`P\\_`0T]````````256&35F*Y_(CVN46[/DI`P\\_````````````````````"
+       "````````````````````````\\_`PY/$AU>(2[OLK^`@X````````````````````"
+       "`````````````````P\\_````_0DYZ?0EX.L<Q]0$$!Q-N,3U`````@X^`@X^`@X^"
+       "`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`0T]`@X^`@X^`@X^`P\\_"
+       "````````^`@X]`0TY/$AJ[?H<7VN?XN\\SML+`@X^````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````W^P<M\\/TJ[?H?HJ[/TM\\+CIK0T]`W.D9`P\\_`P\\_`@X^`````@X^_@HZ"
+       "_`P\\^`8W\\?PMZO4F^@0U^`8W^`8W^`8W^P4V^`8W^@8V^`@X_`P\\`0T]````GZW="
+       "!Q-$P,K\\XNT>W.<8\\O\\O`````P\\_`````````````````P\\_`````P\\_`P\\_\\_XO"
+       "[ODJF:/5-4%RU>(2YO$BZ_8G]`(S`0T]`````````````````P\\_````````]`(S"
+       "Y.\\@V.,4Z?0E<'RM'\"A9]@(R`P\\_`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^"
+       "`P\\_`@X^`P\\_`0T]`P\\_`@X^`0T]`@X^````]@(RN\\?X<7VN2U>(56&2:76FCYO,"
+       "T]`0`@X^````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````````P\\_`````P\\_"
+       "M,#Q0T]`/$AYH*S=]P,S````````````_`P\\^@8V]P,SYO$BW>@9XNT>^`8W^`8W"
+       "^`8W^`8W^`8W^`8W^P4V^`8W^`8W^`8W``\\`\\?XN&\"153%:(Y>`AW.<8W.<8[?@I"
+       "^`@X`0T]`P\\_`P\\_`@X^_PL[^P<W\\_`PY_0DZO4FOLCZ&256!1%\"6&25X^X?W>@9"
+       "W.<8Y_0B\\_`N^`@V_0DW_0DW_0DW]P,QZ?8DW^H;V>05Y.\\@OLK[!A)#>(2U````"
+       "`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`0T]`P\\_"
+       "`@X^`@X^````BI;'+CIK3UN,JK;GV>86]`0T````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````P\\_L+SM8V^@>86VF:76M,#Q"
+       "L+SMAY/$:W>HUN$2X>P=WND:X^X?]/\\P_@@Y_0<X^`8W^@0U^@0U^P4V^`8W^P4V"
+       "^`8W^P4V^`8W`P\\_BY?(!!!!>H2VZO4FWND:V.,4W^H;Y>`AZ/,DZO4FZ/,DX^X?"
+       "WND:W.<8Z/,DNL3V)#!A!1%\"!A)#!!!!7VN<X.L<X^X?VN84W.@6W^L9X^\\=X^\\="
+       "X.P:WNH8W.@6V>05Y>`ATMT.+SML$!Q-Y/$A`````@X^`@X^`@X^`@X^`@X^`@X^"
+       "`@X^`@X^`@X^`@X^`0T]`@X^`P\\_`@X^`@X^`@X^`P\\_````````GJK;0$Q]R-4%"
+       "`````P\\_````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````P\\_X>X>7FJ;/$AY0T]`.T=X%R-4>X>XZO4FX>P=X>P="
+       "^P4V``\\``0L\\]?`Q\\?TKZ_<EZ?4C\\OTN_0<X^`8W^P4V^`8W^P4V`P\\_]P,S,CYO"
+       "!!!!;7>IVN46Z/,DW^H;V^87V^87V>05VN46W^H;YO$BXNT>DIS.%R-4!!!!!Q-$"
+       "\"!1%\"!1%!!!!0DY_O\\O\\Z/,DX^X?W>@9VN46VN46VN46W>@9X^X?ZO4FO,;X,CQN"
+       "!!!!BY?(`````@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^"
+       "`@X^`@X^`P\\_````_@HZS-D)AY/$3EJ+?(BY_@HZ````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````V.45@X^`15&\",S]P?XF[Z/0DY>`AZ/,D]?`QZ/4EL+SMFJ;7K[KIP<S[Z/0B"
+       "[/@F\\_XO^P4V_0<X^P4V^P4V_0<X_0<X````R-4%#1E*!!!!+3=IB)+$P\\W_W.<8"
+       "X>P=Y.\\@V^87R-,$EJ#2/TE[!1!!!1%\"!Q-$\"!1%\"!1%\"!1%\"!1%!!!!$Q]096^A"
+       "L+KLT]X/W^H;Y>`AX.L<U-\\0LKSN97&B$1U.!1%\"1%\"!_PL[`````@X^`P\\_`@X^"
+       "`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^`P\\_`````````P\\_T-T-7VN<0$Q]"
+       "3UN,CYO,]0$Q````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````_`P\\;'BIEJ+3\\?PM"
+       "[ODJX^X?PLW_?(:X,3UN$Q]0&\"13<'RKS-D']P,Q^@4S_0<X^`8W^P4V^`8W^`8W"
+       "^P4V^`8W`0T]`P``F:?7!!!!!!!!!1!!$1U.+3EJ04U^0$Q],3UN$Q]0!!!!!!!!"
+       "!!!!!!!!!1%\"\"!1%\"!1%!1%\"!1%\"!!!!!!!!!!!!\"!1%(\"Q=.T=X0T]`.T=X(R]@"
+       "\"!1%!!!!!!!!'BI;W>H:`````@X^`P\\_`@X^`@X^`@X^`@X^`@X^`P\\_`P\\_````"
+       "````````````````_PL[V^@8DY_01E*#2E:'=X.TS]P,`P\\_````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````G:G:4EZ/9G*C:76F3%B)*#1E(\"Q=(\"Q='\"A9"
+       "&R=8K[GK``X__@@Y^`8W_0<X^`8W^`8W^`8W^`8W^P4V^`8W_`P\\````````:76F"
+       "!1%\"!Q-$!A)#!!!!!!%!!1!#!!%!!1)%%!Q,*2I9/#9E1#MG)\"95!!%!!!)\"*BA6"
+       "1CMF.C5?*BA8$1M-!!)\"!A!$!!%!!!!!!!%!!1!!!Q-$!!!!\"A9'O,CY`````@X^"
+       "`P\\_`@X^`0T]`@X^`@X^`@X^`@X^````X^`@EZ/4C)C)E:'2FZ?8A)#!5F*30T]`"
+       "3%B)=(\"QPL[__`P\\````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````^04UI[/D:W>H7VN<:76F<7VN6V>8,#QM)#!A97&B^P4V`0L\\_0<X_PDZ]?`Q"
+       "]`(S^`8W^`8W^`8W^`8W^P4V_@HZ`0T]````^@8V/TM\\!!!!\"!1%\"!1'\"!-\"\"A1("
+       ".C%?7TIT<5=[>5V$@V&%C66+C&*)*2=5*2A3A6.%B62&@V&%?EZ\"<UE]84MS-S!="
+       "\"!1%\"!1%!Q-&!Q5%!Q5%!1%\"E*#1`P\\_`@X^`@X^`@X^`@X^`@X^`@X^`@X^`@X^"
+       "`@X^````IK+C)S-D,#QM.$1U45V.@X^`G*C9N\\?XW^P<_PL[````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````P\\__@HZ_0DY````"
+       "`P\\_Y_0D0DY_0DY_I+#A[?@I_@@Y^P4VZ?0EV^87\\_XO_@@Y^P4V^P4V^`8W^`8W"
+       "^`8W_`P\\`@X^````WNL;'RM<!!!!\"!1%!!)!(2-2QH\"9P7R8KWF4JW.1J'&/H'*/"
+       "HG\",E&:+EFF)K':1L722M'F4M7F4N'F7NWV5KG:0%!M)!1-!!Q-&\"!1%!1!!86V>"
+       "`````````0T]`@X^`@X^`@X^`0T]`@X^`@X^`P\\_````^`@XD)S-.D9W15&\"8FZ?"
+       "Z/4E`P\\_````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````P\\_````````HJ[?4U^086V>6&25"
+       ";7>IDYW/S-<(W^H;]P$R_@@Y^`8W_@@Y^P4V^`8W^P4V^P<W`@X^`@X^````N\\?X"
+       "\"15&!A)%!A-&\"!)$J7*0`*\"TZXVDYH^AW(JAUH:>TXB=VHB@X(JBWXR?XXVCYHZE"
+       "Z9\"EZXVD_YJKDF\"\"!1!!!Q-$\"11#!1!!-D1T]0$Q`````0T]`@X^`@X^`P\\_`@X^"
+       "````````````````PL[_6V>81E*#56&2A)#!W^P<````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````P\\_`P\\_R=8&?XN\\4U^01%\"!2E2&D)O,WND:_0<X``X_"
+       "]`(S]P$R_@@Y^P4V^`8W^`8W^`8W_@HZ`0T]````C9G*!!%!\"A)\"!1!!&R-1U:W("
+       "_Z.Y[8Z?\\9&H[Y*F\\9&E[9&E\\9&F[Y*E[I*F\\)\"E[8Z?_JFYP)BT#1A'!1!&!!1$"
+       "!!!!&\"15U^04`````@X^`@X^`@X^`0T]`P\\_````^`@XY/$AM\\/T<W^P256&5&\"1"
+       "BY?(W.D9`P\\_````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````P\\_[/DIF:7645V.2U>(I[/DM,#QLKSNY>`AW>@9Z?0E^`8W^`8W^`8W"
+       "^`8W_0<X`@X^`````P\\_9G*E!!)\"\"!)$!1!#,CEGX;W8_K7'[I&E[8VA[8VA[(^B"
+       "[8Z?[8VB[(RA[9*B`[G.UK73(RM;!!!!!Q5%!!%!#QE-NLCV``X_`@X^`P\\_`0T]"
+       "````````^P<WEJ+34U^01E*#2U>(6&25;'BIO\\O\\`P\\_````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````N,3U"
+       "76F:3EJ+/TM\\-D)SI+#AZ_8GX.L<Y>`A^P4V_0<X^`8W^P4V_`H[`@X^````_PLY"
+       "8&J>!!)\"!1)%!1!!+#%<PZK(`];L_+[4\\JW![Z.^\\J*Z\\ZB]_+O0`]3KMZ+$'R94"
+       "!!!!\"A1&!!!#%\"!/M,+R```^`PX\\`@X^`@X^````[_PLJK;G6666/$AY35F*@HZ_"
+       "OLK[W.D9\\_`P````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````U^04DY_09W.D1E*#04U^;WNL"
+       "OLCZZ/,D\\?PM`0L\\^`8W^`8W^P4V_`P\\`@X^``\\`_`X]>86T!1)\"!Q!!!!!##!A)"
+       "9V\"*R['/]='K`MKS`-KT\\M#JQ:[,7UJ#\"!1%!!%!!A)%!!%!+3EJT=T)``\\``@`_"
+       "`@X^`@X^````U^0415&\",3UN1E*#GJK;YO,C````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````^@8VM,#Q45V.0$Q]0$Q]BI;'IK+CVN<7`P\\_````"
+       "_PDZ^P8V_PDZ`@X^````````M\\/T+#AI!!!!!!!!!!!!\"!1#*\"]=1D1R14-Q*2U;"
+       "\"11!!!!!!!!!!!!!!A)#9'\"A[OLK`````@X^`P\\_`@X^````ZO<G1U.$-4%R9'\"A"
+       "W>H:````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````X>X>F:765&\"1.T=X,S]P/$AY97&BFZ?8\\_XO`PT^^`8W_0DY`0T]`P\\_"
+       "````]@(RG:G:15&\"$AY/!!!#!1!!!Q!!!1!!!!!!!!%!!1)%)#!A:G:GS=H*`P\\_"
+       "`````@X^`@X^`0T]`````0T]=(\"Q.T=X?HJ[]@(R`````P\\_````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````````P\\_[?HJKKKK"
+       "@HZ_8V^@04U^-D)S6666X^`@``X_^`@X^`@X`0T]`@X^`````````@X^Y?(BN\\7W"
+       "EZ/4A)+\"?XV]BI;)I+#CS=H*]@(P`P\\_`````P\\_`@X^`@X^`@X^`P\\_]0$Q>X>X"
+       "0DY_D9W._PL[`P\\_`P\\_````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````P\\_`````P\\_`@X^Y_0DE:'21U.$<W^P"
+       "`P\\_``\\`_`P\\_@HZ`@X^`@X^`@X^`P\\_`````````````P````````\\```\\````^"
+       "```^`@X^`P\\_`0T]`@X^`0T]````VN<75V.4256&I;'B`@X^````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````P\\_````````O\\O\\6666=8&RFJ76Z_@H`P\\_`@X^`@X^"
+       "`0T]`P\\_`P\\_`0\\^`@`_`0T]`P\\_`0T]`P\\``@X``0\\^`@X^`@X^`@X^`@X^````"
+       "XN\\?4%R-7FJ;S=H*````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````TM\\/A)#!5&\"1>86V`@X^`````P\\_`@X^`@X^`@X^`@X^`0T]`P\\_"
+       "`@X^`@X^_`X]`P\\``@X``@X^`@X^`P\\_````Y/$A7&B98&R=[?HJ````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````WNL;"
+       ";WNL<7VNP\\_``0T]`````````@X^`PX\\`PT^`0T]`@X^`P\\]`@X^`PT^`PT^`P\\_"
+       "`````P\\_O,CY2%2%6V>8V>86`P\\_````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````\\/TMBY?(4EZ/;WNLO,CY]0$Q"
+       "`````````````P``````````````````````````Y?(BB97&0T]`BI;'[OLK````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````P\\_UN,3BI;'4EZ/56&2CYO,L;WNP<W^VN<7[OLK]@(R"
+       "ZO<GT=X.HZ_@;'BI3%B):W>HS-D)`````P\\_````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````\\/TML;WN;7FJ4EZ/3EJ+35F*56&26&256V>886V>>X>XJ+3EV.45_PL["
+       "`````P\\_````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````_PL[[?HJ"
+       "YO,CV^@8RM<'R]@(W.D9]@(R`````````P\\_````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````H[GSA)_>A*#AA*'BA*'BA*'BA*'BA*'BA*'BA*'BH[OX````````````````"
+       "````````````````````````````````H[GSA)_>A*#AA*'BA*'BA*'BA*'BA*'B"
+       "A*'BA*'BA*'B````````````````````````H[GSA)_>A*#AA*'BA*'BA*'BA*'B"
+       "X_0H````````````````````X_,FA)[<A*#@A*'BA*'BA*'BA*'BH[OX````````"
+       "````````````````````````````````````````````X_,FA)[<A*#@A*'BA*'B"
+       "A*'BA*'BX_0H````````````````````````H[GSA)_>A*#AA*'BA*'BA*'BA*'B"
+       "X_0H````````````X_,FA)[<A*#@A*'BA*'BA*'BA*'BA*'BA*'B\\`(T````````"
+       "````````````````````````````````````L\\?`A)_=A*#AA*'BA*'BA*'BA*'B"
+       "A*'BH[OX````````````````````````````````````````````````````````"
+       "````````````````````````````````````````\\`(SP]<-A)_=A*#@A*'BDZ[M"
+       "P]@0````````````````````````````````````````1&BO!$\"=!4NS!4ZW!4ZW"
+       "!4ZW!4ZW!4ZW!4ZW!4ZW!4VU\\`,V````````````````````````````````````"
+       "````````%#^,!4*@!4RT!4ZW!4ZW!4ZW!4ZW!4ZW!4ZW!4ZW!4ZW````````````"
+       "````````````1&BO!$\"=!4NS!4ZW!4ZW!4ZW!4ZWP]X:````````````````````"
+       "P]<-!#>,!4>J!4ZW!4ZW!4ZW!4ZW!4VUT^HB````````````````````````````"
+       "````````````````````P]<-!#>,!4>J!4ZW!4ZW!4ZW!4ZWP]X:````````````"
+       "````````````1&BO!$\"=!4NS!4ZW!4ZW!4ZW!4ZWP]X:````````````````1&JT"
+       "!4.C!4VU!4ZW!4ZW!4ZW!4ZW!4ZW=9_M````````````````````````````````"
+       "````````X_,F%#^-!$&@!4RT!4ZW!4ZW!4ZW!4ZW!4ZWP]X<````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````P]<-1&>M!#:*!#Z9!46G!4NS!4ZW!4VW!4NR%5&O=)C@\\`(T````````"
+       "````````````````````1&RV!5&^!6;F!6KM!6KM!6KM!6KM!6KM!6KM!6KM!6GL"
+       "L]<=````````````````````````````````````````T^49!#J1!5C+!6GK!6KM"
+       "!6KM!6KM!6KM!6KM!6KM!6KM!6KM````````````````````````1&RV!5&^!6;F"
+       "!6KM!6KM!6KM!6KMP^0E````````````````````P]<.!$&@!5[6!6KM!6KM!6KM"
+       "!6KM!6GL18KQ````````````````````````````````````````````````P]<."
+       "!$&@!5[6!6KM!6KM!6KM!6KMP^0E````````````````````````1&RV!5&^!6;F"
+       "!6KM!6KM!6KM!6KMP^0E````````````````X_4I%5F_!6/@!6GL!6KM!6KM!6KM"
+       "!6KM!6/AT^PF````````````````````````````````````5'2W!$&>!5O1!6CJ"
+       "!6KM!6KM!6KM!6KM=;(/````````````````````````````````````````````"
+       "````````````````````````````````````````\\`(S5'2W!#:+!4:H!57&!6#:"
+       "!67E!6GK!6KM!6GL!6CJ!63C!5S4%5O!L\\X,````````````````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_=;$.````````````````````"
+       "````````````````````DZSH!4.C!6/A!7/^!7/_!7/_!7/_!7/_!7/_!7/_!7/_"
+       "!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_!7/_!6WSD[\\+````````"
+       "````````````````````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````D[7Z!5_8!7#Y!7/_!7/_!7/_!7/_!7'[-8/P````````````"
+       "````````````````````L\\?`!#>,!53#!6SQ!7/^!7/_!7/_!7/_)8@&\\`8[````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````\\`(S-%B?!#V7!5*`!6/A!6WT!7+]!7/_!7/_!7/_!7/_!7/_!7/^"
+       "!7#Z!6KM!5S3H\\4(````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_"
+       "!7/_!7/_!7/_!7/_-8K^````````````````````````````````````````5'>\\"
+       "!4RT!6GK!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_````````````````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F"
+       "!67D!7/_!7/_!7/_!7/_!7/_!7+]%7+M\\`0W````````````````````````````"
+       "````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````````-7'."
+       "!6?H!7+^!7/_!7/_!7/_!7/_!6[UA;4&````````````````````````\\`(S%#^,"
+       "!4FN!67C!7'\\!7/_!7/_!7/_!7/_L]XI````````````````````````````````"
+       "````````````````````````````````````````````````````5'2W!#V7!5?)"
+       "!6KN!7'\\!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/^!6_X!6+>T^LE````"
+       "````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!6_XX_DR"
+       "````````````````````````````````````!#:*!57&!6[U!7/_!7/_!7/_!7/_"
+       "!7/_!7/_!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_!7/_"
+       "!7/_!7#Y9:'^````````````````````````````````````````P]@.!46F!67D"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````````T^@?!5?*!6[U!7/_!7/_!7/_!7/_"
+       "!7+^!6CJX_@O````````````````````9('#!#^:!5S4!6_X!7/_!7/_!7/_!7/_"
+       "5:01````````````````````````````````````````````````````````````"
+       "````````````````````````P]<-!#:+!5*`!6KN!7+^!7/_!7/_!7/_!7/_!7/_"
+       "!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7#Z)7;H````````````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7+^H\\\\;````````````````````````"
+       "````````P]<-!#R6!5_8!7'\\!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_````"
+       "````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````P]@.!46F!67D!7/_!7/_!7/_!7/_!7/_!7/_!7/^!6KOP^$@````````"
+       "````````````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````````````A:KS!6'=!7'[!7/_!7/_!7/_!7/_!7'[18ST````````````"
+       "````P]<-!#:*!5*_!6KO!7/^!7/_!7/_!7/_%7X\"\\`8[````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "5'6Y!46G!6/@!7'\\!7/_!7/_!7/_5:01X_PV````\\`4ZD\\06%7/Q!7#Y!7/^!7/_"
+       "!7/_!7/_!6[UL]<;````````````1&VY!5?)!6[V!7/_!7/_!7/_%7X\"!7/^!7/^"
+       "!7/_!7/_!7/_9:<*````````````````````````````````A)_=!46F!67D!7/_"
+       "!7/_!7/_%7X\"!7/^!7/^!7/_!7/_!7/_!7/_````````````````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_"
+       "!7/_!7/_!7/_!7/_!7/_!7/_!7'\\)7GM````````````````````````````````"
+       "````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````````````````-7+1"
+       "!6CJ!7+^!7/_!7/_!7/_!7/_!6WSD[X*````````\\`(S)$R6!4>J!6/A!7'\\!7/_"
+       "!7/_!7/_!7/_H]0E````````````````````````````````````````````````"
+       "````````````````````````````````````\\`(S!#:)!53#!6WS!7/_!7/_!7/_"
+       "A<$>````````````````````L]06!6+=!6_X!7/_!7/_!7/_!7/^=;$,````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_19H-%7G]!7'[!7/^!7/_!7/_%7;W````````"
+       "````````````````````````-%RG!4^Y!6KN!7/_!7/_!7/_5:01!6_X!7'[!7/_"
+       "!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_!7/_!7/_!7/_"
+       "!7/_!6[VA;4'````````````````````````````````P]@.!46F!67D!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````````````````P]L5!5C,!6[U!7/_!7/_!7/_!7/_"
+       "!7+]%7+MX_@N````=)#0!#V7!5K/!6[V!7/_!7/_!7/_!7/_19H.````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````L\\?`!#Z:!6#:!7'\\!7/_!7/_%7X\"````````````````````````"
+       "````)63%!6?G!7/^!7/_!7/_!7/_190#````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_19@*59X&!6OP!7'[!7/_!7/_!7'[T^XL````````````````````````\\`(S"
+       "!#B.!5G,!6_X!7/_!7/_%7X\"A;\\:!6CI!6[U!7/_!7/_!7/_!7/_````````````"
+       "````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "P]@.!46F!67D!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/^%7+OX_@O````````"
+       "````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "````````````````=9[K!6+?!7'[!7/_!7/_!7/_!7/_!7#Y59;YT^DB!#F0!5\"["
+       "!6GL!7/^!7/_!7/_!7/_%7X\"X_PV````````````````````````````````````"
+       "````````````````````````````````````````````````````X_0GA*CO9:'^"
+       "198&%7G\\!7'\\9:T4````````````````````````````1'&`!5W5!7'[!7/_!7/_"
+       "!7/_19<(````````````1&VY!5?)!6[V!7/_!7/_!7/_19<)D\\47!6/@!6WT!7/_"
+       "!7/_!7/^D\\06````````````````````````L\\?`!#^:!6'<!7+^!7/_!7/_5:01"
+       "A;P4!6#:!6KO!7/_!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_"
+       "!7/_!7/_!7/_!7/_!7/_!7/_!7#Z18OS````````````````````````````P]@."
+       "!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````````````````````\\`(U)6C-"
+       "!6GL!7/^!7/_!7/_!7/_!7/^!6SQ)6_:!5\"]!6+?!7'[!7/_!7/_!7/_!7/_D\\HA"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````\\`4YX_HS````````"
+       "````````````````````-&\"O!5G-!6_X!7/_!7/_!7/_9:P1````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_19<)T^\\M!5G.!6GK!7/_!7/_!7/_190!````````````"
+       "````````````=)'2!4>K!6;F!7/_!7/_!7/_D\\D?A;@,!5O0!6KM!7/_!7/_!7/_"
+       "!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_"
+       "!7/^!6SRL]89````````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````````````````````````P]L6!5K/!6[V!7/_!7/_!7/_!7/_"
+       "!7'\\!6OP!6CI!6[U!7/_!7/_!7/_!7/_19H.````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````T^49!#J2"
+       "!5O2!7#Z!7/_!7/_!7/_H],B````````````1&VY!5?)!6[V!7/_!7/_!7/_19<)"
+       "````%5S%!6/A!7/^!7/_!7/_!6[U````````````````````````-%RH!5\"\\!6OO"
+       "!7/_!7/_!7/_T_$PA;,#!5;'!6KM!7/_!7/_!7/_!7/_````````````````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F"
+       "!67D!7/_!7/_!7/_!7/_-9$*!7'\\!7+^!7/_!7/_!7/_!7+])7KP\\`0W````````"
+       "````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````````````"
+       "````````````````58;:!63B!7'\\!7/_!7/_!7/_!7/_!7/^!7+]!7/^!7/_!7/_"
+       "!7/_!7/_T_(R````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````X_,F-%FB!4:I!63C!7+^!7/_!7/_)8@&````"
+       "````````````1&VY!5?)!6[V!7/_!7/_!7/_19<)````58?<!5W5!7'[!7/_!7/_"
+       "!7+]P^0F````````````````X_,F!#F/!5G.!6_X!7/_!7/_%7X\"````A:[Z!5*_"
+       "!6KM!7/_!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_L]TH"
+       "%7/Q!6[U!7/^!7/_!7/_!7/_!6_WA;8(````````````````````P]@.!46F!67D"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````````````````````````````\\`(U%5_)"
+       "!6OP!7/^!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_A<$>````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````P]<-L\\D!"
+       "=)'3%$.4!42D!5O1!6[U!7/_!7/_!7/_P^@M````````````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_19<)````D[;[!57%!6WT!7/_!7/_!7/_=;$-````````````````"
+       "H[KT!$&>!6+=!7+^!7/_!7/_9:T5````A:KS!4^Y!6KM!7/_!7/_!7/_!7/_````"
+       "````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^8JH\\P5!6'=!7#X!7/_!7/_!7/_"
+       "!7/^!6GLT^PG````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````````````````````````````````L\\\\-!5S4!6_X!7/_!7/_!7/_!7/_"
+       "!7/_!7/_!7/_!7/_-9$*````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````T^49!#&!!#^<!4FN!5*`!6#:!6WS!7+^!7/_"
+       "!7/_H]0F````````````````````1&VY!5?)!6[V!7/_!7/_!7/_19<)````T^DA"
+       "!4RT!6GK!7/_!7/_!7/_-8G^````````````````9(3'!4FO!6?I!7/_!7/_!7/_"
+       "H],C````A*?M!4ZW!6KM!7/_!7/_!7/_!7/_````````````````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_"
+       "!7/_!7/_!7/_P^4I````17_<!6;F!7+]!7/_!7/_!7/_!7'[18WV````````````"
+       "````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````````````````````"
+       "````````````````17O3!67E!7+]!7/_!7/_!7/_!7/_!7/_!7/_!7/_P^@M````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````P]<-!#Z9!5G-!6?H!6SQ!7#Z!7/^!7/_-9$*T_(R````````````````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_19<)````````%5\"M!6/A!7/^!7/_!7/_!6_X"
+       "\\`4Y````````````)$^>!5*`!6SR!7/_!7/_!7/_X_LU````A*3H!4ZW!6KM!7/_"
+       "!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````X_8K"
+       "!57&!6WS!7/_!7/_!7/_!7/_!6WSH\\H2````````````P]@.!46F!67D!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````````````````````````````````````X_4J!57&"
+       "!6WS!7/_!7/_!7/_!7/_!7/_!7/_9:T6````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````DZSI!4:I!6;F!7/_!7/_"
+       "!7/_!7/_!7/_9:T3P^0G````````````````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_19<)````````5'[*!5W5!7'[!7/_!7/_!7+^H\\X;````````X_,F!#J1!5O2"
+       "!7#Z!7/_!7/_)8@&````````A*+D!4ZW!6KM!7/_!7/_!7/_!7/_````````````"
+       "````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````A:GQ!6#;!7'[!7/_!7/_!7/_"
+       "!7+]%7'L\\`0W````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "````````````````````````````````L\\H#!4BL!6?G!7/_!7/_!7/_!7/_!7/_"
+       "!7/_-8X%````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````A*#@!4NR!6CJ!7/_!7/_!7/_!7/_!7/_!6_W!6#:17O5"
+       "\\`,U````````````````1&VY!5?)!6[V!7/_!7/_!7/_19<)````````H[W[!53$"
+       "!6WS!7/_!7/_!7/_9:<)````````DZOH!$&@!6+?!7/^!7/_!7/_9:T4````````"
+       "A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_"
+       "!7/_P^4I````````\\`(T)6?*!6GL!7/^!7/_!7/_!7/_!7#X9:#]````````P]@."
+       "!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````````````````````````````"
+       "````\\`(S%#^-!4NS!6CJ!7/_!7/_!7/_!7/_!7/_!7/_!7#XA;<)````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````5'B^"
+       "%5O!19/`19@*!7#X!7+]!7/_!7/_!7'\\!6SR!6/A%6#+X_8K````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_19<)````````X_0H!4JP!6CI!7/_!7/_!7/_)8#\\````"
+       "````5'>\\!4NR!6CJ!7/_!7/_!7/_H],C````````A*'B!4ZW!6KM!7/_!7/_!7/_"
+       "!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````P]L6"
+       "!5K/!6[V!7/_!7/_!7/_!7/^!6KOP^$@````P]@/!46F!67D!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````````````````````````````````5'2W!#^<!5S4!6_X!7/_"
+       "!7/_!7/_!7/_!7/_!7/_!7+^!6CJT^PF````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````X_0H````````````\\`4Y59C]!6SQ"
+       "!7'\\!7/_!7/_!7+]!6SQ-7SD````````````1&VY!5?)!6[V!7/_!7/_!7/_19<)"
+       "````````````)%NR!6+?!7/^!7/_!7/_!7#ZT^XK````%$26!57%!6WT!7/_!7/_"
+       "!7/_X_LU````````A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````````````````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F"
+       "!67D!7/_!7/_!7/_!7/_P^4I````````````````58;:!63B!7'\\!7/_!7/_!7/_"
+       "!7'\\-8/R````P]D1!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````````````"
+       "````````````````P]<-!#:+!5/!!6OP!7/^!7/_!7/_!7/_!7/_!7/_!7/_!7/_"
+       "!7'[18WV````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````183E!6GL!7+]!7/_!7/_!7/^!6WS"
+       "H\\H3````````1&VY!5?)!6[V!7/_!7/_!7/_19<)````````````9(K3!5O2!7#Z"
+       "!7/_!7/_!7/^D\\06T^HB!#^;!5W5!7'[!7/_!7/_-9$*````````````A*'B!4ZW"
+       "!6KM!7/_!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I"
+       "````````````````X_4I%5_*!6SQ!7/^!7/_!7/_!7/_!6[UA;4&P]P7!4>K!67D"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````````````````````````\\`(S)$R6!4>K"
+       "!63B!7'\\!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!6WSD[\\+````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````P]L5!5C+!6WT!7/_!7/_!7/_!7+^-8;W````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_19<)````````````H[WZ!5*`!6SR!7/_!7/_!7/_59X&D[P&!4NR"
+       "!6/A!7/^!7/_!7/_=;88````````````A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````"
+       "````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````D[7Y"
+       "!5[8!7#Y!7/_!7/_!7/_!7+^%7+NH\\D/!4^Z!6;F!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````````````````````````=)#/!#V7!5K/!6[V!7/_!7/_!7/_!7/_!7/_"
+       "!7/_!7/_!7/_!7/_!7/_!7+]%7+MX_@N````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````%52S!6;F"
+       "!7/^!7/_!7/_!7/_!6[V\\`0Y````1&VY!5?)!6[V!7/_!7/_!7/_19<)````````"
+       "````X_0H!4FO!6?I!7/_!7/_!7/_!6[U18KQ!5G-!6GL!7/_!7/_!7/_L]TG````"
+       "````````A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````````````````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_"
+       "!7/_!7/_!7/_P^4I````````````````````````-7'.!6?H!7+^!7/_!7/_!7/_"
+       "!7#Z)7GM!5S4!6GL!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````````````````````"
+       "P]<-!#6)!5\"\\!6GL!7/^!7/_!7/_!7/_%7X\"5:01!7#Y!7'\\!7/_!7/_!7/_!7/_"
+       "!7#Y18OR````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````1'&`!5[7!7'\\!7/_!7/_!7/_!7+^P^0G"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_19<)````````````````)%NR!6+?!7/^!7/_"
+       "!7/_!7'\\!6OP!6CI!6[U!7/_!7/_!7/_\\`4Z````````````A*'B!4ZW!6KM!7/_"
+       "!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````"
+       "````````````````P]L4!5C+!6[U!7/_!7/_!7/_!7/^!6[V!6KO!6_X!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````````````````````-%FB!4:H!6+?!7'[!7/_!7/_"
+       "!7/_!7/_D\\HA\\`4Z)7?I!6KO!7/^!7/_!7/_!7/_!7/^!6SRL]89````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````T^49\\`(S````````````````````````"
+       "````````1&ZZ!5G-!6_X!7/_!7/_!7/_!7/_P^4I````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_19<)````````````````9(K3!5O2!7#Z!7/_!7/_!7/_!7+]!7'[!7+]!7/_"
+       "!7/_-9$*````````````````A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````````````"
+       "````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````````````99+B"
+       "!6/@!7'\\!7/_!7/_!7/_!7/^!7+]!7/^!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "````````````A)W;!#N3!5C,!6[U!7/_!7/_!7/_!7/_19H.````````P]X:!5O1"
+       "!6[V!7/_!7/_!7/_!7/_!7+]%7#K\\`0W````````````````````````````````"
+       "````````````````````````````````````````````````X_,FA)[<5'>]1&RV"
+       "%$67!#J1!#V7H\\#`````````````````````````````````-&\"N!5C+!6_W!7/_"
+       "!7/_!7/_!7/_P^4I````1&VY!5?)!6[V!7/_!7/_!7/_19<)````````````````"
+       "H[WZ!5*`!6SR!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_=;88````````````````"
+       "A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_"
+       "!7/_P^4I````````````````````````````\\`(U%5['!6KO!7/^!7/_!7/_!7/_"
+       "!7/_!7/_!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````````````T^49!#2&!4ZW!6CJ"
+       "!7+^!7/_!7/_!7/_!7/_X_PV````````````99+B!6/A!7'\\!7/_!7/_!7/_!7/_"
+       "!6_X593V````````````````````````````````````````````````````````"
+       "````````````````````````X_,F!#:)!4BL!53#!5C,!5W5!6'<99_[````````"
+       "````````````````````\\`(S!#F0!5O1!7#Z!7/_!7/_!7/_!7/_\\`4Z````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_19<)````````````````X_0H!4FO!6?I!7/_!7/_!7/_"
+       "!7/_!7/_!7/_!7/_!7/_L]TG````````````````A*'B!4ZW!6KM!7/_!7/_!7/_"
+       "!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````"
+       "````````````````H\\(\"!5W5!7#X!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````````````1&:L!42D!6'=!7'[!7/_!7/_!7/_!7/_A<$>````"
+       "````````````\\`(U%5['!6KO!7/^!7/_!7/_!7/_!7/^!6OPP^$@````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````)%:J!5O1!6SR!6_X!7'\\!7/^%7;W\\`0X````````````````````````DZOG"
+       "!$\"=!6'=!7+^!7/_!7/_!7/_)8@&````````1&VY!5?)!6[V!7/_!7/_!7/_19<)"
+       "````````````````````)%NR!6+?!7/^!7/_!7/_!7/_!7/_!7/_!7/_!7/_````"
+       "````````````````A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````````````````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F"
+       "!67D!7/_!7/_!7/_!7/_P^4I````````````````````````````````````17O5"
+       "!6;F!7+]!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````````DZOF"
+       "!#J1!5;(!6WS!7/_!7/_!7/_!7/_-9$*````````````````````````L\\\\,!5S4"
+       "!6_X!7/_!7/_!7/_!7/_!7'\\)7GN\\`,W````````````````````````````````"
+       "````````````````````````````````````````````9(K3!5O2!7#Z!7/_!7/_"
+       "!7/_!7'[9:'`````````````````````T^49%$&1!4ZW!6GL!7/_!7/_!7/_!7/_"
+       "A<$<````````1&VY!5?)!6[V!7/_!7/_!7/_19<)````````````````````9(K3"
+       "!5O2!7#Z!7/_!7/_!7/_!7/_!7/_!7/_19H.````````````````````A*'B!4ZW"
+       "!6KM!7/_!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I"
+       "````````````````````````````````````T^@?!5;'!6WS!7/_!7/_!7/_!7/_"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````X_,F%$&/!4RT!6?G!7+]!7/_!7/_!7/_"
+       "!7/_T_(R````````````````````````````58?<!67C!7'\\!7/_!7/_!7/_!7/_"
+       "!6[V=:L!````````````````````````````````````````````````````````"
+       "````````````````````X_0I!5\"\\!6OO!7/_!7/_!7/_!7/^!6KO58_JT^@?````"
+       "\\`(SH[GT%$&/!4:I!6#:!7#Y!7/_!7/_!7/_%7X\"\\`8[````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_19<)````````````````````H[WZ!5*`!6SR!7/_!7/_!7/_!7/_"
+       "!7/_!7/_A;`;````````````````````A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````"
+       "````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````````"
+       "````````````````A:KR!6'=!7'[!7/_!7/_!7/_!7/_!7/_!7/_!7/_P^4I````"
+       "````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````1&:L!4*@!5_8!7#Y!7/_!7/_!7/_!7/_=;<9````````````````````"
+       "````````````X_4I%6#+!6SQ!7/^!7/_!7/_!7/_!7/^!6GLP]`?````````````"
+       "````````````````````````````````````````````````````````````````"
+       "=9SF!6#;!7'[!7/_!7/_!7/_!7'\\!6CJ!5;'!46G!#Z9!$\"=!4VU!6#:!6[U!7/^"
+       "!7/_!7/_!7/_A<$=````````````1&VY!5?)!6[V!7/_!7/_!7/_19<)````````"
+       "````````````\\`(T!4FN!6?H!7/_!7/_!7/_!7/_!7/_!7/_P^<K````````````"
+       "````````A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````````````````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_"
+       "!7/_!7/_!7/_P^4I````````````````````````````````````````\\`(T)6?*"
+       "!6GL!7/^!7/_!7/_!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY"
+       "!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````H[GS!#B.!57&!6SR!7/^"
+       "!7/_!7/_!7/_)8@&\\`8[````````````````````````````````````D[7Y!5[8"
+       "!7#Y!7/_!7/_!7/_!7/_!7'[)7GL````````````````````````````````````"
+       "````````````````````````````````````````\\`(T-7/3!6GL!7+^!7/_!7/_"
+       "!7/_!7'\\!6SR!67E!6+=!6/@!6GK!7#X!7/^!7/_!7/_!7/_9:T6````````````"
+       "````1&VY!5?)!6[V!7/_!7/_!7/_19<)````````````````````````-&:[!6'="
+       "!7+^!7/_!7/_!7/_!7/_!7/_````````````````````````A*'B!4ZW!6KM!7/_"
+       "!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_"
+       "P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````"
+       "````````````````````````````````````L\\X+!5O0!6_W!7/_!7/_!7/_!7/_"
+       "!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_"
+       "P^4I````````````\\`(S%#^-!4JQ!6;F!7+]!7/_!7/_!7/_!7/_P^@M````````"
+       "````````````````````````````````````17W7!6?G!7+]!7/_!7/_!7/_!7/_"
+       "!6[VA;4'````````````````````````````````````````````````````````"
+       "````````````````````X_8K-7K?!6SQ!7+^!7/_!7/_!7/_!7/_!7/_!7/_!7/_"
+       "!7/_!7/_!7/_!7/_!7/_5:01\\`8[````````````````1&VY!5?)!6[V!7/_!7/_"
+       "!7/_19<)````````````````````````=);<!5G-!6_X!7/_!7/_!7/_!7/_19H."
+       "````````````````````````A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````````````"
+       "````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````````````"
+       "P]@.!46F!67D!7/_!7/_!7/_!7/_P^4I````````````````````````````````"
+       "````````````````58;;!67C!7'\\!7/_!7/_!7/_!7/_!7/_P^4I````````````"
+       "````````````1&VY!5?)!6[V!7/_!7/_!7/_!7/_P^4I````````````5'2W!#^<"
+       "!5W5!7#X!7/_!7/_!7/_!7/_9:T6````````````````````````````````````"
+       "````````````X_4J!57&!6WS!7/_!7/_!7/_!7/_!7/^!6GKT^PF````````````"
+       "````````````````````````````````````````````````````````````````"
+       "\\`,V18;H!6KO!7+]!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_!7/_A<$>````"
+       "````````````````````1&VY!5?)!6[V!7/_!7/_!7/_19<)````````````````"
+       "````````L\\L%!5\"\\!6OO!7/_!7/_!7/_!7/_D\\D?````````````````````````"
+       "A*'B!4ZW!6KM!7/_!7/_!7/_!7/_````````````````````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_!7/_P^4I````````````````````P]@.!46F!67D!7/_!7/_!7/_"
+       "!7/_P^4I````````````````````````````````````````````````X_4I%6#+"
+       "!6SQ!7/^!7/_!7/_!7/_!7/_P^4I````````````````````````1&VY!5?)!6[V"
+       "!7/_!7/_!7/_!7/_P^4I````````L\\?`!#>,!5/\"!6OP!7/^!7/_!7/_!7/_%7X\""
+       "\\`8[````````````````````````````````````````````````````A:GQ!6#;"
+       "!7'[!7/_!7/_!7/_!7/_!7'[-8+P````````````````````````````````````"
+       "````````````````````````````````````````````````P^$@18_Z!6WT!7+]"
+       "!7/_!7/_!7/_!7/_!7/_%7X\"9:T5X_LV````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````\\`0XP^0FA;L3A;T6A;X7D\\<;P^8J````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````";
+
+static unsigned int restartlogo_width = 206;
+static unsigned int restartlogo_height = 54;
+
+static char *restartlogo_data =
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````!!!!!!!!````````````````````````````````````"
+       "````````````DY_0*C9G\"15&!!!!!!!!````````!!!!!!!!````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````!!!!!!!!````````````````````````````"
+       "````````````````````````!!!!!!!!````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````!!!!!!!!"
+       "!!!!!!!!!!!!#AI++CIK=8&RZ_@H````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````!!!!!!!!````````````````````````````````````````````"
+       "FJ;7!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````!!!!!!!!````````````````````````````````````"
+       "````````````````!!!!!!!!````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````!!!!!!!!!!!!!!!!"
+       "!!!!!!!!!!!!!!!!&R=8XN\\?````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````!!!!!!!!````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````!!!!!!!!````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````!!!!!!!!````````````````````````````````````````````-4%R!!!!"
+       "D9W.^P<W````````````````!!!!!!!!````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````!!!!!!!!````````````````````````````````````````````"
+       "````````!!!!!!!!````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````!!!!!!!!````````````[OLK"
+       "M,#Q)C)C!!!!7FJ;````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````!!!!!!!!````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "!!!!!!!!````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````!!!!"
+       "!!!!````````````````````````````````````````````#1E*!!!!^04U````"
+       "````````````````!!!!!!!!````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````!!!!!!!!````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````!!!!!!!!````````````````````R-4%"
+       "!!!!&B97````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````!!!!"
+       "!!!!````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````!!!!!!!!"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````!!!!!!!!````"
+       "````````````````````````````````````````!!!!!!!!````````````````"
+       "````````!!!!!!!!````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````!!!!"
+       "!!!!````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````!!!!!!!!````````````````````]`0T!!!!\"Q=("
+       "````````````````````XN\\?;7FJ)S-D\"Q=($Q]015&\"L[_P````````````````"
+       "````````O,CY2E:''RM<\"15&'2E:5V.4O\\O\\````````````!!!!!!!!!!!!!!!!"
+       "!!!!!!!!!!!!````````````S=H*;GJK+3EJ\"Q=(#1E*+#AI>86V\\?XN````````"
+       "````````````!!!!!!!!`P\\_G*C9.$1U$!Q-!A)#````!!!!!!!!!!!!!!!!!!!!"
+       "!!!!!!!!````````````````XN\\?;7FJ)S-D\"Q=($Q]015&\"L[_P````````````"
+       "````````````````OLK[1E*#$AY/#QM,.$1UH*S=````!!!!!!!!````````````"
+       "````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````"
+       "!!!!!!!!`P\\_GJK;-T-T#QM,$AY/1U.$O\\O\\````````````````````````````"
+       "````````````````````````OLK[1E*#$AY/#QM,.$1UH*S=````!!!!!!!!````"
+       "````````````!!!!!!!!`P\\_G*C9.$1U$!Q-!A)#````````!!!!!!!!````````"
+       "````-$!Q!!!!KKKK````````````````````````KKKK!!!!-4%R````````````"
+       "XN\\?;7FJ)S-D\"Q=($Q]015&\"L[_P````````````````````````!!!!!!!!`P\\_"
+       "G*C9.$1U$!Q-!A)#!!!!!!!!````````````````````Q=(\"!!!!)S-D````````"
+       "````````O<GZ$!Q-!!!!!!!!!!!!!!!!!!!!!!!!@(R]````````````````FZ?8"
+       "!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````!!!!!!!!!!!!!!!!!!!!!!!!"
+       "!!!!````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!)C)C[_PL````````````"
+       "````!!!!!!!!:W>H!!!!!!!!!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+       "````````````O<GZ$!Q-!!!!!!!!!!!!!!!!!!!!!!!!@(R]````````````````"
+       "````FJ;7!1%\"!!!!!!!!!!!!!!!!!!!!;GJK!!!!!!!!````````````````````"
+       "````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````!!!!!!!!"
+       ";7FJ!!!!!!!!!!!!!!!!!!!!!1%\"FJ;7````````````````````````````````"
+       "````````````FJ;7!1%\"!!!!!!!!!!!!!!!!!!!!;GJK!!!!!!!!````````````"
+       "````!!!!!!!!:W>H!!!!!!!!!!!!!!!!````````!!!!!!!!````````````EZ/4"
+       "!!!!3%B)````````````````````````2U>(!!!!F*35````````O<GZ$!Q-!!!!"
+       "!!!!!!!!!!!!!!!!!!!!@(R]````````````````````!!!!!!!!:W>H!!!!!!!!"
+       "!!!!!!!!!!!!!!!!````````````[_PLLK[O)#!A!!!!@HZ_````````````Y_0D"
+       "$AY/!!!!7FJ;T=X.]`0TYO,CD)S-#1E*!!!!Q=(\"````````````(R]@!!!!9G*C"
+       "X.T=_@HZ\\?XNM\\/T2E:'````````````````!!!!!!!!````````````````````"
+       "````````0T]`J;7FYO,C_PL[\\?XNOLK[.45V!!!!=8&R````````````````!!!!"
+       "!!!!!A)#=X.TW.D9`0T]````````````!!!!!!!!````````````````````````"
+       "Y_0D$AY/!!!!7FJ;T=X.]`0TYO,CD)S-#1E*!!!!Q=(\"````````````V.45\"15&"
+       "!!!!:W>HX.T=_PL[W^P<:'2E!!!!!!!!!!!!````````````````````````````"
+       "````````````````!!!!!!!!````````````````````````!!!!!!!!!!!!:76F"
+       "W^P<_@HZW^P<:'2E!!!!\"15&V>86````````````````````````````````````"
+       "V.45\"15&!!!!:W>HX.T=_PL[W^P<:'2E!!!!!!!!!!!!````````````````!!!!"
+       "!!!!!A)#=X.TW.D9`0T]````````````!!!!!!!!````````````\\O\\O#!A)!A)#"
+       "YO,C````````````````YO,C!A)##!A)\\O\\O````Y_0D$AY/!!!!7FJ;T=X.]`0T"
+       "YO,CD)S-#1E*!!!!Q=(\"````````````````!!!!!!!!!A)#=X.TW.D9`0T]````"
+       "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!76F:_PL[````````````=X.T!!!!8FZ?"
+       "````````````````````EJ+3!!!!6666````````````#1E*!!!![_PL````````"
+       "````````````````````````````!!!!!!!!````````````````````````````"
+       "````````````````````````YO,C!!!!*35F````````````````!!!!!!!!;WNL"
+       "````````````````````````!!!!!!!!````````````````````````=X.T!!!!"
+       "8FZ?````````````````````EJ+3!!!!6666````````````:G:G!!!!56&2````"
+       "````````````````45V.!!!!!!!!````````````````````````````````````"
+       "````````!!!!!!!!````````````````````````!!!!!!!!4EZ/````````````"
+       "````````45V.!!!!:W>H````````````````````````````````````:G:G!!!!"
+       "56&2````````````````````45V.!!!!!!!!````````````````!!!!!!!!;WNL"
+       "````````````````````````!!!!!!!!````````````````7&B9!!!!AI+#````"
+       "````````````A9'\"!!!!76F:````````=X.T!!!!8FZ?````````````````````"
+       "EJ+3!!!!6666````````````````!!!!!!!!;WNL````````````````!!!!!!!!"
+       "!!!!!!!!!!!!!!!!!!!!(BY?V^@8````````````````+SML!!!!S]P,````````"
+       "````````````Z_@H!!!!'RM<````````````0$Q]!!!!,#QMC9G*R]@(_0DY````"
+       "````````````````````!!!!!!!!````````````````````````````Z/4E=(\"Q"
+       "+SML#QM,!!!!!!!!!!!!!!!!\"Q=(````````````````!!!!!!!!U^04````````"
+       "````````````````!!!!!!!!````````````````````````+SML!!!!S]P,````"
+       "````````````````Z_@H!!!!'RM<````````````*#1E!!!!R=8&````````````"
+       "````````R-4%!!!!!!!!````````````````````````````````````````````"
+       "!!!!!!!!````````````````````````!!!!!!!!R-4%````````````````````"
+       "R-4%!!!!*35F````````````````````````````````````*#1E!!!!R=8&````"
+       "````````````````R-4%!!!!!!!!````````````````!!!!!!!!U^04````````"
+       "````````````````!!!!!!!!````````````````O\\O\\!!!!)3%B`P\\_````````"
+       "`P\\_)#!A!!!!P,S]````````+SML!!!!S]P,````````````````````Z_@H!!!!"
+       "'RM<````````````````!!!!!!!!U^04````````````````!!!!!!!!````````"
+       "_0DYS]P,15&\"!!!!)C)C^P<W````````````#AI+!!!!!Q-$!Q-$!A)#!A)#!1%\""
+       "!1%\"!!!!!!!!\"15&````````````U>(2'BI;!!!!!!!!!!!!#!A)3UN,PL[_````"
+       "````````````!!!!!!!!````````````````````````V>86%B)3!!!!!!!!!!!!"
+       "!!!!!!!!!!!!!!!!!!!!````````````````!!!!!!!!^P<W````````````````"
+       "````````!!!!!!!!````````````````````````#AI+!!!!!Q-$!Q-$!A)#!A)#"
+       "!1%\"!1%\"!!!!!!!!\"15&````````````#!A)!!!!\\O\\O````````````````````"
+       "\\?XN!!!!!!!!````````````````````````````````````````````!!!!!!!!"
+       "````````````````````````!!!!!!!!\\O\\O````````````````````\\?XN!!!!"
+       "#1E*````````````````````````````````````#!A)!!!!\\O\\O````````````"
+       "````````\\?XN!!!!!!!!````````````````!!!!!!!!^P<W````````````````"
+       "````````!!!!!!!!`````````````````P\\_)#!A!!!!P,S]````````O\\O\\!!!!"
+       ")#!A`P\\_````````#AI+!!!!!Q-$!Q-$!A)#!A)#!1%\"!1%\"!!!!!!!!\"15&````"
+       "````````````!!!!!!!!^P<W````````````````!!!!!!!!````````````````"
+       "^@8V+3EJ!!!!B97&````````````#!A)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+       "!!!!!!!!````````````````^P<WJ[?H:'2E,CYO!A)#!!!!!1%\"K;GJ````````"
+       "````!!!!!!!!````````````````````````45V.!!!!.45VO\\O\\[OLK_`P\\````"
+       "_0DY!!!!!!!!````````````````!!!!!!!!````````````````````````````"
+       "!!!!!!!!````````````````````````#!A)!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+       "!!!!!!!!!!!!````````````#!A)!!!!\\O\\O````````````````````\\?XN!!!!"
+       "!!!!````````````````````````````````````````````!!!!!!!!````````"
+       "````````````````!!!!!!!!\\O\\O````````````````````\\?XN!!!!#!A)````"
+       "````````````````````````````````#!A)!!!!\\O\\O````````````````````"
+       "\\?XN!!!!!!!!````````````````!!!!!!!!````````````````````````````"
+       "!!!!!!!!````````````````````A)#!!!!!76F:````````7&B9!!!!A9'\"````"
+       "````````#!A)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````"
+       "````!!!!!!!!````````````````````!!!!!!!!````````````````````O,CY"
+       "!!!!&256^`@X````````*C9G!!!!W>H:````````````````````````````````"
+       "````````````````````````````````\\O\\O>86V!!!!+CIK````````````!!!!"
+       "!!!!````````````````````````$AY/!!!!X>X>````````````````U>(2!!!!"
+       "!!!!````````````````!!!!!!!!````````````````````````````!!!!!!!!"
+       "````````````````````````*C9G!!!!W>H:````````````````````````````"
+       "````````````````*#1E!!!!R=8&````````````````````R-4%!!!!!!!!````"
+       "````````````````````````````````````````!!!!!!!!````````````````"
+       "````````!!!!!!!!R-4%````````````````````R-4%!!!!*35F````````````"
+       "````````````````````````*#1E!!!!R=8&````````````````````R-4%!!!!"
+       "!!!!````````````````!!!!!!!!````````````````````````````!!!!!!!!"
+       "````````````````````Y?(B!A)##!A)\\O\\O\\?XN\"Q=(!A)#Y?(B````````````"
+       "*C9G!!!!W>H:````````````````````````````````````````````````!!!!"
+       "!!!!````````````````````!!!!!!!!````````````````````````.$1U!!!!"
+       "G*C9````````=H*S!!!!9W.D````````````````````````````````````````"
+       "````````````````````````````\\_`P!!!!#1E*````````````\"Q=(!!!!]P,S"
+       "````````````````````\"Q=(!!!!ZO<G````````````````86V>!!!!!!!!````"
+       "````````````!!!!!!!!````````````````````````````\"Q=(!!!!]P,S````"
+       "````````````````=H*S!!!!9W.D````````````````````````````````````"
+       "````````:G:G!!!!56&2````````````````````45V.!!!!!!!!````````````"
+       "````````````````````````````````!!!!!!!!````````````````````````"
+       "!!!!!!!!4EZ/````````````````````45V.!!!!:G:G````````````````````"
+       "````````````````:G:G!!!!56&2````````````````````45V.!!!!!!!!````"
+       "````````````!!!!!!!!````````````````````````````!!!!!!!!````````"
+       "````````````````2E:'!!!!EZ/4EJ+3!!!!2E:'````````````````=H*S!!!!"
+       "9W.D````````````````````````````````````````````````!!!!!!!!````"
+       "````````````````!!!!!!!!````````````````````````K;GJ!!!!*C9G`@X^"
+       "````ZO<G%R-4!!!!45V.O<GZZ?8F_`P\\]0$QS]P,D)S--D)S````````````.$1U"
+       "E:'2UN,3^@8V_0DYW.D99'\"A!!!!*#1E````````````*35F!!!!DY_0^04U````"
+       "````````````.D9W!!!!3%B)VN<7^P<WU^0497&B!!!!!!!!!!!!````````````"
+       "````!!!!!!!!````````````````````````````*35F!!!!DY_0^04U````````"
+       "````````ZO<G%R-4!!!!45V.O<GZZ?8F_`P\\]0$QS]P,D)S--D)S````````````"
+       "U^04\"15&!!!!;'BIX.T=_PL[W^P<:76F!!!!!!!!!!!!````````````````````"
+       "````````````````````````!!!!!!!!````````````````````````!!!!!!!!"
+       "!!!!:76FW^P<_PL[W^P<:76F!!!!\"15&V.45````````````````````````````"
+       "````````U^04\"15&!!!!;'BIX.T=_PL[W^P<:76F!!!!!!!!!!!!````````````"
+       "````!!!!!!!!````````````````````````````!!!!!!!!````````````````"
+       "````````K+CI!!!!-$!Q,S]P!!!!K;GJ````````````````ZO<G%R-4!!!!45V."
+       "O<GZZ?8F_`P\\]0$QS]P,D)S--D)S````````````````!!!!!!!!````````````"
+       "````````!!!!!!!!`````````````````````````0T])C)C!!!!L[_P````````"
+       "S-D)'2E:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````!!!!!!!!!!!!"
+       "!!!!!!!!!!!!!!!!!Q-$KKKK````````````?8FZ!!!!!!!!!!!!!!!!!!!!````"
+       "````N<7V!1%\"!!!!!!!!!!!!!!!!!!!!;WNL!!!!!!!!````````````````!!!!"
+       "!!!!````````````````````````````?8FZ!!!!!!!!!!!!!!!!!!!!````````"
+       "````S-D)'2E:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````F:76"
+       "!!!!!!!!!!!!!!!!!!!!!!!!;7FJ!!!!!!!!````````````````````````````"
+       "````````````````!!!!!!!!````````````````````````!!!!!!!!;7FJ!!!!"
+       "!!!!!!!!!!!!!!!!!1%\"FJ;7````````````````````````````````````````"
+       "````F:76!!!!!!!!!!!!!!!!!!!!!!!!;7FJ!!!!!!!!````````````````!!!!"
+       "!!!!````````````````````````````!!!!!!!!````````````````````````"
+       "_0DY%B)3!!!!!!!!%R-4_@HZ````````````````````S-D)'2E:!!!!!!!!!!!!"
+       "!!!!!!!!!!!!!!!!!!!!````````````````!!!!!!!!````````````````````"
+       "!!!!!!!!````````````````````````````F*35!!!!/DI[````````````\\O\\O"
+       "B97&.T=X%\"!1!Q-$%\"!1.D9W@X^`V.45````````````T=X.=8&R,S]P#AI+#AI+"
+       "*35F8V^@T]`0````````````````_0DY?(BY*#1E\"A9'!!!!!!!!````````````"
+       "NL;W/4EZ#!A)$!Q-.45VH*S=````!!!!!!!!````````````````!!!!!!!!````"
+       "````````````````````````_0DY?(BY*#1E\"A9'!!!!!!!!````````````````"
+       "\\O\\OB97&.T=X%\"!1!Q-$%\"!1.D9W@X^`V.45````````````````````OLK[1E*#"
+       "$!Q-#AI+-D)SG*C9`P\\_!!!!!!!!````````````````````````````````````"
+       "````````!!!!!!!!````````````````````````!!!!!!!!`P\\_FJ;7-4%R#AI+"
+       "$!Q-1E*#OLK[````````````````````````````````````````````````````"
+       "OLK[1E*#$!Q-#AI+-D)SG*C9`P\\_!!!!!!!!````````````````!!!!!!!!````"
+       "````````````````````````!!!!!!!!````````````````````````````<GZO"
+       "!!!!!!!!<GZO````````````````````````````\\O\\OB97&.T=X%\"!1!Q-$%\"!1"
+       ".D9W@X^`V.45````````````````!!!!!!!!````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````B97&3UN,"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````!!!!````````````````````````````````````````````"
+       "````!!!!````````````````````````````````````````!!!!````````````"
+       "````````````````````````````````````````````````````````````````"
+       "35F*BY?(````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````^04U&\"15WNL;````````"
+       "!!!!````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````!!!!````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````!!!!````````````````````````````````````````````````!!!!"
+       "````````````````````````````````````````!!!!````````````````````"
+       "````````````````````````````````````````````````````````V^@8&256"
+       "^P<W````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````IK+C4EZ/````````````````````"
+       "````````````````````````````````````````!!!!````````````````````"
+       "````````````````````````````````````````````````````````````!!!!"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "!!!!````````````````````````````````````````````````!!!!````````"
+       "````````````````````````````````!!!!````````````````````````````"
+       "````````````````````````````````````````````````````35F*J[?H````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````6666I[/D````````````````````````````"
+       "````````````````````````````````!!!!````````````````````````````"
+       "````````````````````````````````````````````````````!!!!````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````!!!!````"
+       "````````````````````````````````````````````!!!!````````````````"
+       "````````````````````````!!!!````````````````````````````````````"
+       "````````````````````````````````````````````HZ_@76F:````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````)3%BX.T=````````````!!!!````````````!!!!FZ?8"
+       "(R]@#!A)/$AYU^04````!!!!!!!!!!!!!!!!`````````@X^AY/$)#!A%2%297&B"
+       "^04U````````!!!!FZ?8(R]@#!A)/$AYU^04````!!!!!!!!!!!!!!!!````````"
+       "!!!!````````````_0DY<W^P&R=8&R=8<W^P_0DY````````!!!!FZ?8(R]@#!A)"
+       "/$AYU^04````````W>H:5V.4%B)3$AY/56&2[_PL````````!!!!````````````"
+       "````````````````_@HZ;GJK%B)3&R=8CIK+!!!!`````````@X^AY/$)#!A%2%2"
+       "97&B^04U````````!!!!````````````W>H:5V.4%B)3$AY/56&2[_PL````04U^"
+       "J[?H````````````Y?(B'2E:]0$Q````````WNL;)S-D````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````#1E*^@8V````````````!!!!````````````!!!!5&\"1X^`@^04U"
+       "A9'\"/TM\\````````!!!!````````````````D9W.1U.$XN\\?\\O\\O8&R==H*S````"
+       "````!!!!5&\"1X^`@^04UA9'\"/TM\\````````!!!!````````````````!!!!````"
+       "````````@8V^2%2%Y_0DY_0D15&\"@HZ_````````!!!!5&\"1X^`@^04UA9'\"/TM\\"
+       "````````,CYOPL[_^P<W]0$Q<'RM:'2E````````!!!!````````````````````"
+       "````````@X^`2%2%Z/4EY_0D15&\"!!!!````````D9W.1U.$XN\\?\\O\\O8&R==H*S"
+       "````````!!!!````````````,CYOPL[_^P<W]0$Q<'RM:'2E````O,CY+3EJ`@X^"
+       "````````9W.DC)C)````````````^04U#1E*````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````#!A)^@8V````````````!!!!````````````!!!!Z_@H````````^@8V#1E*"
+       "````````!!!!````````````````+#AIW.D9````````[/DI(R]@````````!!!!"
+       "Z_@H````````^@8V#1E*````````!!!!````````````````!!!!````````````"
+       ")C)CV>86````````U^04)S-D````````!!!!Z_@H````````^@8V#1E*````````"
+       "````````````````]@(R(\"Q=````````!!!!````````````````````````````"
+       ")S-DV>86````````U^04!!!!````````+#AIW.D9````````[/DI(R]@````````"
+       "!!!!````````````````````````````]@(R(\"Q=````````.45VJ;7F````WNL;"
+       "(\"Q=^@8V````````````^04U#1E*````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````)3%B"
+       "W^P<````````````!!!!````````````!!!!````````````````!!!!````````"
+       "!!!!````````````````#1E*!!!!!!!!!!!!!!!!!A)#````````!!!!````````"
+       "````````!!!!````````!!!!````````````````!!!!````````````#!A)^`@X"
+       "````````^`@X#!A)````````!!!!````````````````!!!!````````S]P,1E*#"
+       "%2%2!!!!!!!!!Q-$````````!!!!````````````````````````````#!A)^`@X"
+       "````````^`@X!!!!````````#1E*!!!!!!!!!!!!!!!!!A)#````````!!!!````"
+       "````````S]P,1E*#%2%2!!!!!!!!!Q-$````````M,#Q*S=H`0T]76F:EJ+3````"
+       "````````````WNL;)C)C````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````6666I+#A````"
+       "````````!!!!````````````!!!!````````````````!!!!````````!1%\"````"
+       "````````````*S=HX^`@````````````````````````!!!!````````````````"
+       "!!!!````````!1%\"````````````````!!!!````````````)C)CV>86````````"
+       "U^04)S-D````````!!!!````````````````!!!!````````)S-DI;'B\\?XN`0T]"
+       "\\?XN!!!!````````!!!!````````````````````````````)S-DV>86````````"
+       "V.45!!!!````````*S=HX^`@````````````````````````!!!!````````````"
+       ")S-DI;'B\\?XN`0T]\\?XN!!!!`````````P\\_,3UN>86V)#!A_@HZ````````````"
+       "````HZ_@7&B9````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````IK+C4%R-````````````"
+       "!!!!````````````!!!!````````````````!!!!````````&256VN<7````````"
+       "````E*#12%2%VN<7_@HZUN,36V>8````````!!!!````````````````!!!!````"
+       "````&256VN<7````````````!!!!````````````?XN\\2%2%Y_0DY_0D1E*#@(R]"
+       "````````!!!!````````````````!!!!````````'\"A9L[_P_0DYX>X>5V.4!!!!"
+       "````````!!!!````````````````````````````@8V^2E:'Z/4EZ/4E2%2%!!!!"
+       "````````E*#12%2%VN<7_@HZUN,36V>8````````!!!!````````````'\"A9L[_P"
+       "_0DYX>X>5V.4!!!!````````````K+CI!!!!H*S=````````````````````3UN,"
+       "J;7F````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````^@8V&\"15W>H:````````!!!!````"
+       "````````!!!!````````````````!!!!````````D9W.%\"!1!!!!`````````@X^"
+       "EJ+3+#AI\"Q=(,3UNM,#Q````````!!!!````````````````!!!!````````D9W."
+       "%\"!1!!!!````````!!!!````````````^`@X<7VN&R=8&R=8<7VN^`@X````````"
+       "!!!!````````````````!!!!````````N<7V*S=H\"15&(BY?EJ+3!!!!````````"
+       "!!!!````````````````````````````_0DY;'BI%2%2&B97CIK+!!!!````````"
+       "`@X^EJ+3+#AI\"Q=(,3UNM,#Q````````!!!!````````````N<7V*S=H\"15&(BY?"
+       "EJ+3!!!!````````````K[OL*35F_`P\\````````````````W.D9&256^P<W````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````BI;'3EJ+````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````45V.JK;G````````````````````3EJ+BY?(````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "`````````````````````````````````````````````````````````````@X^"
+       "G:G:,3UN`@X^````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````!!!!)#!AS]P,"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````````````````````````````````````````````````````"
+       "````````````````";
+
+#endif /* __FB_BOOTLOGO_H_ */
index 450a21b690a775178620e60de7cd4ea7936727dc..352f5292922782c9a30510fee0fdb8250e1e616c 100644 (file)
@@ -57,7 +57,7 @@ PROG_DRIVERS+=        acpi
 
 .if ${MACHINE_ARCH} == "earm"
 EXTRA+=                rc.arm mylogin.sh ttys
-PROG_DRIVERS+= mmc tty gpio
+PROG_DRIVERS+= fb mmc tty gpio
 PROG_COMMANDS+=        cp dd getty time sleep stty umount
 PROG_BIN+=     cat ls rm sync
 PROTO=         proto.arm.small
index 1fad54302ee40cf2b5e1b40799affe2bc4111012..aebb616fc7247d7c94d53b6dcda0255b2310e5d7 100644 (file)
@@ -18,6 +18,7 @@ d--755 0 0
                fsck.mfs ---755 0 0 fsck.mfs
        $
        sbin d--755 0 0
+               fb ---755 0 0 fb
                mmc ---755 0 0 mmc
                mfs ---755 0 0 mfs
                gpio ---755 0 0 gpio
index 5bb91670c4a06d7e2710e0d6fb55094908a5910b..bac5ee416b2e57d59fb9b11d23e9e1d104397e8f 100644 (file)
                c1d7p3s2 b--600 0 0 8 254 
                c1d7p3s3 b--600 0 0 8 255 
                console c--600 0 4 4 0 
+               fb0 c--644 0 0 19 0
                fbd b--600 0 0 14 0 
                fd0 b--666 0 0 2 0 
                filter b--644 0 0 11 0 
index 3a40acccf0a221a107e11b6db04d6fa35cbc15a6..cda7e7740002cbd07b3420e8912ceee0363dc417 100755 (executable)
@@ -14,5 +14,5 @@ exec </dev/null
 #/bin/mount  /dev/c0d0p1 /mnt
 #gpio
 #mount -t gpio none /gpio
-
+#service up /sbin/fb -dev /dev/fb0 -period 2HZ
 exit
index 9f8fe394eadd7760fab7fe8375f6dd63f3163996..0224925214e3050263045b90d9d373867cb57a12 100644 (file)
@@ -554,6 +554,18 @@ service mmc
        irq     83;             # IRQ 83 allowed
 };
 
+service fb 
+{
+       system
+               UMAP            # 14
+                DEVIO           # 21
+               PRIVCTL         #  4
+        ;
+       ipc
+                SYSTEM pm rs ds vm vfs
+       ;
+};
+
 service gpio
 {
        system
index b72b9814391ef92e3d4a6246a5f14a416dddec1d..5f801c9633a632a8c2e35f8a074fe100deb3aab2 100644 (file)
@@ -10,7 +10,7 @@ INCS+=        acpi.h audio_fw.h bitmap.h \
        config.h const.h cpufeature.h crtso.h \
        debug.h devio.h devman.h dmap.h \
        driver.h drivers.h drvlib.h ds.h \
-       endpoint.h fslib.h gpio.h gcov.h hash.h \
+       endpoint.h fb.h fslib.h gpio.h gcov.h hash.h \
        hgfs.h ioctl.h input.h ipc.h ipcconst.h \
        keymap.h limits.h log.h mmio.h mount.h mthread.h minlib.h \
        netdriver.h optset.h padconf.h partition.h portio.h \
index 5a17c00e6a9eb7245715b7c2c3afa3027ebb617c..6aac5804b7774d450d0f8e663855ea62cc4f6d04 100644 (file)
@@ -38,6 +38,7 @@ enum dev_style { STYLE_NDEV, STYLE_DEV, STYLE_DEVA, STYLE_TTY, STYLE_CTTY,
 #define RANDOM_MAJOR             16    /* 16 = /dev/random (random driver)   */
 #define HELLO_MAJOR              17    /* 17 = /dev/hello  (hello driver)    */
 #define UDS_MAJOR                18    /* 18 = /dev/uds    (pfs)             */
+#define FB_MAJOR                 19    /* 18 = /dev/fb0    (fb driver)       */
 
 
 /* Minor device numbers for memory driver. */
diff --git a/include/minix/fb.h b/include/minix/fb.h
new file mode 100644 (file)
index 0000000..49097cd
--- /dev/null
@@ -0,0 +1,38 @@
+#ifndef __MINIX_FB_H_
+#define __MINIX_FB_H_
+
+#include <minix/type.h>
+
+struct fb_fix_screeninfo {
+       char id[16];            /* Identification string */
+       u16_t xpanstep;
+       u16_t ypanstep;
+       u16_t ywrapstep;
+       u32_t line_length;
+       phys_bytes mmio_start;
+       size_t mmio_len;
+       u16_t reserved[15];
+};
+
+struct fb_bitfield {
+       u32_t offset;
+       u32_t length;
+       u32_t msb_right;
+};
+
+struct fb_var_screeninfo {
+       u32_t xres;             /* visible resolution */
+       u32_t yres;
+       u32_t xres_virtual;     /* virtual resolution */
+       u32_t yres_virtual;
+       u32_t xoffset;          /* offset from virtual to visible */
+       u32_t yoffset;
+       u32_t bits_per_pixel;
+       struct fb_bitfield red; /* bitfield in fb mem if true color */
+       struct fb_bitfield green;
+       struct fb_bitfield blue;
+       struct fb_bitfield transp;      /* transparency */
+       u16_t reserved[10];
+};
+
+#endif /* __MINIX_FB_H_ */
index a0e608832de706d7479d0343c92c463e353c2a49..e6084b23fee279e0750aa68b8ddc4d838cd5eb99 100644 (file)
@@ -3,8 +3,8 @@ INCSDIR= /usr/include/sys
 
 # Minix specific system headers
 INCS=  elf64.h elf_common.h elf_core.h elf_generic.h \
-       ioc_block.h ioc_disk.h ioc_fbd.h ioc_file.h ioc_memory.h ioc_net.h \
-       ioc_sound.h ioc_tape.h ioc_tty.h \
+       ioc_block.h ioc_disk.h ioc_fb.h ioc_fbd.h ioc_file.h ioc_memory.h \
+       ioc_net.h ioc_sound.h ioc_tape.h ioc_tty.h \
        kbdio.h \
        procfs.h statfs.h svrctl.h video.h vm.h 
 
diff --git a/include/sys/ioc_fb.h b/include/sys/ioc_fb.h
new file mode 100644 (file)
index 0000000..ef1ae98
--- /dev/null
@@ -0,0 +1,14 @@
+/*     sys/ioc_fb.h - Framebuffer command codes
+ *
+ */
+
+#ifndef _S_I_FB_H
+#define _S_I_FB_H
+
+/* The I/O control requests. */
+#define FBIOGET_VSCREENINFO    _IOR('V', 1, struct fb_var_screeninfo)
+#define FBIOPUT_VSCREENINFO     _IOW('V', 2, struct fb_var_screeninfo)
+#define FBIOGET_FSCREENINFO     _IOR('V', 3, struct fb_fix_screeninfo)
+#define FBIOPAN_DISPLAY        _IOW('V', 4, struct fb_var_screeninfo)
+
+#endif /* _S_I_FB_H */
index da3ae0b583cbfa6d12264fb884f4d9b6b44fbed5..dc5666f33243130957d661b8a8796c2bff9e5127 100644 (file)
@@ -20,6 +20,7 @@
 #include <sys/ioc_memory.h>    /* 'm'                  */
 #include <sys/ioc_tape.h>      /* 'M'                  */
 #include <sys/ioc_sound.h>     /* 's'                  */
+#include <sys/ioc_fb.h>                /* 'F'                  */
 
 #if defined(_NETBSD_SOURCE)
 #define                TIOCDRAIN       TCDRAIN