From 0a189bd93ac5cd2381c72e0dc4153c4faa3aa990 Mon Sep 17 00:00:00 2001 From: Oliver Schinagl Date: Wed, 16 Mar 2011 23:57:53 +0000 Subject: W99683 Camera support --- uClinux-2.4.20-uc1/drivers/usb/Config.in | 1 + uClinux-2.4.20-uc1/drivers/usb/Makefile | 1 + uClinux-2.4.20-uc1/drivers/usb/W99683.c | 787 +++++++++++++++++++++++++++++ uClinux-2.4.20-uc1/drivers/usb/W99683.h | 263 ++++++++++ uClinux-2.4.20-uc1/drivers/usb/W99685ISP.h | 708 ++++++++++++++++++++++++++ 5 files changed, 1760 insertions(+) create mode 100755 uClinux-2.4.20-uc1/drivers/usb/W99683.c create mode 100755 uClinux-2.4.20-uc1/drivers/usb/W99683.h create mode 100755 uClinux-2.4.20-uc1/drivers/usb/W99685ISP.h diff --git a/uClinux-2.4.20-uc1/drivers/usb/Config.in b/uClinux-2.4.20-uc1/drivers/usb/Config.in index 2907aee..3325275 100644 --- a/uClinux-2.4.20-uc1/drivers/usb/Config.in +++ b/uClinux-2.4.20-uc1/drivers/usb/Config.in @@ -88,6 +88,7 @@ if [ "$CONFIG_USB" = "y" -o "$CONFIG_USB" = "m" ]; then else dep_tristate ' USB IBM (Xirlink) C-it Camera support' CONFIG_USB_IBMCAM $CONFIG_USB $CONFIG_VIDEO_DEV dep_tristate ' USB OV511 Camera support' CONFIG_USB_OV511 $CONFIG_USB $CONFIG_VIDEO_DEV + dep_tristate ' USB W99683 camera support' CONFIG_USB_W99683 $CONFIG_USB $CONFIG_VIDEO_DEV dep_tristate ' USB Philips Cameras' CONFIG_USB_PWC $CONFIG_USB $CONFIG_VIDEO_DEV dep_tristate ' USB SE401 Camera support' CONFIG_USB_SE401 $CONFIG_USB $CONFIG_VIDEO_DEV dep_tristate ' USB STV680 (Pencam) Camera support' CONFIG_USB_STV680 $CONFIG_USB $CONFIG_VIDEO_DEV diff --git a/uClinux-2.4.20-uc1/drivers/usb/Makefile b/uClinux-2.4.20-uc1/drivers/usb/Makefile index ff71933..f927f5a 100644 --- a/uClinux-2.4.20-uc1/drivers/usb/Makefile +++ b/uClinux-2.4.20-uc1/drivers/usb/Makefile @@ -73,6 +73,7 @@ obj-$(CONFIG_USB_AUDIO) += audio.o obj-$(CONFIG_USB_EMI26) += emi26.o obj-$(CONFIG_USB_MIDI) += usb-midi.o obj-$(CONFIG_USB_IBMCAM) += ibmcam.o usbvideo.o ultracam.o +obj-$(CONFIG_USB_W99683) += W99683.o obj-$(CONFIG_USB_PWC) += pwc.o obj-$(CONFIG_USB_DC2XX) += dc2xx.o obj-$(CONFIG_USB_MDC800) += mdc800.o diff --git a/uClinux-2.4.20-uc1/drivers/usb/W99683.c b/uClinux-2.4.20-uc1/drivers/usb/W99683.c new file mode 100755 index 0000000..f58e0b6 --- /dev/null +++ b/uClinux-2.4.20-uc1/drivers/usb/W99683.c @@ -0,0 +1,787 @@ +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * + */ +/*------------------------ Now version 1.0 only support one camera-------------------------------------*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined (__i386__) + #include +#endif + +#include "W99683.h" + +/* + * Version Information + */ +#define DRIVER_VERSION "v1.00 for Linux 2.4" +#define EMAIL "ypxin@winbond.com.tw" +#define DRIVER_AUTHOR "ypxin@winbond.com.tw" +#define DRIVER_DESC "W99683 USB Camera Driver" + +static UINT8 W685ISPFW[] = { + #include "W99685ISP.h" +}; +#define ISPFW_SIZE (sizeof(W685ISPFW)/sizeof(W685ISPFW[0])) +static struct usb_driver W99683_driver; + +/* table of devices that work with this driver */ +static struct usb_device_id W99683_table [] = { + { USB_DEVICE(W99683_VENDOR, W99683i_PRODUCT) }, + { USB_DEVICE(W99685ISP_VENDOR, W99685iISP_PRODUCT)}, + { USB_DEVICE(W99685_VENDOR, W99685i_PRODUCT)}, + {}, /* Terminating entry */ +}; + +static int video_nr = -1; /* next avail video device */ + +struct usb_W99683 *w683_debug = NULL; + +static int +W99683IO(struct usb_device *dev, int Action,struct usb_args *arg, unsigned char *buf); + +static int W99685_Reset2Ram(struct usb_device *dev) +{ + int result = 0; + int action; + struct usb_args init_args; + + INIT_USBARGS(&init_args, 0x16, 0x00, 0x02, 0x00); + action = USB_WRITE; + result = W99683IO(dev, action, &init_args, NULL); + if(result < 0) + { + printk("Reset to DRAM failed\n"); + goto out; + } +out: + return result; +} + +static int +W99685_ProgramPage(struct usb_device *dev) +{ + int result = 0; + int action; + struct usb_args init_args; + + INIT_USBARGS(&init_args, 0x11, 0x00, 0x00, 0x00); + action = USB_WRITE; + result = W99683IO(dev, action, &init_args, NULL); + if(result < 0) + { + printk("W99685 Program Page failed\n"); + goto out; + } +out: + return result; +} + +static int +W99685_WriteReg(struct usb_device *dev, UINT16 addr, UINT8 *buf, UINT16 len) +{ + int result = 0; + int action; + struct usb_args init_args; + + INIT_USBARGS(&init_args, 0x01, 0x00, addr, len); + action = USB_WRITE; + result = W99683IO(dev, action, &init_args, buf); + if(result < 0) + { + printk("Enable W99685 Write Register failed\n"); + goto out; + } +out: + return result; +} + +static int +W99685_DOISP(struct usb_device *dev) +{ + int result = 0; + int i, k; + UINT8 retry = 4; + UINT8 tmpbuf[W99685_RAM_PAGE_SIZE]; + UINT8 *firmware_datap = W685ISPFW; + int fw_page_num = ISPFW_SIZE/W99685_RAM_PAGE_SIZE; + printk("W99685 firmware size: %d\n", ISPFW_SIZE); + if(ISPFW_SIZE > W99685_RAM_SIZE) + { + printk("W99685 firmware size beyond DRAM size\n"); + result = -EFBIG; + goto out; + } + + for(i = 0; i < fw_page_num; i++) + { + for(k = 0; k < W99685_RAM_PAGE_SIZE; k+=W99685_ISP_WRITE_SIZE, firmware_datap+=W99685_ISP_WRITE_SIZE) + { +WriteReg_retry: + result = W99685_WriteReg(dev, W99685_ISP_BUFFER_ADDR+k, firmware_datap, W99685_ISP_WRITE_SIZE); + if(result == -ETIMEDOUT&&retry > 0) + { + retry--; + goto WriteReg_retry; + } + if(result < 0) + { + printk("Upload W99685 ISP firmware failed\n"); + goto out; + } + } + result = W99685_ProgramPage(dev); + if(result < 0) + { + printk("W99685 program firmware page failed\n"); + goto out; + } + } + + //handle not a multiple of 512 byte firmware data + if((fw_page_num < W99685_RAM_PAGE_NUM) && (ISPFW_SIZE%W99685_RAM_PAGE_SIZE)) { + memset(tmpbuf, 0xff, sizeof(tmpbuf)); + memcpy(tmpbuf, firmware_datap, ISPFW_SIZE%W99685_RAM_PAGE_SIZE); + firmware_datap = tmpbuf; + for(k = 0; k < W99685_RAM_PAGE_SIZE; k+=W99685_ISP_WRITE_SIZE, firmware_datap+=W99685_ISP_WRITE_SIZE) + { + result = W99685_WriteReg(dev, W99685_ISP_BUFFER_ADDR+k, firmware_datap, W99685_ISP_WRITE_SIZE); + if(result < 0) + { + printk("Upload W99685 ISP firmware failed\n"); + goto out; + } + } + result = W99685_ProgramPage(dev); + if(result < 0) + { + printk("W99685 program firmware page failed\n"); + goto out; + } + i++; + } + + memset(tmpbuf, 0xff, sizeof(tmpbuf)); + + for(; i < W99685_RAM_PAGE_NUM; i++) + { + firmware_datap = tmpbuf; + for(k = 0; k < W99685_RAM_PAGE_SIZE; k+=W99685_ISP_WRITE_SIZE, firmware_datap+=W99685_ISP_WRITE_SIZE) + { + result = W99685_WriteReg(dev, W99685_ISP_BUFFER_ADDR+k, firmware_datap, W99685_ISP_WRITE_SIZE); + if(result < 0) + { + printk("Upload W99685 ISP firmware failed\n"); + goto out; + } + } + result = W99685_ProgramPage(dev); + if(result < 0) + { + printk("W99685 program firmware page failed\n"); + goto out; + } + } +out: + return result; +} + +static int +W99685ISP_INIT(struct usb_device *dev) +{ + int result = 0; + int action; + struct usb_args init_args; + int i = 0; + // Here, Enable W99685 ISP mode + wait_ms(200); + if (usb_clear_halt(dev, usb_sndbulkpipe(dev, 0))) { + printk("Failed to reset control endpoint.\n"); + } + INIT_USBARGS(&init_args, 0x16, 0x00, 0x01, 0x00); + action = USB_WRITE; + result = W99683IO(dev, action, &init_args, NULL); + if(result < 0) + { + printk("Enable W99685 ISP mode failed\n"); + goto out; + } + + wait_ms(200); + result = W99685_DOISP(dev); + if(result < 0) + { + printk("W99685 do ISP failed\n"); + goto out; + } + + result = W99685_Reset2Ram(dev); + if(result < 0) + { + printk("W99685 reset to DRAM failed\n"); + goto out; + } +out: + return result; +} + +static int +W99683IO(struct usb_device *dev, int Action,struct usb_args *arg, unsigned char *buf) +{ + int result = 0; + //printk("request: %x, value: %x, index: %x, length: %x", arg->request, arg->value,\ + arg->index, arg->length); + if(Action == USB_WRITE) { + result = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), + arg->request, USB_TYPE_VENDOR| + USB_RECIP_DEVICE|USB_DIR_OUT, + arg->value, arg->index, buf, + arg->length, HZ*5); + //printk(" result: %d\n", result); + } + else + { + result = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), + arg->request, USB_TYPE_VENDOR| + USB_RECIP_DEVICE|USB_DIR_IN, + arg->value, arg->index, buf, + arg->length, HZ*5); +// printk("get: %d\n", result); + } + return result; +} + +static int +w99683_v4l1_ioctl_internal(struct video_device *vdev, unsigned int cmd, + void *arg) +{ + struct usb_W99683 *w683 = vdev->priv; + int args; + int pipe, nb, ret = 0; + struct ctrlmsg_ioctl cmsg; + + PDEBUG(5, "IOCtl: 0x%X", cmd); + //printk("IOCtl: 0x%X", cmd); + + if (!w683->dev) + return -EIO; + memset(w683->iobuf, 0, 64*sizeof(char)); + switch (cmd) { + case IOCTLGET: + PDEBUG(4, "IOCTLGET"); + if(arg == NULL) + return -EFAULT; + if (copy_from_user(&cmsg, (void *)arg, sizeof(cmsg))) + return -EFAULT; + + nb = le16_to_cpup(&cmsg.req.length); + + if (nb > (64*sizeof(char))) + return -EINVAL; + + ret = W99683IO(w683->dev, USB_READ, &(cmsg.req), w683->iobuf); + if (nb > 0 && copy_to_user(cmsg.data, w683->iobuf, nb)) + return -EFAULT; +// printk("get2: %d\n", ret); + return ret; + case IOCTLSET: + PDEBUG(4, "IOCTLSET"); + //printk("IOCTLSET"); + if (copy_from_user(&cmsg, (void *)arg, sizeof(cmsg))) + return -EFAULT; + + nb = le16_to_cpup(&cmsg.req.length); + + if (nb > (64*sizeof(char))) + return -EINVAL; + if(nb == 0) { + ret = W99683IO(w683->dev, USB_WRITE, &(cmsg.req), NULL); + } + else if(nb > 0) { + if (copy_from_user(w683->iobuf, cmsg.data, nb)) + return -EFAULT; + ret = W99683IO(w683->dev, USB_WRITE, &(cmsg.req), w683->iobuf); + } + else + return -EINVAL; + return ret; + case IOCTLGETCLASS: + if(!arg) + { + return -EINVAL; + } + if(copy_to_user(arg, vdev->name, strlen(vdev->name)+1)) + { + return -EFAULT; + } + return strlen(vdev->name)+1; + default: + PDEBUG(3, "Unsupported IOCtl: 0x%X", cmd); + return -ENOIOCTLCMD; + } /* end switch */ + + return ret; +} + + +/**************************************************************************** + * + * V4L 1 API + * + ***************************************************************************/ +static int +w99683_v4l1_open(struct video_device *vdev, int flags) +{ + struct usb_W99683 *w683 = vdev->priv; + int err, i; + + PDEBUG(4, "opening"); + //printk(" debug: %x , orign: %x\n", w683_debug, w683); + down(&w683->lock); + + err = -EBUSY; + if (w683->user) { + PDEBUG(4, "erro user count: %d", w683->user); + goto out; + } + + err = -ENOMEM; + + /* In case app doesn't set them... */ + w683->user++; + err = 0; +out: + up(&w683->lock); + + return err; +} + +static void +w99683_v4l1_close(struct video_device *vdev) +{ + struct usb_W99683 *w683 = vdev->priv; + + PDEBUG(4, "W996983_close"); + + down(&w683->lock); + + w683->user--; + + up(&w683->lock); + + /* Device unplugged while open. Only a minimum of unregistration is done + * here; the disconnect callback already did the rest. */ + if (!w683->dev) { + video_unregister_device(&w683->vdev); + if(w683->rawbuf) { + kfree(w683->rawbuf); + kfree(w683->iobuf); + w683->rawbuf = NULL; + } + kfree(w683); + w683 = NULL; + } +} + +static inline long +w99683_v4l1_read(struct video_device *vdev, char *buf, unsigned long count, + int noblock) +{ + struct usb_W99683 *w683 = vdev->priv; + struct usb_device *dev = w683->dev; + int i, rc = 0; + int result; + char *ibuf = w683->rawbuf; + int partial; + + + if (down_interruptible(&w683->lock)) + return -EINTR; + + PDEBUG(4, "%ld bytes, noblock=%d", count, noblock); + + if (!vdev || !buf ) { + printk("vdev || !buf \n"); + rc = -EFAULT; + goto error; + } + + if (!w683->dev) { + printk("!w683->dev\n"); + rc = -EIO; + goto error; + } + + if(count > W683BUF_SIZE) { + printk("count > W683BUF_SIZE\n"); + rc = -EFAULT; + goto error; + } + + result = usb_bulk_msg(dev, usb_rcvbulkpipe(dev, 1), ibuf, count, &partial, HZ*10); + + if(result < 0) { + printk("result < 0, %d\n", result); + rc = result; + goto error; + } + + rc = partial; + + if (copy_to_user(buf, ibuf, partial)) { + printk("copy_to_user\n"); + rc = -EFAULT; + goto error; + } + up(&w683->lock); + + return count; + +error: + up(&w683->lock); + return rc; +} + + +static long +w99683_v4l1_write(struct video_device *vdev, const char *buf, + unsigned long count, int noblock) +{ + return -EINVAL; +} + + +static int +w99683_v4l1_ioctl(struct video_device *vdev, unsigned int cmd, void *arg) +{ + int rc; + struct usb_W99683 *w683 = vdev->priv; + + if (down_interruptible(&w683->lock)) + return -EINTR; + //printk("ioctl: %x\n", cmd); + rc = w99683_v4l1_ioctl_internal(vdev, cmd, arg); + + up(&w683->lock); + return rc; +} + +static struct video_device vdev_template = { + owner: THIS_MODULE, + name: W99685_DEVICECLASS, //default for 685 + type: VID_TYPE_CAPTURE, + hardware: VID_HARDWARE_OV511, + open: w99683_v4l1_open, + close: w99683_v4l1_close, + read: w99683_v4l1_read, + write: w99683_v4l1_write, + ioctl: w99683_v4l1_ioctl, +}; + + +#if defined(CONFIG_PROC_FS) && defined(CONFIG_VIDEO_PROC_FS) + +static struct proc_dir_entry *W99683_proc_entry = NULL; +extern struct proc_dir_entry *video_proc_entry; + +static void +proc_W99683_create(void) +{ + /* No current standard here. Alan prefers /proc/video/ as it keeps + * /proc "less cluttered than /proc/randomcardifoundintheshed/" + * -claudio + */ + if (video_proc_entry == NULL) { + err("Error: /proc/video/ does not exist"); + return; + } + + W99683_proc_entry = create_proc_entry("W99683", S_IFDIR, + video_proc_entry); + + if (W99683_proc_entry) + W99683_proc_entry->owner = THIS_MODULE; + else + err("Unable to create /proc/video/W99683"); +} + +static void +proc_W99683_destroy(void) +{ + PDEBUG(3, "removing /proc/video/W99683"); + + if (W99683_proc_entry == NULL) + return; + + remove_proc_entry("W99683", video_proc_entry); +} +#endif /* CONFIG_PROC_FS && CONFIG_VIDEO_PROC_FS */ + +/**************************************************************************** + * + * USB routines + * + ***************************************************************************/ +static void * +W99683_probe(struct usb_device *dev, unsigned int ifnum, + const struct usb_device_id *id) +{ + struct usb_interface_descriptor *interface; + struct usb_endpoint_descriptor *endpoint; + struct usb_W99683 *w683; + int i; + int registered = 0; + UINT8 mul = 1; + + PDEBUG(1, "probing for device..."); + printk("probing for device..., %d\n", ifnum); + + /* We don't handle multi-config cameras */ + if (dev->descriptor.bNumConfigurations != 1) + return NULL; + + interface = &dev->actconfig->interface[ifnum].altsetting[0]; + endpoint = interface[ifnum].endpoint; + + /*printk("endponts: %d\n", interface->bNumEndpoints); + for(i = 0; i < interface->bNumEndpoints; i++) + { + if(IS_EP_BULK_IN(endpoint[i])) + printk("get bulk in: %d\n", i); + }*/ + /* Checking vendor/product should be enough, but what the hell */ + //printk("bInterfaceClass: %x, bInterfaceSubClass: %x\n", interface->bInterfaceClass, interface->bInterfaceSubClass); + if (interface->bInterfaceClass != 0x00) + return NULL; + if (interface->bInterfaceSubClass != 0x00) + return NULL; + + /* Since code below may sleep, we use this as a lock */ + MOD_INC_USE_COUNT; + + if ((w683 = kmalloc(sizeof(*w683), GFP_KERNEL)) == NULL) { + err("couldn't kmalloc ov struct"); + goto error_out; + } + + w683_debug = w683; + memset(w683, 0, sizeof(*w683)); + + //printk("probe: user: %d\n", w683->user); + w683->dev = dev; + w683->iface = interface->bInterfaceNumber; + w683->user = 0; + //printk("probe: user: %d\n", w683->user); + printk("probe: vendorID: %x, ProductID: %x\n", dev->descriptor.idVendor, dev->descriptor.idProduct); +#if 0 + if ((dev->descriptor.idVendor != W99683_VENDOR) || + (dev->descriptor.idProduct != W99683i_PRODUCT)) { + err("Unknown product ID 0x%x or Vendor ID 0x%x", dev->descriptor.idProduct, dev->descriptor.idVendor); + goto error_dealloc; + } +#endif + if ((dev->descriptor.idVendor == W99683_VENDOR) && + (dev->descriptor.idProduct == W99683i_PRODUCT)) { + strcpy(vdev_template.name, W99683_DEVICECLASS); + printk("Find W99683 USB Camera\n"); + goto init; + } + else if ((dev->descriptor.idVendor == W99685ISP_VENDOR) && + (dev->descriptor.idProduct == W99685iISP_PRODUCT)) { + printk("Find W99685 USB ISP\n"); + //usb_show_device(dev); + if(!strcmp(vdev_template.name, W99685_DEVICECLASS)) { + if(W99685ISP_INIT(dev) < 0) + goto error_dealloc; + } + else { + strcpy(vdev_template.name, W9968x_ISPMODE); + } + } + else if ((dev->descriptor.idVendor == W99685_VENDOR) && + (dev->descriptor.idProduct == W99685i_PRODUCT)) { + mul = 2; + strcpy(vdev_template.name, W99685_DEVICECLASS); + goto init; + } + else { + err("Unknown product ID 0x%x or Vendor ID 0x%x", dev->descriptor.idProduct, dev->descriptor.idVendor); + goto error_dealloc; + } +init: + init_waitqueue_head(&w683->wq); + + init_MUTEX(&w683->param_lock); + init_MUTEX(&w683->lock); + printk("video name: %s\n", vdev_template.name); + memcpy(&w683->vdev, &vdev_template, sizeof(vdev_template)); + w683->vdev.priv = w683; + + /* Use the next available one */ + if (video_register_device(&w683->vdev, VFL_TYPE_GRABBER, video_nr) < 0) { + err("video_register_device failed"); + goto error; + } + + info("Device registered on minor %d", w683->vdev.minor); + + w683->rawbuf = kmalloc(W683BUF_SIZE*mul, GFP_KERNEL); + if (!w683->rawbuf) + goto error; + + w683->rawbuf = (char *)((unsigned long)w683->rawbuf|0x80000000); + + w683->iobuf = kmalloc(64*sizeof(unsigned char), GFP_KERNEL); + if (!w683->iobuf) + goto error1; + + w683->iobuf = (unsigned char *)((unsigned long)w683->iobuf|0x80000000); + + + MOD_DEC_USE_COUNT; + return w683; +error1: + kfree(w683->rawbuf); +error: + err("Camera initialization failed"); + +#if defined(CONFIG_PROC_FS) && defined(CONFIG_VIDEO_PROC_FS) + /* Safe to call even if entry doesn't exist */ +#endif + + usb_driver_release_interface(&W99683_driver, + &dev->actconfig->interface[w683->iface]); + +error_dealloc: + if (w683) { + kfree(w683); + w683 = NULL; + } + +error_out: + MOD_DEC_USE_COUNT; + return NULL; +} + + +static void +W99683_disconnect(struct usb_device *dev, void *ptr) +{ + struct usb_W99683 *w683 = (struct usb_W99683 *) ptr; + int n; + + MOD_INC_USE_COUNT; + + printk("W99683 is disconnected\n"); + + /* We don't want people trying to open up the device */ +#if 1 + if (!w683->user) + video_unregister_device(&w683->vdev); + else { + //PDEBUG(3, "Device open...deferring video_unregister_device"); + printk("Device open...deferring video_unregister_device\n"); + //for later application to close ?? + } +#else + video_unregister_device(&w683->vdev); +#endif + + if (waitqueue_active(&w683->wq)) + wake_up_interruptible(&w683->wq); + +#if defined(CONFIG_PROC_FS) && defined(CONFIG_VIDEO_PROC_FS) + // destroy_proc_ov511_cam(w683); +#endif + + usb_driver_release_interface(&W99683_driver, + &w683->dev->actconfig->interface[w683->iface]); + w683->dev = NULL; + + /* Free the memory */ + if(w683 && !w683->user) { + if(w683->rawbuf) { + kfree(w683->rawbuf); + kfree(w683->iobuf); + w683->rawbuf = NULL; + } + kfree(w683); + w683 = NULL; + } + + MOD_DEC_USE_COUNT; +} + +static struct usb_driver W99683_driver = { + name: "W99683", + id_table: W99683_table, + probe: W99683_probe, + disconnect: W99683_disconnect +}; + +/****************************************************************************** + * + * Module Routines + * + ******************************************************************************/ +static int __init +usb_W99683_init(void) +{ +#if defined(CONFIG_PROC_FS) && defined(CONFIG_VIDEO_PROC_FS) + proc_W99683_create(); +#endif + //printk("init start user: %x\n", &W99683_driver); + if(&W99683_driver == NULL) + return -1; +// printk("init start user: %d\n", w683_debug->user); + if (usb_register(&W99683_driver) < 0) { + printk("Can't register W99682 driver\n"); + return -1; + } + // FIXME: Don't know how to determine this yet +// ov51x_mmx_available = 0; + +#if defined (__i386__) +// if (test_bit(X86_FEATURE_MMX, &boot_cpu_data.x86_capability)) +// ov51x_mmx_available = 1; +#endif + info(DRIVER_VERSION " : " DRIVER_DESC); + return 0; +} + +static void __exit +usb_W99683_exit(void) +{ + usb_deregister(&W99683_driver); + info("driver deregistered"); + +#if defined(CONFIG_PROC_FS) && defined(CONFIG_VIDEO_PROC_FS) + proc_W99683_destroy(); +#endif +} + +module_init(usb_W99683_init); +module_exit(usb_W99683_exit); diff --git a/uClinux-2.4.20-uc1/drivers/usb/W99683.h b/uClinux-2.4.20-uc1/drivers/usb/W99683.h new file mode 100755 index 0000000..5a2f2d9 --- /dev/null +++ b/uClinux-2.4.20-uc1/drivers/usb/W99683.h @@ -0,0 +1,263 @@ +#ifndef __LINUX_W99683_H +#define __LINUX_W99683_H + +#include +#include +#include + + +//#define W99683_DEBUG /* Turn on debug messages */ + +#ifdef W99683_DEBUG + #define PDEBUG(level, fmt, args...) \ + info("[" __PRETTY_FUNCTION__ ":%d] " fmt,\ + __LINE__ , ## args) +#else + #define PDEBUG(level, fmt, args...) do {} while(0) +#endif + +/* some type defines */ +#define UINT16 unsigned short +#define INT16 short +#define UINT8 unsigned char +#define UINT32 unsigned int + +/*vendor ID and product ID */ +#define W99683_VENDOR 0x416 +#define W99683i_PRODUCT 0x6830 +#define W99685ISP_VENDOR 0x416 +#define W99685iISP_PRODUCT 0x9680 +#define W99685_VENDOR 0x416 +#define W99685i_PRODUCT 0x6850 + +#define W99683_DEVICECLASS "W99683usb" +#define W99685_DEVICECLASS "W99685usb" +#define W9968x_ISPMODE "W9968xisp" + +#define W99685_RAM_SIZE 16*1024 +#define W99685_RAM_PAGE_SIZE 512 +#define W99685_RAM_PAGE_NUM 32 +#define W99685_ISP_BUFFER_ADDR 0xa000 +#define W99685_ISP_WRITE_SIZE 64 + +//USB direction +#define USB_DIR_OUT 0 +#define USB_DIR_IN 0x80 + +//define Read and Write +#define USB_READ 0 +#define USB_WRITE 1 + +#define IS_EP_BULK(ep) ((ep).bmAttributes == USB_ENDPOINT_XFER_BULK ? 1 : 0) +#define IS_EP_BULK_IN(ep) (IS_EP_BULK(ep) && ((ep).bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) + +//define resolution +#define R1280X1024 0x80 //No support currently +#define R1280X960 0x40 //No support currently +#define R640X480 0x20 +#define R352X288 0x10 +#define R320X240 0x08 +#define R176X144 0x04 +#define R160X120 0x02 //No support currently +#define R128X96 0x01 //No support currently + + +/*--------------------------------------- For the New W99683 ----------------------------------------*/ +typedef struct _VENDOR_COMMAND { + unsigned char rBits; + unsigned char bRequest; + unsigned short iValue; + unsigned short iIndex; + unsigned short DataLen; +}VENDOR_COMMAND, *PVENDOR_COMMAND; + +#define REG_READ 0x00 +#define REG_WRITE 0x01 +#define I2C_READ 0x02 +#define I2C_WRITE 0x03 +#define MEM_READ 0x04 +#define MEM_WRITE 0x05 +#define GET_VERSION 0x10 +#define ENABLE_ISP 0x11 +#define BULK_SETTING 0x13 + +#define FAIL_FUNCTION_CALL 1 + +#define ENGCLKCR 0x03 +#define ENGOPCR 0x04 +#define SystemCR 0x16 +#define DisplayOutputCR 0x9f +#define TVEncoderCR 0x2d0 +// For DSP engine +#define DSPFunctionCR 0x101 +#define DSPCropCR1 0x11c +#define DSPCropCR2 0x11d +#define DSPCropCR3 0x11e +#define DSPCropCR4 0x11f +#define DSPCropCR5 0x120 +#define DSPCropCR6 0x121 +#define DSPCropCR7 0x122 +#define DSPCropCR8 0x123 +#define DSPVideoQuaCR1 0x135 +#define DSPVideoQuaCR2 0x136 +#define DSPVideoQuaCR3 0x137 +#define DSPVideoQuaCR4 0x138 +#define DSPVideoQuaCR5 0x139 +#define DSPVideoQuaCR6 0x13a +#define DSPVideoQuaCR7 0x13b + +// For VPRE engine +#define PEConfig1 0x200 +#define PEConfig2 0x201 +#define CapYUVXScalM 0x220 +#define CapYUVXScalN 0x221 +#define CapYUVYScalM 0x222 +#define CapYUVYScalN 0x223 + +// For JPEG engine +#define JPEGModeCR 0x280 +#define JPEGHeaderCR 0x281 +#define JPEGPriScalUpCR 0x282 +#define JPEGPriHeightL 0x28B +#define JPEGPriHeightH 0x28C +#define JPEGPriWidthL 0x28D +#define JPEGPriWidthH 0x28E +#define JPEGPriRestartL 0x293 +#define JPEGPriRestartH 0x294 +#define JPEGYStrideL 0x2ac +#define JPEGYStrideH 0x2ad +#define JPEGUStrideL 0x2ae +#define JPEGUStrideH 0x2af +#define JPEGVStrideL 0x2b0 +#define JPEGVStrideH 0x2b1 + +#define JPEGLumQtblReg 0x300 +#define JPEGChroQtblReg 0x340 + +#define W683BUF_SIZE 32*1024 //same to the application + + +//W99683 struct +struct usb_W99683 { + struct video_device vdev; + + /* Device structure */ + struct usb_device *dev; + + int customid; + int desc; + unsigned char iface; + + /* Determined by sensor type */ + int maxwidth; + int maxheight; + int minwidth; + int minheight; + + int brightness; + int colour; + int contrast; + int hue; + int whiteness; + int exposure; + int auto_brt; /* Auto brightness enabled flag */ + int auto_gain; /* Auto gain control enabled flag */ + int auto_exp; /* Auto exposure enabled flag */ + int backlight; /* Backlight exposure algorithm flag */ + + struct semaphore lock; /* Serializes user-accessible operations */ + int user; /* user count for exclusive use */ + char *rawbuf; + char *iobuf; + wait_queue_head_t wq; /* Processes waiting */ + + int snap_enabled; /* Snapshot mode enabled */ + + struct semaphore param_lock; /* params lock for this camera */ + + /* /proc entries, relative to /proc/video/ov511/ */ + struct proc_dir_entry *proc_devdir; /* Per-device proc directory */ + struct proc_dir_entry *proc_info; /* /info entry */ + struct proc_dir_entry *proc_button; /* /button entry */ + struct proc_dir_entry *proc_control; /* /control entry */ +}; + +struct usb_args { + __u8 request; + __u16 value; + __u16 index; + __u16 length; +}; + +struct ctrlmsg_ioctl { + struct usb_args req; + void* data; +}; + +#define INIT_USBARGS(argp, req, val, ind, len) \ +do {\ + (argp)->request = req;\ + (argp)->value = val;\ + (argp)->index = ind;\ + (argp)->length = len;\ +}while(0) +#define IOCTLGET _IOR('v',1,struct ctrlmsg_ioctl) /* Get capabilities */ +#define IOCTLSET _IOR('v',2,struct ctrlmsg_ioctl) /* Set capabilities */ +#define IOCTLGETCLASS _IOR('v',3,UINT32) /* Get Device Class */ +#endif + +/* +bus/device idVendor/idProduct +001/001 0000/0000 + wTotalLength: 25 + bNumInterfaces: 1 + bConfigurationValue: 1 + iConfiguration: 0 + bmAttributes: 40h + MaxPower: 0 + bInterfaceNumber: 0 + bAlternateSetting: 0 + bNumEndpoints: 1 + bInterfaceClass: 9 + bInterfaceSubClass: 0 + bInterfaceProtocol: 0 + iInterface: 0 + bEndpointAddress: 81h + bmAttributes: 03h + wMaxPacketSize: 8 + bInterval: 255 + bRefresh: 0 + bSynchAddress: 0 +001/006 0416/6830 + wTotalLength: 103 + bNumInterfaces: 1 + bConfigurationValue: 1 + iConfiguration: 0 + bmAttributes: 80h + MaxPower: 250 + bInterfaceNumber: 0 + bAlternateSetting: 0 + bNumEndpoints: 3 + bInterfaceClass: 0 + bInterfaceSubClass: 0 + bInterfaceProtocol: 0 + iInterface: 0 + bEndpointAddress: 81h + bmAttributes: 02h + wMaxPacketSize: 64 + bInterval: 1 + bRefresh: 0 + bSynchAddress: 0 + bEndpointAddress: 02h + bmAttributes: 02h + wMaxPacketSize: 64 + bInterval: 1 + bRefresh: 0 + bSynchAddress: 0 + bEndpointAddress: 83h + bmAttributes: 03h + wMaxPacketSize: 8 + bInterval: 1 + bRefresh: 0 + bSynchAddress: 0 +*/ diff --git a/uClinux-2.4.20-uc1/drivers/usb/W99685ISP.h b/uClinux-2.4.20-uc1/drivers/usb/W99685ISP.h new file mode 100755 index 0000000..487282f --- /dev/null +++ b/uClinux-2.4.20-uc1/drivers/usb/W99685ISP.h @@ -0,0 +1,708 @@ +#ifndef __W99685ISP_H__ +#define __W99685ISP_H__ + 0x02, 0x29, 0x50, 0x02, 0x00, 0x06, 0xC0, 0xE0, 0xC0, 0xF0, 0xC0, 0x83, 0xC0, 0x82, 0xC0, 0xD0, + 0x75, 0xD0, 0x08, 0x90, 0xB0, 0x06, 0xE0, 0x20, 0xE1, 0x03, 0x02, 0x00, 0xF8, 0x90, 0xB2, 0x4C, + 0xE0, 0x20, 0xE2, 0x03, 0x02, 0x00, 0xF8, 0x44, 0x04, 0xF0, 0x90, 0x80, 0xF2, 0xE0, 0x60, 0x10, + 0x90, 0x81, 0x62, 0xE0, 0xB4, 0x01, 0x09, 0x90, 0x80, 0xF2, 0xE0, 0x14, 0xF0, 0x02, 0x00, 0xF8, + 0x90, 0x81, 0x62, 0xE0, 0xB4, 0x01, 0x11, 0x90, 0x80, 0xEF, 0xE0, 0x60, 0x0B, 0x90, 0x80, 0xF2, + 0x74, 0x02, 0xF0, 0x90, 0x81, 0x7D, 0x14, 0xF0, 0x90, 0xB0, 0x55, 0xE0, 0x30, 0xE3, 0x08, 0x54, + 0xF1, 0xF0, 0x44, 0x06, 0xF0, 0x80, 0x0A, 0x90, 0xB0, 0x55, 0xE0, 0x54, 0xF1, 0xF0, 0x44, 0x08, + 0xF0, 0x90, 0x80, 0x00, 0xE0, 0x60, 0x03, 0x02, 0x00, 0xF8, 0x90, 0x81, 0x7C, 0xE0, 0x60, 0x68, + 0x90, 0x81, 0x69, 0xE0, 0x90, 0x81, 0x87, 0xF0, 0x90, 0x81, 0x63, 0xE0, 0x30, 0xE6, 0x2A, 0x90, + 0x81, 0x87, 0xE0, 0x75, 0xF0, 0x09, 0xA4, 0x24, 0xF1, 0xF9, 0x74, 0x24, 0x35, 0xF0, 0xFA, 0x7B, + 0xFF, 0x90, 0x81, 0x84, 0xEB, 0xF0, 0xA3, 0xEA, 0xF0, 0xA3, 0xE9, 0xF0, 0x7F, 0xBC, 0x7E, 0x02, + 0x7D, 0xF0, 0x7C, 0x00, 0x12, 0x23, 0x6C, 0x80, 0x28, 0x90, 0x81, 0x87, 0xE0, 0x75, 0xF0, 0x09, + 0xA4, 0x24, 0xBB, 0xF9, 0x74, 0x24, 0x35, 0xF0, 0xFA, 0x7B, 0xFF, 0x90, 0x81, 0x84, 0xEB, 0xF0, + 0xA3, 0xEA, 0xF0, 0xA3, 0xE9, 0xF0, 0x7F, 0x80, 0x7E, 0x02, 0x7D, 0xE0, 0x7C, 0x01, 0x12, 0x23, + 0x6C, 0x90, 0x81, 0x7C, 0xE4, 0xF0, 0x80, 0x10, 0x90, 0xB0, 0x04, 0xE0, 0x44, 0x08, 0xF0, 0x54, + 0xF7, 0xF0, 0x90, 0x80, 0x00, 0x74, 0x01, 0xF0, 0x90, 0xB0, 0x06, 0xE0, 0x20, 0xE3, 0x03, 0x02, + 0x02, 0x06, 0x90, 0xB2, 0x94, 0xE0, 0x20, 0xE3, 0x03, 0x02, 0x02, 0x06, 0x90, 0x80, 0x00, 0xE4, + 0xF0, 0x90, 0x81, 0x7B, 0x04, 0xF0, 0x90, 0xB2, 0xD6, 0xE0, 0x90, 0x81, 0x78, 0xF0, 0x90, 0xB2, + 0xD7, 0xE0, 0x90, 0x81, 0x79, 0xF0, 0x90, 0xB2, 0xD8, 0xE0, 0x90, 0x81, 0x7A, 0xF0, 0x90, 0xB2, + 0xA4, 0xE0, 0x30, 0xE0, 0x25, 0x90, 0x81, 0x74, 0x74, 0x01, 0xF0, 0x90, 0xB2, 0xD3, 0xE0, 0x90, + 0x81, 0x83, 0xF0, 0x90, 0xB2, 0xD4, 0xE0, 0x90, 0x81, 0x82, 0xF0, 0x90, 0xB2, 0xD5, 0xE0, 0x90, + 0x81, 0x81, 0xF0, 0x90, 0x81, 0x80, 0xE4, 0xF0, 0x80, 0x22, 0x90, 0x81, 0x74, 0xE4, 0xF0, 0x90, + 0xB2, 0xD0, 0xE0, 0x90, 0x81, 0x83, 0xF0, 0x90, 0xB2, 0xD1, 0xE0, 0x90, 0x81, 0x82, 0xF0, 0x90, + 0xB2, 0xD2, 0xE0, 0x90, 0x81, 0x81, 0xF0, 0x90, 0x81, 0x80, 0xE4, 0xF0, 0x90, 0xB2, 0x94, 0xE0, + 0x44, 0x88, 0xF0, 0x90, 0x81, 0x80, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0x78, 0x01, 0x12, 0x2B, 0x8B, 0x90, 0x81, 0x80, 0x12, 0x2B, 0x9E, 0x90, 0x81, 0x80, 0xE0, + 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0x24, 0x02, 0xFF, 0xE4, 0x3E, 0xFE, 0xE4, + 0x3D, 0xFD, 0xE4, 0x3C, 0xFC, 0x90, 0x81, 0x80, 0x12, 0x2B, 0x9E, 0x90, 0xB0, 0x30, 0x74, 0x03, + 0xF0, 0x90, 0x81, 0x83, 0xE0, 0x90, 0xB0, 0x31, 0xF0, 0x90, 0x81, 0x82, 0xE0, 0x90, 0xB0, 0x32, + 0xF0, 0x90, 0x81, 0x81, 0xE0, 0x90, 0xB0, 0x33, 0xF0, 0x90, 0x81, 0x80, 0xE0, 0x90, 0xB0, 0x34, + 0xF0, 0x90, 0xB0, 0x30, 0xE0, 0x44, 0x04, 0xF0, 0x90, 0xB0, 0x35, 0x74, 0xFF, 0xF0, 0xA3, 0x74, + 0xE1, 0xF0, 0x90, 0xB0, 0x35, 0xE4, 0xF0, 0xA3, 0x74, 0x04, 0xF0, 0x90, 0x80, 0xF1, 0xE0, 0x90, + 0xB0, 0x35, 0xF0, 0xA3, 0xE4, 0xF0, 0x90, 0xB0, 0x06, 0xE0, 0x30, 0xE5, 0x03, 0x12, 0x0B, 0x8A, + 0x90, 0xB0, 0x06, 0xE0, 0x30, 0xE6, 0x03, 0x12, 0x0B, 0x9D, 0xD0, 0xD0, 0xD0, 0x82, 0xD0, 0x83, + 0xD0, 0xF0, 0xD0, 0xE0, 0x32, 0x12, 0x03, 0x9B, 0x75, 0xA8, 0x81, 0x90, 0x80, 0x01, 0xE0, 0xB4, + 0x01, 0x2C, 0xE4, 0xF0, 0x90, 0x80, 0xE7, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0x90, 0x81, 0xA0, 0x12, 0x2B, 0x9E, 0xE4, 0x90, 0x81, 0xA4, 0xF0, 0x90, 0x80, 0xEB, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x12, 0x16, 0x80, 0x90, 0x81, + 0x7D, 0xE0, 0x60, 0xC7, 0x90, 0x81, 0x9B, 0x74, 0x01, 0xF0, 0xE4, 0x90, 0x81, 0x7D, 0xF0, 0x90, + 0x80, 0xF1, 0xE0, 0x04, 0xFF, 0x74, 0x01, 0xC8, 0xEF, 0xC8, 0x08, 0x80, 0x02, 0xC3, 0x33, 0xD8, + 0xFC, 0x90, 0x81, 0x9B, 0xF0, 0x7F, 0x01, 0x90, 0x81, 0x9B, 0xE0, 0xFE, 0x90, 0x80, 0xF0, 0xE0, + 0x5E, 0x60, 0x12, 0x90, 0x80, 0xF1, 0xE0, 0x2F, 0xF0, 0xE0, 0xC3, 0x94, 0x04, 0x40, 0x12, 0xE0, + 0x24, 0xFC, 0xF0, 0x80, 0x0C, 0xEE, 0x25, 0xE0, 0x90, 0x81, 0x9B, 0xF0, 0x0F, 0xEF, 0xB4, 0x04, + 0xD6, 0x90, 0x80, 0xF1, 0xE0, 0x44, 0xF0, 0xFF, 0x90, 0x81, 0x9A, 0xF0, 0xFB, 0x7F, 0x4A, 0x7D, + 0x02, 0x12, 0x27, 0x31, 0x02, 0x02, 0x2B, 0x22, 0x41, 0x80, 0x00, 0x00, 0x41, 0x80, 0xA9, 0x00, + 0x41, 0x80, 0xAA, 0x00, 0x42, 0x80, 0xAB, 0x00, 0x00, 0x41, 0x80, 0xAD, 0x00, 0x41, 0x80, 0xAE, + 0x00, 0x41, 0x80, 0xAF, 0x00, 0x41, 0x80, 0xB0, 0x00, 0x41, 0x80, 0xB1, 0x00, 0x41, 0x80, 0xB2, + 0x00, 0x41, 0x80, 0xB3, 0x00, 0x41, 0x80, 0xB4, 0x00, 0x44, 0x80, 0xDD, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x80, 0x01, 0x00, 0x44, 0x80, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x41, 0x80, 0xE5, 0x00, 0x41, + 0x80, 0xEF, 0x00, 0x41, 0x80, 0xF0, 0xFF, 0x41, 0x80, 0xF1, 0x00, 0x41, 0x80, 0xF2, 0x00, 0x41, + 0x80, 0xE6, 0x00, 0x41, 0x80, 0xF8, 0x00, 0x60, 0x63, 0x80, 0xFA, 0x00, 0x08, 0xF0, 0x03, 0x00, + 0x80, 0xE9, 0x0D, 0x88, 0x10, 0x80, 0x47, 0x40, 0x00, 0x01, 0x24, 0x08, 0x0C, 0xB7, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x40, 0x54, 0x0A, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x81, + 0x7D, 0x00, 0x41, 0x81, 0x7E, 0x00, 0x41, 0x81, 0x7F, 0x00, 0x00, 0x12, 0x03, 0xBA, 0x12, 0x05, + 0x18, 0x12, 0x09, 0x12, 0x12, 0x04, 0x09, 0x12, 0x09, 0x7B, 0x90, 0xB0, 0x03, 0xE0, 0x44, 0x40, + 0xF0, 0xA3, 0xE0, 0x44, 0x40, 0xF0, 0x12, 0x0B, 0x08, 0x22, 0x90, 0xB0, 0x00, 0xE0, 0x54, 0xBF, + 0xF0, 0x90, 0xB0, 0x41, 0x74, 0x3E, 0xF0, 0xA3, 0x74, 0xC0, 0xF0, 0x90, 0xB0, 0x46, 0x74, 0xD0, + 0xF0, 0x90, 0xB0, 0x48, 0x74, 0xF4, 0xF0, 0x90, 0xB0, 0x02, 0x74, 0xFF, 0xF0, 0xE4, 0xF0, 0xA3, + 0x74, 0xE2, 0xF0, 0xA3, 0x74, 0x80, 0xF0, 0x90, 0xB0, 0x50, 0x74, 0x10, 0xF0, 0xE4, 0xFF, 0xFE, + 0x0F, 0xBF, 0x00, 0x01, 0x0E, 0xBE, 0x07, 0xF8, 0xBF, 0xD0, 0xF5, 0x90, 0xB0, 0x00, 0xE0, 0x44, + 0x40, 0xF0, 0x90, 0xB0, 0x05, 0x74, 0xFF, 0xF0, 0x22, 0xE4, 0x90, 0x81, 0x9C, 0xF0, 0x90, 0xB0, + 0x16, 0x74, 0x06, 0xF0, 0xE4, 0x90, 0x81, 0x7C, 0xF0, 0x90, 0x81, 0x5D, 0x74, 0x02, 0xF0, 0xA3, + 0x74, 0x80, 0xF0, 0xA3, 0x74, 0x01, 0xF0, 0xA3, 0x74, 0xE0, 0xF0, 0x7F, 0x4A, 0x12, 0x27, 0x12, + 0xEF, 0x60, 0x0A, 0x90, 0x81, 0x62, 0x74, 0x01, 0xF0, 0xA3, 0x74, 0xC0, 0xF0, 0x90, 0xB2, 0x4D, + 0x74, 0xE3, 0xF0, 0x90, 0xB0, 0x48, 0x74, 0x11, 0xF0, 0x7F, 0x42, 0x12, 0x27, 0x12, 0xEF, 0x60, + 0x0A, 0x90, 0x81, 0x62, 0x74, 0x02, 0xF0, 0xA3, 0x74, 0x80, 0xF0, 0x90, 0x81, 0x62, 0xE0, 0x24, + 0xFE, 0x60, 0x4B, 0x04, 0x60, 0x03, 0x02, 0x04, 0xEF, 0x90, 0x81, 0x6A, 0x74, 0x80, 0xF0, 0xA3, + 0x74, 0x08, 0xF0, 0xA3, 0x74, 0x80, 0xF0, 0xA3, 0x74, 0x08, 0xF0, 0x90, 0xB2, 0x4D, 0x74, 0x53, + 0xF0, 0xA3, 0x74, 0x0C, 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, 0x74, 0x0C, 0xF0, 0xE4, 0xA3, 0xF0, 0x90, + 0x81, 0x63, 0xE0, 0x30, 0xE6, 0x07, 0x90, 0xB2, 0xA1, 0xE0, 0x44, 0x50, 0xF0, 0x90, 0x81, 0x64, + 0x74, 0x4A, 0xF0, 0x12, 0x28, 0x52, 0x90, 0x80, 0xE6, 0x74, 0x02, 0xF0, 0x80, 0x41, 0x90, 0x81, + 0x6A, 0x74, 0x60, 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, 0x74, 0x10, 0xF0, 0xA3, 0x74, 0x0A, 0xF0, 0xA3, + 0x74, 0x07, 0xF0, 0x90, 0xB2, 0x4D, 0x74, 0xE3, 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, + 0xA3, 0xF0, 0x90, 0x81, 0x64, 0x74, 0x42, 0xF0, 0x12, 0x27, 0xFE, 0x90, 0x81, 0x9C, 0xE0, 0x60, + 0x08, 0x90, 0x80, 0xE6, 0x74, 0x01, 0xF0, 0x80, 0x06, 0x90, 0x80, 0xE6, 0x74, 0x02, 0xF0, 0x12, + 0x07, 0xE3, 0x90, 0xB2, 0x4E, 0xE0, 0x90, 0x81, 0x65, 0xF0, 0x90, 0xB2, 0x4F, 0xE0, 0x90, 0x81, + 0x66, 0xF0, 0x90, 0xB2, 0x50, 0xE0, 0x90, 0x81, 0x67, 0xF0, 0x90, 0xB2, 0x51, 0xE0, 0x90, 0x81, + 0x68, 0xF0, 0xE4, 0x90, 0x81, 0x61, 0xF0, 0x22, 0xE4, 0x90, 0xB2, 0x02, 0xF0, 0xA3, 0x74, 0xC2, + 0xF0, 0xA3, 0x74, 0x01, 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, 0x74, 0x1A, 0xF0, 0xA3, 0x74, 0x04, 0xF0, + 0xE4, 0xA3, 0xF0, 0xA3, 0x74, 0xB0, 0xF0, 0xA3, 0x74, 0x04, 0xF0, 0xE4, 0x90, 0xB2, 0x0E, 0xF0, + 0xA3, 0x74, 0x46, 0xF0, 0xA3, 0x74, 0x05, 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, 0x74, 0x9E, 0xF0, 0xA3, + 0x74, 0x07, 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, 0x74, 0x34, 0xF0, 0xA3, 0x74, 0x08, 0xF0, 0x90, 0xB2, + 0x02, 0xE0, 0x90, 0xB2, 0xB8, 0xF0, 0x90, 0xB2, 0x03, 0xE0, 0x90, 0xB2, 0xB9, 0xF0, 0x90, 0xB2, + 0x04, 0xE0, 0x90, 0xB2, 0xBA, 0xF0, 0x90, 0xB2, 0x05, 0xE0, 0x90, 0xB2, 0xBB, 0xF0, 0x90, 0xB2, + 0x06, 0xE0, 0x90, 0xB2, 0xBC, 0xF0, 0x90, 0xB2, 0x07, 0xE0, 0x90, 0xB2, 0xBD, 0xF0, 0x90, 0xB2, + 0x08, 0xE0, 0x90, 0xB2, 0xBE, 0xF0, 0x90, 0xB2, 0x09, 0xE0, 0x90, 0xB2, 0xBF, 0xF0, 0x90, 0xB2, + 0x0A, 0xE0, 0x90, 0xB2, 0xC0, 0xF0, 0x90, 0xB2, 0x0E, 0xE0, 0x90, 0xB2, 0xC1, 0xF0, 0x90, 0xB2, + 0x0F, 0xE0, 0x90, 0xB2, 0xC2, 0xF0, 0x90, 0xB2, 0x10, 0xE0, 0x90, 0xB2, 0xC3, 0xF0, 0x90, 0xB2, + 0x11, 0xE0, 0x90, 0xB2, 0xC4, 0xF0, 0x90, 0xB2, 0x12, 0xE0, 0x90, 0xB2, 0xC5, 0xF0, 0x90, 0xB2, + 0x13, 0xE0, 0x90, 0xB2, 0xC6, 0xF0, 0x90, 0xB2, 0x14, 0xE0, 0x90, 0xB2, 0xC7, 0xF0, 0x90, 0xB2, + 0x15, 0xE0, 0x90, 0xB2, 0xC8, 0xF0, 0x90, 0xB2, 0x16, 0xE0, 0x90, 0xB2, 0xC9, 0xF0, 0xE4, 0x90, + 0xB2, 0xD0, 0xF0, 0xA3, 0x74, 0xCA, 0xF0, 0xA3, 0x74, 0x08, 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, 0x74, + 0xF6, 0xF0, 0xA3, 0x74, 0x09, 0xF0, 0xE4, 0x90, 0xB2, 0x0B, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0x90, + 0xB2, 0x17, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0x81, 0x9C, 0x12, 0x2B, 0xAA, 0x00, 0x16, 0x44, + 0x00, 0x90, 0x81, 0x9C, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x78, + 0x01, 0x12, 0x2B, 0x78, 0x90, 0x81, 0x9C, 0x12, 0x2B, 0x9E, 0x90, 0x81, 0x9F, 0xE0, 0x90, 0x81, + 0x75, 0xF0, 0x90, 0x81, 0x9E, 0xE0, 0x90, 0x81, 0x76, 0xF0, 0x90, 0x81, 0x9D, 0xE0, 0x90, 0x81, + 0x77, 0xF0, 0xE4, 0x90, 0xB2, 0x1A, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, + 0xF0, 0x90, 0xB2, 0x48, 0x74, 0x84, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0xB0, 0x58, + 0x74, 0x17, 0xF0, 0xA3, 0x74, 0x20, 0xF0, 0x90, 0xB2, 0xB0, 0x74, 0x04, 0xF0, 0xE4, 0xA3, 0xF0, + 0x90, 0xB2, 0xA1, 0xE0, 0x44, 0x04, 0xF0, 0x90, 0x81, 0xA0, 0x12, 0x2B, 0xAA, 0x00, 0x11, 0x94, + 0x00, 0x90, 0x81, 0xA0, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0x24, 0x02, + 0xFF, 0xE4, 0x3E, 0xFE, 0xE4, 0x3D, 0xFD, 0xE4, 0x3C, 0xFC, 0x90, 0x81, 0xA0, 0x12, 0x2B, 0x9E, + 0x90, 0xB0, 0x30, 0x74, 0x03, 0xF0, 0x90, 0x81, 0xA3, 0xE0, 0x90, 0xB0, 0x31, 0xF0, 0x90, 0x81, + 0xA2, 0xE0, 0x90, 0xB0, 0x32, 0xF0, 0x90, 0x81, 0xA1, 0xE0, 0x90, 0xB0, 0x33, 0xF0, 0xE4, 0xA3, + 0xF0, 0x90, 0xB0, 0x30, 0xE0, 0x44, 0x04, 0xF0, 0x90, 0xB0, 0x35, 0x74, 0xFF, 0xF0, 0xA3, 0x74, + 0xE1, 0xF0, 0xE4, 0x90, 0xB0, 0x35, 0xF0, 0xA3, 0x74, 0x04, 0xF0, 0x90, 0x81, 0xA0, 0x12, 0x2B, + 0xAA, 0x00, 0x13, 0xEC, 0x00, 0x90, 0x81, 0xA0, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, + 0xA3, 0xE0, 0x24, 0x02, 0xFF, 0xE4, 0x3E, 0xFE, 0xE4, 0x3D, 0xFD, 0xE4, 0x3C, 0xFC, 0x90, 0x81, + 0xA0, 0x12, 0x2B, 0x9E, 0x90, 0xB0, 0x30, 0x74, 0x03, 0xF0, 0x90, 0x81, 0xA3, 0xE0, 0x90, 0xB0, + 0x31, 0xF0, 0x90, 0x81, 0xA2, 0xE0, 0x90, 0xB0, 0x32, 0xF0, 0x90, 0x81, 0xA1, 0xE0, 0x90, 0xB0, + 0x33, 0xF0, 0xE4, 0xA3, 0xF0, 0x90, 0xB0, 0x30, 0xE0, 0x44, 0x04, 0xF0, 0x90, 0xB0, 0x35, 0x74, + 0xFF, 0xF0, 0xA3, 0x74, 0xE1, 0xF0, 0xE4, 0x90, 0xB0, 0x35, 0xF0, 0xA3, 0x74, 0x04, 0xF0, 0x90, + 0x81, 0x9C, 0x12, 0x2B, 0xAA, 0x00, 0x16, 0x44, 0x00, 0x90, 0x81, 0x9C, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0x24, 0x02, 0xFF, 0xE4, 0x3E, 0xFE, 0xE4, 0x3D, 0xFD, 0xE4, + 0x3C, 0xFC, 0xA3, 0x12, 0x2B, 0x9E, 0x90, 0x81, 0x9C, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0x78, 0x01, 0x12, 0x2B, 0x78, 0x90, 0x81, 0x9C, 0x12, 0x2B, 0x9E, 0x90, + 0x81, 0x9F, 0xE0, 0x90, 0x81, 0x75, 0xF0, 0x90, 0x81, 0x9E, 0xE0, 0x90, 0x81, 0x76, 0xF0, 0x90, + 0x81, 0x9D, 0xE0, 0x90, 0x81, 0x77, 0xF0, 0x90, 0xB0, 0x30, 0x74, 0x03, 0xF0, 0x90, 0x81, 0xA3, + 0xE0, 0x90, 0xB0, 0x31, 0xF0, 0x90, 0x81, 0xA2, 0xE0, 0x90, 0xB0, 0x32, 0xF0, 0x90, 0x81, 0xA1, + 0xE0, 0x90, 0xB0, 0x33, 0xF0, 0xE4, 0xA3, 0xF0, 0x90, 0xB0, 0x30, 0xE0, 0x44, 0x04, 0xF0, 0x90, + 0xB0, 0x35, 0x74, 0xFF, 0xF0, 0xA3, 0x74, 0xE1, 0xF0, 0xE4, 0x90, 0xB0, 0x35, 0xF0, 0xA3, 0x74, + 0x04, 0xF0, 0x22, 0x90, 0x81, 0x62, 0xE0, 0xB4, 0x01, 0x23, 0x90, 0xB2, 0x52, 0x74, 0xBC, 0xF0, + 0xA3, 0x74, 0x02, 0xF0, 0xA3, 0x74, 0xF0, 0xF0, 0xE4, 0xA3, 0xF0, 0x90, 0xB2, 0x20, 0x74, 0x23, + 0xF0, 0xA3, 0x74, 0x20, 0xF0, 0xA3, 0x74, 0x01, 0xF0, 0xA3, 0xF0, 0x80, 0x1C, 0x90, 0xB2, 0x52, + 0x74, 0x80, 0xF0, 0xA3, 0x74, 0x02, 0xF0, 0xA3, 0x74, 0xE0, 0xF0, 0xA3, 0x74, 0x01, 0xF0, 0x90, + 0xB2, 0x20, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0x81, 0x9D, 0x12, 0x2B, 0xAA, 0x00, + 0x00, 0x00, 0x00, 0x90, 0xB2, 0x52, 0xE0, 0x90, 0x81, 0xA0, 0xF0, 0x90, 0xB2, 0x53, 0xE0, 0x90, + 0x81, 0x9F, 0xF0, 0x90, 0xB2, 0x21, 0xE0, 0xFF, 0xE4, 0xFC, 0xFD, 0xFE, 0x90, 0x81, 0x9D, 0xE0, + 0xF8, 0xA3, 0xE0, 0xF9, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, 0x12, 0x2A, 0x4A, 0xEC, 0xC0, 0xE0, + 0xED, 0xC0, 0xE0, 0xEE, 0xC0, 0xE0, 0xEF, 0xC0, 0xE0, 0x90, 0xB2, 0x20, 0xE0, 0xFF, 0xE4, 0xFC, + 0xFD, 0xFE, 0xF8, 0xF9, 0xFA, 0xCB, 0xEF, 0xCB, 0xD0, 0xE0, 0xFF, 0xD0, 0xE0, 0xFE, 0xD0, 0xE0, + 0xFD, 0xD0, 0xE0, 0xFC, 0x12, 0x2A, 0xD5, 0x90, 0x81, 0x9D, 0x12, 0x2B, 0x9E, 0x90, 0x81, 0xA0, + 0xE0, 0x90, 0xB2, 0x36, 0xF0, 0x90, 0x81, 0x9F, 0xE0, 0x90, 0xB2, 0x37, 0xF0, 0x90, 0x81, 0x9D, + 0x12, 0x2B, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x90, 0xB2, 0x54, 0xE0, 0x90, 0x81, 0xA0, 0xF0, 0x90, + 0xB2, 0x55, 0xE0, 0x90, 0x81, 0x9F, 0xF0, 0x90, 0xB2, 0x23, 0xE0, 0xFF, 0xE4, 0xFC, 0xFD, 0xFE, + 0x90, 0x81, 0x9D, 0xE0, 0xF8, 0xA3, 0xE0, 0xF9, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, 0x12, 0x2A, + 0x4A, 0xEC, 0xC0, 0xE0, 0xED, 0xC0, 0xE0, 0xEE, 0xC0, 0xE0, 0xEF, 0xC0, 0xE0, 0x90, 0xB2, 0x22, + 0xE0, 0xFF, 0xE4, 0xFC, 0xFD, 0xFE, 0xF8, 0xF9, 0xFA, 0xCB, 0xEF, 0xCB, 0xD0, 0xE0, 0xFF, 0xD0, + 0xE0, 0xFE, 0xD0, 0xE0, 0xFD, 0xD0, 0xE0, 0xFC, 0x12, 0x2A, 0xD5, 0x90, 0x81, 0x9D, 0x12, 0x2B, + 0x9E, 0x90, 0x81, 0xA0, 0xE0, 0x90, 0xB2, 0x38, 0xF0, 0x90, 0x81, 0x9F, 0xE0, 0x90, 0xB2, 0x39, + 0xF0, 0x22, 0x90, 0xB2, 0x00, 0x74, 0xAC, 0xF0, 0x54, 0x7F, 0xF0, 0xA3, 0x74, 0x35, 0xF0, 0x90, + 0xB2, 0x35, 0xE0, 0x54, 0xF8, 0xF0, 0x90, 0xB2, 0x4C, 0x74, 0x0F, 0xF0, 0x90, 0xB2, 0x00, 0xE0, + 0x44, 0x80, 0xF0, 0x54, 0x7F, 0xF0, 0x90, 0xB0, 0x04, 0xE0, 0x44, 0x02, 0xF0, 0x22, 0xE4, 0xFE, + 0xEE, 0x90, 0x0A, 0x3E, 0x93, 0xFF, 0x90, 0x0A, 0x83, 0x93, 0xFD, 0x74, 0x00, 0x2E, 0xF5, 0x82, + 0xE4, 0x34, 0xB1, 0xF5, 0x83, 0xED, 0xF0, 0x0E, 0xEE, 0xB4, 0x40, 0xE4, 0xE4, 0xFE, 0xEE, 0x90, + 0x0A, 0x3E, 0x93, 0xFF, 0x90, 0x0A, 0xC8, 0x93, 0xFD, 0x74, 0x40, 0x2E, 0xF5, 0x82, 0xE4, 0x34, + 0xB1, 0xF5, 0x83, 0xED, 0xF0, 0x0E, 0xEE, 0xB4, 0x40, 0xE4, 0x22, 0x90, 0xB0, 0x03, 0xE0, 0x44, + 0x08, 0xF0, 0x90, 0xB2, 0x94, 0xE0, 0x44, 0x80, 0xF0, 0x90, 0xB2, 0x80, 0x74, 0x90, 0xF0, 0xA3, + 0x74, 0x70, 0xF0, 0xE4, 0x90, 0xB2, 0x83, 0xF0, 0x90, 0xB2, 0x86, 0x74, 0xF4, 0xF0, 0x90, 0xB2, + 0x38, 0xE0, 0x90, 0xB2, 0xDC, 0xF0, 0x90, 0xB2, 0x39, 0xE0, 0x90, 0xB2, 0xDD, 0xF0, 0x90, 0xB2, + 0x36, 0xE0, 0x90, 0xB2, 0xDE, 0xF0, 0x90, 0xB2, 0x37, 0xE0, 0x90, 0xB2, 0xDF, 0xF0, 0x90, 0xB2, + 0x88, 0x74, 0xE0, 0xF0, 0xA3, 0x74, 0x01, 0xF0, 0xA3, 0x74, 0x80, 0xF0, 0xA3, 0x74, 0x02, 0xF0, + 0x90, 0xB2, 0x90, 0xF0, 0xE4, 0xA3, 0xF0, 0x90, 0xB2, 0xA0, 0x04, 0xF0, 0xE4, 0x90, 0xB2, 0xA2, + 0xF0, 0x90, 0xB2, 0x36, 0xE0, 0x90, 0x81, 0x9D, 0xF0, 0x90, 0xB2, 0x37, 0xE0, 0x90, 0x81, 0x9C, + 0xF0, 0xE0, 0xC3, 0x13, 0xFE, 0xA3, 0xE0, 0x13, 0xFF, 0x90, 0x81, 0x9C, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0xE0, 0x90, 0xB2, 0xCA, 0xF0, 0x90, 0x81, 0x9C, 0xE0, 0x90, 0xB2, 0xCB, 0xF0, 0xEE, 0xC3, + 0x13, 0xFE, 0xEF, 0x13, 0xFF, 0x90, 0x81, 0x9C, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xE0, 0x90, 0xB2, + 0xCC, 0xF0, 0x90, 0x81, 0x9C, 0xE0, 0x90, 0xB2, 0xCD, 0xF0, 0x90, 0xB2, 0xCC, 0xE0, 0x90, 0xB2, + 0xCE, 0xF0, 0x90, 0xB2, 0xCD, 0xE0, 0x90, 0xB2, 0xCF, 0xF0, 0x12, 0x09, 0x3E, 0x22, 0x00, 0x01, + 0x05, 0x06, 0x0E, 0x0F, 0x1B, 0x1C, 0x02, 0x04, 0x07, 0x0D, 0x10, 0x1A, 0x1D, 0x2A, 0x03, 0x08, + 0x0C, 0x11, 0x19, 0x1E, 0x29, 0x2B, 0x09, 0x0B, 0x12, 0x18, 0x1F, 0x28, 0x2C, 0x35, 0x0A, 0x13, + 0x17, 0x20, 0x27, 0x2D, 0x34, 0x36, 0x14, 0x16, 0x21, 0x26, 0x2E, 0x33, 0x37, 0x3C, 0x15, 0x22, + 0x25, 0x2F, 0x32, 0x38, 0x3B, 0x3D, 0x23, 0x24, 0x30, 0x31, 0x39, 0x3A, 0x3E, 0x3F, 0xFF, 0xDB, + 0x00, 0x43, 0x00, 0x10, 0x0B, 0x0C, 0x0E, 0x0C, 0x0A, 0x10, 0x0E, 0x0D, 0x0E, 0x12, 0x11, 0x10, + 0x13, 0x18, 0x28, 0x1A, 0x18, 0x16, 0x16, 0x18, 0x31, 0x23, 0x25, 0x1D, 0x28, 0x3A, 0x33, 0x3D, + 0x3C, 0x39, 0x33, 0x38, 0x37, 0x40, 0x48, 0x5C, 0x4E, 0x40, 0x44, 0x57, 0x45, 0x37, 0x38, 0x50, + 0x6D, 0x51, 0x57, 0x5F, 0x62, 0x67, 0x68, 0x67, 0x3E, 0x4D, 0x71, 0x79, 0x70, 0x64, 0x78, 0x5C, + 0x65, 0x67, 0x63, 0xFF, 0xDB, 0x00, 0x43, 0x01, 0x11, 0x12, 0x12, 0x18, 0x15, 0x18, 0x2F, 0x1A, + 0x1A, 0x2F, 0x63, 0x42, 0x38, 0x42, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, + 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, + 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, + 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0xE4, 0x90, 0xB5, 0x40, 0xF0, 0x90, 0xB5, 0x42, + 0xF0, 0x90, 0xB5, 0x0B, 0xE0, 0x44, 0x20, 0xF0, 0xE4, 0x90, 0x80, 0xB5, 0xF0, 0xA3, 0xF0, 0x12, + 0x0B, 0x23, 0x22, 0x12, 0x0B, 0x27, 0x22, 0xE4, 0xFF, 0xFE, 0xEE, 0x90, 0x19, 0x3B, 0x93, 0xFD, + 0x74, 0x00, 0x2E, 0xF5, 0x82, 0xE4, 0x34, 0xB5, 0xF5, 0x83, 0xED, 0xF0, 0x0E, 0xEE, 0xB4, 0x20, + 0xE9, 0x7E, 0x50, 0xCD, 0xEF, 0xCD, 0x0F, 0xED, 0x90, 0x19, 0x5B, 0x93, 0xFD, 0x74, 0x00, 0x2E, + 0xF5, 0x82, 0xE4, 0x34, 0xB5, 0xF5, 0x83, 0xED, 0xF0, 0x0E, 0xEE, 0xB4, 0x60, 0xE5, 0xE4, 0x90, + 0x80, 0xBA, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0x80, 0xB7, 0xF0, 0xA3, 0xF0, 0xA3, + 0xF0, 0x90, 0x80, 0xBE, 0xF0, 0x90, 0x80, 0xC0, 0xF0, 0x90, 0x80, 0xC2, 0xF0, 0xA3, 0xF0, 0xA3, + 0xF0, 0x90, 0x80, 0x01, 0xF0, 0x90, 0x80, 0xE5, 0xF0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x90, + 0xB3, 0x21, 0xE0, 0xFF, 0x30, 0xE1, 0x03, 0x12, 0x16, 0x72, 0xD0, 0xD0, 0x22, 0xC0, 0xD0, 0x75, + 0xD0, 0x08, 0x90, 0xB5, 0x04, 0xE0, 0x90, 0x81, 0x88, 0xF0, 0xE0, 0x30, 0xE1, 0x0D, 0x7F, 0x00, + 0x7E, 0x06, 0xEF, 0x1F, 0x70, 0x01, 0x1E, 0x14, 0x4E, 0x70, 0xF7, 0x90, 0xB5, 0x04, 0xE0, 0x90, + 0x81, 0x88, 0xF0, 0xE0, 0x30, 0xE0, 0x03, 0x12, 0x0C, 0x5C, 0x90, 0x81, 0x88, 0xE0, 0x30, 0xE2, + 0x03, 0x12, 0x0C, 0x96, 0x90, 0x81, 0x88, 0xE0, 0x30, 0xE3, 0x03, 0x12, 0x0C, 0xA4, 0x90, 0x81, + 0x88, 0xE0, 0x30, 0xE5, 0x03, 0x12, 0x0C, 0xAB, 0x90, 0x81, 0x88, 0xE0, 0x30, 0xE6, 0x03, 0x12, + 0x0D, 0x05, 0x90, 0x81, 0x88, 0xE0, 0x30, 0xE7, 0x03, 0x12, 0x0D, 0x59, 0x90, 0xB5, 0x70, 0xE0, + 0x90, 0x81, 0x88, 0xF0, 0xE0, 0x30, 0xE6, 0x03, 0x12, 0x16, 0x56, 0x90, 0xB5, 0x05, 0xE0, 0x90, + 0x81, 0x88, 0xF0, 0xE0, 0x30, 0xE1, 0x03, 0x12, 0x0E, 0x1A, 0x90, 0x81, 0x88, 0xE0, 0x30, 0xE2, + 0x03, 0x12, 0x0E, 0x72, 0x90, 0x81, 0x88, 0xE0, 0x30, 0xE3, 0x03, 0x12, 0x0E, 0xA4, 0x90, 0x81, + 0x88, 0xE0, 0x30, 0xE4, 0x03, 0x12, 0x0F, 0x09, 0x90, 0x81, 0x88, 0xE0, 0x30, 0xE5, 0x03, 0x12, + 0x0F, 0x1A, 0x90, 0xB5, 0x41, 0xE0, 0x90, 0x81, 0x88, 0xF0, 0x90, 0xB5, 0x04, 0xE0, 0x90, 0x81, + 0x88, 0xF0, 0xE0, 0x30, 0xE1, 0x03, 0x12, 0x0C, 0x63, 0xD0, 0xD0, 0x22, 0x90, 0xB5, 0x06, 0x74, + 0x01, 0xF0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x90, 0x80, 0xB6, 0xE0, 0xFF, 0x70, 0x0B, 0xEF, + 0xF4, 0xF0, 0x90, 0xB5, 0x06, 0x74, 0x02, 0xF0, 0x80, 0x19, 0x90, 0xB5, 0x01, 0xE0, 0x54, 0xEF, + 0xF0, 0x90, 0xB0, 0x03, 0xE0, 0x54, 0xBF, 0xF0, 0x90, 0xB5, 0x06, 0x74, 0x02, 0xF0, 0xE4, 0x90, + 0x80, 0xB5, 0xF0, 0xD0, 0xD0, 0x22, 0x90, 0xB5, 0x06, 0x74, 0x04, 0xF0, 0x90, 0xB0, 0x40, 0xE0, + 0x54, 0x7F, 0xF0, 0x22, 0x90, 0xB5, 0x06, 0x74, 0x08, 0xF0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, + 0x12, 0x16, 0x3E, 0x90, 0x80, 0xB7, 0x74, 0x01, 0xF0, 0x90, 0x80, 0xB2, 0xF0, 0xA3, 0xF0, 0x90, + 0xB5, 0x18, 0xE0, 0xB4, 0x08, 0x30, 0x12, 0x0F, 0x88, 0x90, 0x18, 0xDA, 0xE4, 0x93, 0xFF, 0x7E, + 0x00, 0xD3, 0x90, 0x80, 0xDC, 0xE0, 0x9F, 0x90, 0x80, 0xDB, 0xE0, 0x9E, 0x50, 0x08, 0x90, 0xB5, + 0x08, 0x74, 0x08, 0xF0, 0x80, 0x16, 0x90, 0x80, 0xDB, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0xB5, + 0x08, 0x74, 0x08, 0xF0, 0x80, 0x06, 0x90, 0xB5, 0x08, 0x74, 0x02, 0xF0, 0x90, 0xB5, 0x06, 0x74, + 0x20, 0xF0, 0xD0, 0xD0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x12, 0x16, 0x3E, 0x90, 0x80, 0xB8, + 0x74, 0x01, 0xF0, 0x90, 0xB5, 0x18, 0xE0, 0xB4, 0x08, 0x30, 0x12, 0x0F, 0x88, 0x90, 0x18, 0xEE, + 0xE4, 0x93, 0xFF, 0x7E, 0x00, 0xD3, 0x90, 0x80, 0xDC, 0xE0, 0x9F, 0x90, 0x80, 0xDB, 0xE0, 0x9E, + 0x50, 0x08, 0x90, 0xB5, 0x08, 0x74, 0x08, 0xF0, 0x80, 0x16, 0x90, 0x80, 0xDB, 0xEE, 0xF0, 0xA3, + 0xEF, 0xF0, 0x90, 0xB5, 0x08, 0x74, 0x08, 0xF0, 0x80, 0x06, 0x90, 0xB5, 0x08, 0x74, 0x02, 0xF0, + 0x90, 0xB5, 0x06, 0x74, 0x40, 0xF0, 0xD0, 0xD0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x12, 0x16, + 0x3E, 0x90, 0x80, 0xB9, 0x74, 0x01, 0xF0, 0x90, 0xB5, 0x18, 0xE0, 0x64, 0x08, 0x60, 0x03, 0x02, + 0x0E, 0x0B, 0x12, 0x0F, 0x88, 0x90, 0xB5, 0x22, 0xE0, 0x70, 0x2A, 0x90, 0x19, 0x13, 0x93, 0xFF, + 0x7E, 0x00, 0xD3, 0x90, 0x80, 0xDC, 0xE0, 0x9F, 0x90, 0x80, 0xDB, 0xE0, 0x9E, 0x50, 0x08, 0x90, + 0xB5, 0x08, 0x74, 0x08, 0xF0, 0x80, 0x0E, 0x90, 0x80, 0xDB, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, + 0xB5, 0x08, 0x74, 0x08, 0xF0, 0x90, 0xB5, 0x22, 0xE0, 0xB4, 0x01, 0x2B, 0x90, 0x19, 0x17, 0xE4, + 0x93, 0xFF, 0x7E, 0x00, 0xD3, 0x90, 0x80, 0xDC, 0xE0, 0x9F, 0x90, 0x80, 0xDB, 0xE0, 0x9E, 0x50, + 0x08, 0x90, 0xB5, 0x08, 0x74, 0x08, 0xF0, 0x80, 0x0E, 0x90, 0x80, 0xDB, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0x90, 0xB5, 0x08, 0x74, 0x08, 0xF0, 0x90, 0xB5, 0x22, 0xE0, 0xB4, 0x02, 0x33, 0x90, 0x19, + 0x27, 0xE4, 0x93, 0xFF, 0x7E, 0x00, 0xD3, 0x90, 0x80, 0xDC, 0xE0, 0x9F, 0x90, 0x80, 0xDB, 0xE0, + 0x9E, 0x50, 0x08, 0x90, 0xB5, 0x08, 0x74, 0x08, 0xF0, 0x80, 0x16, 0x90, 0x80, 0xDB, 0xEE, 0xF0, + 0xA3, 0xEF, 0xF0, 0x90, 0xB5, 0x08, 0x74, 0x08, 0xF0, 0x80, 0x06, 0x90, 0xB5, 0x08, 0x74, 0x02, + 0xF0, 0x90, 0xB5, 0x06, 0x74, 0x80, 0xF0, 0xD0, 0xD0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x12, + 0x16, 0x3E, 0x90, 0xB5, 0x18, 0xE0, 0xB4, 0x08, 0x27, 0x12, 0x0F, 0x88, 0x90, 0x80, 0xD5, 0xE0, + 0xFF, 0xB4, 0x40, 0x08, 0x90, 0x80, 0xBA, 0x74, 0x01, 0xF0, 0x80, 0x1A, 0xEF, 0xB4, 0xC0, 0x08, + 0x90, 0x80, 0xBB, 0x74, 0x01, 0xF0, 0x80, 0x0E, 0x90, 0xB5, 0x08, 0x74, 0x02, 0xF0, 0x80, 0x06, + 0x90, 0xB5, 0x08, 0x74, 0x02, 0xF0, 0x90, 0x80, 0xDB, 0xE0, 0x70, 0x02, 0xA3, 0xE0, 0x70, 0x03, + 0x12, 0x1C, 0x80, 0x90, 0xB5, 0x08, 0x74, 0x08, 0xF0, 0x90, 0xB5, 0x07, 0x74, 0x02, 0xF0, 0xD0, + 0xD0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x90, 0x80, 0xBC, 0xE0, 0xB4, 0x01, 0x05, 0x12, 0x10, + 0x4B, 0x80, 0x12, 0x90, 0x80, 0xBA, 0xE0, 0xB4, 0x01, 0x05, 0x12, 0x10, 0x4C, 0x80, 0x06, 0x90, + 0xB5, 0x08, 0x74, 0x02, 0xF0, 0x90, 0xB5, 0x08, 0x74, 0x08, 0xF0, 0x90, 0xB5, 0x07, 0x74, 0x04, + 0xF0, 0xD0, 0xD0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x90, 0x80, 0xBD, 0xE0, 0xB4, 0x01, 0x05, + 0x12, 0x13, 0xC2, 0x80, 0x36, 0x90, 0x80, 0xBB, 0xE0, 0xB4, 0x01, 0x05, 0x12, 0x13, 0xD2, 0x80, + 0x2A, 0x90, 0x80, 0xB7, 0xE0, 0xB4, 0x01, 0x05, 0x12, 0x15, 0x34, 0x80, 0x1E, 0x90, 0x80, 0xB8, + 0xE0, 0xB4, 0x01, 0x05, 0x12, 0x15, 0x34, 0x80, 0x12, 0x90, 0x80, 0xB9, 0xE0, 0xB4, 0x01, 0x05, + 0x12, 0x15, 0x34, 0x80, 0x06, 0x90, 0xB5, 0x08, 0x74, 0x02, 0xF0, 0x90, 0x80, 0xBE, 0xE0, 0xB4, + 0x01, 0x08, 0x90, 0xB5, 0x08, 0x74, 0x04, 0xF0, 0x80, 0x06, 0x90, 0xB5, 0x08, 0x74, 0x01, 0xF0, + 0x90, 0xB5, 0x07, 0x74, 0x08, 0xF0, 0xD0, 0xD0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x12, 0x16, + 0x3E, 0x90, 0xB5, 0x07, 0x74, 0x10, 0xF0, 0xD0, 0xD0, 0x22, 0xE4, 0x90, 0xB5, 0x40, 0xF0, 0x90, + 0xB5, 0x01, 0xE0, 0x54, 0xFE, 0xF0, 0xE4, 0x90, 0x80, 0xA9, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, + 0xF0, 0x90, 0x80, 0xAF, 0x04, 0xF0, 0x90, 0xB5, 0x07, 0x74, 0x20, 0xF0, 0x22, 0xC0, 0xD0, 0x75, + 0xD0, 0x08, 0x90, 0xB5, 0x41, 0xE0, 0x30, 0xE7, 0x04, 0x7F, 0x01, 0x80, 0x02, 0x7F, 0x00, 0x90, + 0x80, 0xC0, 0xEF, 0xF0, 0x60, 0x16, 0x90, 0x80, 0xB3, 0x74, 0x01, 0xF0, 0x90, 0xB0, 0x03, 0xE0, + 0x44, 0x40, 0xF0, 0x90, 0xB0, 0x40, 0xE0, 0x44, 0x40, 0xF0, 0x80, 0x13, 0xE4, 0x90, 0x80, 0xB3, + 0xF0, 0x90, 0xB5, 0x00, 0xE0, 0x54, 0xFE, 0xF0, 0x90, 0xB0, 0x40, 0xE0, 0x54, 0xBF, 0xF0, 0x90, + 0xB5, 0x42, 0x74, 0x10, 0xF0, 0xD0, 0xD0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x90, 0xB5, 0x20, + 0xE0, 0x90, 0x80, 0xD5, 0xF0, 0x90, 0xB5, 0x21, 0xE0, 0x90, 0x80, 0xD6, 0xF0, 0x90, 0xB5, 0x23, + 0xE0, 0x90, 0x80, 0xD7, 0xF0, 0x90, 0xB5, 0x22, 0xE0, 0x90, 0x80, 0xD8, 0xF0, 0x90, 0xB5, 0x25, + 0xE0, 0x90, 0x80, 0xD9, 0xF0, 0x90, 0xB5, 0x24, 0xE0, 0x90, 0x80, 0xDA, 0xF0, 0x90, 0xB5, 0x27, + 0xE0, 0x90, 0x80, 0xDB, 0xF0, 0x90, 0xB5, 0x26, 0xE0, 0x90, 0x80, 0xDC, 0xF0, 0x90, 0x80, 0xD6, + 0xE0, 0xFF, 0xB4, 0x05, 0x20, 0x90, 0xB5, 0x23, 0xE0, 0x90, 0x80, 0xD1, 0xF0, 0x90, 0xB5, 0x22, + 0xE0, 0x90, 0x80, 0xD2, 0xF0, 0x90, 0xB5, 0x25, 0xE0, 0x90, 0x80, 0xD3, 0xF0, 0x90, 0xB5, 0x24, + 0xE0, 0x90, 0x80, 0xD4, 0xF0, 0x90, 0x80, 0xB9, 0xE0, 0xB4, 0x01, 0x07, 0xE4, 0x90, 0x80, 0xD9, + 0xF0, 0xA3, 0xF0, 0xEF, 0x64, 0x04, 0x60, 0x05, 0xEF, 0x64, 0x05, 0x70, 0x2A, 0x90, 0xB5, 0x24, + 0xE0, 0xFE, 0x30, 0xE0, 0x08, 0x90, 0x80, 0xC2, 0x74, 0x01, 0xF0, 0x80, 0x05, 0xE4, 0x90, 0x80, + 0xC2, 0xF0, 0x90, 0xB5, 0x26, 0xE0, 0xFE, 0x30, 0xE0, 0x08, 0x90, 0x80, 0xC3, 0x74, 0x01, 0xF0, + 0x80, 0x05, 0xE4, 0x90, 0x80, 0xC3, 0xF0, 0xEF, 0x64, 0x02, 0x60, 0x04, 0xEF, 0xB4, 0x03, 0x08, + 0x90, 0xB5, 0x22, 0xE0, 0x90, 0x80, 0xC1, 0xF0, 0xD0, 0xD0, 0x22, 0x22, 0xC0, 0xD0, 0x75, 0xD0, + 0x08, 0x90, 0x80, 0xDD, 0x12, 0x2B, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x90, 0x80, 0xE1, 0x12, 0x2B, + 0xAA, 0x00, 0x00, 0x00, 0x00, 0x90, 0xB5, 0x18, 0xE0, 0x70, 0x03, 0x02, 0x13, 0xBF, 0xE0, 0xFF, + 0xD3, 0x90, 0x80, 0xDC, 0xE0, 0x9F, 0x90, 0x80, 0xDB, 0xE0, 0x94, 0x00, 0x40, 0x03, 0x02, 0x12, + 0x3D, 0x90, 0x80, 0xD6, 0xE0, 0x64, 0x01, 0x60, 0x03, 0x02, 0x11, 0x3B, 0x90, 0x81, 0x89, 0xF0, + 0xA3, 0xF0, 0x90, 0x80, 0xDB, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x90, 0x81, 0x8A, 0xE0, 0x9F, + 0x90, 0x81, 0x89, 0xE0, 0x9E, 0x50, 0x2A, 0xA3, 0xE0, 0xFF, 0x24, 0x20, 0xF5, 0x82, 0xE4, 0x34, + 0xB5, 0xF5, 0x83, 0xE0, 0xFE, 0x74, 0x02, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xEE, + 0xF0, 0x90, 0x81, 0x8A, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, + 0xC1, 0x90, 0x80, 0xD9, 0xE0, 0xFE, 0xA3, 0xE0, 0x24, 0x00, 0xF9, 0x74, 0xB0, 0x3E, 0xFA, 0x90, + 0x81, 0x8B, 0x74, 0x01, 0xF0, 0xA3, 0xEA, 0xF0, 0xA3, 0xE9, 0xF0, 0xE4, 0x90, 0x81, 0x89, 0xF0, + 0xA3, 0xF0, 0x90, 0x80, 0xDB, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x90, 0x81, 0x8A, 0xE0, 0x9F, + 0x90, 0x81, 0x89, 0xE0, 0x9E, 0x40, 0x03, 0x02, 0x12, 0x1F, 0xA3, 0xE0, 0x24, 0x02, 0xF5, 0x82, + 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xE0, 0xFF, 0x90, 0x81, 0x8B, 0xE0, 0xFB, 0xA3, 0xE4, 0x75, 0xF0, + 0x01, 0x12, 0x2A, 0x34, 0xA9, 0xF0, 0xFA, 0xEF, 0x12, 0x2A, 0x22, 0x90, 0x81, 0x8A, 0xE0, 0x04, + 0xF0, 0x70, 0x06, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xB7, 0x90, 0x80, 0xD6, 0xE0, 0x64, + 0x03, 0x60, 0x03, 0x02, 0x11, 0xD6, 0x90, 0x81, 0x89, 0xF0, 0xA3, 0xF0, 0x90, 0x80, 0xDB, 0xE0, + 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x90, 0x81, 0x8A, 0xE0, 0x9F, 0x90, 0x81, 0x89, 0xE0, 0x9E, 0x50, + 0x2A, 0xA3, 0xE0, 0xFF, 0x24, 0x20, 0xF5, 0x82, 0xE4, 0x34, 0xB5, 0xF5, 0x83, 0xE0, 0xFE, 0x74, + 0x02, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xEE, 0xF0, 0x90, 0x81, 0x8A, 0xE0, 0x04, + 0xF0, 0x70, 0x06, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xC1, 0xE4, 0x90, 0x81, 0x89, 0xF0, + 0xA3, 0xF0, 0x90, 0x80, 0xDB, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x90, 0x81, 0x8A, 0xE0, 0x9F, + 0x90, 0x81, 0x89, 0xE0, 0x9E, 0x50, 0x78, 0x90, 0x80, 0xC1, 0xE0, 0xFF, 0x90, 0x81, 0x8A, 0xE0, + 0xFE, 0x90, 0x80, 0xDA, 0xE0, 0x2E, 0xFD, 0x74, 0x02, 0x2E, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, + 0x83, 0xE0, 0xFB, 0x12, 0x25, 0xFD, 0x90, 0x81, 0x8A, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x81, + 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xBC, 0xE4, 0x90, 0x81, 0x89, 0xF0, 0xA3, 0xF0, 0x90, 0x80, 0xDB, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x90, 0x81, 0x8A, 0xE0, 0x9F, 0x90, 0x81, 0x89, 0xE0, 0x9E, + 0x50, 0x2A, 0xA3, 0xE0, 0xFF, 0x24, 0x20, 0xF5, 0x82, 0xE4, 0x34, 0xB5, 0xF5, 0x83, 0xE0, 0xFE, + 0x74, 0x02, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xEE, 0xF0, 0x90, 0x81, 0x8A, 0xE0, + 0x04, 0xF0, 0x70, 0x06, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xC1, 0x12, 0x1C, 0x80, 0x90, + 0x80, 0xDB, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x90, 0x80, 0xDA, 0xE0, 0x2F, 0xF0, 0x90, 0x80, 0xD9, + 0xE0, 0x3E, 0xF0, 0xE4, 0x90, 0x80, 0xDB, 0xF0, 0xA3, 0xF0, 0x02, 0x13, 0xBF, 0x90, 0x80, 0xD6, + 0xE0, 0x64, 0x01, 0x60, 0x03, 0x02, 0x12, 0xFB, 0x90, 0x81, 0x89, 0xF0, 0xA3, 0xF0, 0x90, 0xB5, + 0x18, 0xE0, 0xFF, 0xC3, 0x90, 0x81, 0x8A, 0xE0, 0x9F, 0x74, 0x80, 0xF8, 0x90, 0x81, 0x89, 0xE0, + 0x64, 0x80, 0x98, 0x50, 0x2A, 0xA3, 0xE0, 0xFF, 0x24, 0x20, 0xF5, 0x82, 0xE4, 0x34, 0xB5, 0xF5, + 0x83, 0xE0, 0xFE, 0x74, 0x02, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xEE, 0xF0, 0x90, + 0x81, 0x8A, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xBF, 0x90, + 0x80, 0xD9, 0xE0, 0xFE, 0xA3, 0xE0, 0x24, 0x00, 0xF9, 0x74, 0xB0, 0x3E, 0xFA, 0x90, 0x81, 0x8B, + 0x74, 0x01, 0xF0, 0xA3, 0xEA, 0xF0, 0xA3, 0xE9, 0xF0, 0xE4, 0x90, 0x81, 0x89, 0xF0, 0xA3, 0xF0, + 0x90, 0xB5, 0x18, 0xE0, 0xFF, 0xC3, 0x90, 0x81, 0x8A, 0xE0, 0x9F, 0x74, 0x80, 0xF8, 0x90, 0x81, + 0x89, 0xE0, 0x64, 0x80, 0x98, 0x40, 0x03, 0x02, 0x13, 0x9A, 0xA3, 0xE0, 0x24, 0x02, 0xF5, 0x82, + 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xE0, 0xFF, 0x90, 0x81, 0x8B, 0xE0, 0xFB, 0xA3, 0xE4, 0x75, 0xF0, + 0x01, 0x12, 0x2A, 0x34, 0xA9, 0xF0, 0xFA, 0xEF, 0x12, 0x2A, 0x22, 0x90, 0x81, 0x8A, 0xE0, 0x04, + 0xF0, 0x70, 0x06, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xB5, 0x90, 0x80, 0xD6, 0xE0, 0x64, + 0x03, 0x60, 0x03, 0x02, 0x13, 0x9A, 0x90, 0x81, 0x89, 0xF0, 0xA3, 0xF0, 0x90, 0xB5, 0x18, 0xE0, + 0xFF, 0xC3, 0x90, 0x81, 0x8A, 0xE0, 0x9F, 0x74, 0x80, 0xF8, 0x90, 0x81, 0x89, 0xE0, 0x64, 0x80, + 0x98, 0x50, 0x2A, 0xA3, 0xE0, 0xFF, 0x24, 0x20, 0xF5, 0x82, 0xE4, 0x34, 0xB5, 0xF5, 0x83, 0xE0, + 0xFE, 0x74, 0x02, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xEE, 0xF0, 0x90, 0x81, 0x8A, + 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xBF, 0xE4, 0x90, 0x81, + 0x89, 0xF0, 0xA3, 0xF0, 0x90, 0xB5, 0x18, 0xE0, 0xFF, 0xC3, 0x90, 0x81, 0x8A, 0xE0, 0x9F, 0x74, + 0x80, 0xF8, 0x90, 0x81, 0x89, 0xE0, 0x64, 0x80, 0x98, 0x50, 0x2F, 0x90, 0x80, 0xC1, 0xE0, 0xFF, + 0x90, 0x81, 0x8A, 0xE0, 0xFE, 0x90, 0x80, 0xDA, 0xE0, 0x2E, 0xFD, 0x74, 0x02, 0x2E, 0xF5, 0x82, + 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xE0, 0xFB, 0x12, 0x25, 0xFD, 0x90, 0x81, 0x8A, 0xE0, 0x04, 0xF0, + 0x70, 0x06, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xBA, 0x90, 0xB5, 0x18, 0xE0, 0xFF, 0x90, + 0x80, 0xDA, 0xE0, 0x2F, 0xF0, 0x90, 0x80, 0xD9, 0xE0, 0x34, 0x00, 0xF0, 0x90, 0xB5, 0x18, 0xE0, + 0xFF, 0xC3, 0x90, 0x80, 0xDC, 0xE0, 0x9F, 0xF0, 0x90, 0x80, 0xDB, 0xE0, 0x94, 0x00, 0xF0, 0xD0, + 0xD0, 0x22, 0x90, 0x80, 0xBE, 0x74, 0x01, 0xF0, 0x90, 0xB5, 0x09, 0xF0, 0xE4, 0x90, 0xB5, 0x30, + 0xF0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x90, 0x80, 0xDB, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xD3, + 0x94, 0x00, 0xEE, 0x94, 0x00, 0x50, 0x03, 0x02, 0x15, 0x2C, 0xD3, 0xEF, 0x94, 0x10, 0xEE, 0x94, + 0x00, 0x50, 0x10, 0x90, 0x80, 0xBE, 0x74, 0x01, 0xF0, 0x90, 0x80, 0xDC, 0xE0, 0x90, 0xB5, 0x09, + 0xF0, 0x80, 0x14, 0x90, 0x80, 0xDC, 0xE0, 0x24, 0xF0, 0xF0, 0x90, 0x80, 0xDB, 0xE0, 0x34, 0xFF, + 0xF0, 0x90, 0xB5, 0x09, 0x74, 0x10, 0xF0, 0x90, 0x80, 0xD6, 0xE0, 0xFC, 0x70, 0x4B, 0x90, 0x81, + 0x89, 0xF0, 0x90, 0xB5, 0x09, 0xE0, 0xFE, 0x90, 0x81, 0x89, 0xE0, 0xFD, 0xC3, 0x9E, 0x40, 0x03, + 0x02, 0x14, 0xF9, 0x90, 0x80, 0xD9, 0xE0, 0xFE, 0xA3, 0xE0, 0x7B, 0x01, 0x24, 0x00, 0xF9, 0x74, + 0xB0, 0x3E, 0xFA, 0x12, 0x29, 0xDC, 0xFF, 0x74, 0x02, 0x2D, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, + 0x83, 0xEF, 0xF0, 0x90, 0x80, 0xDA, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x80, 0xD9, 0xE0, 0x04, + 0xF0, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xB9, 0xEC, 0xB4, 0x10, 0x3E, 0xE4, 0x90, 0x81, + 0x89, 0xF0, 0x90, 0xB5, 0x09, 0xE0, 0xFF, 0x90, 0x81, 0x89, 0xE0, 0xFE, 0xC3, 0x9F, 0x50, 0x79, + 0x90, 0x80, 0xDA, 0xE0, 0x90, 0x19, 0x39, 0x93, 0xFF, 0x74, 0x02, 0x2E, 0xF5, 0x82, 0xE4, 0x34, + 0x80, 0xF5, 0x83, 0xEF, 0xF0, 0x90, 0x80, 0xDA, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x80, 0xD9, + 0xE0, 0x04, 0xF0, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xC7, 0x90, 0x80, 0xD6, 0xE0, 0x64, + 0x02, 0x70, 0x43, 0x90, 0x81, 0x89, 0xF0, 0x90, 0xB5, 0x09, 0xE0, 0xFF, 0x90, 0x81, 0x89, 0xE0, + 0xC3, 0x9F, 0x50, 0x35, 0x90, 0x80, 0xC1, 0xE0, 0xFF, 0x90, 0x80, 0xDA, 0xE0, 0xFD, 0x12, 0x26, + 0x46, 0x90, 0x81, 0x89, 0xE0, 0x24, 0x02, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xEF, 0xF0, + 0x90, 0x80, 0xDA, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x80, 0xD9, 0xE0, 0x04, 0xF0, 0x90, 0x81, + 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xC1, 0x12, 0x19, 0x6B, 0xE4, 0x90, 0x81, 0x89, 0xF0, 0x90, 0xB5, + 0x09, 0xE0, 0xFF, 0x90, 0x81, 0x89, 0xE0, 0xFE, 0xC3, 0x9F, 0x50, 0x25, 0x74, 0x02, 0x2E, 0xF5, + 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xE0, 0xFF, 0x74, 0x30, 0x2E, 0xF5, 0x82, 0xE4, 0x34, 0xB5, + 0xF5, 0x83, 0xEF, 0xF0, 0x90, 0x81, 0x89, 0xE0, 0x04, 0xF0, 0x80, 0xD2, 0xE4, 0x90, 0xB5, 0x09, + 0xF0, 0xD0, 0xD0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x90, 0x80, 0xDB, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0xD3, 0x94, 0x00, 0xEE, 0x94, 0x00, 0x50, 0x03, 0x02, 0x16, 0x36, 0xD3, 0xEF, 0x94, 0x10, + 0xEE, 0x94, 0x00, 0x50, 0x10, 0x90, 0x80, 0xBE, 0x74, 0x01, 0xF0, 0x90, 0x80, 0xDC, 0xE0, 0x90, + 0xB5, 0x09, 0xF0, 0x80, 0x14, 0x90, 0x80, 0xDC, 0xE0, 0x24, 0xF0, 0xF0, 0x90, 0x80, 0xDB, 0xE0, + 0x34, 0xFF, 0xF0, 0x90, 0xB5, 0x09, 0x74, 0x10, 0xF0, 0xE4, 0xFF, 0x90, 0xB5, 0x09, 0xE0, 0xFE, + 0xEF, 0xC3, 0x9E, 0x40, 0x03, 0x02, 0x16, 0x3B, 0x90, 0x80, 0xB7, 0xE0, 0xB4, 0x01, 0x18, 0x90, + 0x80, 0xDA, 0xE0, 0x90, 0x18, 0xDA, 0x93, 0xFE, 0x74, 0x30, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0xB5, + 0xF5, 0x83, 0xEE, 0xF0, 0x02, 0x16, 0x24, 0x90, 0x80, 0xB8, 0xE0, 0xB4, 0x01, 0x17, 0x90, 0x80, + 0xDA, 0xE0, 0x90, 0x18, 0xEC, 0x93, 0xFE, 0x74, 0x30, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0xB5, 0xF5, + 0x83, 0xEE, 0xF0, 0x80, 0x5F, 0x90, 0x80, 0xB9, 0xE0, 0x64, 0x01, 0x70, 0x57, 0x90, 0xB5, 0x22, + 0xE0, 0x70, 0x17, 0x90, 0x80, 0xDA, 0xE0, 0x90, 0x19, 0x13, 0x93, 0xFE, 0x74, 0x30, 0x2F, 0xF5, + 0x82, 0xE4, 0x34, 0xB5, 0xF5, 0x83, 0xEE, 0xF0, 0x80, 0x3A, 0x90, 0xB5, 0x22, 0xE0, 0xB4, 0x01, + 0x17, 0x90, 0x80, 0xDA, 0xE0, 0x90, 0x19, 0x17, 0x93, 0xFE, 0x74, 0x30, 0x2F, 0xF5, 0x82, 0xE4, + 0x34, 0xB5, 0xF5, 0x83, 0xEE, 0xF0, 0x80, 0x1C, 0x90, 0xB5, 0x22, 0xE0, 0xB4, 0x02, 0x15, 0x90, + 0x80, 0xDA, 0xE0, 0x90, 0x19, 0x27, 0x93, 0xFE, 0x74, 0x30, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0xB5, + 0xF5, 0x83, 0xEE, 0xF0, 0x90, 0x80, 0xDA, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x80, 0xD9, 0xE0, + 0x04, 0xF0, 0x0F, 0x02, 0x15, 0x7B, 0xE4, 0x90, 0xB5, 0x09, 0xF0, 0xD0, 0xD0, 0x22, 0xE4, 0x90, + 0x80, 0xBA, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0x80, 0xB7, 0xF0, 0xA3, 0xF0, 0xA3, + 0xF0, 0x90, 0x80, 0xBE, 0xF0, 0x22, 0xC0, 0xD0, 0x75, 0xD0, 0x08, 0x12, 0x16, 0x61, 0xD0, 0xD0, + 0x22, 0x90, 0xB5, 0x70, 0xE0, 0x44, 0x40, 0xF0, 0x74, 0x10, 0xF0, 0x90, 0x80, 0xAE, 0x74, 0x01, + 0xF0, 0x22, 0x90, 0xB3, 0x21, 0xE0, 0x44, 0x02, 0xF0, 0x90, 0x80, 0xB4, 0x74, 0x01, 0xF0, 0x22, + 0x90, 0x81, 0x9C, 0x12, 0x2B, 0x9E, 0xE4, 0x90, 0x81, 0xA5, 0xF0, 0xA3, 0xF0, 0x90, 0x80, 0xAE, + 0xF0, 0x90, 0x80, 0xAB, 0xF0, 0xA3, 0xF0, 0x90, 0xB5, 0x40, 0xF0, 0x90, 0xB5, 0x01, 0xE0, 0x54, + 0xFE, 0xF0, 0x7F, 0x00, 0x7E, 0x02, 0x7D, 0x00, 0x7C, 0x00, 0x90, 0x81, 0xA0, 0xE0, 0xF8, 0xA3, + 0xE0, 0xF9, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xFB, 0xC3, 0x12, 0x2B, 0x67, 0x40, 0x7B, 0x90, 0x81, + 0xA0, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0x24, 0x00, 0xFF, 0xEE, 0x34, + 0xFE, 0xFE, 0xED, 0x34, 0xFF, 0xFD, 0xEC, 0x34, 0xFF, 0xFC, 0x90, 0x81, 0xA0, 0x12, 0x2B, 0x9E, + 0x90, 0x81, 0xA4, 0xE0, 0x70, 0x30, 0x90, 0x81, 0xAB, 0x12, 0x2B, 0xAA, 0x00, 0x00, 0x02, 0x00, + 0xE4, 0x90, 0x81, 0xAF, 0xF0, 0x90, 0x81, 0x9C, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, + 0xA3, 0xE0, 0xFF, 0x12, 0x17, 0xDF, 0x7F, 0x00, 0x7E, 0x02, 0x7D, 0x00, 0x7C, 0x00, 0xE4, 0x90, + 0x81, 0xAB, 0xF0, 0x12, 0x17, 0x3A, 0x90, 0x81, 0x9C, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, + 0xFE, 0xA3, 0xE0, 0x24, 0x00, 0xFF, 0xEE, 0x34, 0x02, 0xFE, 0xE4, 0x3D, 0xFD, 0xE4, 0x3C, 0xFC, + 0x90, 0x81, 0x9C, 0x12, 0x2B, 0x9E, 0x02, 0x16, 0xA2, 0x22, 0x90, 0x81, 0xA7, 0x12, 0x2B, 0x9E, + 0xE4, 0x90, 0x80, 0xAE, 0xF0, 0x90, 0xB5, 0x70, 0xE0, 0x44, 0x40, 0xF0, 0x90, 0x81, 0xAB, 0xE0, + 0x70, 0x11, 0x90, 0xB3, 0xBD, 0x74, 0x03, 0xF0, 0xE4, 0x90, 0xB5, 0x71, 0xF0, 0xA3, 0xF0, 0xA3, + 0x74, 0xA0, 0xF0, 0x90, 0x81, 0xA7, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, + 0xE4, 0xFF, 0xEE, 0xE4, 0xFD, 0xFC, 0x78, 0x08, 0x12, 0x2B, 0x78, 0x90, 0xB5, 0x75, 0xEF, 0xF0, + 0x90, 0x81, 0xA7, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xE4, 0x90, + 0xB5, 0x74, 0xEF, 0xF0, 0x90, 0xB5, 0x0B, 0xE0, 0x44, 0x20, 0xF0, 0x90, 0xB5, 0x70, 0x74, 0x1A, + 0xF0, 0x90, 0xB5, 0x78, 0x74, 0x04, 0xF0, 0x90, 0xB5, 0x70, 0xE0, 0x44, 0x04, 0xF0, 0xE0, 0x54, + 0xFB, 0xF0, 0xE0, 0x44, 0x80, 0xF0, 0xE4, 0xFF, 0xFE, 0x90, 0x80, 0xAE, 0xE0, 0x70, 0x1F, 0x0F, + 0xBF, 0x00, 0x01, 0x0E, 0xD3, 0xEF, 0x94, 0x00, 0xEE, 0x94, 0x80, 0x40, 0xEC, 0x90, 0xB5, 0x70, + 0xE0, 0x20, 0xE5, 0xE5, 0x90, 0xB5, 0x78, 0x74, 0x04, 0xF0, 0xE0, 0x54, 0xFB, 0xF0, 0x22, 0x90, + 0x81, 0xA7, 0x12, 0x2B, 0x9E, 0x90, 0x81, 0xAB, 0x12, 0x2B, 0xAA, 0x00, 0x00, 0x02, 0x00, 0xE4, + 0x90, 0x80, 0xB4, 0xF0, 0x90, 0x81, 0xA7, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0x7B, 0x02, 0x7A, 0x00, 0x79, 0x00, 0x78, 0x00, 0x12, 0x2A, 0xD5, 0x90, 0x81, 0xA7, + 0x12, 0x2B, 0x9E, 0x90, 0x81, 0xAF, 0xE0, 0x70, 0x0E, 0x90, 0xB3, 0xBD, 0xF0, 0xE0, 0x44, 0x02, + 0xF0, 0x90, 0xB3, 0x20, 0x74, 0x52, 0xF0, 0x90, 0x81, 0xAB, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xE4, 0x90, 0xB3, 0x22, 0xEF, 0xF0, 0x90, 0x81, 0xAB, 0xE0, 0xFC, + 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xE4, 0xFF, 0xEE, 0xE4, 0xFD, 0xFC, 0x78, 0x08, + 0x12, 0x2B, 0x78, 0x90, 0xB3, 0x23, 0xEF, 0xF0, 0x90, 0x81, 0xAB, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, + 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xE4, 0xFF, 0xFE, 0xED, 0xE4, 0xFC, 0x78, 0x10, 0x12, 0x2B, 0x78, + 0x90, 0xB3, 0x24, 0xEF, 0xF0, 0x90, 0x81, 0xA7, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, + 0xA3, 0xE0, 0xE4, 0xFF, 0xFE, 0xED, 0xE4, 0xFC, 0x78, 0x10, 0x12, 0x2B, 0x78, 0x90, 0xB3, 0x27, + 0xEF, 0xF0, 0x90, 0x81, 0xA7, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xE4, + 0xFF, 0xEE, 0xE4, 0xFD, 0xFC, 0x78, 0x08, 0x12, 0x2B, 0x78, 0x90, 0xB3, 0x26, 0xEF, 0xF0, 0x90, + 0x81, 0xA7, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xE4, 0x90, 0xB3, + 0x25, 0xEF, 0xF0, 0x90, 0xB3, 0x20, 0xE0, 0x44, 0x01, 0xF0, 0xE0, 0x54, 0xFE, 0xF0, 0xE0, 0x44, + 0x04, 0xF0, 0x90, 0xB3, 0x21, 0xE0, 0x20, 0xE0, 0xF9, 0x22, 0x12, 0x01, 0x10, 0x01, 0x00, 0x00, + 0x00, 0x10, 0x16, 0x04, 0x50, 0x68, 0x00, 0x01, 0x01, 0x02, 0x00, 0x01, 0x09, 0x02, 0x27, 0x00, + 0x01, 0x01, 0x00, 0x80, 0xFA, 0x09, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x05, + 0x81, 0x02, 0x40, 0x00, 0x01, 0x07, 0x05, 0x02, 0x02, 0x40, 0x00, 0x01, 0x07, 0x05, 0x83, 0x03, + 0x08, 0x00, 0x01, 0x04, 0x03, 0x09, 0x04, 0x10, 0x03, 0x57, 0x00, 0x49, 0x00, 0x4E, 0x00, 0x42, + 0x00, 0x4F, 0x00, 0x4E, 0x00, 0x44, 0x00, 0x12, 0x03, 0x57, 0x00, 0x39, 0x00, 0x39, 0x00, 0x36, + 0x00, 0x38, 0x00, 0x35, 0x00, 0x43, 0x00, 0x46, 0x00, 0x01, 0x01, 0x0E, 0x00, 0xF1, 0x7F, 0x00, + 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x81, 0x82, 0x83, 0x84, 0x85, 0x03, 0x03, 0x01, 0x21, 0x16, + 0x04, 0x83, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xC4, 0x00, 0x13, 0x40, 0x01, 0x00, 0xC4, 0xFF, 0x00, 0x00, 0x90, 0x80, 0xD6, 0xE0, 0x12, + 0x2B, 0xDB, 0x19, 0x94, 0x32, 0x1A, 0xF5, 0x33, 0x1A, 0xFC, 0x36, 0x1B, 0x0C, 0x38, 0x1B, 0x16, + 0x39, 0x1B, 0x37, 0x3C, 0x1B, 0xD6, 0x3D, 0x1C, 0x55, 0x3F, 0x1C, 0x5F, 0x43, 0x1C, 0x77, 0x44, + 0x00, 0x00, 0x1C, 0x7F, 0x90, 0x81, 0x7B, 0xE0, 0x70, 0x0C, 0xFF, 0x7F, 0x06, 0x90, 0x80, 0x02, + 0xE4, 0xF0, 0xA3, 0xDF, 0xFC, 0x22, 0xE4, 0x90, 0x81, 0x7B, 0xF0, 0x90, 0x80, 0x01, 0x74, 0x01, + 0xF0, 0x90, 0xB5, 0x0B, 0x74, 0x81, 0xF0, 0x90, 0x81, 0x74, 0xE0, 0x70, 0x36, 0x90, 0x80, 0xEB, + 0xF0, 0x90, 0xB2, 0xD2, 0xE0, 0x90, 0x80, 0xEC, 0xF0, 0x90, 0xB2, 0xD1, 0xE0, 0x90, 0x80, 0xED, + 0xF0, 0x90, 0xB2, 0xD0, 0xE0, 0x90, 0x80, 0xEE, 0xF0, 0x90, 0x81, 0x77, 0xE0, 0x90, 0xB2, 0xD2, + 0xF0, 0x90, 0x81, 0x76, 0xE0, 0x90, 0xB2, 0xD1, 0xF0, 0x90, 0x81, 0x75, 0xE0, 0x90, 0xB2, 0xD0, + 0xF0, 0x80, 0x35, 0xE4, 0x90, 0x80, 0xEB, 0xF0, 0x90, 0xB2, 0xD5, 0xE0, 0x90, 0x80, 0xEC, 0xF0, + 0x90, 0xB2, 0xD4, 0xE0, 0x90, 0x80, 0xED, 0xF0, 0x90, 0xB2, 0xD3, 0xE0, 0x90, 0x80, 0xEE, 0xF0, + 0x90, 0x81, 0x77, 0xE0, 0x90, 0xB2, 0xD5, 0xF0, 0x90, 0x81, 0x76, 0xE0, 0x90, 0xB2, 0xD4, 0xF0, + 0x90, 0x81, 0x75, 0xE0, 0x90, 0xB2, 0xD3, 0xF0, 0x90, 0x80, 0xEC, 0xE0, 0x90, 0x81, 0x77, 0xF0, + 0x90, 0x80, 0xED, 0xE0, 0x90, 0x81, 0x76, 0xF0, 0x90, 0x80, 0xEE, 0xE0, 0x90, 0x81, 0x75, 0xF0, + 0x90, 0x80, 0xEB, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x78, 0x01, + 0x12, 0x2B, 0x8B, 0x90, 0x80, 0xEB, 0x12, 0x2B, 0x9E, 0x90, 0x80, 0xEE, 0xE0, 0x90, 0x80, 0x02, + 0xF0, 0x90, 0x80, 0xED, 0xE0, 0x90, 0x80, 0x03, 0xF0, 0x90, 0x80, 0xEC, 0xE0, 0x90, 0x80, 0x04, + 0xF0, 0x90, 0x81, 0x7A, 0xE0, 0xFF, 0xC3, 0x94, 0x01, 0x40, 0x06, 0x90, 0x80, 0xF8, 0xE0, 0x04, + 0xF0, 0xE4, 0x90, 0x80, 0xE7, 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x81, 0x79, 0xE0, 0x90, 0x80, 0xE9, + 0xF0, 0x90, 0x81, 0x78, 0xE0, 0x90, 0x80, 0xEA, 0xF0, 0x90, 0x80, 0xE7, 0xE0, 0xFC, 0xA3, 0xE0, + 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x78, 0x01, 0x12, 0x2B, 0x8B, 0x90, 0x80, 0xE7, 0x12, + 0x2B, 0x9E, 0x90, 0x80, 0xEA, 0xE0, 0x90, 0x80, 0x05, 0xF0, 0x90, 0x80, 0xE9, 0xE0, 0x90, 0x80, + 0x06, 0xF0, 0x90, 0x80, 0xE8, 0xE0, 0x90, 0x80, 0x07, 0xF0, 0x90, 0x80, 0xE7, 0xE0, 0xFC, 0xA3, + 0xE0, 0xFD, 0xA3, 0xE0, 0xFE, 0xA3, 0xE0, 0x24, 0xFF, 0xFF, 0xEE, 0x34, 0x01, 0xFE, 0xE4, 0x3D, + 0xFD, 0xE4, 0x3C, 0xFC, 0x78, 0x09, 0x12, 0x2B, 0x78, 0x78, 0x09, 0x12, 0x2B, 0x8B, 0x90, 0x80, + 0xE7, 0x12, 0x2B, 0x9E, 0x22, 0x90, 0x80, 0x02, 0x74, 0x04, 0xF0, 0x22, 0x90, 0xB2, 0x80, 0xE0, + 0x54, 0x04, 0xFF, 0x13, 0x13, 0x54, 0x3F, 0x90, 0x80, 0x02, 0xF0, 0x22, 0x90, 0x80, 0x02, 0x74, + 0x3E, 0xF0, 0xE4, 0xA3, 0xF0, 0x22, 0x90, 0xB2, 0x8A, 0xE0, 0x90, 0x80, 0x02, 0xF0, 0x90, 0xB2, + 0x8B, 0xE0, 0x90, 0x80, 0x03, 0xF0, 0x90, 0xB2, 0x88, 0xE0, 0x90, 0x80, 0x04, 0xF0, 0x90, 0xB2, + 0x89, 0xE0, 0x90, 0x80, 0x05, 0xF0, 0x22, 0x90, 0x80, 0xD7, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEC, + 0x60, 0x03, 0x02, 0x1C, 0x7F, 0xED, 0x24, 0xFE, 0x60, 0x2A, 0x14, 0x60, 0x53, 0x24, 0xFA, 0x50, + 0x7B, 0x24, 0x08, 0x60, 0x03, 0x02, 0x1C, 0x7F, 0xD3, 0x90, 0x81, 0x5E, 0xE0, 0x94, 0x60, 0x90, + 0x81, 0x5D, 0xE0, 0x94, 0x01, 0x50, 0x07, 0x90, 0x80, 0x02, 0x74, 0x01, 0xF0, 0x22, 0xE4, 0x90, + 0x80, 0x02, 0xF0, 0x22, 0x90, 0x81, 0x6F, 0xE0, 0x60, 0x20, 0x90, 0x81, 0x5D, 0xE0, 0xFE, 0xA3, + 0xE0, 0xFF, 0xC3, 0x74, 0x80, 0x9F, 0xFF, 0x74, 0x02, 0x9E, 0xFE, 0xEF, 0x78, 0x02, 0xCE, 0xC3, + 0x13, 0xCE, 0x13, 0xD8, 0xF9, 0x90, 0x80, 0x02, 0xF0, 0x22, 0xE4, 0x90, 0x80, 0x02, 0xF0, 0x22, + 0x90, 0x81, 0x6F, 0xE0, 0x60, 0x20, 0x90, 0x81, 0x5F, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x74, + 0xE0, 0x9F, 0xFF, 0x74, 0x01, 0x9E, 0xFE, 0xEF, 0x78, 0x02, 0xCE, 0xC3, 0x13, 0xCE, 0x13, 0xD8, + 0xF9, 0x90, 0x80, 0x02, 0xF0, 0x22, 0xE4, 0x90, 0x80, 0x02, 0xF0, 0x22, 0xCF, 0xED, 0xCF, 0xCE, + 0xEC, 0xCE, 0x12, 0x21, 0x73, 0x22, 0x90, 0x80, 0xD7, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xEE, 0x60, + 0x03, 0x02, 0x1C, 0x7F, 0xEF, 0x14, 0xB4, 0x08, 0x00, 0x40, 0x03, 0x02, 0x1C, 0x7F, 0x90, 0x1B, + 0xF5, 0xF8, 0x28, 0x28, 0x73, 0x02, 0x1C, 0x0D, 0x02, 0x1C, 0x16, 0x02, 0x1C, 0x1F, 0x02, 0x1C, + 0x28, 0x02, 0x1C, 0x31, 0x02, 0x1C, 0x3A, 0x02, 0x1C, 0x43, 0x02, 0x1C, 0x4C, 0x90, 0x81, 0x6F, + 0xE0, 0x90, 0x80, 0x02, 0xF0, 0x22, 0x90, 0x81, 0x71, 0xE0, 0x90, 0x80, 0x02, 0xF0, 0x22, 0x90, + 0x81, 0x73, 0xE0, 0x90, 0x80, 0x02, 0xF0, 0x22, 0x90, 0x81, 0x6A, 0xE0, 0x90, 0x80, 0x02, 0xF0, + 0x22, 0x90, 0x81, 0x6B, 0xE0, 0x90, 0x80, 0x02, 0xF0, 0x22, 0x90, 0x81, 0x6C, 0xE0, 0x90, 0x80, + 0x02, 0xF0, 0x22, 0x90, 0x81, 0x6D, 0xE0, 0x90, 0x80, 0x02, 0xF0, 0x22, 0x90, 0x81, 0x6E, 0xE0, + 0x90, 0x80, 0x02, 0xF0, 0x22, 0x90, 0x80, 0x02, 0x74, 0x01, 0xF0, 0xE4, 0xA3, 0xF0, 0x22, 0x90, + 0x81, 0x62, 0xE0, 0x14, 0x60, 0x0A, 0x14, 0x70, 0x16, 0x90, 0x80, 0x02, 0x74, 0x06, 0xF0, 0x22, + 0x90, 0x80, 0x02, 0x74, 0x06, 0xF0, 0x22, 0x90, 0x80, 0xE6, 0xE0, 0x90, 0x80, 0x02, 0xF0, 0x22, + 0x90, 0x80, 0xD6, 0xE0, 0x24, 0xC9, 0x60, 0x31, 0x24, 0xFD, 0x60, 0x67, 0x24, 0xFC, 0x70, 0x03, + 0x02, 0x1D, 0xD1, 0x24, 0xFE, 0x70, 0x03, 0x02, 0x1F, 0x81, 0x24, 0xFB, 0x70, 0x03, 0x02, 0x1F, + 0xFD, 0x14, 0x70, 0x03, 0x02, 0x20, 0x88, 0x24, 0x11, 0x60, 0x03, 0x02, 0x20, 0xAD, 0x90, 0xB2, + 0x80, 0xE0, 0x44, 0x01, 0xF0, 0x54, 0xFE, 0xF0, 0x22, 0x90, 0xB2, 0x01, 0xE0, 0x54, 0xE7, 0xF0, + 0x90, 0x80, 0xD7, 0xE0, 0x70, 0x02, 0xA3, 0xE0, 0x60, 0x15, 0x90, 0x81, 0x61, 0x74, 0x01, 0xF0, + 0x90, 0xB2, 0x80, 0xE0, 0x44, 0x04, 0xF0, 0x90, 0xB2, 0x01, 0xE0, 0x44, 0x08, 0xF0, 0x22, 0xE4, + 0x90, 0x81, 0x61, 0xF0, 0x90, 0xB2, 0x80, 0xE0, 0x54, 0xFB, 0xF0, 0x90, 0xB2, 0x01, 0xE0, 0x44, + 0x10, 0xF0, 0x22, 0x90, 0x80, 0xD8, 0xE0, 0x90, 0x81, 0x8F, 0xF0, 0xE4, 0xFF, 0x90, 0x81, 0x8F, + 0xE0, 0xFE, 0x30, 0xE0, 0x07, 0x90, 0x81, 0x8E, 0xEF, 0xF0, 0x80, 0x0C, 0xEE, 0xC3, 0x13, 0x90, + 0x81, 0x8F, 0xF0, 0x0F, 0xEF, 0xB4, 0x08, 0xE5, 0x90, 0x81, 0x61, 0xE0, 0x70, 0x11, 0x90, 0xB2, + 0x80, 0xE0, 0x54, 0xFB, 0xF0, 0x90, 0xB2, 0x01, 0xE0, 0x54, 0xE7, 0xF0, 0x44, 0x10, 0xF0, 0x90, + 0x81, 0x8E, 0xE0, 0x90, 0x81, 0x69, 0xF0, 0x24, 0xFE, 0x60, 0x34, 0x14, 0x60, 0x43, 0x14, 0x60, + 0x53, 0x14, 0x60, 0x64, 0x24, 0x04, 0x70, 0x72, 0x90, 0xB2, 0x01, 0xE0, 0x54, 0xE7, 0xF0, 0x90, + 0xB2, 0x80, 0xE0, 0x44, 0x04, 0xF0, 0x90, 0xB2, 0x01, 0xE0, 0x44, 0x08, 0xF0, 0x90, 0x81, 0x5D, + 0xE4, 0xF0, 0xA3, 0x74, 0xA0, 0xF0, 0xA3, 0xE4, 0xF0, 0xA3, 0x74, 0x78, 0xF0, 0x80, 0x4B, 0x90, + 0x81, 0x5D, 0xE4, 0xF0, 0xA3, 0x74, 0xB0, 0xF0, 0xA3, 0xE4, 0xF0, 0xA3, 0x74, 0x90, 0xF0, 0x80, + 0x39, 0x90, 0x81, 0x5D, 0x74, 0x01, 0xF0, 0xA3, 0x74, 0x40, 0xF0, 0xA3, 0xE4, 0xF0, 0xA3, 0x74, + 0xF0, 0xF0, 0x80, 0x26, 0x90, 0x81, 0x5D, 0x74, 0x01, 0xF0, 0xA3, 0x74, 0x60, 0xF0, 0xA3, 0x74, + 0x01, 0xF0, 0xA3, 0x74, 0x20, 0xF0, 0x80, 0x12, 0x90, 0x81, 0x5D, 0x74, 0x02, 0xF0, 0xA3, 0x74, + 0x80, 0xF0, 0xA3, 0x74, 0x01, 0xF0, 0xA3, 0x74, 0xE0, 0xF0, 0xE4, 0x90, 0x81, 0x72, 0xF0, 0xA3, + 0xF0, 0x90, 0x81, 0x70, 0xF0, 0xA3, 0xF0, 0x90, 0x81, 0x6F, 0xF0, 0x90, 0x81, 0x7C, 0x04, 0xF0, + 0x22, 0x90, 0x80, 0xD7, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xEE, 0x60, 0x03, 0x02, 0x20, 0xAD, 0xEF, + 0x24, 0xFE, 0x70, 0x03, 0x02, 0x1F, 0x4F, 0x14, 0x70, 0x03, 0x02, 0x1F, 0x62, 0x24, 0xFA, 0x40, + 0x03, 0x02, 0x1F, 0x75, 0x24, 0x08, 0x60, 0x03, 0x02, 0x20, 0xAD, 0x90, 0x81, 0x6F, 0xE0, 0x60, + 0x03, 0x02, 0x1E, 0xCC, 0x90, 0x80, 0xD9, 0xE0, 0x70, 0x02, 0xA3, 0xE0, 0x70, 0x03, 0x02, 0x20, + 0xAD, 0xE4, 0x90, 0x81, 0x70, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, 0x90, 0x81, 0x6F, 0x04, + 0xF0, 0x12, 0x20, 0xAE, 0x12, 0x21, 0x15, 0x90, 0xB2, 0x20, 0x74, 0x01, 0xF0, 0xA3, 0xF0, 0xA3, + 0xF0, 0xA3, 0xF0, 0x90, 0x81, 0x63, 0xE0, 0xFD, 0x20, 0xE7, 0x03, 0x02, 0x20, 0xAD, 0x30, 0xE6, + 0x09, 0x90, 0xB2, 0xA1, 0xE0, 0x54, 0x07, 0x44, 0x50, 0xF0, 0x90, 0x81, 0x5E, 0xE0, 0x90, 0xB2, + 0x52, 0xF0, 0x90, 0x81, 0x5D, 0xE0, 0x90, 0xB2, 0x53, 0xF0, 0xED, 0x30, 0xE6, 0x5D, 0x90, 0x81, + 0x5D, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEC, 0xC3, 0x13, 0xED, 0x13, 0x90, 0xB2, 0xCA, 0xF0, 0xED, + 0xCE, 0xEC, 0xCE, 0x78, 0x02, 0xCE, 0xC3, 0x13, 0xCE, 0x13, 0xD8, 0xF9, 0x90, 0xB2, 0xCC, 0xF0, + 0x90, 0xB2, 0xCE, 0xF0, 0x90, 0x81, 0x5F, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEC, 0xC3, 0x13, 0xED, + 0x13, 0x90, 0xB2, 0x54, 0xF0, 0xEC, 0xC3, 0x13, 0xA3, 0xF0, 0x90, 0xB2, 0x52, 0xE0, 0x90, 0xB2, + 0x36, 0xF0, 0x90, 0xB2, 0x53, 0xE0, 0x90, 0xB2, 0x37, 0xF0, 0x90, 0xB2, 0x54, 0xE0, 0x90, 0xB2, + 0xDC, 0xF0, 0x90, 0xB2, 0x55, 0xE0, 0x90, 0xB2, 0xDD, 0xF0, 0x22, 0x90, 0x81, 0x60, 0xE0, 0x90, + 0xB2, 0x54, 0xF0, 0x90, 0x81, 0x5F, 0xE0, 0x90, 0xB2, 0x55, 0xF0, 0x22, 0x90, 0x80, 0xD9, 0xE0, + 0x70, 0x02, 0xA3, 0xE0, 0x60, 0x03, 0x02, 0x20, 0xAD, 0x90, 0x81, 0x70, 0xF0, 0xA3, 0xF0, 0xA3, + 0xF0, 0xA3, 0xF0, 0x90, 0x81, 0x6F, 0xF0, 0x90, 0x81, 0x69, 0xE0, 0x90, 0x81, 0x8E, 0xF0, 0x90, + 0x81, 0x63, 0xE0, 0xFF, 0x20, 0xE7, 0x03, 0x02, 0x20, 0xAD, 0x30, 0xE6, 0x29, 0x90, 0x81, 0x8E, + 0xE0, 0x75, 0xF0, 0x09, 0xA4, 0x24, 0xF1, 0xF9, 0x74, 0x24, 0x35, 0xF0, 0xFA, 0x7B, 0xFF, 0x90, + 0x81, 0x90, 0xEB, 0xF0, 0xA3, 0xEA, 0xF0, 0xA3, 0xE9, 0xF0, 0x7F, 0xBC, 0x7E, 0x02, 0x7D, 0xF0, + 0x7C, 0x00, 0x12, 0x23, 0x6C, 0x22, 0x90, 0x81, 0x8E, 0xE0, 0x75, 0xF0, 0x09, 0xA4, 0x24, 0xBB, + 0xF9, 0x74, 0x24, 0x35, 0xF0, 0xFA, 0x7B, 0xFF, 0x90, 0x81, 0x90, 0xEB, 0xF0, 0xA3, 0xEA, 0xF0, + 0xA3, 0xE9, 0xF0, 0x7F, 0x80, 0x7E, 0x02, 0x7D, 0xE0, 0x7C, 0x01, 0x12, 0x23, 0x6C, 0x22, 0x90, + 0x80, 0xDA, 0xE0, 0xFE, 0x33, 0x95, 0xE0, 0x90, 0x81, 0x70, 0xF0, 0xA3, 0xCE, 0xF0, 0x12, 0x20, + 0xAE, 0x22, 0x90, 0x80, 0xDA, 0xE0, 0xFE, 0x33, 0x95, 0xE0, 0x90, 0x81, 0x72, 0xF0, 0xA3, 0xCE, + 0xF0, 0x12, 0x21, 0x15, 0x22, 0x90, 0x80, 0xD7, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0x12, 0x21, 0xDC, + 0x22, 0x90, 0xB2, 0x00, 0xE0, 0x54, 0xFB, 0xF0, 0x90, 0x80, 0xD7, 0xE0, 0x70, 0x02, 0xA3, 0xE0, + 0x70, 0x03, 0x02, 0x20, 0xAD, 0x90, 0xB2, 0x00, 0xE0, 0x44, 0x04, 0xF0, 0x90, 0x80, 0xD9, 0xE0, + 0x60, 0x1D, 0xA3, 0xE0, 0x54, 0x0F, 0x90, 0x80, 0xF0, 0xF0, 0xE0, 0xFF, 0xC4, 0x54, 0xF0, 0xFE, + 0xEF, 0x4E, 0xF0, 0x90, 0x80, 0xEF, 0x74, 0x01, 0xF0, 0x90, 0x80, 0xF2, 0x04, 0xF0, 0x22, 0xE4, + 0x90, 0x80, 0xEF, 0xF0, 0x90, 0x80, 0xF2, 0xF0, 0x90, 0x80, 0xDA, 0xE0, 0x54, 0x0F, 0x90, 0x80, + 0xF1, 0xF0, 0x90, 0x81, 0x64, 0xE0, 0xFF, 0x7D, 0x02, 0x12, 0x26, 0x46, 0x90, 0x81, 0x8F, 0xEF, + 0xF0, 0x54, 0xF0, 0xFF, 0xF0, 0x90, 0x80, 0xDA, 0xE0, 0x54, 0x0F, 0x4F, 0xFF, 0x90, 0x81, 0x8F, + 0xF0, 0xFB, 0x90, 0x81, 0x64, 0xE0, 0xFF, 0x7D, 0x02, 0x12, 0x25, 0xFD, 0x22, 0x90, 0x81, 0x62, + 0xE0, 0x64, 0x02, 0x70, 0x3C, 0x90, 0x80, 0xD7, 0xE0, 0x70, 0x04, 0xA3, 0xE0, 0x64, 0x01, 0x70, + 0x12, 0x90, 0x81, 0x64, 0xE0, 0xFF, 0x7D, 0x2B, 0x7B, 0x98, 0x12, 0x25, 0xFD, 0x90, 0x80, 0xE6, + 0x74, 0x01, 0xF0, 0x90, 0x80, 0xD7, 0xE0, 0x70, 0x04, 0xA3, 0xE0, 0x64, 0x02, 0x70, 0x12, 0x90, + 0x81, 0x64, 0xE0, 0xFF, 0x7D, 0x2B, 0xE4, 0xFB, 0x12, 0x25, 0xFD, 0x90, 0x80, 0xE6, 0x74, 0x02, + 0xF0, 0x90, 0x81, 0x62, 0xE0, 0x64, 0x01, 0x70, 0x64, 0x90, 0x80, 0xD7, 0xE0, 0xFE, 0xA3, 0xE0, + 0xFF, 0x64, 0x01, 0x4E, 0x70, 0x15, 0x90, 0xB2, 0x4E, 0x74, 0x0A, 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, + 0x74, 0x10, 0xF0, 0xE4, 0xA3, 0xF0, 0x90, 0x80, 0xE6, 0x04, 0xF0, 0xEF, 0x64, 0x02, 0x4E, 0x70, + 0x3C, 0x90, 0xB2, 0x4E, 0x74, 0x0C, 0xF0, 0xE4, 0xA3, 0xF0, 0xA3, 0x74, 0x0C, 0xF0, 0xE4, 0xA3, + 0xF0, 0x90, 0x80, 0xE6, 0x74, 0x02, 0xF0, 0x22, 0x90, 0x80, 0xD7, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, + 0x4E, 0x60, 0x13, 0x90, 0xB2, 0x81, 0xE0, 0x44, 0x10, 0xF0, 0x90, 0x80, 0xD8, 0xE0, 0x90, 0xB2, + 0x90, 0xF0, 0xEE, 0xA3, 0xF0, 0x22, 0x90, 0xB2, 0x81, 0xE0, 0x54, 0xEF, 0xF0, 0x22, 0x90, 0x81, + 0x63, 0xE0, 0x30, 0xE6, 0x18, 0x90, 0x81, 0x5D, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x74, 0xBC, + 0x9F, 0xFF, 0x74, 0x02, 0x9E, 0xC3, 0x13, 0xFC, 0xEF, 0x13, 0xFD, 0x80, 0x16, 0x90, 0x81, 0x5D, + 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x74, 0x80, 0x9F, 0xFF, 0x74, 0x02, 0x9E, 0xC3, 0x13, 0xFC, + 0xEF, 0x13, 0xFD, 0x90, 0x81, 0x66, 0xE0, 0xFE, 0x90, 0x81, 0x65, 0xE0, 0xFB, 0xEE, 0xEB, 0x2D, + 0xFD, 0xEE, 0x3C, 0xFC, 0x90, 0x81, 0x71, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x81, 0x70, 0xE0, 0x33, + 0xFE, 0xEF, 0x2D, 0xFD, 0xEE, 0x3C, 0xFC, 0x90, 0xB2, 0x4E, 0xED, 0xF0, 0xEC, 0xFF, 0x33, 0x95, + 0xE0, 0xA3, 0xEF, 0xF0, 0x22, 0x90, 0x81, 0x5F, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xC3, 0x74, 0xE0, + 0x9F, 0xFF, 0x74, 0x01, 0x9E, 0xA2, 0xE7, 0x13, 0xFE, 0xEF, 0x13, 0xFD, 0xCC, 0xEE, 0xCC, 0x90, + 0x81, 0x73, 0xE0, 0x25, 0xE0, 0xFF, 0x90, 0x81, 0x72, 0xE0, 0x33, 0xFE, 0xEF, 0x2D, 0xFD, 0xEE, + 0x3C, 0xFC, 0x90, 0x81, 0x63, 0xE0, 0x30, 0xE6, 0x08, 0xEC, 0xA2, 0xE7, 0x13, 0xFC, 0xED, 0x13, + 0xFD, 0x90, 0x81, 0x68, 0xE0, 0xFE, 0x90, 0x81, 0x67, 0xE0, 0xFB, 0xEE, 0xEB, 0x2D, 0xFD, 0xEE, + 0x3C, 0xFC, 0x90, 0xB2, 0x50, 0xED, 0xF0, 0xCE, 0xEC, 0xCE, 0xEE, 0xFF, 0x33, 0x95, 0xE0, 0xA3, + 0xEF, 0xF0, 0x22, 0x90, 0x81, 0x62, 0xE0, 0x24, 0xFE, 0x60, 0x31, 0x04, 0x70, 0x5D, 0xEE, 0x70, + 0x5A, 0xEF, 0x24, 0xFB, 0x60, 0x11, 0x14, 0x60, 0x15, 0x14, 0x60, 0x19, 0x24, 0x03, 0x70, 0x4B, + 0x90, 0x80, 0x02, 0x74, 0xFF, 0xF0, 0x22, 0x90, 0x80, 0x02, 0x74, 0x0F, 0xF0, 0x22, 0x90, 0x80, + 0x02, 0x74, 0xFF, 0xF0, 0x22, 0x90, 0x80, 0x02, 0x74, 0x0F, 0xF0, 0x22, 0xEE, 0x70, 0x2C, 0xEF, + 0x24, 0xFB, 0x60, 0x0D, 0x14, 0x60, 0x10, 0x14, 0x60, 0x14, 0x14, 0x60, 0x18, 0x24, 0x04, 0x70, + 0x1A, 0xE4, 0x90, 0x80, 0x02, 0xF0, 0x22, 0x90, 0x80, 0x02, 0x74, 0x1F, 0xF0, 0x22, 0x90, 0x80, + 0x02, 0x74, 0x0F, 0xF0, 0x22, 0x90, 0x80, 0x02, 0x74, 0x07, 0xF0, 0x22, 0x90, 0x81, 0x93, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0x90, 0x81, 0x62, 0xE0, 0x24, 0xFE, 0x70, 0x03, 0x02, 0x22, 0xD6, 0x04, + 0x60, 0x03, 0x02, 0x23, 0x6B, 0x90, 0x81, 0x93, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xEE, 0x60, 0x03, + 0x02, 0x23, 0x6B, 0xEF, 0x24, 0xFB, 0x60, 0x25, 0x14, 0x60, 0x59, 0x14, 0x70, 0x03, 0x02, 0x22, + 0x9F, 0x24, 0x03, 0x60, 0x03, 0x02, 0x23, 0x6B, 0x90, 0x80, 0xDA, 0xE0, 0xFF, 0x90, 0x81, 0x6A, + 0xF0, 0xFB, 0x90, 0x81, 0x64, 0xE0, 0xFF, 0x7D, 0x0A, 0x12, 0x25, 0xFD, 0x22, 0x90, 0x80, 0xDA, + 0xE0, 0x90, 0x81, 0x6B, 0xF0, 0x90, 0x80, 0xD9, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xE4, 0xFC, 0xFD, + 0x7B, 0x7F, 0xFA, 0xF9, 0xF8, 0x12, 0x2A, 0x4A, 0x7B, 0x0F, 0x7A, 0x00, 0x79, 0x00, 0x78, 0x00, + 0x12, 0x2A, 0xD5, 0x90, 0x81, 0x95, 0xEF, 0xF0, 0xFB, 0x90, 0x81, 0x64, 0xE0, 0xFF, 0x7D, 0x0B, + 0x12, 0x25, 0xFD, 0x22, 0x90, 0x80, 0xDA, 0xE0, 0xFF, 0x90, 0x81, 0x6C, 0xF0, 0x90, 0x80, 0xD9, + 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xC3, 0x94, 0x80, 0xEC, 0x94, 0x00, 0x50, 0x09, 0xED, 0x24, 0x80, + 0x90, 0x81, 0x95, 0xF0, 0x80, 0x09, 0xEF, 0x24, 0x80, 0x54, 0x7F, 0x90, 0x81, 0x95, 0xF0, 0x90, + 0x81, 0x64, 0xE0, 0xFF, 0x7D, 0x0D, 0x90, 0x81, 0x95, 0xE0, 0xFB, 0x12, 0x25, 0xFD, 0x22, 0x90, + 0x80, 0xDA, 0xE0, 0x90, 0x81, 0x6D, 0xF0, 0x90, 0x80, 0xD9, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xE4, + 0xFC, 0xFD, 0x7B, 0x7F, 0xFA, 0xF9, 0xF8, 0x12, 0x2A, 0x4A, 0x7B, 0x0F, 0x7A, 0x00, 0x79, 0x00, + 0x78, 0x00, 0x12, 0x2A, 0xD5, 0x90, 0x81, 0x95, 0xEF, 0xF0, 0xFB, 0x90, 0x81, 0x64, 0xE0, 0xFF, + 0x7D, 0x0C, 0x12, 0x25, 0xFD, 0x22, 0x90, 0x81, 0x93, 0xE0, 0xFE, 0xA3, 0xE0, 0xFF, 0xEE, 0x60, + 0x03, 0x02, 0x23, 0x6B, 0xEF, 0x24, 0xF9, 0x60, 0x1F, 0x14, 0x60, 0x51, 0x24, 0x02, 0x70, 0x7B, + 0x90, 0x80, 0xDA, 0xE0, 0xFE, 0x90, 0x81, 0x6C, 0xF0, 0x90, 0x81, 0x64, 0xE0, 0xFF, 0x7D, 0x04, + 0xEE, 0x44, 0x20, 0xFB, 0x12, 0x25, 0xFD, 0x22, 0x90, 0x80, 0xDA, 0xE0, 0x90, 0x81, 0x6D, 0xF0, + 0x90, 0x81, 0x64, 0xE0, 0xFF, 0x7D, 0x03, 0x12, 0x26, 0x46, 0x90, 0x81, 0x95, 0xEF, 0xF0, 0x90, + 0x80, 0xDA, 0xE0, 0xFE, 0xC4, 0x54, 0xF0, 0xFE, 0xEF, 0x54, 0x0F, 0x4E, 0xFF, 0x90, 0x81, 0x95, + 0xF0, 0xFB, 0x90, 0x81, 0x64, 0xE0, 0xFF, 0x7D, 0x03, 0x12, 0x25, 0xFD, 0x22, 0x90, 0x80, 0xDA, + 0xE0, 0x90, 0x81, 0x6E, 0xF0, 0x7D, 0x26, 0x90, 0x80, 0xDA, 0x25, 0xE0, 0xFF, 0x90, 0x80, 0xD9, + 0xE0, 0x33, 0xFE, 0x74, 0x27, 0x2F, 0xF5, 0x82, 0xEE, 0x34, 0x25, 0xF5, 0x83, 0xE4, 0x93, 0x74, + 0x01, 0x93, 0xFB, 0x90, 0x81, 0x64, 0xE0, 0xFF, 0x12, 0x25, 0xFD, 0x22, 0x90, 0x81, 0x93, 0xEE, + 0xF0, 0xA3, 0xEF, 0xF0, 0xA3, 0xEB, 0xF0, 0xA3, 0xEA, 0xF0, 0xA3, 0xE9, 0xF0, 0x90, 0x81, 0x65, + 0xE0, 0x90, 0xB2, 0x4E, 0xF0, 0x90, 0x81, 0x66, 0xE0, 0x90, 0xB2, 0x4F, 0xF0, 0x90, 0x81, 0x67, + 0xE0, 0x90, 0xB2, 0x50, 0xF0, 0x90, 0x81, 0x68, 0xE0, 0x90, 0xB2, 0x51, 0xF0, 0x90, 0x81, 0x94, + 0xE0, 0x90, 0xB2, 0x52, 0xF0, 0x90, 0x81, 0x93, 0xE0, 0x90, 0xB2, 0x53, 0xF0, 0xA3, 0xED, 0xF0, + 0xEC, 0xA3, 0xF0, 0xE4, 0xFF, 0x90, 0x81, 0x95, 0xE0, 0xFB, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0xF9, + 0x8F, 0x82, 0x75, 0x83, 0x00, 0x12, 0x29, 0xF5, 0xFE, 0x74, 0x20, 0x2F, 0xF5, 0x82, 0xE4, 0x34, + 0xB2, 0xF5, 0x83, 0xEE, 0xF0, 0x0F, 0xEF, 0xB4, 0x04, 0xDB, 0xE4, 0xFF, 0x90, 0x81, 0x95, 0xE0, + 0xFB, 0xA3, 0xE0, 0xFA, 0xA3, 0xE0, 0x24, 0x04, 0xF9, 0xE4, 0x3A, 0xFA, 0xEF, 0x7C, 0x00, 0x29, + 0xF9, 0xEC, 0x3A, 0xFA, 0x12, 0x29, 0xDC, 0xFE, 0x74, 0x36, 0x2F, 0xF5, 0x82, 0xE4, 0x34, 0xB2, + 0xF5, 0x83, 0xEE, 0xF0, 0x0F, 0xEF, 0xB4, 0x04, 0xD3, 0x90, 0x81, 0x95, 0xE0, 0xFB, 0xA3, 0xE0, + 0xFA, 0xA3, 0xE0, 0xF9, 0x90, 0x00, 0x08, 0x12, 0x29, 0xF5, 0xFF, 0x90, 0xB2, 0xA1, 0xE0, 0x54, + 0x07, 0x4F, 0xF0, 0x90, 0x81, 0x5E, 0xE0, 0x90, 0xB2, 0x8A, 0xF0, 0x90, 0x81, 0x5D, 0xE0, 0x90, + 0xB2, 0x8B, 0xF0, 0x90, 0x81, 0x60, 0xE0, 0x90, 0xB2, 0x88, 0xF0, 0x90, 0x81, 0x5F, 0xE0, 0x90, + 0xB2, 0x89, 0xF0, 0x90, 0xB2, 0x38, 0xE0, 0x90, 0xB2, 0xDC, 0xF0, 0x90, 0xB2, 0x39, 0xE0, 0x90, + 0xB2, 0xDD, 0xF0, 0x90, 0xB2, 0x36, 0xE0, 0x90, 0xB2, 0xDE, 0xF0, 0x90, 0xB2, 0x37, 0xE0, 0xFF, + 0x90, 0xB2, 0xDF, 0xF0, 0x90, 0xB2, 0xDE, 0xE0, 0x90, 0x81, 0x99, 0xF0, 0x90, 0x81, 0x98, 0xEF, + 0xF0, 0xE0, 0xC3, 0x13, 0xFE, 0xA3, 0xE0, 0x13, 0xFF, 0x90, 0x81, 0x98, 0xEE, 0xF0, 0xA3, 0xEF, + 0xF0, 0xE0, 0x90, 0xB2, 0xCA, 0xF0, 0x90, 0x81, 0x98, 0xE0, 0x90, 0xB2, 0xCB, 0xF0, 0xEE, 0xC3, + 0x13, 0xFE, 0xEF, 0x13, 0xFF, 0x90, 0x81, 0x98, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0xE0, 0x90, 0xB2, + 0xCC, 0xF0, 0x90, 0x81, 0x98, 0xE0, 0x90, 0xB2, 0xCD, 0xF0, 0x90, 0xB2, 0xCC, 0xE0, 0x90, 0xB2, + 0xCE, 0xF0, 0x90, 0xB2, 0xCD, 0xE0, 0x90, 0xB2, 0xCF, 0xF0, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x04, 0x01, 0xA0, 0x00, 0x90, 0x00, 0x00, 0x28, 0x0B, 0x0A, + 0x03, 0xB0, 0x00, 0x90, 0x00, 0x50, 0x02, 0x01, 0x02, 0x01, 0x40, 0x01, 0xF0, 0x00, 0x00, 0x14, + 0x0B, 0x05, 0x03, 0x60, 0x01, 0x20, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x80, 0x02, 0xE0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x08, 0x02, 0x01, 0xA0, 0x00, + 0x78, 0x00, 0x00, 0x0A, 0x03, 0x05, 0x03, 0xB0, 0x00, 0x90, 0x00, 0x00, 0x23, 0x10, 0x01, 0x01, + 0x40, 0x01, 0xF0, 0x00, 0x00, 0x05, 0x03, 0x01, 0x01, 0xA4, 0x01, 0xF0, 0x00, 0x50, 0x23, 0x20, + 0x01, 0x01, 0x80, 0x02, 0xF0, 0x00, 0x50, 0x00, 0xC2, 0x00, 0xD2, 0x00, 0xF2, 0x00, 0xA2, 0x00, + 0x62, 0x00, 0xB2, 0x00, 0x72, 0x00, 0x32, 0x00, 0x3F, 0x00, 0x2F, 0x00, 0x20, 0x00, 0x1A, 0x00, + 0x16, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x06, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8A, 0x00, 0x8F, 0x00, + 0x96, 0x00, 0x9A, 0x00, 0x9F, 0x00, 0xAF, 0x90, 0xB0, 0x07, 0xE0, 0x44, 0x02, 0xF0, 0x44, 0x01, + 0xF0, 0x54, 0xFD, 0xF0, 0x54, 0xFE, 0xF0, 0x22, 0x7E, 0x80, 0xE4, 0xFD, 0xEE, 0x5F, 0x60, 0x09, + 0x90, 0xB0, 0x07, 0xE0, 0x44, 0x02, 0xF0, 0x80, 0x07, 0x90, 0xB0, 0x07, 0xE0, 0x54, 0xFD, 0xF0, + 0x90, 0xB0, 0x07, 0xE0, 0x44, 0x01, 0xF0, 0x54, 0xFE, 0xF0, 0xEE, 0xC3, 0x13, 0xFE, 0x0D, 0xED, + 0xB4, 0x08, 0xD9, 0x22, 0x90, 0xB0, 0x07, 0xE0, 0x44, 0x02, 0xF0, 0xE4, 0xFE, 0x90, 0xB0, 0x07, + 0xE0, 0xFF, 0x20, 0xE4, 0x09, 0x44, 0x01, 0xF0, 0x54, 0xFE, 0xF0, 0x7F, 0x01, 0x22, 0x0E, 0xEE, + 0xB4, 0x0A, 0xEA, 0x90, 0xB0, 0x07, 0xE0, 0x44, 0x01, 0xF0, 0x54, 0xFE, 0xF0, 0x7F, 0x00, 0x22, + 0x90, 0xB0, 0x07, 0xE0, 0x54, 0xFD, 0xF0, 0x44, 0x01, 0xF0, 0x44, 0x02, 0xF0, 0x22, 0xE4, 0xFF, + 0xFE, 0x90, 0xB0, 0x07, 0xE0, 0x54, 0xFE, 0xF0, 0x44, 0x01, 0xF0, 0x30, 0xE4, 0x08, 0xEF, 0x25, + 0xE0, 0x44, 0x01, 0xFF, 0x80, 0x04, 0xEF, 0x25, 0xE0, 0xFF, 0x0E, 0xEE, 0xB4, 0x08, 0xE2, 0x90, + 0xB0, 0x07, 0xE0, 0x54, 0xFE, 0xF0, 0x44, 0x01, 0xF0, 0x54, 0xFE, 0xF0, 0x22, 0xCC, 0xED, 0xCC, + 0x90, 0xB0, 0x07, 0x74, 0x03, 0xF0, 0xEF, 0x54, 0xFE, 0xFF, 0x12, 0x25, 0x57, 0x12, 0x25, 0x68, + 0x12, 0x25, 0x94, 0xEF, 0x70, 0x06, 0x12, 0x25, 0xC0, 0x7F, 0x00, 0x22, 0xCF, 0xEC, 0xCF, 0x12, + 0x25, 0x68, 0x12, 0x25, 0x94, 0xEF, 0x70, 0x06, 0x12, 0x25, 0xC0, 0x7F, 0x00, 0x22, 0xCF, 0xEB, + 0xCF, 0x12, 0x25, 0x68, 0x12, 0x25, 0x94, 0xEF, 0x70, 0x06, 0x12, 0x25, 0xC0, 0x7F, 0x00, 0x22, + 0x12, 0x25, 0xC0, 0x7F, 0x01, 0x22, 0xCC, 0xEF, 0xCC, 0xCB, 0xED, 0xCB, 0x90, 0xB0, 0x07, 0x74, + 0x03, 0xF0, 0xEC, 0x54, 0xFE, 0xFC, 0x12, 0x25, 0x57, 0xCF, 0xEC, 0xCF, 0x12, 0x25, 0x68, 0x12, + 0x25, 0x94, 0xEF, 0x70, 0x02, 0xFF, 0x22, 0xCF, 0xEB, 0xCF, 0x12, 0x25, 0x68, 0x12, 0x25, 0x94, + 0xEF, 0x70, 0x02, 0xFF, 0x22, 0x90, 0x81, 0x62, 0xE0, 0xB4, 0x02, 0x03, 0x12, 0x25, 0xC0, 0xEC, + 0x44, 0x01, 0xFC, 0x12, 0x25, 0x57, 0xCF, 0xEC, 0xCF, 0x12, 0x25, 0x68, 0x12, 0x25, 0x94, 0xEF, + 0x70, 0x02, 0xFF, 0x22, 0x12, 0x25, 0xCE, 0x12, 0x25, 0xC0, 0x22, 0x90, 0xB0, 0x07, 0xE0, 0x44, + 0x02, 0xF0, 0x44, 0x01, 0xF0, 0x54, 0xFD, 0xF0, 0x54, 0xFE, 0xF0, 0x22, 0x7E, 0x80, 0xE4, 0xFD, + 0xEE, 0x5F, 0x60, 0x09, 0x90, 0xB0, 0x07, 0xE0, 0x44, 0x02, 0xF0, 0x80, 0x07, 0x90, 0xB0, 0x07, + 0xE0, 0x54, 0xFD, 0xF0, 0x90, 0xB0, 0x07, 0xE0, 0x44, 0x01, 0xF0, 0x54, 0xFE, 0xF0, 0xEE, 0xC3, + 0x13, 0xFE, 0x0D, 0xED, 0xB4, 0x08, 0xD9, 0x22, 0x90, 0xB0, 0x07, 0xE0, 0x44, 0x02, 0xF0, 0xE4, + 0xFE, 0x90, 0xB0, 0x07, 0xE0, 0xFF, 0x20, 0xE4, 0x09, 0x44, 0x01, 0xF0, 0x54, 0xFE, 0xF0, 0x7F, + 0x01, 0x22, 0x0E, 0xEE, 0xB4, 0x0A, 0xEA, 0x90, 0xB0, 0x07, 0xE0, 0x44, 0x01, 0xF0, 0x54, 0xFE, + 0xF0, 0x7F, 0x00, 0x22, 0x90, 0xB0, 0x07, 0xE0, 0x54, 0xFD, 0xF0, 0x44, 0x01, 0xF0, 0x44, 0x02, + 0xF0, 0x22, 0x90, 0xB0, 0x07, 0x74, 0x03, 0xF0, 0xEF, 0x54, 0xFE, 0xFF, 0x12, 0x26, 0x9B, 0x12, + 0x26, 0xAC, 0x12, 0x26, 0xD8, 0xEF, 0x70, 0x06, 0x12, 0x27, 0x04, 0x7F, 0x00, 0x22, 0x7F, 0x01, + 0x22, 0xCC, 0xED, 0xCC, 0x90, 0xB0, 0x07, 0x74, 0x03, 0xF0, 0xEF, 0x54, 0xFE, 0xFF, 0x12, 0x26, + 0x9B, 0x12, 0x26, 0xAC, 0x12, 0x26, 0xD8, 0xEF, 0x70, 0x06, 0x12, 0x27, 0x04, 0x7F, 0x00, 0x22, + 0xCF, 0xEC, 0xCF, 0x12, 0x26, 0xAC, 0x12, 0x26, 0xD8, 0xEF, 0x70, 0x06, 0x12, 0x27, 0x04, 0x7F, + 0x00, 0x22, 0xCF, 0xEB, 0xCF, 0x12, 0x26, 0xAC, 0x12, 0x26, 0xD8, 0xEF, 0x70, 0x06, 0x12, 0x27, + 0x04, 0x7F, 0x00, 0x22, 0x12, 0x27, 0x04, 0x7F, 0x01, 0x22, 0xE4, 0xFF, 0xFE, 0x90, 0xB0, 0x07, + 0xE0, 0x54, 0xFE, 0xF0, 0x44, 0x01, 0xF0, 0x30, 0xE4, 0x08, 0xEF, 0x25, 0xE0, 0x44, 0x01, 0xFF, + 0x80, 0x04, 0xEF, 0x25, 0xE0, 0xFF, 0x0E, 0xEE, 0xB4, 0x08, 0xE2, 0x90, 0xB0, 0x07, 0xE0, 0x54, + 0xFE, 0xF0, 0x44, 0x01, 0xF0, 0x54, 0xFE, 0xF0, 0x22, 0xCC, 0xEF, 0xCC, 0xCB, 0xED, 0xCB, 0x90, + 0xB0, 0x07, 0x74, 0x03, 0xF0, 0xEC, 0x54, 0xFE, 0xFC, 0x12, 0x26, 0x9B, 0xCF, 0xEC, 0xCF, 0x12, + 0x26, 0xAC, 0x12, 0x26, 0xD8, 0xEF, 0x70, 0x02, 0xFF, 0x22, 0xCF, 0xEB, 0xCF, 0x12, 0x26, 0xAC, + 0x12, 0x26, 0xD8, 0xEF, 0x70, 0x02, 0xFF, 0x22, 0x90, 0x81, 0x62, 0xE0, 0xB4, 0x02, 0x03, 0x12, + 0x27, 0x04, 0xEC, 0x44, 0x01, 0xFC, 0x12, 0x26, 0x9B, 0xCF, 0xEC, 0xCF, 0x12, 0x26, 0xAC, 0x12, + 0x26, 0xD8, 0xEF, 0x70, 0x02, 0xFF, 0x22, 0x12, 0x27, 0x7A, 0x12, 0x27, 0x04, 0x22, 0x90, 0xB0, + 0x07, 0x74, 0x03, 0xF0, 0x90, 0x80, 0xF9, 0x74, 0x42, 0xF0, 0xE4, 0x90, 0x81, 0x9D, 0xF0, 0x90, + 0x81, 0x9D, 0xE0, 0x25, 0xE0, 0x24, 0x96, 0xF5, 0x82, 0xE4, 0x34, 0x28, 0xF5, 0x83, 0xE4, 0x93, + 0xFF, 0xF4, 0x60, 0x2D, 0x90, 0x81, 0x9D, 0xE0, 0xFE, 0xA3, 0xEF, 0xF0, 0xFD, 0xEE, 0x25, 0xE0, + 0x24, 0x97, 0xF5, 0x82, 0xE4, 0x34, 0x28, 0xF5, 0x83, 0xE4, 0x93, 0xFF, 0x90, 0x81, 0x9F, 0xF0, + 0xFB, 0x90, 0x81, 0x64, 0xE0, 0xFF, 0x12, 0x27, 0x31, 0x90, 0x81, 0x9D, 0xE0, 0x04, 0xF0, 0x80, + 0xBE, 0x22, 0xE4, 0x90, 0x81, 0x9D, 0xF0, 0xA3, 0xF0, 0x90, 0x81, 0x9D, 0xF0, 0xA3, 0xF0, 0x7F, + 0x4A, 0x90, 0x81, 0x9E, 0xE0, 0xFD, 0x24, 0xFA, 0xF5, 0x82, 0xE4, 0x34, 0x80, 0xF5, 0x83, 0xE0, + 0xFB, 0x12, 0x27, 0x31, 0x90, 0x81, 0x9E, 0xE0, 0x04, 0xF0, 0x70, 0x06, 0x90, 0x81, 0x9D, 0xE0, + 0x04, 0xF0, 0xC3, 0x90, 0x81, 0x9E, 0xE0, 0x94, 0x63, 0x90, 0x81, 0x9D, 0xE0, 0x64, 0x80, 0x94, + 0x80, 0x40, 0xCC, 0x7F, 0x00, 0x22, 0x12, 0x80, 0x03, 0xA4, 0x04, 0x30, 0x05, 0x44, 0x06, 0x60, + 0x11, 0x00, 0x12, 0x05, 0x13, 0xA3, 0x14, 0x04, 0x15, 0x04, 0x1F, 0x41, 0x20, 0xD0, 0x23, 0xDE, + 0x24, 0x88, 0x25, 0x70, 0x26, 0x32, 0x27, 0xE2, 0x28, 0x20, 0x2A, 0x91, 0x2B, 0x00, 0x2D, 0x05, + 0x2F, 0x9C, 0x30, 0x00, 0x31, 0xC4, 0x60, 0x86, 0x61, 0xE0, 0x62, 0x88, 0x63, 0x11, 0x64, 0x89, + 0x65, 0x00, 0x67, 0x94, 0x68, 0x7A, 0x69, 0x04, 0x6C, 0x11, 0x6D, 0x33, 0x6E, 0x22, 0x6F, 0x00, + 0x74, 0x20, 0x75, 0x0E, 0x77, 0xC4, 0xFF, 0xFF, 0x03, 0xA4, 0x06, 0x60, 0x2A, 0x91, 0x16, 0x00, + 0x1E, 0x00, 0x26, 0x32, 0x74, 0x20, 0xFF, 0xFF, 0x03, 0x64, 0x06, 0x78, 0x2A, 0x95, 0x16, 0x00, + 0x1E, 0x00, 0x26, 0xC2, 0x74, 0x60, 0xFF, 0xFF, 0x03, 0xC4, 0x27, 0xE2, 0x6C, 0x11, 0x6D, 0x33, + 0x6E, 0x22, 0x79, 0x80, 0x7A, 0x80, 0xFF, 0xFF, 0x03, 0x04, 0x27, 0xE2, 0x6C, 0xFF, 0x6D, 0xFF, + 0x6E, 0xFF, 0x79, 0x80, 0x7A, 0x80, 0xFF, 0xFF, 0x03, 0x04, 0x27, 0xEA, 0x6C, 0xFF, 0x6D, 0xFF, + 0x6E, 0xFF, 0x79, 0xA4, 0x7A, 0x35, 0xFF, 0xFF, 0x03, 0x04, 0x27, 0xEA, 0x6C, 0xFF, 0x6D, 0xFF, + 0x6E, 0xFF, 0x79, 0x1C, 0x7A, 0xA4, 0xFF, 0xFF, 0x2B, 0x00, 0xFF, 0xFF, 0x2B, 0x98, 0xFF, 0xFF, + 0x78, 0x7F, 0xE4, 0xF6, 0xD8, 0xFD, 0x75, 0x81, 0x17, 0x02, 0x29, 0x97, 0x02, 0x02, 0x25, 0xE4, + 0x93, 0xA3, 0xF8, 0xE4, 0x93, 0xA3, 0x40, 0x03, 0xF6, 0x80, 0x01, 0xF2, 0x08, 0xDF, 0xF4, 0x80, + 0x29, 0xE4, 0x93, 0xA3, 0xF8, 0x54, 0x07, 0x24, 0x0C, 0xC8, 0xC3, 0x33, 0xC4, 0x54, 0x0F, 0x44, + 0x20, 0xC8, 0x83, 0x40, 0x04, 0xF4, 0x56, 0x80, 0x01, 0x46, 0xF6, 0xDF, 0xE4, 0x80, 0x0B, 0x01, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x90, 0x02, 0xC8, 0xE4, 0x7E, 0x01, 0x93, 0x60, 0xBC, + 0xA3, 0xFF, 0x54, 0x3F, 0x30, 0xE5, 0x09, 0x54, 0x1F, 0xFE, 0xE4, 0x93, 0xA3, 0x60, 0x01, 0x0E, + 0xCF, 0x54, 0xC0, 0x25, 0xE0, 0x60, 0xA8, 0x40, 0xB8, 0xE4, 0x93, 0xA3, 0xFA, 0xE4, 0x93, 0xA3, + 0xF8, 0xE4, 0x93, 0xA3, 0xC8, 0xC5, 0x82, 0xC8, 0xCA, 0xC5, 0x83, 0xCA, 0xF0, 0xA3, 0xC8, 0xC5, + 0x82, 0xC8, 0xCA, 0xC5, 0x83, 0xCA, 0xDF, 0xE9, 0xDE, 0xE7, 0x80, 0xBE, 0xBB, 0x01, 0x06, 0x89, + 0x82, 0x8A, 0x83, 0xE0, 0x22, 0x50, 0x02, 0xE7, 0x22, 0xBB, 0xFE, 0x02, 0xE3, 0x22, 0x89, 0x82, + 0x8A, 0x83, 0xE4, 0x93, 0x22, 0xBB, 0x01, 0x0C, 0xE5, 0x82, 0x29, 0xF5, 0x82, 0xE5, 0x83, 0x3A, + 0xF5, 0x83, 0xE0, 0x22, 0x50, 0x06, 0xE9, 0x25, 0x82, 0xF8, 0xE6, 0x22, 0xBB, 0xFE, 0x06, 0xE9, + 0x25, 0x82, 0xF8, 0xE2, 0x22, 0xE5, 0x82, 0x29, 0xF5, 0x82, 0xE5, 0x83, 0x3A, 0xF5, 0x83, 0xE4, + 0x93, 0x22, 0xBB, 0x01, 0x06, 0x89, 0x82, 0x8A, 0x83, 0xF0, 0x22, 0x50, 0x02, 0xF7, 0x22, 0xBB, + 0xFE, 0x01, 0xF3, 0x22, 0xA3, 0xF8, 0xE0, 0xC5, 0xF0, 0x25, 0xF0, 0xF0, 0xE5, 0x82, 0x15, 0x82, + 0x70, 0x02, 0x15, 0x83, 0xE0, 0xC8, 0x38, 0xF0, 0xE8, 0x22, 0xE8, 0x8F, 0xF0, 0xA4, 0xCC, 0x8B, + 0xF0, 0xA4, 0x2C, 0xFC, 0xE9, 0x8E, 0xF0, 0xA4, 0x2C, 0xFC, 0x8A, 0xF0, 0xED, 0xA4, 0x2C, 0xFC, + 0xEA, 0x8E, 0xF0, 0xA4, 0xCD, 0xA8, 0xF0, 0x8B, 0xF0, 0xA4, 0x2D, 0xCC, 0x38, 0x25, 0xF0, 0xFD, + 0xE9, 0x8F, 0xF0, 0xA4, 0x2C, 0xCD, 0x35, 0xF0, 0xFC, 0xEB, 0x8E, 0xF0, 0xA4, 0xFE, 0xA9, 0xF0, + 0xEB, 0x8F, 0xF0, 0xA4, 0xCF, 0xC5, 0xF0, 0x2E, 0xCD, 0x39, 0xFE, 0xE4, 0x3C, 0xFC, 0xEA, 0xA4, + 0x2D, 0xCE, 0x35, 0xF0, 0xFD, 0xE4, 0x3C, 0xFC, 0x22, 0x75, 0xF0, 0x08, 0x75, 0x82, 0x00, 0xEF, + 0x2F, 0xFF, 0xEE, 0x33, 0xFE, 0xCD, 0x33, 0xCD, 0xCC, 0x33, 0xCC, 0xC5, 0x82, 0x33, 0xC5, 0x82, + 0x9B, 0xED, 0x9A, 0xEC, 0x99, 0xE5, 0x82, 0x98, 0x40, 0x0C, 0xF5, 0x82, 0xEE, 0x9B, 0xFE, 0xED, + 0x9A, 0xFD, 0xEC, 0x99, 0xFC, 0x0F, 0xD5, 0xF0, 0xD6, 0xE4, 0xCE, 0xFB, 0xE4, 0xCD, 0xFA, 0xE4, + 0xCC, 0xF9, 0xA8, 0x82, 0x22, 0xB8, 0x00, 0xC1, 0xB9, 0x00, 0x59, 0xBA, 0x00, 0x2D, 0xEC, 0x8B, + 0xF0, 0x84, 0xCF, 0xCE, 0xCD, 0xFC, 0xE5, 0xF0, 0xCB, 0xF9, 0x78, 0x18, 0xEF, 0x2F, 0xFF, 0xEE, + 0x33, 0xFE, 0xED, 0x33, 0xFD, 0xEC, 0x33, 0xFC, 0xEB, 0x33, 0xFB, 0x10, 0xD7, 0x03, 0x99, 0x40, + 0x04, 0xEB, 0x99, 0xFB, 0x0F, 0xD8, 0xE5, 0xE4, 0xF9, 0xFA, 0x22, 0x78, 0x18, 0xEF, 0x2F, 0xFF, + 0xEE, 0x33, 0xFE, 0xED, 0x33, 0xFD, 0xEC, 0x33, 0xFC, 0xC9, 0x33, 0xC9, 0x10, 0xD7, 0x05, 0x9B, + 0xE9, 0x9A, 0x40, 0x07, 0xEC, 0x9B, 0xFC, 0xE9, 0x9A, 0xF9, 0x0F, 0xD8, 0xE0, 0xE4, 0xC9, 0xFA, + 0xE4, 0xCC, 0xFB, 0x22, 0x75, 0xF0, 0x10, 0xEF, 0x2F, 0xFF, 0xEE, 0x33, 0xFE, 0xED, 0x33, 0xFD, + 0xCC, 0x33, 0xCC, 0xC8, 0x33, 0xC8, 0x10, 0xD7, 0x07, 0x9B, 0xEC, 0x9A, 0xE8, 0x99, 0x40, 0x0A, + 0xED, 0x9B, 0xFD, 0xEC, 0x9A, 0xFC, 0xE8, 0x99, 0xF8, 0x0F, 0xD5, 0xF0, 0xDA, 0xE4, 0xCD, 0xFB, + 0xE4, 0xCC, 0xFA, 0xE4, 0xC8, 0xF9, 0x22, 0xEB, 0x9F, 0xF5, 0xF0, 0xEA, 0x9E, 0x42, 0xF0, 0xE9, + 0x9D, 0x42, 0xF0, 0xE8, 0x9C, 0x45, 0xF0, 0x22, 0xE8, 0x60, 0x0F, 0xEC, 0xC3, 0x13, 0xFC, 0xED, + 0x13, 0xFD, 0xEE, 0x13, 0xFE, 0xEF, 0x13, 0xFF, 0xD8, 0xF1, 0x22, 0xE8, 0x60, 0x0F, 0xEF, 0xC3, + 0x33, 0xFF, 0xEE, 0x33, 0xFE, 0xED, 0x33, 0xFD, 0xEC, 0x33, 0xFC, 0xD8, 0xF1, 0x22, 0xEC, 0xF0, + 0xA3, 0xED, 0xF0, 0xA3, 0xEE, 0xF0, 0xA3, 0xEF, 0xF0, 0x22, 0xA8, 0x82, 0x85, 0x83, 0xF0, 0xD0, + 0x83, 0xD0, 0x82, 0x12, 0x2B, 0xC1, 0x12, 0x2B, 0xC1, 0x12, 0x2B, 0xC1, 0x12, 0x2B, 0xC1, 0xE4, + 0x73, 0xE4, 0x93, 0xA3, 0xC5, 0x83, 0xC5, 0xF0, 0xC5, 0x83, 0xC8, 0xC5, 0x82, 0xC8, 0xF0, 0xA3, + 0xC5, 0x83, 0xC5, 0xF0, 0xC5, 0x83, 0xC8, 0xC5, 0x82, 0xC8, 0x22, 0xD0, 0x83, 0xD0, 0x82, 0xF8, + 0xE4, 0x93, 0x70, 0x12, 0x74, 0x01, 0x93, 0x70, 0x0D, 0xA3, 0xA3, 0x93, 0xF8, 0x74, 0x01, 0x93, + 0xF5, 0x82, 0x88, 0x83, 0xE4, 0x73, 0x74, 0x02, 0x93, 0x68, 0x60, 0xEF, 0xA3, 0xA3, 0xA3, 0x80, + 0xDF +#endif \ No newline at end of file -- cgit v0.12