diff options
| author | Kristina Martšenko <kristina.martsenko@gmail.com> | 2014-07-24 04:34:38 +0300 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-07-23 19:01:36 -0700 |
| commit | 16fae052074aa44ffa8c15b789719bd9611a1278 (patch) | |
| tree | 9539fbbb48b95310e13b3081b0b16b6fc568fdf4 /drivers | |
| parent | 0d317b91d6d8f0ddb24623228e921e40f3d42265 (diff) | |
| download | linux-16fae052074aa44ffa8c15b789719bd9611a1278.tar.gz linux-16fae052074aa44ffa8c15b789719bd9611a1278.tar.bz2 linux-16fae052074aa44ffa8c15b789719bd9611a1278.zip | |
staging: keucr: remove driver
The driver hasn't been fully cleaned up and it doesn't look like anyone
is working on it anymore (including the original author). So remove the
driver and all references to it. If someone wants to finish cleaning
the driver up and moving it out of staging, this commit can be reverted.
Signed-off-by: Kristina Martšenko <kristina.martsenko@gmail.com>
Cc: Cho, Yu-Chen <acho@novell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/staging/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/staging/Makefile | 1 | ||||
| -rw-r--r-- | drivers/staging/keucr/Kconfig | 14 | ||||
| -rw-r--r-- | drivers/staging/keucr/Makefile | 13 | ||||
| -rw-r--r-- | drivers/staging/keucr/TODO | 12 | ||||
| -rw-r--r-- | drivers/staging/keucr/common.h | 7 | ||||
| -rw-r--r-- | drivers/staging/keucr/init.c | 333 | ||||
| -rw-r--r-- | drivers/staging/keucr/init.h | 518 | ||||
| -rw-r--r-- | drivers/staging/keucr/scsiglue.c | 467 | ||||
| -rw-r--r-- | drivers/staging/keucr/scsiglue.h | 10 | ||||
| -rw-r--r-- | drivers/staging/keucr/smcommon.h | 29 | ||||
| -rw-r--r-- | drivers/staging/keucr/smil.h | 288 | ||||
| -rw-r--r-- | drivers/staging/keucr/smilecc.c | 211 | ||||
| -rw-r--r-- | drivers/staging/keucr/smilmain.c | 760 | ||||
| -rw-r--r-- | drivers/staging/keucr/smilsub.c | 679 | ||||
| -rw-r--r-- | drivers/staging/keucr/smscsi.c | 194 | ||||
| -rw-r--r-- | drivers/staging/keucr/transport.c | 865 | ||||
| -rw-r--r-- | drivers/staging/keucr/transport.h | 73 | ||||
| -rw-r--r-- | drivers/staging/keucr/usb.c | 643 | ||||
| -rw-r--r-- | drivers/staging/keucr/usb.h | 240 | ||||
| -rw-r--r-- | drivers/usb/storage/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/usb/storage/ene_ub6250.c | 4 |
22 files changed, 3 insertions, 5362 deletions
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index d6a10c013a7f..5b14f0d8d1b8 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@ -76,8 +76,6 @@ source "drivers/staging/quickstart/Kconfig" source "drivers/staging/emxx_udc/Kconfig" -source "drivers/staging/keucr/Kconfig" - source "drivers/staging/bcm/Kconfig" source "drivers/staging/ft1000/Kconfig" diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile index 4a708e95d307..d4536df8b69b 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile @@ -32,7 +32,6 @@ obj-$(CONFIG_IIO) += iio/ obj-$(CONFIG_FB_XGI) += xgifb/ obj-$(CONFIG_ACPI_QUICKSTART) += quickstart/ obj-$(CONFIG_USB_EMXX) += emxx_udc/ -obj-$(CONFIG_USB_ENESTORAGE) += keucr/ obj-$(CONFIG_BCM_WIMAX) += bcm/ obj-$(CONFIG_FT1000) += ft1000/ obj-$(CONFIG_SPEAKUP) += speakup/ diff --git a/drivers/staging/keucr/Kconfig b/drivers/staging/keucr/Kconfig deleted file mode 100644 index ba756bf20665..000000000000 --- a/drivers/staging/keucr/Kconfig +++ /dev/null @@ -1,14 +0,0 @@ -config USB_ENESTORAGE - tristate "USB ENE SM card reader support" - depends on USB && SCSI && m - ---help--- - Say Y here if you wish to control a ENE SM Card reader. - To use SD/MS card, please build driver/usb/storage/ums-eneub6250.ko - - This option depends on 'SCSI' support being enabled, but you - probably also need 'SCSI device support: SCSI disk support' - (BLK_DEV_SD) for most USB storage devices. - - To compile this driver as a module, choose M here: the - module will be called keucr. - diff --git a/drivers/staging/keucr/Makefile b/drivers/staging/keucr/Makefile deleted file mode 100644 index c180bf4fab93..000000000000 --- a/drivers/staging/keucr/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -ccflags-y := -Idrivers/scsi - -obj-$(CONFIG_USB_ENESTORAGE) += keucr.o - -keucr-y := \ - usb.o \ - scsiglue.o \ - transport.o \ - init.o \ - smscsi.o \ - smilmain.o \ - smilsub.o \ - smilecc.o diff --git a/drivers/staging/keucr/TODO b/drivers/staging/keucr/TODO deleted file mode 100644 index d6da656eee1d..000000000000 --- a/drivers/staging/keucr/TODO +++ /dev/null @@ -1,12 +0,0 @@ -TODO: - - checkpatch.pl clean - - sparse clean - - determine if the driver should not be using a duplicate - version of the usb-storage scsi interface code, but should - be merged into the drivers/usb/storage/ directory and - infrastructure instead. - - review by the USB developer community - - smcommon.h & smilsub.c: use kernel hweight8(), hweight16() - -Please send any patches for this driver to Al Cho <acho@novell.com> and -Greg Kroah-Hartman <gregkh@linuxfoundation.org>. diff --git a/drivers/staging/keucr/common.h b/drivers/staging/keucr/common.h deleted file mode 100644 index f0b977616cd5..000000000000 --- a/drivers/staging/keucr/common.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef COMMON_INCD -#define COMMON_INCD - -#define BYTE_MASK 0xff - -#endif - diff --git a/drivers/staging/keucr/init.c b/drivers/staging/keucr/init.c deleted file mode 100644 index 1e7449d6d120..000000000000 --- a/drivers/staging/keucr/init.c +++ /dev/null @@ -1,333 +0,0 @@ -#include <linux/sched.h> -#include <linux/errno.h> -#include <linux/slab.h> - -#include <scsi/scsi.h> -#include <scsi/scsi_eh.h> -#include <scsi/scsi_device.h> - -#include "usb.h" -#include "scsiglue.h" -#include "transport.h" -#include "smil.h" -#include "init.h" - -/* - * ENE_InitMedia(): - */ -int ENE_InitMedia(struct us_data *us) -{ - int result; - u8 MiscReg03 = 0; - - dev_info(&us->pusb_dev->dev, "--- Init Media ---\n"); - result = ene_read_byte(us, REG_CARD_STATUS, &MiscReg03); - if (result != USB_STOR_XFER_GOOD) { - dev_err(&us->pusb_dev->dev, "Failed to read register\n"); - return USB_STOR_TRANSPORT_ERROR; - } - dev_info(&us->pusb_dev->dev, "MiscReg03 = %x\n", MiscReg03); - - if (MiscReg03 & 0x02) { - if (!us->SM_Status.Ready && !us->MS_Status.Ready) { - result = ENE_SMInit(us); - if (result != USB_STOR_XFER_GOOD) - return USB_STOR_TRANSPORT_ERROR; - } - - } - return result; -} - -/* - * ene_read_byte() : - */ -int ene_read_byte(struct us_data *us, u16 index, void *buf) -{ - struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; - int result; - - memset(bcb, 0, sizeof(struct bulk_cb_wrap)); - bcb->Signature = cpu_to_le32(US_BULK_CB_SIGN); - bcb->DataTransferLength = 0x01; - bcb->Flags = 0x80; - bcb->CDB[0] = 0xED; - bcb->CDB[2] = (u8)(index>>8); - bcb->CDB[3] = (u8)index; - - result = ENE_SendScsiCmd(us, FDIR_READ, buf, 0); - return result; -} - -/* - *ENE_SMInit() - */ -int ENE_SMInit(struct us_data *us) -{ - struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; - int result; - u8 buf[0x200]; - - dev_dbg(&us->pusb_dev->dev, "transport --- ENE_SMInit\n"); - - result = ENE_LoadBinCode(us, SM_INIT_PATTERN); - if (result != USB_STOR_XFER_GOOD) { - dev_info(&us->pusb_dev->dev, - "Failed to load SmartMedia init code\n: result= %x\n", - result); - return USB_STOR_TRANSPORT_ERROR; - } - - memset(bcb, 0, sizeof(struct bulk_cb_wrap)); - bcb->Signature = cpu_to_le32(US_BULK_CB_SIGN); - bcb->DataTransferLength = 0x200; - bcb->Flags = 0x80; - bcb->CDB[0] = 0xF1; - bcb->CDB[1] = 0x01; - - result = ENE_SendScsiCmd(us, FDIR_READ, &buf, 0); - if (result != USB_STOR_XFER_GOOD) { - dev_err(&us->pusb_dev->dev, - "Failed to load SmartMedia init code: result = %x\n", - result); - return USB_STOR_TRANSPORT_ERROR; - } - - us->SM_Status = *(struct keucr_sm_status *)&buf[0]; - - us->SM_DeviceID = buf[1]; - us->SM_CardID = buf[2]; - - if (us->SM_Status.Insert && us->SM_Status.Ready) { - dev_info(&us->pusb_dev->dev, "Insert = %x\n", - us->SM_Status.Insert); - dev_info(&us->pusb_dev->dev, "Ready = %x\n", - us->SM_Status.Ready); - dev_info(&us->pusb_dev->dev, "WtP = %x\n", - us->SM_Status.WtP); - dev_info(&us->pusb_dev->dev, "DeviceID = %x\n", - us->SM_DeviceID); - dev_info(&us->pusb_dev->dev, "CardID = %x\n", - us->SM_CardID); - MediaChange = 1; - Check_D_MediaFmt(us); - } else { - dev_err(&us->pusb_dev->dev, - "SmartMedia Card Not Ready --- %x\n", buf[0]); - return USB_STOR_TRANSPORT_ERROR; - } - - return USB_STOR_TRANSPORT_GOOD; -} - -/* - * ENE_LoadBinCode() - */ -int ENE_LoadBinCode(struct us_data *us, u8 flag) -{ - struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; - int result; - /* void *buf; */ - u8 *buf; - - /* dev_info(&us->pusb_dev->dev, "transport --- ENE_LoadBinCode\n"); */ - if (us->BIN_FLAG == flag) - return USB_STOR_TRANSPORT_GOOD; - - buf = kmalloc(0x800, GFP_KERNEL); - if (buf == NULL) - return USB_STOR_TRANSPORT_ERROR; - switch (flag) { - /* For SS */ - case SM_INIT_PATTERN: - dev_dbg(&us->pusb_dev->dev, "SM_INIT_PATTERN\n"); - memcpy(buf, SM_Init, 0x800); - break; - case SM_RW_PATTERN: - dev_dbg(&us->pusb_dev->dev, "SM_RW_PATTERN\n"); - memcpy(buf, SM_Rdwr, 0x800); - break; - } - - memset(bcb, 0, sizeof(struct bulk_cb_wrap)); - bcb->Signature = cpu_to_le32(US_BULK_CB_SIGN); - bcb->DataTransferLength = 0x800; - bcb->Flags = 0x00; - bcb->CDB[0] = 0xEF; - - result = ENE_SendScsiCmd(us, FDIR_WRITE, buf, 0); - - kfree(buf); - us->BIN_FLAG = flag; - return result; -} - -/* - * ENE_SendScsiCmd(): - */ -int ENE_SendScsiCmd(struct us_data *us, u8 fDir, void *buf, int use_sg) -{ - struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; - struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *) us->iobuf; - - int result; - unsigned int transfer_length = bcb->DataTransferLength, - cswlen = 0, partial = 0; - unsigned int residue; - - /* dev_dbg(&us->pusb_dev->dev, "transport --- ENE_SendScsiCmd\n"); */ - /* send cmd to out endpoint */ - result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, - bcb, US_BULK_CB_WRAP_LEN, NULL); - if (result != USB_STOR_XFER_GOOD) { - dev_err(&us->pusb_dev->dev, - "send cmd to out endpoint fail ---\n"); - return USB_STOR_TRANSPORT_ERROR; - } - - if (buf) { - unsigned int pipe = fDir; - - if (fDir == FDIR_READ) - pipe = us->recv_bulk_pipe; - else - pipe = us->send_bulk_pipe; - - /* Bulk */ - if (use_sg) - result = usb_stor_bulk_srb(us, pipe, us->srb); - else - result = usb_stor_bulk_transfer_sg(us, pipe, buf, - transfer_length, 0, &partial); - if (result != USB_STOR_XFER_GOOD) { - dev_err(&us->pusb_dev->dev, "data transfer fail ---\n"); - return USB_STOR_TRANSPORT_ERROR; - } - } - - /* Get CSW for device status */ - result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, bcs, - US_BULK_CS_WRAP_LEN, &cswlen); - - if (result == USB_STOR_XFER_SHORT && cswlen == 0) { - dev_warn(&us->pusb_dev->dev, - "Received 0-length CSW; retrying...\n"); - result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, - bcs, US_BULK_CS_WRAP_LEN, &cswlen); - } - - if (result == USB_STOR_XFER_STALLED) { - /* get the status again */ - dev_warn(&us->pusb_dev->dev, - "Attempting to get CSW (2nd try)...\n"); - result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, - bcs, US_BULK_CS_WRAP_LEN, NULL); - } - - if (result != USB_STOR_XFER_GOOD) - return USB_STOR_TRANSPORT_ERROR; - - /* check bulk status */ - residue = le32_to_cpu(bcs->Residue); - - /* - * try to compute the actual residue, based on how much data - * was really transferred and what the device tells us - */ - if (residue && !(us->fflags & US_FL_IGNORE_RESIDUE)) { - residue = min(residue, transfer_length); - if (us->srb) - scsi_set_resid(us->srb, max(scsi_get_resid(us->srb), - (int) residue)); - } - - if (bcs->Status != US_BULK_STAT_OK) - return USB_STOR_TRANSPORT_ERROR; - - return USB_STOR_TRANSPORT_GOOD; -} - -/* - * ENE_Read_Data() - */ -int ENE_Read_Data(struct us_data *us, void *buf, unsigned int length) -{ - struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; - struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *) us->iobuf; - int result; - - /* dev_dbg(&us->pusb_dev->dev, "transport --- ENE_Read_Data\n"); */ - /* set up the command wrapper */ - memset(bcb, 0, sizeof(struct bulk_cb_wrap)); - bcb->Signature = cpu_to_le32(US_BULK_CB_SIGN); - bcb->DataTransferLength = length; - bcb->Flags = 0x80; - bcb->CDB[0] = 0xED; - bcb->CDB[2] = 0xFF; - bcb->CDB[3] = 0x81; - - /* send cmd to out endpoint */ - result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, bcb, - US_BULK_CB_WRAP_LEN, NULL); - if (result != USB_STOR_XFER_GOOD) - return USB_STOR_TRANSPORT_ERROR; - - /* R/W data */ - result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, - buf, length, NULL); - if (result != USB_STOR_XFER_GOOD) - return USB_STOR_TRANSPORT_ERROR; - - /* Get CSW for device status */ - result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, bcs, - US_BULK_CS_WRAP_LEN, NULL); - if (result != USB_STOR_XFER_GOOD) - return USB_STOR_TRANSPORT_ERROR; - if (bcs->Status != US_BULK_STAT_OK) - return USB_STOR_TRANSPORT_ERROR; - - return USB_STOR_TRANSPORT_GOOD; -} - -/* - * ENE_Write_Data(): - */ -int ENE_Write_Data(struct us_data *us, void *buf, unsigned int length) -{ - struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; - struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *) us->iobuf; - int result; - - /* printk("transport --- ENE_Write_Data\n"); */ - /* set up the command wrapper */ - memset(bcb, 0, sizeof(struct bulk_cb_wrap)); - bcb->Signature = cpu_to_le32(US_BULK_CB_SIGN); - bcb->DataTransferLength = length; - bcb->Flags = 0x00; - bcb->CDB[0] = 0xEE; - bcb->CDB[2] = 0xFF; - bcb->CDB[3] = 0x81; - - /* send cmd to out endpoint */ - result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, bcb, - US_BULK_CB_WRAP_LEN, NULL); - if (result != USB_STOR_XFER_GOOD) - return USB_STOR_TRANSPORT_ERROR; - - /* R/W data */ - result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, - buf, length, NULL); - if (result != USB_STOR_XFER_GOOD) - return USB_STOR_TRANSPORT_ERROR; - - /* Get CSW for device status */ - result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, bcs, - US_BULK_CS_WRAP_LEN, NULL); - if (result != USB_STOR_XFER_GOOD) - return USB_STOR_TRANSPORT_ERROR; - if (bcs->Status != US_BULK_STAT_OK) - return USB_STOR_TRANSPORT_ERROR; - - return USB_STOR_TRANSPORT_GOOD; -} - diff --git a/drivers/staging/keucr/init.h b/drivers/staging/keucr/init.h deleted file mode 100644 index d1367e726ff1..000000000000 --- a/drivers/staging/keucr/init.h +++ /dev/null @@ -1,518 +0,0 @@ -#include "common.h" - -static u8 SM_Init[] = { -0x7B, 0x09, 0x7C, 0xF0, 0x7D, 0x10, 0x7E, 0xE9, -0x7F, 0xCC, 0x12, 0x2F, 0x71, 0x90, 0xE9, 0xCC, -0xE0, 0xB4, 0x07, 0x12, 0x90, 0xFF, 0x09, 0xE0, -0x30, 0xE1, 0x06, 0x90, 0xFF, 0x23, 0x74, 0x80, -0xF0, 0x12, 0x2F, 0x5C, 0xD3, 0x22, 0x78, 0x00, -0x90, 0xFF, 0x83, 0xE0, 0xA2, 0xE1, 0x92, 0x0A, -0x20, 0x0A, 0x03, 0x02, 0xE0, 0xD0, 0x7F, 0x00, -0x12, 0x2F, 0xCB, 0x20, 0x01, 0x05, 0xC2, 0x25, -0x02, 0xE0, 0xEB, 0xC3, 0xE8, 0x94, 0x02, 0x40, -0x03, 0x02, 0xE0, 0xD0, 0xC0, 0x00, 0x90, 0xFE, -0x66, 0x74, 0x90, 0xF0, 0x12, 0xE1, 0x40, 0x90, -0xFF, 0x95, 0xE0, 0xC2, 0xE4, 0xF0, 0x90, 0xFF, -0x97, 0x74, 0x01, 0xF0, 0x7E, 0x01, 0x7F, 0x90, -0x12, 0x2F, 0x74, 0x90, 0xFF, 0x97, 0x74, 0x03, -0xF0, 0x90, 0xFE, 0xC5, 0xE4, 0xF0, 0x74, 0x00, -0x90, 0xFE, 0x6A, 0xF0, 0xA3, 0xF0, 0xA3, 0xF0, -0xA3, 0xF0, 0x7E, 0x23, 0x7F, 0xDC, 0x12, 0x2F, -0x74, 0x12, 0x2F, 0x5C, 0x90, 0xFE, 0x64, 0xE0, -0x54, 0x01, 0x60, 0x04, 0xD2, 0x02, 0x80, 0x02, -0xC2, 0x02, 0x90, 0xFF, 0x95, 0xE0, 0xD2, 0xE4, -0xF0, 0x78, 0x10, 0x79, 0x04, 0x12, 0xE1, 0x71, -0x50, 0x3A, 0x90, 0xE9, 0xC6, 0xE0, 0x90, 0xE9, -0xC3, 0xF0, 0x78, 0x9A, 0x79, 0x04, 0x12, 0xE1, -0x71, 0x50, 0x29, 0x90, 0xE9, 0xC7, 0xE0, 0xB4, -0xB5, 0x22, 0x90, 0xE9, 0xC4, 0xF0, 0xD0, 0x00, -0xD2, 0x00, 0xC2, 0x01, 0xC2, 0x25, 0x80, 0x1B, -0xC2, 0x00, 0xD2, 0x01, 0x74, 0xFF, 0x90, 0xE9, -0xC3, 0xF0, 0xA3, 0xF0, 0x51, 0x01, 0xC2, 0x0A, -0xC2, 0x02, 0x80, 0x07, 0xD0, 0x00, 0x05, 0x00, -0x02, 0xE0, 0x43, 0x90, 0xFF, 0x09, 0xE0, 0x30, -0xE1, 0x06, 0x90, 0xFF, 0x23, 0x74, 0x80, 0xF0, -0x90, 0xFF, 0x09, 0xE0, 0x30, 0xE5, 0xFC, 0xE4, -0xA2, 0x0A, 0x92, 0xE0, 0xA2, 0x00, 0x92, 0xE1, -0xA2, 0x01, 0x92, 0xE2, 0xA2, 0x02, 0x92, 0xE6, -0xA2, 0x25, 0x92, 0xE7, 0x90, 0xF4, 0x00, 0xF0, -0x90, 0xE9, 0xC3, 0xE0, 0x90, 0xF4, 0x01, 0xF0, -0x90, 0xE9, 0xC4, 0xE0, 0x90, 0xF4, 0x02, 0xF0, -0x90, 0xFF, 0x2A, 0x74, 0x02, 0xF0, 0xA3, 0x74, -0x00, 0xF0, 0x75, 0x3C, 0x00, 0x75, 0x3D, 0x00, -0x75, 0x3E, 0x00, 0x75, 0x3F, 0x00, 0xD3, 0x22, -0x90, 0xFE, 0x71, 0xE4, 0xF0, 0x90, 0xFE, 0x72, -0x74, 0x01, 0xF0, 0x90, 0xFE, 0x64, 0x74, 0x0C, -0xF0, 0x90, 0xFE, 0x64, 0x74, 0x00, 0x45, 0x4E, -0xF0, 0x90, 0xFE, 0x64, 0xE0, 0x54, 0x10, 0x60, -0x08, 0x90, 0xFE, 0x72, 0x74, 0x81, 0xF0, 0xD3, -0x22, 0x90, 0xFE, 0x64, 0x74, 0x08, 0xF0, 0xC3, -0x22, 0x90, 0xFE, 0x6F, 0xE9, 0x14, 0xF0, 0x90, -0xFE, 0x70, 0xE0, 0x54, 0xFC, 0xF0, 0x90, 0xFE, -0x68, 0x74, 0x00, 0xF0, 0xB8, 0x9A, 0x2A, 0x74, -0x15, 0x90, 0xFE, 0x64, 0xF0, 0x74, 0x9A, 0x90, -0xFE, 0x60, 0xF0, 0x74, 0x16, 0x90, 0xFE, 0x64, -0xF0, 0x74, 0x00, 0x90, 0xFE, 0x60, 0xF0, 0x30, -0x0A, 0x5D, 0x90, 0xFE, 0x64, 0xE0, 0x20, 0xE7, -0xF6, 0x74, 0x14, 0x90, 0xFE, 0x64, 0xF0, 0x80, -0x20, 0x90, 0xFE, 0x6E, 0xE8, 0x44, 0x01, 0xF0, -0xC2, 0x09, 0x12, 0xE3, 0x26, 0x20, 0x08, 0x0E, -0x12, 0xE3, 0x32, 0x30, 0x3E, 0xF7, 0x90, 0xFE, -0xD8, 0x74, 0x01, 0xF0, 0xD2, 0x09, 0x20, 0x09, -0x2E, 0x7A, 0xE9, 0x7B, 0xC5, 0x7C, 0xFE, 0x7D, -0x60, 0xB8, 0x10, 0x07, 0x90, 0xFE, 0x69, 0xE0, -0x20, 0xE6, 0xFC, 0x8C, 0x83, 0x8D, 0x82, 0xE0, -0x8A, 0x83, 0x8B, 0x82, 0xF0, 0xA3, 0xAA, 0x83, -0xAB, 0x82, 0xD9, 0xE5, 0xB8, 0x9A, 0x06, 0x74, -0x10, 0x90, 0xFE, 0x64, 0xF0, 0xD3, 0x22, 0xC3, -0x22, 0x90, 0xFF, 0x83, 0xE0, 0xA2, 0xE1, 0x92, -0x25, 0x20, 0x25, 0x06, 0xC2, 0x1F, 0xD2, 0x19, -0xC3, 0x22, 0x7F, 0x02, 0x12, 0x2F, 0xCB, 0x20, -0x19, 0x05, 0x30, 0x1F, 0x02, 0xD3, 0x22, 0x90, -0xEA, 0x44, 0x74, 0x80, 0xF0, 0x7F, 0x10, 0x12, -0x2F, 0xC5, 0x90, 0xFE, 0x47, 0xE0, 0x44, 0x80, -0xF0, 0x78, 0x00, 0xE8, 0xC3, 0x94, 0x04, 0x50, -0x0A, 0x7F, 0x88, 0x7E, 0x13, 0x12, 0xE3, 0x4D, -0x08, 0x80, 0xF0, 0x90, 0xFE, 0x45, 0xE0, 0x54, -0xFB, 0xF0, 0x90, 0xFE, 0x47, 0xE0, 0x54, 0xBF, -0xF0, 0x90, 0xFE, 0x45, 0xE0, 0x54, 0xFE, 0xF0, -0x90, 0xFE, 0x45, 0xE0, 0x54, 0x7F, 0xF0, 0x90, -0xFE, 0x46, 0xE0, 0x44, 0x40, 0xF0, 0x90, 0xFE, -0x45, 0xE0, 0x54, 0xC7, 0x44, 0x18, 0xF0, 0x90, -0xFE, 0x47, 0xE0, 0x44, 0x08, 0xF0, 0x90, 0xFE, -0x45, 0xE0, 0x44, 0x40, 0xF0, 0x7F, 0x32, 0x7E, -0x00, 0x12, 0xE3, 0x4D, 0x90, 0xFE, 0x51, 0xE0, -0x54, 0x33, 0xF0, 0x90, 0xFE, 0x44, 0x74, 0x02, -0xF0, 0x30, 0x25, 0x04, 0xE0, 0x20, 0xE1, 0xF9, -0x90, 0xFE, 0x51, 0xE0, 0x54, 0x0F, 0xF0, 0x90, -0xFE, 0x44, 0x74, 0x02, 0xF0, 0x30, 0x25, 0x04, -0xE0, 0x20, 0xE1, 0xF9, 0x90, 0xFE, 0x44, 0x74, -0x04, 0xF0, 0x30, 0x25, 0x04, 0xE0, 0x20, 0xE2, -0xF9, 0x90, 0xFE, 0x4C, 0xE0, 0xF0, 0x90, 0xFE, -0x4D, 0xE0, 0xF0, 0x90, 0xFE, 0x48, 0x74, 0x7F, -0xF0, 0x90, 0xFE, 0x49, 0x74, 0x9F, 0xF0, 0x90, -0xFE, 0x51, 0xE0, 0x54, 0x3C, 0x44, 0x02, 0xF0, -0x90, 0xFE, 0x44, 0x74, 0x02, 0xF0, 0x30, 0x25, -0x04, 0xE0, 0x20, 0xE1, 0xF9, 0x90, 0xFE, 0x46, -0xE0, 0x44, 0x20, 0xF0, 0x79, 0x02, 0x7A, 0x06, -0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x06, 0x7E, 0xEB, -0x7F, 0xC9, 0x12, 0x2F, 0xA7, 0x40, 0x03, 0x02, -0xE3, 0x04, 0xD3, 0x22, 0xE4, 0x90, 0xFE, 0x48, -0xF0, 0x90, 0xFE, 0x49, 0xF0, 0x90, 0xFE, 0x4C, -0xE0, 0xF0, 0x90, 0xFE, 0x4D, 0xE0, 0xF0, 0x90, -0xFE, 0x47, 0xE0, 0x54, 0x7F, 0xF0, 0xC2, 0x25, -0xC2, 0x1F, 0xD2, 0x19, 0xC3, 0x22, 0xC2, 0x3E, -0x75, 0x7C, 0x00, 0x75, 0x7D, 0x00, 0x75, 0x7E, -0x00, 0x22, 0x05, 0x7C, 0xE5, 0x7C, 0x70, 0x14, -0x05, 0x7D, 0xE5, 0x7D, 0x70, 0x04, 0x05, 0x7E, -0x80, 0x0A, 0xB4, 0x17, 0x07, 0xE5, 0x7E, 0xB4, -0x06, 0x02, 0xD2, 0x3E, 0x22, 0x75, 0x8A, 0x00, -0x75, 0x8C, 0xCE, 0xC2, 0x8D, 0x90, 0xEA, 0x65, -0xE4, 0xF0, 0xA3, 0xF0, 0xD2, 0x8C, 0x90, 0xEA, -0x65, 0xE0, 0xFC, 0xA3, 0xE0, 0xFD, 0xEC, 0xC3, -0x9E, 0x40, 0xF3, 0x70, 0x05, 0xED, 0xC3, 0x9F, -0x40, 0xEC, 0xC2, 0x8C, 0x22, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x58, 0x44, 0x2D, 0x49, 0x6E, 0x69, 0x74, 0x20, -0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x31 }; - -static u8 SM_Rdwr[] = { -0x7B, 0x0C, 0x7C, 0xF0, 0x7D, 0x10, 0x7E, 0xE9, -0x7F, 0xCC, 0x12, 0x2F, 0x71, 0x90, 0xE9, 0xC3, -0xE0, 0xB4, 0x73, 0x04, 0x74, 0x40, 0x80, 0x09, -0xB4, 0x75, 0x04, 0x74, 0x40, 0x80, 0x02, 0x74, -0xC0, 0x90, 0xFE, 0x70, 0xF0, 0x90, 0xFF, 0x09, -0xE0, 0x30, 0xE1, 0x06, 0x90, 0xFF, 0x23, 0x74, -0x80, 0xF0, 0x90, 0xFF, 0x83, 0xE0, 0xA2, 0xE1, -0x92, 0x0A, 0x40, 0x01, 0x22, 0x90, 0xFE, 0x6A, -0xE4, 0xF0, 0x90, 0xE9, 0xCC, 0xE0, 0xB4, 0x02, -0x05, 0xD2, 0x06, 0x02, 0xE0, 0x78, 0xB4, 0x03, -0x03, 0x02, 0xE3, 0xD0, 0xB4, 0x04, 0x03, 0x02, -0xE1, 0xC6, 0xB4, 0x05, 0x03, 0x02, 0xE5, 0x20, -0xB4, 0x06, 0x03, 0x02, 0xE5, 0xE0, 0xB4, 0x07, -0x05, 0x12, 0x2F, 0x5C, 0xD3, 0x22, 0xB4, 0x08, -0x05, 0xC2, 0x06, 0x02, 0xE6, 0x3B, 0xC3, 0x22, -0xE5, 0x3E, 0xC3, 0x13, 0x90, 0xE9, 0xCA, 0xF0, -0xC0, 0xE0, 0x75, 0xF0, 0x02, 0xC0, 0xF0, 0x12, -0xE0, 0xD8, 0xEF, 0x70, 0x21, 0x20, 0x37, 0x07, -0x20, 0x09, 0x04, 0xD0, 0xF0, 0x80, 0x05, 0xD0, -0xF0, 0xD5, 0xF0, 0xE9, 0xD0, 0xE0, 0x90, 0xFF, -0x28, 0xE0, 0x30, 0xE7, 0xFC, 0x90, 0xFF, 0x28, -0xE0, 0x44, 0x01, 0xF0, 0xC3, 0x22, 0xD0, 0xF0, -0x90, 0xE9, 0xCF, 0xE0, 0x24, 0x01, 0xF0, 0x90, -0xE9, 0xCE, 0xE0, 0x34, 0x00, 0xF0, 0x90, 0xE9, -0xCD, 0xE0, 0x34, 0x00, 0xF0, 0xD0, 0xE0, 0x14, -0x70, 0xB6, 0x75, 0x3C, 0x00, 0x75, 0x3D, 0x00, -0x75, 0x3E, 0x00, 0x75, 0x3F, 0x00, 0xD3, 0x22, -0xC2, 0x08, 0xC2, 0x36, 0xC2, 0x37, 0xE4, 0x90, -0xEB, 0xC2, 0xF0, 0x90, 0xE9, 0xCD, 0xE0, 0xF8, -0xA3, 0xE0, 0xF9, 0xA3, 0xE0, 0x90, 0xFE, 0x6B, -0xF0, 0xA3, 0xE9, 0xF0, 0xA3, 0xE8, 0xF0, 0x90, -0xFE, 0x6F, 0x74, 0x0F, 0xF0, 0x90, 0xFE, 0x70, -0xE0, 0x54, 0xFC, 0x44, 0x02, 0xF0, 0x90, 0xFE, -0xC6, 0x74, 0x02, 0xF0, 0xA3, 0x74, 0x0F, 0xF0, -0x90, 0xFE, 0xC0, 0x74, 0xF4, 0xF0, 0x74, 0x00, -0xA3, 0xF0, 0x90, 0xFE, 0x68, 0x74, 0x21, 0xF0, -0x90, 0xFE, 0x64, 0x74, 0x70, 0x45, 0x4E, 0xF0, -0x90, 0xFE, 0x64, 0x74, 0x30, 0x45, 0x4E, 0xF0, -0x30, 0x06, 0x07, 0x90, 0xFF, 0x09, 0xE0, 0x30, -0xE5, 0xFC, 0x90, 0xFE, 0x6E, 0x74, 0x51, 0xF0, -0x90, 0xFE, 0xC4, 0x74, 0x21, 0xF0, 0xC2, 0x09, -0x12, 0xE7, 0xB0, 0x20, 0x08, 0x0E, 0x12, 0xE7, -0xBC, 0x30, 0x3E, 0xF7, 0x90, 0xFE, 0xD8, 0x74, -0x01, 0xF0, 0xD2, 0x09, 0x30, 0x09, 0x03, 0x7F, -0x00, 0x22, 0x12, 0xE7, 0xB0, 0x20, 0x36, 0x11, -0x20, 0x37, 0x0E, 0x12, 0xE7, 0xBC, 0x30, 0x3E, -0xF4, 0x90, 0xFE, 0xD8, 0x74, 0x01, 0xF0, 0xD2, -0x37, 0x30, 0x37, 0x03, 0x7F, 0x00, 0x22, 0x90, -0xFE, 0x64, 0x74, 0x10, 0x45, 0x4E, 0xF0, 0x90, -0xFE, 0x64, 0x74, 0x00, 0x45, 0x4E, 0xF0, 0x12, -0x2F, 0x65, 0x12, 0x2F, 0x68, 0xBF, 0x00, 0x09, -0x74, 0x02, 0x90, 0xEB, 0xC2, 0xF0, 0x7F, 0x00, -0x22, 0x12, 0x2F, 0x6B, 0xBF, 0x00, 0x0F, 0x12, -0x2F, 0x6E, 0xBF, 0x00, 0x09, 0x74, 0x01, 0x90, -0xEB, 0xC2, 0xF0, 0x7F, 0x00, 0x22, 0x30, 0x06, -0x0A, 0x90, 0xFF, 0x2A, 0x74, 0x02, 0xF0, 0xA3, -0x74, 0x00, 0xF0, 0x7F, 0x01, 0x22, 0x12, 0xE3, -0xAA, 0x74, 0x01, 0x90, 0xE9, 0xCB, 0xF0, 0xE5, -0x3E, 0xC3, 0x13, 0x90, 0xE9, 0xCA, 0xF0, 0xC0, -0xE0, 0x75, 0xF0, 0x02, 0xC0, 0xF0, 0x12, 0xE2, -0x2F, 0xEF, 0x70, 0x21, 0x20, 0x37, 0x07, 0x20, -0x09, 0x04, 0xD0, 0xF0, 0x80, 0x05, 0xD0, 0xF0, -0xD5, 0xF0, 0xE9, 0xD0, 0xE0, 0x90, 0xFF, 0x28, -0xE0, 0x30, 0xE7, 0xFC, 0x90, 0xFF, 0x28, 0xE0, -0x44, 0x01, 0xF0, 0xC3, 0x22, 0xD0, 0xF0, 0x90, -0xE9, 0xD2, 0xE0, 0x24, 0x01, 0xF0, 0x90, 0xE9, -0xD1, 0xE0, 0x34, 0x00, 0xF0, 0x90, 0xE9, 0xD0, -0xE0, 0x34, 0x00, 0xF0, 0xD0, 0xE0, 0x14, 0x70, -0xB6, 0x75, 0x3C, 0x00, 0x75, 0x3D, 0x00, 0x75, -0x3E, 0x00, 0x75, 0x3F, 0x00, 0xD3, 0x22, 0xC2, -0x08, 0xC2, 0x36, 0xC2, 0x37, 0x90, 0xFE, 0x68, -0x74, 0x31, 0xF0, 0x90, 0xE9, 0xD0, 0xE0, 0xF8, -0xA3, 0xE0, 0xF9, 0xA3, 0xE0, 0x90, 0xFE, 0x6B, -0xF0, 0xA3, 0xE9, 0xF0, 0xA3, 0xE8, 0xF0, 0x90, -0xFE, 0x6F, 0x74, 0x0F, 0xF0, 0x90, 0xFE, 0x70, -0xE0, 0x54, 0xFC, 0x44, 0x22, 0xF0, 0x90, 0xE9, -0xCB, 0xE0, 0x70, 0x0C, 0x90, 0xFE, 0xC0, 0x74, -0xF4, 0xF0, 0xA3, 0x74, 0x00, 0xF0, 0x80, 0x0A, -0x90, 0xFE, 0xC0, 0x74, 0xF0, 0xF0, 0xA3, 0x74, -0x00, 0xF0, 0x90, 0xFE, 0x64, 0x74, 0xF0, 0x45, -0x4E, 0xF0, 0x90, 0xFE, 0x64, 0x74, 0xB0, 0x45, -0x4E, 0xF0, 0x90, 0xFE, 0x6E, 0x74, 0x81, 0xF0, -0x90, 0xE9, 0xCB, 0xE0, 0x70, 0x0D, 0x90, 0xFE, -0xC6, 0x74, 0x02, 0xF0, 0xA3, 0x74, 0x0F, 0xF0, -0x02, 0xE3, 0x56, 0x20, 0x2D, 0x03, 0x02, 0xE2, -0xEF, 0x90, 0xFE, 0xC6, 0x74, 0x01, 0xF0, 0xA3, -0x74, 0xFF, 0xF0, 0x90, 0xFF, 0x09, 0x30, 0x0A, -0x04, 0xE0, 0x30, 0xE1, 0xF9, 0x90, 0xFE, 0xC4, -0x74, 0x23, 0xF0, 0x12, 0xE7, 0xB0, 0x20, 0x36, -0x11, 0x20, 0x37, 0x0E, 0x12, 0xE7, 0xBC, 0x30, -0x3E, 0xF4, 0x90, 0xFE, 0xD8, 0x74, 0x01, 0xF0, -0xD2, 0x37, 0x30, 0x37, 0x02, 0x61, 0xA7, 0x90, -0xFF, 0x09, 0xE0, 0x30, 0xE1, 0x06, 0x90, 0xFF, -0x23, 0x74, 0x80, 0xF0, 0x02, 0xE3, 0x3F, 0x90, -0xFE, 0xC6, 0xE4, 0xF0, 0xA3, 0x74, 0x3F, 0xF0, -0x78, 0x08, 0xC0, 0x00, 0xC2, |
