diff --git a/HBC/META.XML b/HBC/META.XML index 6d088a1a..d4f6a527 100644 --- a/HBC/META.XML +++ b/HBC/META.XML @@ -2,8 +2,8 @@ USB Loader GX USB Loader GX Team - 1.0 r913 - 201002162013 + 1.0 r914 + 201002222228 Loads games from USB-devices USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times. The interactive GUI is completely controllable with WiiMote, Classic Controller or GC Controller. diff --git a/data/ehcmodule_frag_v5.bin b/data/ehcmodule_frag_v5.bin index d62f50a8..894727ea 100644 Binary files a/data/ehcmodule_frag_v5.bin and b/data/ehcmodule_frag_v5.bin differ diff --git a/data/fatffs_module.bin b/data/fatffs_module.bin new file mode 100644 index 00000000..275ce23c Binary files /dev/null and b/data/fatffs_module.bin differ diff --git a/gui.pnproj b/gui.pnproj index 245d8234..853fa818 100644 --- a/gui.pnproj +++ b/gui.pnproj @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/source/fatmounter.c b/source/fatmounter.c index c886262d..55fb3bed 100644 --- a/source/fatmounter.c +++ b/source/fatmounter.c @@ -7,7 +7,7 @@ #include #include "usbloader/sdhc.h" -#include "usbloader/usbstorage.h" +#include "usbloader/usbstorage2.h" #include "usbloader/wbfs.h" #include "libfat/fat.h" #include "libntfs/ntfs.h" @@ -53,15 +53,15 @@ int USBDevice_Init() { //right now mounts first FAT-partition //try first mount with cIOS - if (!fatMount("USB", &__io_wiiums, 0, CACHE, SECTORS)) { - //try now mount with libogc - if (!fatMount("USB", &__io_usbstorage, 0, CACHE, SECTORS)) { +// if (!fatMount("USB", &__io_wiiums, 0, CACHE, SECTORS)) { +// //try now mount with libogc + if (!fatMount("USB", &__io_usbstorage2, 0, CACHE, SECTORS)) { #ifdef DEBUG_FAT gprintf(":-1"); #endif return -1; } - } +// } fat_usb_mount = 1; fat_usb_sec = _FAT_startSector; @@ -88,12 +88,12 @@ int WBFSDevice_Init(u32 sector) { //right now mounts first FAT-partition //try first mount with cIOS - if (!fatMount("WBFS", &__io_wiiums, 0, CACHE, SECTORS)) { +// if (!fatMount("WBFS", &__io_wiiums, 0, CACHE, SECTORS)) { //try now mount with libogc - if (!fatMount("WBFS", &__io_usbstorage, 0, CACHE, SECTORS)) { + if (!fatMount("WBFS", &__io_usbstorage2, 0, CACHE, SECTORS)) { return -1; } - } +// } fat_wbfs_mount = 1; fat_wbfs_sec = _FAT_startSector; @@ -180,19 +180,19 @@ s32 MountNTFS(u32 sector) if (wbfsDev == WBFS_DEVICE_USB) { /* Initialize WBFS interface */ - if (!__io_wiiums.startup()) { - ret = __io_usbstorage.startup(); +// if (!__io_wiiums.startup()) { + ret = __io_usbstorage2.startup(); if (!ret) { return -1; } - } +// } /* Mount device */ - if (!ntfsMount("NTFS", &__io_wiiums, sector, CACHE, SECTORS, NTFS_SHOW_HIDDEN_FILES | NTFS_RECOVER)) { - ret = ntfsMount("NTFS", &__io_usbstorage, sector, CACHE, SECTORS, NTFS_SHOW_HIDDEN_FILES | NTFS_RECOVER); +// if (!ntfsMount("NTFS", &__io_wiiums, sector, CACHE, SECTORS, NTFS_SHOW_HIDDEN_FILES | NTFS_RECOVER)) { + ret = ntfsMount("NTFS", &__io_usbstorage2, sector, CACHE, SECTORS, NTFS_SHOW_HIDDEN_FILES | NTFS_RECOVER); if (!ret) { return -2; } - } +// } } else if (wbfsDev == WBFS_DEVICE_SDHC) { if (sdhc_mode_sd == 0) { ret = ntfsMount("NTFS", &__io_sdhc, 0, CACHE, SECTORS, NTFS_SHOW_HIDDEN_FILES | NTFS_RECOVER); diff --git a/source/libfat/disc_fat.c b/source/libfat/disc_fat.c index f6753d7a..c17ca4c5 100644 --- a/source/libfat/disc_fat.c +++ b/source/libfat/disc_fat.c @@ -40,14 +40,14 @@ The list is terminated by a NULL/NULL entry. /* ====================== Wii ====================== */ #include -#include +#include "usbloader/usbstorage2.h" #include static const DISC_INTERFACE* get_io_wiisd (void) { return &__io_wiisd; } static const DISC_INTERFACE* get_io_usbstorage (void) { - return &__io_usbstorage; + return &__io_usbstorage2; } static const DISC_INTERFACE* get_io_gcsda (void) { diff --git a/source/libntfs/inode.c b/source/libntfs/inode.c index ad554b36..924e3bd5 100644 --- a/source/libntfs/inode.c +++ b/source/libntfs/inode.c @@ -120,7 +120,7 @@ ntfs_inode *ntfs_inode_allocate(ntfs_volume *vol) static void __ntfs_inode_release(ntfs_inode *ni) { if (NInoDirty(ni)) - ntfs_log_error("Releasing dirty inode %lld!\n", + ntfs_log_error("Releasing dirty inode %lld!\n", (long long)ni->mft_no); if (NInoAttrList(ni) && ni->attr_list) free(ni->attr_list); @@ -239,7 +239,7 @@ ntfs_inode *ntfs_inode_open(ntfs_volume *vol, const MFT_REF mref) if (l != ni->attr_list_size) { errno = EIO; ntfs_log_perror("Unexpected attrlist size (%lld <> %u), inode " - "%lld", (long long)l, ni->attr_list_size, + "%lld", (long long)l, ni->attr_list_size, (long long)MREF(mref)); goto put_err_out; } @@ -268,7 +268,7 @@ get_size: } } ntfs_attr_put_search_ctx(ctx); -out: +out: ntfs_log_leave("\n"); return ni; @@ -307,7 +307,7 @@ err_out: int ntfs_inode_close(ntfs_inode *ni) { int ret = -1; - + if (!ni) return 0; @@ -370,8 +370,8 @@ int ntfs_inode_close(ntfs_inode *ni) i = -1; break; } - - /* + + /* * We could successfully sync, so only log this error * and try to sync other inode extents too. */ @@ -379,7 +379,7 @@ int ntfs_inode_close(ntfs_inode *ni) ntfs_log_error("Extent inode %lld was not found\n", (long long)ni->mft_no); } - + __ntfs_inode_release(ni); ret = 0; err: @@ -424,11 +424,11 @@ ntfs_inode *ntfs_extent_inode_open(ntfs_inode *base_ni, const MFT_REF mref) ntfs_log_perror("%s", __FUNCTION__); return NULL; } - + ntfs_log_enter("Opening extent inode %lld (base mft record %lld).\n", (unsigned long long)mft_no, (unsigned long long)base_ni->mft_no); - + /* Is the extent inode already open and attached to the base inode? */ if (base_ni->nr_extents > 0) { extent_nis = base_ni->extent_nis; @@ -624,7 +624,7 @@ static int ntfs_inode_sync_file_name(ntfs_inode *ni) */ index_ni = ni; } else - index_ni = ntfs_inode_open(ni->vol, + index_ni = ntfs_inode_open(ni->vol, le64_to_cpu(fn->parent_directory)); if (!index_ni) { if (!err) @@ -768,8 +768,8 @@ int ntfs_inode_sync(ntfs_inode *ni) } NInoAttrListSetDirty(ni); goto sync_inode; - } - + } + if (na->data_size == ni->attr_list_size) { if (ntfs_attr_pwrite(na, 0, ni->attr_list_size, ni->attr_list) != ni->attr_list_size) { @@ -791,7 +791,7 @@ int ntfs_inode_sync(ntfs_inode *ni) } ntfs_attr_close(na); } - + sync_inode: /* Write this inode out to the $MFT (and $MFTMirr if applicable). */ if (NInoTestAndClearDirty(ni)) { @@ -817,8 +817,8 @@ sync_inode: eni = ni->extent_nis[i]; if (!NInoTestAndClearDirty(eni)) continue; - - if (ntfs_mft_record_write(eni->vol, eni->mft_no, + + if (ntfs_mft_record_write(eni->vol, eni->mft_no, eni->mrec)) { if (!err || errno == EIO) { err = errno; @@ -838,7 +838,7 @@ sync_inode: errno = err; ret = -1; } - + ntfs_log_leave("\n"); return ret; } @@ -885,19 +885,19 @@ int ntfs_inode_add_attrlist(ntfs_inode *ni) } /* Walk through all attributes. */ while (!ntfs_attr_lookup(AT_UNUSED, NULL, 0, 0, 0, NULL, 0, ctx)) { - + int ale_size; - + if (ctx->attr->type == AT_ATTRIBUTE_LIST) { err = EIO; ntfs_log_perror("Attribute list already present"); goto put_err_out; } - + ale_size = (sizeof(ATTR_LIST_ENTRY) + sizeof(ntfschar) * ctx->attr->name_length + 7) & ~7; al_len += ale_size; - + aln = realloc(al, al_len); if (!aln) { err = errno; @@ -906,9 +906,9 @@ int ntfs_inode_add_attrlist(ntfs_inode *ni) } ale = (ATTR_LIST_ENTRY *)(aln + ((u8 *)ale - al)); al = aln; - + memset(ale, 0, ale_size); - + /* Add attribute to attribute list. */ ale->type = ctx->attr->type; ale->length = cpu_to_le16((sizeof(ATTR_LIST_ENTRY) + @@ -975,7 +975,7 @@ int ntfs_inode_add_attrlist(ntfs_inode *ni) ntfs_attr_close(na); goto remove_attrlist_record;; } - + ntfs_attr_put_search_ctx(ctx); ntfs_attr_close(na); return 0; @@ -1076,12 +1076,12 @@ int ntfs_inode_free_space(ntfs_inode *ni, int size) * find next, because we don't need such. */ while (ctx->ntfs_ino->mft_no != ni->mft_no) { -retry: +retry: if (ntfs_attr_position(AT_UNUSED, ctx)) goto put_err_out; } - if (ntfs_inode_base(ctx->ntfs_ino)->mft_no == FILE_MFT && + if (ntfs_inode_base(ctx->ntfs_ino)->mft_no == FILE_MFT && ctx->attr->type == AT_DATA) goto retry; @@ -1102,10 +1102,10 @@ retry: return 0; } /* - * Reposition to first attribute after $STANDARD_INFORMATION - * and $ATTRIBUTE_LIST instead of simply skipping this attribute - * because in the case when we have got only in-memory attribute - * list then ntfs_attr_lookup will fail when it tries to find + * Reposition to first attribute after $STANDARD_INFORMATION + * and $ATTRIBUTE_LIST instead of simply skipping this attribute + * because in the case when we have got only in-memory attribute + * list then ntfs_attr_lookup will fail when it tries to find * $ATTRIBUTE_LIST. */ ntfs_attr_reinit_search_ctx(ctx); @@ -1129,6 +1129,8 @@ put_err_out: */ void ntfs_inode_update_times(ntfs_inode *ni, ntfs_time_update_flags mask) { + return; + time_t now; if (!ni) { @@ -1147,7 +1149,7 @@ void ntfs_inode_update_times(ntfs_inode *ni, ntfs_time_update_flags mask) ni->last_data_change_time = now; if (mask & NTFS_UPDATE_CTIME) ni->last_mft_change_time = now; - + set_nino_flag(ni, TimesDirty); NInoFileNameSetDirty(ni); NInoSetDirty(ni); @@ -1161,7 +1163,7 @@ void ntfs_inode_update_times(ntfs_inode *ni, ntfs_time_update_flags mask) * Check if the mft record given by @mft_no and @attr contains the bad sector * list. Please note that mft record numbers describing $Badclus extent inodes * will not match the current $Badclus:$Bad check. - * + * * On success return 1 if the file is $Badclus:$Bad, otherwise return 0. * On error return -1 with errno set to the error code. */ @@ -1175,7 +1177,7 @@ int ntfs_inode_badclus_bad(u64 mft_no, ATTR_RECORD *attr) errno = EINVAL; return -1; } - + if (mft_no != FILE_BadClus) return 0; @@ -1250,7 +1252,7 @@ int ntfs_inode_get_times(const char *path __attribute__((unused)), ret = -ERANGE; } ntfs_attr_put_search_ctx(ctx); - } + } return (ret ? ret : -errno); } @@ -1338,7 +1340,7 @@ int ntfs_inode_set_times(const char *path __attribute__((unused)), } } ntfs_attr_put_search_ctx(ctx); - } + } } else if (size < 8) errno = ERANGE; diff --git a/source/libntfs/ntfsinternal.c b/source/libntfs/ntfsinternal.c index 2b11c724..fb5aa096 100644 --- a/source/libntfs/ntfsinternal.c +++ b/source/libntfs/ntfsinternal.c @@ -41,11 +41,12 @@ #if defined(__wii__) #include #include -#include + +#include "usbloader/usbstorage2.h" const INTERFACE_ID ntfs_disc_interfaces[] = { { "sd", &__io_wiisd }, - { "usb", &__io_usbstorage }, + { "usb", &__io_usbstorage2 }, { "carda", &__io_gcsda }, { "cardb", &__io_gcsdb }, { NULL, NULL } diff --git a/source/libwbfs/libwbfs.c b/source/libwbfs/libwbfs.c index 02886357..09589b2a 100644 --- a/source/libwbfs/libwbfs.c +++ b/source/libwbfs/libwbfs.c @@ -536,6 +536,7 @@ u32 wbfs_add_disc(wbfs_t*p, read_wiidisc_callback_t read_src_wii_disc, } if (ret) break; info->wlba_table[i] = wbfs_htons(bl); + wbfs_sync(p); } // write disc info int disc_info_sz_lba = p->disc_info_sz>>p->hd_sec_sz_s; diff --git a/source/libwbfs/libwbfs.h b/source/libwbfs/libwbfs.h index 2b21de19..b4a9f132 100644 --- a/source/libwbfs/libwbfs.h +++ b/source/libwbfs/libwbfs.h @@ -20,7 +20,7 @@ typedef u32 be32_t; typedef u16 be16_t; - + typedef struct wbfs_head { be32_t magic; @@ -67,7 +67,7 @@ typedef struct wbfs_disc_info // callback definition. Return 1 on fatal error (callback is supposed to make retries until no hopes..) typedef int (*rw_sector_callback_t)(void*fp,u32 lba,u32 count,void*iobuf); -typedef void (*progress_callback_t)(int status,int total); +typedef void (*progress_callback_t)(u32 status, u32 total); typedef struct wbfs_s @@ -80,14 +80,14 @@ typedef struct wbfs_s u32 n_hd_sec; // the number of hd sector in the wbfs partition /* standard wii sector (0x8000 bytes) */ - u32 wii_sec_sz; + u32 wii_sec_sz; u8 wii_sec_sz_s; u32 n_wii_sec; u32 n_wii_sec_per_disc; - + /* The size of a wbfs sector */ u32 wbfs_sec_sz; - u32 wbfs_sec_sz_s; + u32 wbfs_sec_sz_s; u16 n_wbfs_sec; // this must fit in 16 bit! u16 n_wbfs_sec_per_disc; // size of the lookup table @@ -103,9 +103,9 @@ typedef struct wbfs_s u16 disc_info_sz; u8 *tmp_buffer; // pre-allocated buffer for unaligned read - + u32 n_disc_open; - + }wbfs_t; typedef struct wbfs_disc_s @@ -118,7 +118,7 @@ typedef struct wbfs_disc_s #define WBFS_MAGIC (('W'<<24)|('B'<<16)|('F'<<8)|('S')) -/*! @brief open a MSDOS partitionned harddrive. This tries to find a wbfs partition into the harddrive +/*! @brief open a MSDOS partitionned harddrive. This tries to find a wbfs partition into the harddrive @param read_hdsector,write_hdsector: accessors to a harddrive @hd_sector_size: size of the hd sector. Can be set to zero if the partition in already initialized @num_hd_sector: number of sectors in this disc. Can be set to zero if the partition in already initialized @@ -176,7 +176,7 @@ u32 wbfs_count_discs(wbfs_t*p); @param header: pointer to 0x100 bytes to write the header @size: optional pointer to a 32bit word that will get the size in 32bit words of the DVD taken on the partition. */ -u32 wbfs_get_disc_info(wbfs_t*p, u32 i,u8 *header,int header_size,u32 *size); +u32 wbfs_get_disc_info(wbfs_t*p, u32 i,u8 *header,int header_size,u32 *size); /*! get the number of used block of the partition. to be multiplied by p->wbfs_sec_sz (use 64bit multiplication) to have the number in bytes @@ -214,7 +214,7 @@ Even if the filesize is 4.7GB, the disc usage will be less. */ u32 wbfs_extract_disc(wbfs_disc_t*d, rw_sector_callback_t write_dst_wii_sector,void *callback_data,progress_callback_t spinner); -/*! extract a file from the wii disc filesystem. +/*! extract a file from the wii disc filesystem. E.G. Allows to extract the opening.bnr to install a game as a system menu channel */ int wbfs_extract_file(wbfs_disc_t*d, char *path, void **data); diff --git a/source/libwiigui/gui_gamegrid.cpp b/source/libwiigui/gui_gamegrid.cpp index 30acbcd2..9432a752 100644 --- a/source/libwiigui/gui_gamegrid.cpp +++ b/source/libwiigui/gui_gamegrid.cpp @@ -232,9 +232,9 @@ static int Pos3[45][2][2] = { {{591,153}, {633,153}}, {{591,250}, {633,250}}, - {{645,58}, {633,58}}, - {{645,153}, {633,153}}, - {{645,250}, {633,250}} + {{660,58}, {660,58}}, + {{660,153}, {660,153}}, + {{660,250}, {660,250}} }; #define VALUE4ROWS(rows, val1, val2, val3) (rows==3 ? val3 : (rows==2 ? val2 : val1)) diff --git a/source/main.cpp b/source/main.cpp index 870260e3..c79c7117 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -48,7 +48,7 @@ extern "C" #include "svnrev.h" #include "wad/title.h" #include "usbloader/partition_usbloader.h" -#include "usbloader/usbstorage.h" +#include "usbloader/usbstorage2.h" #include "memory/mem2.h" #include "lstub.h" @@ -413,7 +413,7 @@ main(int argc, char *argv[]) printf("\n\tReloading IOS to config setting (%d)...", Settings.cios == ios222 ? 222 : 223); SDCard_deInit(); // unmount SD for reloading IOS USBDevice_deInit(); // unmount USB for reloading IOS - USBStorage_Deinit(); + USBStorage2_Deinit(); ret = IOS_ReloadIOSsafe(Settings.cios == ios222 ? 222 : 223); printf("%d", ret); SDCard_Init(); @@ -436,7 +436,7 @@ main(int argc, char *argv[]) printf("\n\tReloading IOS to config setting (%d)...", ios249 ? 249 : 250); SDCard_deInit(); // unmount SD for reloading IOS USBDevice_deInit(); // unmount USB for reloading IOS - USBStorage_Deinit(); + USBStorage2_Deinit(); ret = IOS_ReloadIOSsafe(ios249 ? 249 : 250); printf("%d", ret); if (ret < 0) diff --git a/source/menu/menu_format.cpp b/source/menu/menu_format.cpp index ff97fd76..85089ab3 100644 --- a/source/menu/menu_format.cpp +++ b/source/menu/menu_format.cpp @@ -2,7 +2,7 @@ #include "menus.h" #include "fatmounter.h" -#include "usbloader/usbstorage.h" +#include "usbloader/usbstorage2.h" #include "usbloader/utils.h" #include "usbloader/wbfs.h" #include "libwiigui/gui_customoptionbrowser.h" @@ -18,7 +18,7 @@ int MenuFormat() { USBDevice_deInit(); sleep(1); - USBStorage_Init(); + USBStorage2_Init(); int menu = MENU_NONE; char imgPath[100]; diff --git a/source/menu/menu_install.cpp b/source/menu/menu_install.cpp index a9b8fe21..8f21ea43 100644 --- a/source/menu/menu_install.cpp +++ b/source/menu/menu_install.cpp @@ -1,5 +1,5 @@ #include "menus.h" -#include "usbloader/usbstorage.h" +#include "usbloader/usbstorage2.h" #include "usbloader/wbfs.h" #include "usbloader/disc.h" #include "usbloader/utils.h" @@ -104,11 +104,11 @@ int MenuInstall() { menu = MENU_DISCLIST; break; } else { - USBStorage_Watchdog(0); + USBStorage2_Watchdog(0); SetupGameInstallProgress(gametxt, name); ret = WBFS_AddGame(); ProgressStop(); - USBStorage_Watchdog(1); + USBStorage2_Watchdog(1); wiilight(0); if (ret != 0) { WindowPrompt(tr("Install Error!"),0,tr("Back")); diff --git a/source/mload/fatffs_module.c b/source/mload/fatffs_module.c deleted file mode 100644 index 37a2c3f2..00000000 --- a/source/mload/fatffs_module.c +++ /dev/null @@ -1,2127 +0,0 @@ -#define size_fatffs_module 58440 - -unsigned char fatffs_module[58440] __attribute__((aligned (32)))={ - 127, 69, 76, 70, 1, 2, 1, 97, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 40, 0, 0, 0, 1, 19, 115, 0, 0, 0, 0, 0, 52, 0, 0, 0, - 0, 0, 0, 6, 6, 0, 52, 0, 32, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, - 0, 0, 0, 160, 0, 240, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 212, 0, 0, 0, 160, 0, 0, 0, 160, 0, 0, 0, 52, 0, 0, 0, - 52, 0, 240, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 212, 0, 240, 0, - 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 0, 1, 8, 19, 115, 0, 0, 19, 115, 0, 0, 0, 0, 146, 196, 0, 0, 146, 196, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, 1, 0, 0, 147, 204, 19, 115, 160, 0, 19, 115, 160, 0, 0, 0, 80, 124, 0, 2, 76, 204, 0, 0, 0, 6, 0, - 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 4, 0, 0, 0, 9, 19, 115, 0, 0, 0, 0, 0, 125, 0, 0, - 0, 98, 0, 0, 0, 126, 0, 0, 48, 0, 0, 0, 0, 127, 19, 117, 236, 204, 227, 160, 0, 0, 227, 160, 16, 0, 229, 159, 48, 104, - 225, 47, 255, 19, 229, 159, 192, 100, 229, 156, 192, 0, 225, 160, 0, 0, 231, 156, 193, 11, 225, 160, 0, 0, 225, 47, - 255, 28, 225, 160, 0, 0, 225, 160, 0, 0, 227, 160, 176, 63, 234, 255, 255, 245, 225, 160, 0, 0, 225, 160, 0, 0, 227, - 160, 176, 64, 234, 255, 255, 241, 227, 160, 0, 0, 238, 7, 15, 21, 225, 47, 255, 30, 225, 160, 0, 0, 225, 160, 0, 0, - 225, 160, 0, 0, 238, 19, 15, 16, 225, 47, 255, 30, 225, 160, 0, 0, 225, 160, 0, 0, 238, 3, 15, 16, 225, 47, 255, 30, - 19, 115, 25, 193, 19, 117, 188, 168, 70, 192, 71, 120, 234, 0, 25, 161, 70, 192, 71, 120, 234, 0, 25, 231, 70, 192, - 71, 120, 234, 0, 25, 211, 70, 192, 71, 120, 234, 0, 25, 243, 70, 192, 71, 120, 234, 0, 25, 223, 70, 192, 71, 120, 234, - 0, 26, 3, 70, 192, 71, 120, 234, 0, 25, 245, 70, 192, 71, 120, 234, 0, 25, 209, 70, 192, 71, 120, 234, 0, 25, 185, 70, - 192, 71, 120, 234, 255, 255, 221, 70, 192, 71, 120, 234, 255, 255, 225, 70, 192, 71, 120, 234, 255, 255, 215, 70, 192, - 71, 120, 234, 0, 25, 165, 70, 192, 71, 120, 234, 0, 25, 177, 70, 192, 71, 120, 234, 0, 25, 165, 70, 192, 71, 120, 234, - 0, 25, 229, 70, 192, 71, 120, 234, 0, 25, 153, 70, 192, 71, 120, 234, 255, 255, 215, 70, 192, 71, 120, 234, 0, 25, 185, - 70, 192, 71, 120, 234, 0, 25, 171, 70, 192, 71, 120, 234, 0, 25, 159, 70, 192, 71, 120, 234, 0, 25, 185, 70, 192, 71, - 120, 234, 0, 25, 173, 70, 192, 71, 120, 234, 0, 25, 173, 181, 0, 40, 0, 208, 8, 109, 67, 43, 0, 208, 5, 104, 3, 96, - 11, 104, 131, 32, 0, 96, 75, 224, 1, 32, 101, 66, 64, 188, 2, 71, 8, 181, 16, 76, 7, 28, 3, 28, 10, 33, 0, 96, 33, 28, - 32, 28, 25, 240, 4, 251, 132, 40, 0, 218, 0, 104, 32, 188, 16, 188, 2, 71, 8, 19, 115, 240, 128, 181, 16, 76, 7, 28, - 3, 28, 10, 33, 0, 96, 33, 28, 32, 28, 25, 240, 4, 250, 244, 40, 0, 218, 0, 104, 32, 188, 16, 188, 2, 71, 8, 19, 115, - 240, 128, 181, 16, 76, 7, 28, 3, 28, 10, 33, 0, 96, 33, 28, 32, 28, 25, 240, 4, 252, 128, 40, 0, 218, 0, 104, 32, 188, - 16, 188, 2, 71, 8, 19, 115, 240, 128, 181, 16, 76, 6, 35, 0, 28, 1, 96, 35, 28, 32, 240, 4, 253, 48, 40, 0, 218, 0, - 104, 32, 188, 16, 188, 2, 71, 8, 19, 115, 240, 128, 181, 16, 76, 12, 176, 154, 35, 0, 96, 35, 28, 2, 147, 0, 169, 3, - 28, 32, 75, 9, 240, 5, 252, 4, 28, 1, 40, 0, 218, 1, 104, 32, 224, 3, 28, 32, 240, 5, 251, 204, 32, 0, 176, 26, 188, - 16, 188, 2, 71, 8, 70, 192, 19, 115, 240, 128, 0, 0, 2, 2, 181, 0, 176, 129, 28, 1, 72, 3, 240, 5, 251, 188, 176, 1, - 188, 2, 71, 8, 70, 192, 19, 115, 240, 128, 181, 16, 76, 7, 35, 0, 28, 1, 96, 35, 28, 32, 34, 0, 240, 4, 251, 69, 40, - 0, 218, 0, 104, 32, 188, 16, 188, 2, 71, 8, 70, 192, 19, 115, 240, 128, 181, 112, 78, 8, 28, 4, 28, 13, 28, 19, 34, - 0, 96, 50, 28, 48, 28, 33, 28, 42, 240, 4, 255, 34, 40, 0, 218, 0, 104, 48, 188, 112, 188, 2, 71, 8, 19, 115, 240, 128, - 181, 112, 78, 8, 28, 4, 28, 13, 28, 19, 34, 0, 96, 50, 28, 48, 28, 33, 28, 42, 240, 4, 255, 200, 40, 0, 218, 0, 104, - 48, 188, 112, 188, 2, 71, 8, 19, 115, 240, 128, 181, 112, 78, 8, 28, 4, 28, 13, 28, 19, 34, 0, 96, 50, 28, 48, 28, 33, - 28, 42, 240, 5, 249, 136, 40, 0, 218, 0, 104, 48, 188, 112, 188, 2, 71, 8, 19, 115, 240, 128, 181, 240, 176, 131, 28, - 6, 32, 92, 28, 15, 240, 1, 255, 243, 28, 4, 40, 0, 209, 2, 32, 22, 66, 64, 224, 15, 77, 10, 35, 0, 96, 43, 28, 40, 147, - 0, 28, 33, 28, 50, 28, 59, 240, 5, 251, 129, 40, 0, 218, 3, 28, 32, 240, 1, 255, 210, 104, 40, 176, 3, 188, 240, 188, - 2, 71, 8, 70, 192, 19, 115, 240, 128, 181, 16, 28, 4, 28, 33, 72, 4, 240, 4, 249, 222, 104, 96, 240, 1, 255, 193, 188, - 16, 188, 1, 71, 0, 19, 115, 240, 128, 181, 240, 28, 7, 32, 164, 176, 129, 0, 64, 28, 14, 240, 1, 255, 192, 28, 5, 40, - 0, 209, 2, 32, 22, 66, 64, 224, 22, 34, 164, 33, 0, 0, 82, 240, 7, 248, 75, 76, 11, 35, 0, 96, 51, 96, 117, 28, 32, - 96, 35, 28, 49, 28, 58, 240, 4, 250, 59, 40, 0, 208, 1, 32, 0, 224, 3, 28, 40, 240, 1, 255, 152, 104, 32, 176, 1, 188, - 240, 188, 2, 71, 8, 70, 192, 19, 115, 240, 128, 181, 240, 76, 51, 68, 165, 172, 155, 145, 2, 28, 33, 144, 3, 146, 1, - 247, 255, 255, 202, 40, 0, 219, 81, 74, 44, 73, 43, 145, 4, 146, 5, 74, 44, 39, 1, 146, 0, 152, 0, 169, 155, 170, 71, - 171, 135, 240, 4, 249, 151, 40, 0, 209, 55, 172, 71, 120, 35, 43, 46, 208, 243, 43, 35, 208, 241, 28, 32, 240, 7, 254, - 36, 40, 12, 216, 236, 155, 137, 4, 89, 213, 30, 172, 7, 153, 3, 28, 32, 240, 7, 253, 246, 73, 30, 28, 32, 240, 7, 253, - 60, 169, 71, 28, 32, 240, 7, 253, 56, 28, 32, 169, 152, 170, 157, 247, 255, 255, 197, 40, 0, 219, 19, 155, 152, 156, - 153, 153, 4, 154, 5, 25, 18, 65, 89, 155, 157, 145, 4, 146, 5, 24, 255, 224, 8, 155, 141, 28, 30, 23, 221, 154, 4, 155, - 5, 25, 155, 65, 106, 146, 4, 147, 5, 55, 1, 231, 191, 153, 2, 155, 4, 156, 5, 96, 11, 96, 76, 154, 1, 168, 155, 96, - 23, 247, 255, 255, 105, 32, 0, 35, 159, 0, 155, 68, 157, 188, 240, 188, 2, 71, 8, 0, 0, 0, 0, 0, 0, 64, 0, 255, 255, - 253, 132, 19, 115, 240, 128, 19, 115, 167, 80, 70, 192, 70, 192, 181, 240, 176, 213, 172, 82, 28, 33, 28, 6, 247, 255, - 255, 93, 40, 0, 219, 40, 79, 22, 173, 33, 28, 56, 169, 82, 28, 42, 171, 65, 240, 4, 249, 47, 40, 0, 209, 26, 120, 43, - 43, 46, 208, 244, 172, 1, 28, 49, 28, 32, 240, 7, 253, 153, 73, 14, 28, 32, 240, 7, 252, 223, 28, 32, 28, 41, 240, 7, - 252, 219, 155, 67, 4, 90, 213, 2, 28, 32, 247, 255, 255, 215, 168, 1, 247, 255, 254, 126, 40, 0, 218, 220, 168, 82, - 247, 255, 255, 37, 32, 0, 176, 85, 188, 240, 188, 2, 71, 8, 19, 115, 240, 128, 19, 115, 167, 80, 181, 240, 176, 167, - 76, 36, 147, 0, 173, 36, 35, 0, 145, 2, 96, 35, 28, 41, 146, 1, 247, 255, 255, 30, 40, 0, 219, 56, 38, 0, 39, 0, 224, - 42, 72, 29, 169, 36, 170, 4, 35, 0, 240, 4, 248, 239, 144, 3, 40, 0, 209, 38, 154, 2, 25, 213, 70, 106, 124, 19, 43, - 46, 208, 27, 43, 35, 208, 25, 155, 2, 43, 0, 208, 19, 168, 4, 240, 7, 253, 118, 28, 4, 40, 12, 220, 16, 169, 4, 28, - 34, 28, 40, 240, 6, 254, 188, 35, 15, 70, 106, 92, 154, 28, 40, 85, 42, 240, 7, 253, 103, 48, 1, 224, 0, 32, 0, 54, - 1, 24, 63, 155, 0, 43, 0, 208, 209, 66, 179, 216, 207, 154, 1, 168, 36, 96, 22, 247, 255, 254, 214, 32, 0, 176, 39, - 188, 240, 188, 2, 71, 8, 70, 192, 19, 115, 240, 128, 181, 240, 176, 199, 76, 35, 147, 0, 173, 68, 35, 0, 145, 2, 96, - 35, 28, 41, 146, 1, 247, 255, 254, 208, 40, 0, 219, 54, 38, 0, 39, 0, 224, 40, 72, 28, 169, 68, 170, 4, 35, 0, 240, - 4, 248, 161, 144, 3, 40, 0, 209, 36, 154, 2, 25, 213, 70, 106, 124, 19, 43, 46, 208, 25, 43, 35, 208, 23, 155, 2, 43, - 0, 208, 17, 168, 4, 240, 7, 253, 40, 28, 4, 169, 4, 28, 34, 28, 40, 240, 6, 254, 112, 35, 15, 70, 106, 92, 154, 28, - 40, 85, 42, 240, 7, 253, 27, 48, 1, 224, 0, 32, 0, 54, 1, 24, 63, 155, 0, 43, 0, 208, 211, 66, 179, 216, 209, 154, 1, - 168, 68, 96, 22, 247, 255, 254, 138, 32, 0, 176, 71, 188, 240, 188, 2, 71, 8, 70, 192, 19, 115, 240, 128, 181, 16, 28, - 4, 34, 0, 28, 8, 92, 161, 92, 131, 41, 0, 209, 2, 43, 0, 209, 10, 224, 7, 43, 0, 208, 5, 43, 35, 208, 1, 66, 153, 209, - 3, 50, 1, 231, 240, 32, 0, 224, 1, 32, 1, 66, 64, 188, 16, 188, 2, 71, 8, 181, 16, 73, 33, 28, 4, 247, 255, 255, 225, - 40, 0, 208, 53, 73, 31, 28, 32, 247, 255, 255, 219, 40, 0, 208, 47, 73, 29, 28, 32, 247, 255, 255, 213, 40, 0, 208, - 41, 73, 27, 28, 32, 247, 255, 255, 207, 40, 0, 208, 37, 73, 25, 28, 32, 247, 255, 255, 201, 40, 0, 208, 29, 73, 23, - 28, 32, 247, 255, 255, 195, 40, 0, 208, 23, 73, 21, 28, 32, 247, 255, 255, 189, 40, 0, 208, 17, 73, 19, 28, 32, 247, - 255, 255, 183, 40, 0, 208, 11, 73, 17, 28, 32, 247, 255, 255, 177, 40, 0, 208, 5, 73, 15, 28, 32, 247, 255, 255, 171, - 40, 0, 209, 1, 32, 0, 224, 1, 32, 1, 66, 64, 188, 16, 188, 2, 71, 8, 19, 115, 167, 82, 19, 115, 167, 98, 19, 115, 167, - 114, 19, 115, 167, 130, 19, 115, 167, 146, 19, 115, 167, 151, 19, 115, 167, 168, 19, 115, 167, 185, 19, 115, 167, 202, - 19, 115, 167, 216, 32, 6, 66, 64, 71, 112, 70, 192, 32, 6, 66, 64, 71, 112, 70, 192, 32, 6, 66, 64, 71, 112, 70, 192, - 32, 6, 66, 64, 71, 112, 70, 192, 181, 240, 77, 53, 28, 3, 104, 40, 176, 131, 48, 64, 28, 14, 28, 25, 28, 23, 240, 2, - 251, 219, 104, 40, 33, 0, 28, 2, 50, 64, 14, 19, 112, 3, 12, 19, 112, 67, 10, 19, 112, 131, 112, 194, 35, 1, 50, 96, - 113, 131, 14, 19, 114, 3, 12, 19, 114, 67, 114, 194, 10, 19, 50, 4, 114, 131, 14, 19, 116, 3, 12, 19, 113, 1, 113, 65, - 113, 193, 115, 1, 115, 65, 115, 129, 116, 67, 117, 1, 10, 19, 117, 65, 117, 129, 36, 4, 33, 128, 116, 131, 116, 194, - 115, 196, 117, 196, 0, 73, 247, 255, 252, 178, 75, 26, 33, 15, 104, 24, 104, 43, 34, 1, 147, 0, 35, 2, 247, 255, 252, - 113, 40, 0, 209, 35, 104, 41, 28, 11, 51, 160, 120, 26, 51, 1, 120, 27, 6, 18, 4, 27, 67, 19, 28, 10, 50, 162, 120, - 18, 2, 18, 67, 26, 28, 11, 51, 163, 120, 27, 67, 19, 96, 51, 28, 11, 51, 164, 120, 26, 51, 1, 120, 27, 6, 18, 4, 27, - 67, 19, 28, 10, 50, 166, 120, 18, 49, 167, 2, 18, 67, 26, 120, 11, 67, 19, 96, 59, 176, 3, 188, 240, 188, 2, 71, 8, - 70, 192, 19, 115, 244, 168, 19, 115, 160, 12, 181, 16, 76, 21, 28, 1, 104, 32, 176, 130, 48, 64, 240, 2, 251, 110, 104, - 34, 32, 0, 28, 17, 49, 64, 14, 11, 112, 19, 12, 11, 112, 83, 10, 11, 112, 209, 112, 147, 104, 35, 34, 1, 113, 154, 113, - 24, 113, 88, 113, 216, 33, 128, 104, 32, 0, 73, 247, 255, 252, 92, 75, 7, 33, 6, 104, 24, 104, 35, 34, 1, 147, 0, 35, - 0, 247, 255, 252, 27, 176, 2, 188, 16, 188, 2, 71, 8, 70, 192, 19, 115, 244, 168, 19, 115, 160, 12, 181, 16, 76, 21, - 28, 1, 104, 32, 176, 130, 48, 64, 240, 2, 251, 62, 104, 34, 32, 0, 28, 17, 49, 64, 14, 11, 112, 19, 12, 11, 112, 83, - 10, 11, 112, 209, 112, 147, 104, 35, 34, 1, 113, 154, 113, 24, 113, 88, 113, 216, 33, 128, 104, 32, 0, 73, 247, 255, - 252, 44, 75, 7, 33, 7, 104, 24, 104, 35, 34, 1, 147, 0, 35, 0, 247, 255, 251, 235, 176, 2, 188, 16, 188, 2, 71, 8, 70, - 192, 19, 115, 244, 168, 19, 115, 160, 12, 181, 240, 76, 68, 28, 3, 104, 32, 176, 131, 48, 64, 28, 13, 28, 25, 28, 22, - 240, 2, 251, 11, 104, 34, 32, 0, 28, 17, 49, 64, 14, 11, 112, 19, 12, 11, 112, 83, 10, 11, 112, 209, 112, 147, 104, - 35, 34, 1, 113, 24, 113, 88, 113, 154, 113, 216, 104, 34, 39, 4, 28, 17, 49, 160, 14, 11, 114, 19, 12, 11, 114, 83, - 10, 11, 114, 147, 114, 209, 104, 35, 115, 24, 115, 88, 115, 152, 115, 223, 45, 0, 209, 1, 36, 1, 224, 50, 104, 34, 120, - 49, 28, 19, 51, 160, 112, 25, 120, 113, 51, 1, 112, 25, 120, 177, 51, 1, 112, 25, 120, 243, 50, 163, 112, 19, 104, 34, - 14, 43, 116, 19, 12, 43, 116, 83, 10, 43, 116, 147, 116, 213, 104, 50, 104, 33, 0, 83, 24, 155, 0, 155, 24, 155, 14, - 26, 117, 10, 12, 26, 117, 74, 10, 26, 117, 203, 117, 138, 104, 34, 28, 17, 49, 160, 14, 11, 118, 19, 12, 11, 118, 83, - 10, 11, 118, 147, 118, 209, 104, 35, 36, 2, 119, 24, 119, 88, 119, 152, 119, 223, 77, 19, 33, 128, 104, 40, 0, 73, 247, - 255, 251, 177, 75, 17, 33, 248, 104, 24, 104, 43, 28, 34, 147, 0, 28, 35, 247, 255, 251, 112, 40, 0, 209, 17, 104, 41, - 28, 11, 51, 160, 120, 26, 51, 1, 120, 27, 6, 18, 4, 27, 67, 19, 28, 10, 50, 162, 120, 18, 49, 163, 2, 18, 67, 26, 120, - 11, 67, 19, 96, 51, 176, 3, 188, 240, 188, 2, 71, 8, 19, 115, 244, 168, 19, 115, 160, 12, 181, 16, 76, 21, 28, 1, 104, - 32, 176, 130, 48, 64, 240, 2, 250, 128, 104, 34, 32, 0, 28, 17, 49, 64, 14, 11, 112, 19, 12, 11, 112, 83, 10, 11, 112, - 209, 112, 147, 104, 35, 34, 1, 113, 154, 113, 24, 113, 88, 113, 216, 33, 128, 104, 32, 0, 73, 247, 255, 251, 110, 75, - 7, 33, 9, 104, 24, 104, 35, 34, 1, 147, 0, 35, 0, 247, 255, 251, 45, 176, 2, 188, 16, 188, 2, 71, 8, 70, 192, 19, 115, - 244, 168, 19, 115, 160, 12, 181, 16, 76, 21, 28, 1, 104, 32, 176, 130, 48, 64, 240, 2, 250, 80, 104, 34, 32, 0, 28, - 17, 49, 64, 14, 11, 112, 19, 12, 11, 112, 83, 10, 11, 112, 209, 112, 147, 104, 35, 34, 1, 113, 154, 113, 24, 113, 88, - 113, 216, 33, 128, 104, 32, 0, 73, 247, 255, 251, 62, 75, 7, 33, 10, 104, 24, 104, 35, 34, 1, 147, 0, 35, 0, 247, 255, - 250, 253, 176, 2, 188, 16, 188, 2, 71, 8, 70, 192, 19, 115, 244, 168, 19, 115, 160, 12, 181, 48, 76, 32, 28, 3, 104, - 32, 176, 131, 28, 13, 48, 64, 28, 25, 240, 2, 250, 30, 104, 32, 28, 41, 48, 160, 240, 2, 250, 25, 104, 34, 32, 0, 28, - 17, 49, 64, 14, 11, 112, 19, 12, 11, 112, 83, 10, 11, 112, 209, 112, 147, 104, 35, 37, 1, 113, 157, 113, 24, 113, 88, - 113, 216, 104, 34, 28, 17, 49, 160, 14, 11, 114, 19, 12, 11, 114, 83, 10, 11, 114, 209, 114, 147, 104, 35, 33, 128, - 115, 157, 115, 24, 115, 88, 115, 216, 104, 32, 0, 73, 247, 255, 250, 248, 75, 7, 33, 11, 104, 24, 104, 35, 34, 2, 147, - 0, 35, 0, 247, 255, 250, 183, 176, 3, 188, 48, 188, 2, 71, 8, 70, 192, 19, 115, 244, 168, 19, 115, 160, 12, 181, 112, - 76, 36, 28, 3, 104, 32, 176, 130, 48, 64, 28, 14, 28, 25, 240, 2, 249, 216, 104, 34, 32, 0, 28, 17, 49, 64, 14, 11, - 112, 19, 12, 11, 112, 83, 10, 11, 112, 209, 112, 147, 104, 35, 34, 1, 113, 24, 113, 88, 113, 154, 113, 216, 104, 34, - 28, 17, 49, 160, 14, 11, 114, 19, 12, 11, 114, 83, 10, 11, 114, 209, 114, 147, 104, 35, 34, 68, 115, 218, 115, 24, 115, - 88, 115, 152, 33, 128, 104, 32, 0, 73, 247, 255, 250, 182, 75, 13, 33, 12, 104, 24, 104, 35, 34, 1, 147, 0, 35, 1, 247, - 255, 250, 117, 28, 5, 40, 0, 219, 7, 46, 0, 208, 5, 104, 33, 28, 48, 49, 160, 34, 68, 240, 2, 249, 142, 176, 2, 28, - 40, 188, 112, 188, 2, 71, 8, 70, 192, 19, 115, 244, 168, 19, 115, 160, 12, 181, 112, 76, 35, 28, 3, 104, 32, 176, 130, - 48, 64, 28, 14, 28, 25, 240, 2, 249, 138, 104, 34, 32, 0, 28, 17, 49, 64, 14, 11, 112, 19, 12, 11, 112, 83, 10, 11, - 112, 209, 112, 147, 104, 35, 34, 1, 113, 24, 113, 88, 113, 154, 113, 216, 104, 34, 28, 17, 49, 160, 14, 11, 114, 19, - 12, 11, 114, 83, 10, 11, 114, 209, 114, 147, 104, 35, 34, 44, 115, 218, 115, 24, 115, 88, 115, 152, 33, 128, 104, 32, - 0, 73, 247, 255, 250, 104, 75, 12, 33, 13, 104, 24, 104, 35, 34, 1, 147, 0, 35, 1, 247, 255, 250, 39, 28, 5, 40, 0, - 219, 5, 104, 33, 28, 48, 49, 160, 34, 44, 240, 2, 249, 66, 176, 2, 28, 40, 188, 112, 188, 2, 71, 8, 70, 192, 19, 115, - 244, 168, 19, 115, 160, 12, 181, 48, 75, 10, 28, 12, 104, 26, 73, 9, 0, 83, 24, 155, 0, 155, 28, 5, 24, 201, 176, 129, - 28, 32, 240, 2, 249, 58, 28, 41, 28, 32, 240, 2, 249, 70, 176, 1, 188, 48, 188, 1, 71, 0, 19, 115, 247, 40, 19, 115, - 171, 84, 181, 16, 75, 13, 104, 27, 43, 0, 218, 18, 76, 12, 104, 35, 43, 0, 209, 6, 33, 128, 32, 0, 0, 73, 34, 32, 247, - 255, 249, 239, 96, 32, 72, 7, 33, 0, 247, 255, 250, 42, 40, 0, 219, 2, 75, 2, 96, 24, 32, 0, 188, 16, 188, 2, 71, 8, - 19, 115, 160, 12, 19, 115, 244, 168, 19, 115, 167, 229, 181, 16, 76, 53, 104, 35, 43, 0, 218, 99, 247, 255, 255, 215, - 96, 32, 40, 0, 219, 94, 76, 49, 72, 50, 28, 33, 247, 255, 255, 181, 28, 32, 247, 255, 253, 132, 28, 33, 72, 47, 247, - 255, 255, 174, 28, 32, 247, 255, 254, 155, 28, 32, 247, 255, 253, 122, 28, 33, 72, 43, 247, 255, 255, 164, 28, 32, 247, - 255, 254, 145, 28, 32, 247, 255, 253, 112, 72, 39, 28, 33, 247, 255, 255, 154, 33, 128, 0, 73, 28, 32, 247, 255, 249, - 225, 28, 32, 247, 255, 253, 100, 28, 33, 72, 34, 247, 255, 255, 142, 28, 32, 247, 255, 253, 93, 72, 32, 28, 33, 247, - 255, 255, 135, 33, 128, 0, 73, 28, 32, 247, 255, 249, 206, 28, 32, 247, 255, 253, 81, 72, 27, 28, 33, 247, 255, 255, - 123, 33, 128, 0, 73, 28, 32, 247, 255, 249, 194, 28, 32, 247, 255, 253, 69, 72, 22, 28, 33, 247, 255, 255, 111, 33, - 128, 28, 32, 0, 73, 247, 255, 249, 182, 28, 32, 247, 255, 253, 57, 75, 17, 104, 27, 43, 0, 208, 7, 72, 16, 73, 16, 247, - 255, 249, 183, 40, 0, 219, 1, 247, 255, 249, 135, 188, 16, 188, 1, 71, 0, 19, 115, 160, 12, 19, 115, 245, 32, 19, 115, - 169, 60, 19, 115, 167, 146, 19, 115, 167, 233, 19, 115, 167, 241, 19, 115, 167, 246, 19, 115, 167, 82, 19, 115, 167, - 98, 19, 115, 167, 114, 19, 115, 247, 36, 19, 115, 167, 253, 0, 0, 6, 2, 181, 240, 35, 0, 176, 135, 145, 2, 96, 11, 75, - 117, 28, 4, 104, 27, 43, 0, 209, 0, 224, 221, 247, 255, 255, 109, 75, 114, 104, 27, 43, 0, 218, 0, 224, 214, 75, 112, - 104, 27, 43, 1, 221, 22, 123, 35, 123, 98, 6, 27, 4, 18, 67, 26, 123, 163, 123, 225, 2, 27, 67, 19, 67, 25, 122, 98, - 122, 35, 4, 18, 6, 27, 67, 26, 122, 163, 72, 103, 2, 27, 67, 19, 122, 226, 67, 26, 240, 1, 251, 109, 126, 35, 126, 98, - 6, 27, 4, 18, 67, 26, 126, 163, 2, 27, 67, 19, 126, 226, 28, 21, 67, 29, 125, 98, 125, 35, 4, 18, 6, 27, 67, 26, 125, - 163, 2, 27, 67, 19, 125, 226, 67, 26, 146, 1, 123, 35, 123, 98, 6, 27, 4, 18, 67, 26, 123, 163, 2, 27, 67, 19, 123, - 226, 28, 17, 67, 25, 41, 4, 208, 3, 41, 12, 208, 0, 224, 142, 224, 80, 39, 0, 151, 5, 104, 46, 104, 172, 28, 48, 247, - 255, 251, 221, 40, 0, 208, 2, 154, 2, 96, 23, 224, 136, 154, 2, 35, 1, 96, 19, 155, 1, 43, 1, 216, 3, 34, 0, 28, 37, - 146, 3, 224, 20, 104, 171, 104, 31, 151, 5, 105, 43, 147, 3, 75, 66, 105, 173, 104, 27, 43, 0, 208, 10, 33, 13, 104, - 40, 240, 5, 252, 254, 76, 63, 28, 2, 28, 57, 28, 32, 28, 51, 240, 1, 251, 27, 73, 61, 28, 48, 247, 255, 254, 187, 75, - 60, 104, 27, 43, 0, 208, 1, 240, 1, 255, 67, 72, 56, 153, 3, 170, 5, 247, 255, 252, 226, 75, 54, 28, 4, 104, 27, 43, - 0, 208, 1, 240, 1, 255, 43, 75, 47, 104, 27, 43, 0, 208, 5, 72, 50, 153, 5, 74, 47, 28, 35, 240, 1, 250, 251, 44, 0, - 219, 73, 155, 5, 36, 0, 96, 43, 224, 69, 104, 44, 28, 32, 247, 255, 251, 143, 40, 0, 208, 3, 154, 2, 35, 0, 96, 19, - 224, 57, 73, 37, 28, 32, 247, 255, 254, 139, 75, 36, 104, 27, 43, 0, 208, 1, 240, 1, 255, 19, 78, 32, 104, 169, 105, - 42, 28, 48, 247, 255, 251, 225, 28, 4, 40, 0, 219, 21, 240, 1, 254, 252, 104, 168, 33, 4, 247, 255, 248, 194, 105, 40, - 33, 4, 247, 255, 248, 190, 75, 19, 104, 27, 43, 0, 208, 7, 104, 171, 72, 23, 104, 25, 105, 43, 104, 26, 28, 51, 240, - 1, 250, 194, 75, 17, 104, 27, 43, 0, 208, 1, 240, 1, 254, 226, 154, 2, 35, 1, 96, 19, 224, 8, 75, 8, 104, 27, 43, 0, - 208, 2, 72, 13, 240, 1, 250, 177, 36, 6, 66, 100, 176, 7, 28, 32, 188, 240, 188, 2, 71, 8, 19, 115, 247, 32, 19, 115, - 160, 12, 19, 115, 247, 36, 19, 115, 168, 13, 19, 115, 168, 35, 19, 115, 245, 32, 19, 115, 160, 16, 19, 115, 168, 56, - 19, 115, 168, 83, 19, 115, 168, 102, 181, 240, 35, 0, 96, 11, 75, 189, 176, 131, 104, 27, 28, 4, 28, 14, 43, 0, 209, - 0, 226, 37, 247, 255, 254, 105, 75, 185, 104, 27, 43, 0, 218, 0, 226, 30, 75, 183, 104, 27, 43, 1, 221, 22, 123, 35, - 123, 98, 6, 27, 4, 18, 67, 26, 123, 163, 123, 225, 2, 27, 67, 19, 67, 25, 122, 98, 122, 35, 4, 18, 6, 27, 67, 26, 122, - 163, 72, 174, 2, 27, 67, 19, 122, 226, 67, 26, 240, 1, 250, 105, 123, 35, 123, 98, 6, 27, 4, 18, 67, 26, 123, 163, 2, - 27, 67, 19, 123, 226, 28, 17, 67, 25, 127, 98, 127, 35, 4, 18, 6, 27, 67, 26, 127, 163, 2, 27, 67, 19, 127, 226, 67, - 26, 146, 1, 126, 35, 126, 98, 6, 27, 4, 18, 67, 26, 126, 163, 2, 27, 67, 19, 126, 226, 28, 23, 67, 31, 124, 98, 124, - 35, 4, 18, 6, 27, 67, 26, 124, 163, 2, 27, 67, 19, 124, 226, 28, 21, 67, 29, 30, 75, 43, 10, 217, 0, 225, 202, 74, 148, - 0, 155, 88, 211, 70, 159, 29, 172, 28, 32, 247, 255, 250, 207, 40, 0, 208, 0, 225, 152, 35, 1, 96, 51, 73, 142, 28, - 32, 247, 255, 253, 204, 75, 141, 104, 27, 43, 0, 208, 1, 240, 1, 254, 84, 72, 137, 247, 255, 251, 149, 75, 137, 28, - 4, 104, 27, 43, 0, 208, 1, 240, 1, 254, 62, 75, 129, 104, 27, 43, 0, 209, 0, 225, 175, 72, 132, 225, 153, 75, 126, 104, - 27, 43, 0, 208, 3, 72, 130, 29, 169, 240, 1, 250, 9, 29, 172, 28, 32, 247, 255, 250, 163, 40, 0, 208, 0, 225, 108, 35, - 1, 96, 51, 73, 120, 28, 32, 247, 255, 253, 160, 75, 119, 104, 27, 43, 0, 208, 1, 240, 1, 254, 40, 72, 115, 247, 255, - 251, 153, 75, 115, 28, 4, 104, 27, 43, 0, 208, 1, 240, 1, 254, 18, 75, 107, 104, 27, 43, 0, 209, 0, 225, 131, 72, 112, - 225, 109, 28, 40, 247, 255, 250, 128, 40, 0, 208, 0, 225, 73, 35, 1, 96, 51, 73, 103, 28, 40, 247, 255, 253, 125, 75, - 102, 104, 27, 43, 0, 208, 1, 240, 1, 254, 5, 72, 98, 247, 255, 252, 52, 75, 97, 28, 4, 104, 27, 43, 0, 208, 1, 240, - 1, 253, 239, 75, 90, 104, 27, 43, 0, 209, 0, 225, 96, 72, 95, 225, 74, 45, 0, 208, 2, 120, 43, 43, 31, 216, 3, 35, 1, - 96, 51, 36, 101, 225, 84, 28, 40, 247, 255, 250, 84, 40, 0, 208, 0, 225, 29, 35, 1, 96, 51, 73, 81, 28, 40, 247, 255, - 253, 81, 28, 40, 48, 64, 73, 84, 247, 255, 253, 76, 75, 77, 104, 27, 43, 0, 208, 1, 240, 1, 253, 212, 77, 73, 76, 79, - 28, 40, 28, 33, 34, 64, 240, 1, 254, 77, 40, 0, 209, 5, 28, 40, 33, 0, 247, 255, 252, 159, 28, 4, 224, 38, 77, 73, 28, - 32, 28, 41, 247, 255, 252, 152, 40, 0, 219, 14, 104, 170, 35, 240, 2, 27, 64, 19, 34, 128, 1, 210, 66, 147, 209, 3, - 28, 32, 247, 255, 252, 21, 224, 2, 28, 32, 247, 255, 251, 225, 77, 55, 78, 60, 28, 40, 28, 49, 247, 255, 252, 59, 75, - 49, 28, 4, 104, 27, 43, 0, 208, 5, 72, 57, 28, 41, 28, 50, 28, 35, 240, 1, 249, 108, 75, 47, 104, 27, 43, 0, 209, 0, - 225, 3, 240, 1, 253, 139, 225, 0, 28, 40, 247, 255, 249, 255, 40, 0, 208, 0, 224, 200, 35, 1, 96, 51, 155, 1, 43, 27, - 216, 1, 76, 46, 224, 243, 72, 46, 73, 35, 247, 255, 252, 247, 75, 35, 104, 27, 43, 0, 208, 1, 240, 1, 253, 127, 72, - 31, 73, 41, 247, 255, 252, 161, 75, 30, 28, 4, 104, 27, 43, 0, 208, 1, 240, 1, 253, 104, 75, 22, 104, 27, 43, 0, 208, - 4, 72, 35, 73, 23, 28, 34, 240, 1, 249, 57, 44, 0, 218, 0, 224, 210, 28, 56, 154, 1, 33, 0, 240, 1, 253, 255, 74, 28, - 28, 56, 104, 19, 96, 59, 104, 211, 96, 123, 105, 147, 97, 123, 104, 147, 104, 210, 26, 155, 96, 187, 153, 1, 247, 254, - 255, 18, 224, 189, 75, 6, 104, 27, 43, 0, 209, 0, 224, 182, 72, 19, 240, 1, 249, 25, 224, 178, 19, 115, 247, 32, 19, - 115, 160, 12, 19, 115, 247, 36, 19, 115, 168, 135, 19, 115, 170, 12, 19, 115, 245, 32, 19, 115, 160, 16, 19, 115, 168, - 156, 19, 115, 168, 178, 19, 115, 168, 202, 19, 115, 168, 225, 19, 115, 246, 32, 19, 115, 244, 216, 19, 115, 168, 250, - 255, 255, 252, 7, 19, 115, 167, 80, 19, 115, 244, 172, 19, 115, 169, 22, 19, 115, 169, 42, 28, 40, 247, 255, 249, 141, - 40, 0, 209, 87, 35, 1, 96, 51, 75, 70, 104, 27, 43, 0, 208, 3, 72, 69, 28, 41, 240, 1, 248, 227, 73, 68, 28, 40, 247, - 255, 252, 131, 75, 67, 104, 27, 43, 0, 208, 1, 240, 1, 253, 11, 72, 63, 73, 64, 247, 255, 251, 223, 75, 62, 28, 4, 104, - 27, 43, 0, 208, 1, 240, 1, 252, 244, 75, 55, 104, 27, 43, 0, 208, 4, 72, 58, 73, 55, 28, 34, 240, 1, 248, 197, 44, 0, - 219, 95, 75, 56, 29, 184, 96, 59, 35, 4, 136, 27, 28, 41, 128, 187, 34, 64, 240, 1, 253, 149, 28, 58, 50, 73, 35, 0, - 112, 19, 73, 50, 28, 40, 247, 255, 249, 53, 28, 58, 28, 57, 50, 71, 49, 72, 40, 0, 209, 3, 35, 3, 112, 19, 112, 8, 224, - 2, 35, 3, 112, 19, 112, 11, 28, 58, 50, 70, 35, 3, 112, 19, 28, 56, 153, 1, 247, 254, 254, 140, 224, 42, 29, 172, 28, - 32, 247, 255, 249, 53, 40, 0, 208, 1, 35, 0, 224, 44, 35, 1, 96, 51, 73, 27, 28, 32, 247, 255, 252, 49, 75, 26, 104, - 27, 43, 0, 208, 1, 240, 1, 252, 185, 72, 22, 73, 23, 247, 255, 251, 141, 75, 21, 28, 4, 104, 27, 43, 0, 208, 1, 240, - 1, 252, 162, 75, 14, 104, 27, 43, 0, 208, 20, 72, 20, 73, 14, 28, 34, 240, 1, 248, 115, 224, 14, 35, 1, 96, 51, 36, - 0, 224, 10, 75, 7, 104, 27, 43, 0, 208, 2, 72, 14, 240, 1, 248, 103, 35, 1, 96, 51, 36, 6, 66, 100, 176, 3, 28, 32, - 188, 240, 188, 2, 71, 8, 19, 115, 247, 36, 19, 115, 169, 61, 19, 115, 245, 32, 19, 115, 160, 16, 19, 115, 244, 216, - 19, 115, 169, 74, 0, 0, 16, 1, 19, 115, 169, 94, 19, 115, 169, 131, 19, 115, 169, 152, 181, 16, 75, 14, 28, 4, 104, - 27, 43, 0, 208, 18, 247, 255, 252, 34, 75, 11, 104, 27, 43, 1, 221, 12, 123, 35, 123, 98, 6, 27, 4, 18, 67, 26, 123, - 163, 123, 225, 2, 27, 67, 19, 72, 6, 67, 25, 240, 1, 248, 49, 32, 6, 66, 64, 188, 16, 188, 2, 71, 8, 19, 115, 247, 32, - 19, 115, 247, 36, 19, 115, 169, 184, 181, 16, 75, 36, 28, 4, 104, 27, 43, 1, 221, 12, 123, 35, 123, 98, 6, 27, 4, 18, - 67, 26, 123, 163, 123, 225, 2, 27, 67, 19, 72, 30, 67, 25, 240, 1, 248, 19, 123, 34, 123, 99, 6, 18, 4, 27, 67, 19, - 123, 162, 2, 18, 67, 26, 123, 227, 67, 19, 43, 8, 209, 35, 126, 34, 126, 99, 6, 18, 4, 27, 67, 19, 126, 162, 2, 18, - 67, 26, 126, 227, 67, 19, 104, 27, 104, 25, 104, 90, 75, 14, 104, 27, 43, 0, 208, 2, 72, 14, 240, 0, 255, 243, 33, 0, - 72, 13, 247, 254, 253, 235, 72, 13, 33, 0, 34, 0, 240, 1, 252, 40, 75, 6, 104, 27, 43, 0, 208, 2, 72, 9, 240, 0, 255, - 227, 28, 32, 240, 5, 248, 195, 188, 16, 188, 2, 71, 8, 70, 192, 19, 115, 247, 36, 19, 115, 169, 197, 19, 115, 169, 214, - 19, 115, 169, 239, 19, 115, 31, 49, 19, 115, 169, 252, 181, 48, 176, 129, 28, 5, 240, 0, 254, 203, 240, 1, 252, 89, - 32, 128, 240, 0, 254, 162, 40, 0, 209, 2, 36, 22, 66, 100, 224, 19, 33, 32, 247, 254, 253, 178, 28, 4, 40, 0, 219, 13, - 28, 33, 72, 8, 247, 254, 253, 199, 28, 33, 72, 7, 247, 254, 253, 195, 28, 33, 72, 6, 247, 254, 253, 191, 96, 44, 36, - 0, 176, 1, 28, 32, 188, 48, 188, 2, 71, 8, 19, 115, 167, 229, 19, 115, 170, 56, 19, 115, 170, 60, 181, 240, 126, 3, - 126, 66, 6, 27, 4, 18, 67, 26, 126, 131, 176, 135, 2, 27, 67, 19, 126, 194, 28, 5, 28, 20, 67, 28, 124, 66, 124, 3, - 4, 18, 6, 27, 67, 26, 124, 131, 28, 38, 2, 27, 67, 19, 124, 194, 39, 0, 67, 26, 146, 1, 125, 3, 125, 66, 6, 27, 4, 18, - 67, 26, 125, 131, 2, 27, 67, 19, 125, 194, 28, 32, 67, 26, 155, 1, 146, 2, 24, 210, 0, 209, 146, 0, 247, 254, 253, 65, - 148, 3, 224, 5, 104, 48, 104, 113, 247, 254, 253, 59, 55, 1, 54, 8, 154, 0, 66, 151, 211, 246, 123, 43, 123, 106, 6, - 27, 4, 18, 67, 26, 123, 171, 2, 27, 67, 19, 123, 234, 67, 26, 42, 11, 209, 0, 224, 147, 42, 11, 216, 33, 42, 5, 208, - 90, 42, 5, 216, 13, 42, 2, 208, 67, 42, 2, 216, 3, 42, 1, 208, 0, 225, 101, 224, 55, 42, 3, 208, 64, 42, 4, 208, 0, - 225, 95, 224, 67, 42, 8, 208, 89, 42, 8, 216, 5, 42, 6, 208, 77, 42, 7, 208, 0, 225, 85, 224, 77, 42, 9, 208, 107, 42, - 10, 208, 0, 225, 79, 224, 107, 42, 128, 209, 0, 224, 167, 42, 128, 216, 9, 42, 13, 208, 114, 42, 13, 211, 107, 42, 14, - 208, 115, 42, 15, 208, 0, 225, 64, 224, 132, 42, 242, 209, 0, 224, 251, 42, 242, 216, 6, 42, 240, 209, 0, 224, 170, - 42, 241, 208, 0, 225, 52, 224, 215, 42, 243, 209, 0, 225, 19, 42, 248, 208, 0, 225, 45, 224, 55, 104, 163, 104, 32, - 104, 25, 247, 254, 253, 244, 224, 105, 104, 35, 104, 24, 247, 254, 253, 149, 224, 100, 104, 35, 104, 161, 104, 24, 104, - 226, 247, 254, 253, 212, 224, 93, 104, 35, 104, 161, 104, 24, 104, 226, 247, 254, 253, 185, 224, 86, 104, 35, 104, 24, - 104, 163, 104, 25, 105, 35, 104, 26, 247, 254, 253, 156, 224, 77, 104, 32, 247, 254, 253, 134, 224, 73, 104, 32, 247, - 254, 253, 88, 224, 69, 155, 2, 104, 32, 104, 162, 43, 1, 217, 3, 104, 19, 105, 33, 105, 162, 224, 1, 33, 0, 35, 0, 247, - 254, 255, 24, 224, 55, 155, 2, 104, 32, 104, 162, 43, 1, 217, 3, 104, 19, 105, 33, 105, 162, 224, 1, 33, 0, 35, 0, 247, - 254, 254, 188, 224, 41, 104, 32, 247, 254, 253, 40, 224, 37, 104, 32, 247, 254, 254, 122, 224, 33, 104, 32, 104, 161, - 247, 254, 253, 13, 224, 28, 104, 32, 104, 161, 247, 254, 252, 246, 224, 23, 104, 32, 104, 161, 247, 254, 252, 223, 224, - 18, 122, 43, 122, 106, 6, 27, 4, 18, 67, 26, 122, 171, 104, 33, 2, 27, 67, 19, 122, 234, 28, 16, 154, 1, 67, 24, 42, - 0, 208, 1, 104, 8, 104, 161, 247, 254, 252, 187, 28, 4, 224, 200, 104, 32, 104, 165, 105, 34, 36, 0, 35, 0, 147, 4, - 148, 5, 35, 0, 96, 19, 169, 4, 247, 254, 253, 217, 28, 4, 40, 101, 209, 0, 36, 0, 154, 4, 155, 5, 4, 146, 11, 155, 67, - 19, 96, 43, 224, 177, 104, 33, 72, 98, 104, 11, 34, 7, 64, 19, 96, 3, 104, 11, 34, 1, 72, 95, 9, 219, 64, 19, 96, 3, - 104, 11, 72, 94, 8, 219, 64, 19, 96, 3, 104, 11, 74, 92, 6, 155, 15, 155, 96, 19, 224, 153, 75, 91, 104, 27, 43, 0, - 219, 1, 36, 1, 224, 10, 75, 89, 104, 155, 240, 0, 248, 191, 40, 0, 209, 0, 224, 138, 74, 84, 35, 0, 96, 19, 36, 0, 77, - 82, 104, 43, 43, 0, 209, 25, 78, 81, 72, 82, 28, 49, 240, 4, 252, 183, 66, 68, 65, 68, 44, 0, 209, 10, 35, 1, 96, 43, - 72, 78, 33, 0, 247, 254, 253, 53, 40, 0, 219, 8, 247, 254, 252, 215, 224, 5, 105, 243, 240, 0, 248, 157, 35, 1, 66, - 91, 96, 43, 75, 67, 224, 58, 75, 66, 104, 27, 43, 0, 221, 5, 72, 66, 240, 4, 252, 37, 74, 63, 35, 0, 96, 19, 77, 61, - 104, 43, 43, 0, 208, 1, 36, 1, 224, 8, 75, 59, 105, 219, 240, 0, 248, 132, 66, 68, 65, 68, 35, 1, 66, 91, 96, 43, 75, - 54, 224, 60, 77, 57, 104, 43, 43, 0, 219, 1, 36, 1, 224, 9, 75, 55, 104, 155, 240, 0, 248, 115, 66, 68, 65, 68, 44, - 0, 209, 64, 35, 0, 96, 43, 77, 49, 104, 43, 43, 0, 209, 10, 72, 49, 73, 47, 240, 4, 252, 109, 40, 0, 209, 1, 36, 1, - 224, 2, 35, 1, 96, 43, 36, 0, 75, 41, 104, 27, 43, 0, 220, 42, 224, 42, 76, 39, 104, 35, 43, 0, 221, 4, 72, 39, 240, - 4, 251, 230, 35, 0, 96, 35, 77, 34, 104, 43, 43, 0, 208, 1, 36, 1, 224, 8, 75, 32, 105, 219, 240, 0, 248, 70, 66, 68, - 65, 68, 35, 1, 66, 91, 96, 43, 75, 27, 104, 27, 43, 0, 218, 14, 224, 12, 240, 1, 250, 26, 72, 26, 240, 1, 250, 73, 240, - 1, 250, 9, 72, 25, 240, 1, 250, 68, 231, 244, 36, 1, 224, 0, 36, 0, 37, 0, 224, 8, 155, 3, 53, 1, 104, 24, 104, 89, - 247, 254, 251, 196, 154, 3, 50, 8, 146, 3, 155, 0, 66, 157, 211, 243, 176, 7, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, - 19, 115, 247, 40, 19, 115, 247, 32, 19, 115, 160, 16, 19, 115, 247, 36, 19, 115, 160, 24, 19, 115, 171, 236, 19, 115, - 170, 65, 19, 115, 170, 56, 19, 115, 160, 20, 19, 115, 172, 12, 19, 115, 170, 68, 0, 76, 75, 64, 0, 15, 66, 64, 71, 24, - 70, 192, 181, 240, 176, 135, 240, 1, 250, 0, 28, 3, 72, 198, 33, 4, 96, 3, 247, 254, 251, 146, 74, 196, 35, 0, 96, 19, - 240, 1, 249, 233, 34, 0, 28, 1, 72, 194, 240, 1, 249, 214, 168, 5, 247, 255, 253, 197, 40, 0, 218, 3, 176, 7, 188, 240, - 188, 2, 71, 8, 74, 189, 146, 1, 35, 0, 152, 5, 169, 4, 34, 0, 147, 4, 247, 254, 251, 114, 144, 3, 155, 3, 43, 0, 209, - 244, 153, 4, 120, 10, 120, 75, 6, 18, 4, 27, 67, 19, 120, 138, 2, 18, 67, 26, 120, 203, 67, 19, 59, 1, 43, 6, 217, 0, - 226, 92, 74, 176, 0, 155, 88, 211, 70, 159, 123, 11, 123, 74, 6, 27, 4, 18, 67, 26, 123, 139, 2, 27, 67, 19, 123, 202, - 28, 22, 67, 30, 124, 74, 124, 11, 4, 18, 6, 27, 67, 26, 124, 139, 28, 48, 2, 27, 67, 19, 124, 202, 73, 164, 28, 21, - 67, 29, 240, 6, 250, 139, 40, 0, 209, 0, 226, 57, 73, 161, 28, 48, 240, 6, 250, 132, 40, 0, 209, 0, 226, 52, 73, 159, - 28, 48, 240, 6, 250, 125, 40, 0, 209, 2, 75, 150, 96, 24, 224, 8, 73, 155, 28, 48, 240, 6, 250, 116, 40, 0, 209, 4, - 74, 145, 35, 1, 96, 19, 77, 152, 226, 34, 73, 152, 28, 48, 240, 6, 250, 105, 28, 4, 40, 0, 209, 48, 75, 139, 77, 149, - 96, 24, 104, 43, 43, 0, 221, 3, 72, 147, 240, 4, 251, 13, 96, 44, 76, 144, 104, 35, 43, 0, 208, 1, 77, 140, 224, 8, - 75, 143, 105, 219, 240, 0, 250, 38, 66, 69, 65, 69, 35, 1, 66, 91, 96, 35, 76, 140, 104, 35, 43, 0, 221, 4, 72, 139, - 240, 4, 250, 246, 34, 0, 96, 34, 76, 135, 104, 35, 43, 0, 208, 0, 225, 244, 75, 135, 105, 219, 240, 0, 250, 15, 66, - 69, 65, 69, 35, 1, 66, 91, 96, 35, 225, 234, 28, 41, 28, 48, 247, 254, 251, 221, 28, 5, 40, 0, 219, 28, 73, 127, 28, - 48, 34, 8, 240, 6, 250, 245, 40, 0, 209, 2, 74, 125, 33, 0, 224, 7, 73, 124, 28, 48, 34, 9, 240, 6, 250, 235, 40, 0, - 208, 245, 224, 10, 104, 19, 51, 1, 208, 4, 49, 1, 50, 4, 41, 32, 209, 248, 224, 2, 74, 115, 0, 139, 80, 157, 74, 116, - 35, 1, 96, 19, 75, 115, 104, 27, 43, 0, 209, 0, 225, 164, 72, 114, 28, 41, 28, 50, 240, 0, 252, 206, 225, 158, 122, - 11, 122, 74, 6, 27, 4, 18, 67, 26, 122, 139, 2, 27, 67, 19, 122, 202, 73, 102, 28, 16, 67, 24, 34, 0, 104, 11, 66, 131, - 208, 4, 50, 1, 49, 4, 42, 32, 209, 248, 224, 4, 73, 96, 35, 1, 0, 146, 66, 91, 80, 83, 247, 254, 251, 57, 225, 163, - 123, 11, 123, 74, 6, 27, 4, 18, 67, 26, 123, 139, 36, 0, 2, 27, 67, 19, 123, 202, 28, 23, 67, 31, 124, 74, 124, 11, - 4, 18, 6, 27, 67, 26, 124, 139, 28, 56, 2, 27, 67, 19, 124, 202, 28, 22, 67, 30, 28, 49, 247, 254, 250, 97, 153, 4, - 122, 11, 122, 74, 6, 27, 4, 18, 67, 26, 122, 139, 2, 27, 67, 19, 122, 202, 73, 74, 67, 26, 104, 11, 66, 147, 208, 6, - 52, 1, 49, 4, 44, 32, 209, 248, 36, 6, 66, 100, 224, 5, 75, 73, 104, 27, 43, 0, 208, 1, 240, 1, 248, 171, 153, 4, 122, - 11, 122, 74, 6, 27, 4, 18, 67, 26, 122, 139, 122, 200, 2, 27, 67, 19, 67, 24, 28, 57, 28, 50, 247, 254, 251, 56, 28, - 5, 44, 0, 219, 5, 75, 61, 104, 27, 43, 0, 208, 1, 240, 1, 248, 135, 45, 0, 218, 14, 74, 54, 35, 1, 96, 19, 75, 53, 104, - 27, 43, 0, 208, 4, 72, 54, 28, 41, 28, 50, 240, 0, 252, 83, 75, 48, 34, 0, 96, 26, 28, 56, 28, 49, 247, 254, 250, 60, - 225, 54, 123, 11, 123, 74, 6, 27, 4, 18, 67, 26, 123, 139, 36, 0, 2, 27, 67, 19, 123, 202, 28, 22, 67, 30, 124, 74, - 124, 11, 4, 18, 6, 27, 67, 26, 124, 139, 28, 48, 2, 27, 67, 19, 124, 202, 28, 21, 67, 29, 28, 41, 247, 254, 249, 252, - 153, 4, 122, 11, 122, 74, 6, 27, 4, 18, 67, 26, 122, 139, 2, 27, 67, 19, 122, 202, 73, 23, 67, 26, 104, 11, 66, 147, - 208, 56, 52, 1, 49, 4, 44, 32, 209, 248, 36, 6, 66, 100, 224, 55, 19, 117, 188, 168, 19, 115, 247, 32, 19, 115, 32, - 61, 19, 115, 160, 160, 19, 115, 171, 56, 19, 115, 167, 229, 19, 115, 170, 72, 19, 115, 170, 85, 19, 115, 170, 93, 255, - 255, 251, 46, 19, 115, 169, 239, 19, 115, 160, 24, 19, 115, 170, 65, 19, 115, 171, 236, 19, 115, 160, 20, 19, 115, 170, - 68, 19, 115, 172, 12, 19, 115, 170, 100, 19, 115, 160, 32, 19, 115, 170, 109, 19, 117, 183, 96, 19, 115, 247, 36, 19, - 115, 170, 119, 19, 115, 160, 16, 19, 115, 170, 139, 75, 110, 104, 27, 43, 0, 208, 1, 240, 1, 248, 20, 153, 4, 122, 11, - 122, 74, 6, 27, 4, 18, 67, 26, 122, 139, 122, 200, 2, 27, 67, 19, 67, 24, 28, 42, 28, 49, 247, 254, 250, 141, 28, 5, - 44, 0, 218, 0, 224, 186, 75, 98, 104, 27, 43, 0, 209, 0, 224, 181, 240, 0, 255, 238, 224, 178, 123, 11, 123, 74, 6, - 27, 4, 18, 67, 26, 123, 139, 122, 200, 2, 27, 67, 19, 123, 202, 28, 22, 67, 30, 124, 74, 124, 11, 4, 18, 6, 27, 67, - 26, 124, 139, 2, 27, 67, 19, 124, 202, 28, 20, 67, 28, 122, 74, 122, 11, 4, 18, 6, 27, 67, 26, 122, 139, 28, 49, 2, - 27, 67, 19, 67, 24, 28, 34, 247, 254, 250, 73, 28, 5, 40, 0, 219, 0, 224, 138, 74, 75, 35, 1, 96, 19, 75, 74, 104, 27, - 43, 0, 208, 105, 72, 73, 28, 41, 28, 50, 28, 35, 224, 98, 122, 11, 122, 74, 6, 27, 4, 18, 67, 26, 122, 139, 72, 69, - 2, 27, 67, 19, 122, 202, 67, 26, 104, 3, 66, 147, 208, 4, 155, 1, 48, 4, 66, 152, 209, 248, 224, 112, 75, 60, 104, 27, - 43, 0, 208, 12, 123, 11, 123, 74, 6, 27, 4, 18, 67, 26, 123, 139, 123, 201, 2, 27, 67, 19, 72, 57, 67, 25, 240, 0, 251, - 111, 240, 0, 255, 159, 72, 55, 240, 0, 255, 206, 240, 0, 255, 142, 72, 53, 240, 0, 255, 201, 231, 244, 123, 11, 123, - 74, 6, 27, 4, 18, 67, 26, 123, 139, 78, 43, 2, 27, 67, 19, 123, 202, 67, 26, 42, 11, 209, 44, 126, 11, 126, 74, 6, 27, - 4, 18, 67, 26, 126, 139, 122, 200, 2, 27, 67, 19, 126, 202, 28, 20, 67, 28, 122, 74, 122, 11, 4, 18, 6, 27, 67, 26, - 122, 139, 28, 33, 2, 27, 67, 19, 67, 24, 247, 254, 249, 83, 33, 8, 28, 5, 28, 32, 247, 254, 249, 42, 74, 24, 35, 1, - 96, 19, 104, 51, 43, 0, 208, 5, 72, 28, 104, 34, 104, 99, 28, 41, 240, 0, 251, 46, 75, 18, 34, 0, 96, 26, 224, 21, 104, - 51, 43, 0, 208, 3, 72, 23, 28, 17, 240, 0, 251, 35, 240, 0, 255, 83, 72, 17, 240, 0, 255, 130, 240, 0, 255, 66, 72, - 15, 240, 0, 255, 125, 231, 244, 37, 0, 224, 1, 37, 101, 66, 109, 152, 4, 28, 41, 247, 254, 248, 208, 229, 129, 28, 8, - 247, 255, 251, 106, 28, 5, 231, 245, 19, 115, 160, 16, 19, 117, 183, 96, 19, 115, 247, 36, 19, 115, 170, 167, 19, 115, - 160, 32, 19, 115, 170, 195, 0, 76, 75, 64, 0, 15, 66, 64, 19, 115, 170, 237, 19, 115, 171, 13, 71, 24, 70, 192, 181, - 48, 74, 49, 35, 0, 176, 129, 96, 19, 28, 4, 247, 254, 248, 200, 28, 5, 32, 1, 66, 64, 247, 254, 248, 223, 247, 254, - 248, 189, 44, 38, 209, 16, 74, 42, 72, 42, 104, 19, 96, 3, 104, 81, 75, 41, 96, 25, 104, 146, 51, 4, 96, 26, 33, 12, - 247, 254, 248, 182, 75, 38, 72, 39, 104, 27, 224, 38, 44, 37, 209, 16, 74, 32, 72, 37, 104, 19, 96, 3, 104, 81, 75, - 36, 96, 25, 104, 146, 51, 4, 96, 26, 33, 12, 247, 254, 248, 163, 75, 29, 72, 32, 104, 27, 224, 19, 44, 57, 208, 1, 44, - 60, 209, 19, 74, 22, 72, 29, 104, 19, 96, 3, 104, 81, 75, 28, 96, 25, 104, 146, 51, 4, 96, 26, 33, 12, 247, 254, 248, - 142, 75, 18, 72, 25, 104, 27, 96, 3, 33, 4, 247, 254, 248, 135, 72, 23, 75, 23, 74, 24, 96, 3, 75, 24, 33, 8, 96, 26, - 247, 254, 248, 126, 73, 22, 34, 32, 104, 11, 28, 40, 67, 19, 96, 11, 247, 254, 248, 142, 176, 1, 32, 0, 188, 48, 188, - 2, 71, 8, 70, 192, 19, 115, 247, 32, 19, 115, 247, 56, 255, 255, 45, 64, 255, 255, 45, 68, 19, 115, 247, 44, 32, 0, - 33, 208, 255, 255, 46, 80, 255, 255, 46, 84, 32, 0, 95, 56, 255, 255, 48, 32, 255, 255, 48, 36, 32, 0, 97, 184, 32, - 16, 0, 204, 181, 112, 176, 136, 104, 133, 28, 1, 32, 16, 0, 208, 13, 128, 0, 192, 181, 112, 28, 4, 247, 254, 248, 70, - 28, 6, 32, 1, 66, 64, 247, 254, 248, 93, 247, 254, 248, 59, 77, 63, 75, 63, 28, 40, 96, 171, 33, 12, 247, 254, 248, - 60, 44, 38, 209, 26, 72, 60, 74, 61, 104, 3, 76, 61, 96, 19, 104, 35, 73, 60, 96, 83, 104, 11, 96, 147, 74, 59, 75, - 60, 96, 19, 104, 43, 96, 3, 104, 107, 96, 35, 104, 171, 96, 11, 33, 12, 247, 254, 248, 36, 74, 55, 75, 56, 72, 56, 96, - 19, 224, 59, 44, 37, 209, 26, 72, 55, 74, 46, 104, 3, 76, 54, 96, 19, 104, 35, 73, 54, 96, 83, 104, 11, 96, 147, 74, - 45, 75, 52, 96, 19, 104, 43, 96, 3, 104, 107, 96, 35, 104, 171, 96, 11, 33, 12, 247, 254, 248, 7, 74, 41, 75, 47, 72, - 48, 96, 19, 224, 30, 44, 57, 208, 1, 44, 60, 209, 34, 72, 45, 74, 31, 104, 3, 76, 45, 96, 19, 104, 35, 73, 44, 96, 83, - 104, 11, 96, 147, 74, 29, 75, 43, 96, 19, 74, 22, 104, 19, 96, 3, 104, 83, 96, 35, 104, 147, 96, 11, 33, 12, 247, 253, - 255, 231, 74, 25, 75, 37, 72, 38, 96, 19, 104, 2, 75, 37, 33, 4, 96, 26, 75, 37, 96, 3, 247, 253, 255, 219, 72, 36, - 75, 36, 104, 2, 33, 4, 96, 26, 75, 35, 34, 1, 67, 19, 96, 3, 247, 253, 255, 208, 33, 12, 72, 8, 247, 253, 255, 204, - 28, 48, 247, 253, 255, 225, 32, 0, 188, 112, 188, 2, 71, 8, 70, 192, 19, 115, 160, 160, 19, 115, 102, 144, 255, 255, - 45, 64, 19, 115, 247, 56, 255, 255, 45, 68, 255, 255, 45, 72, 19, 115, 247, 52, 255, 255, 45, 76, 19, 115, 160, 28, - 32, 0, 33, 156, 32, 0, 33, 208, 255, 255, 46, 80, 255, 255, 46, 84, 255, 255, 46, 88, 255, 255, 46, 92, 32, 0, 95, 10, - 32, 0, 95, 56, 255, 255, 48, 32, 255, 255, 48, 36, 255, 255, 48, 40, 255, 255, 48, 44, 32, 0, 97, 138, 32, 0, 97, 184, - 19, 115, 247, 44, 19, 115, 160, 172, 32, 16, 0, 208, 19, 115, 247, 72, 19, 115, 102, 209, 181, 48, 75, 53, 176, 129, - 96, 25, 75, 52, 28, 4, 104, 27, 28, 13, 43, 0, 208, 91, 75, 50, 104, 27, 43, 0, 221, 21, 73, 49, 247, 254, 250, 31, - 40, 0, 209, 16, 34, 0, 76, 47, 72, 48, 224, 3, 24, 131, 51, 32, 112, 25, 50, 1, 92, 161, 41, 0, 209, 248, 24, 131, 51, - 32, 28, 4, 112, 25, 52, 32, 224, 65, 120, 35, 43, 35, 209, 17, 34, 0, 72, 38, 224, 3, 24, 131, 51, 32, 112, 25, 50, - 1, 24, 163, 120, 89, 41, 0, 209, 247, 24, 131, 51, 32, 112, 25, 75, 27, 28, 4, 96, 29, 224, 44, 28, 32, 247, 254, 250, - 14, 40, 0, 209, 39, 75, 28, 33, 0, 104, 26, 72, 26, 0, 83, 24, 155, 74, 26, 0, 155, 24, 210, 224, 1, 84, 67, 49, 1, - 120, 19, 50, 1, 43, 0, 209, 249, 35, 47, 84, 67, 120, 35, 43, 47, 209, 0, 52, 1, 75, 16, 28, 72, 24, 25, 35, 0, 224, - 2, 112, 10, 51, 1, 49, 1, 92, 226, 42, 0, 209, 249, 73, 11, 24, 203, 84, 26, 74, 4, 35, 2, 96, 19, 28, 12, 176, 1, 28, - 32, 188, 48, 188, 2, 71, 8, 70, 192, 19, 115, 247, 48, 19, 115, 247, 32, 19, 115, 160, 24, 19, 115, 170, 75, 19, 115, - 171, 192, 19, 115, 160, 224, 19, 115, 247, 40, 19, 115, 171, 84, 181, 0, 75, 4, 176, 129, 28, 1, 104, 24, 247, 253, - 255, 53, 176, 1, 188, 1, 71, 0, 19, 115, 161, 224, 181, 0, 75, 15, 28, 1, 176, 129, 104, 24, 34, 32, 247, 253, 254, - 216, 40, 0, 209, 18, 33, 0, 34, 0, 35, 0, 32, 128, 247, 253, 254, 220, 72, 8, 240, 0, 253, 117, 33, 0, 34, 0, 35, 0, - 32, 129, 247, 253, 254, 211, 72, 4, 240, 0, 253, 108, 231, 236, 176, 1, 188, 2, 71, 8, 19, 115, 161, 224, 0, 7, 161, - 32, 181, 16, 76, 9, 104, 35, 43, 0, 218, 10, 33, 224, 72, 7, 2, 73, 247, 253, 254, 246, 96, 32, 40, 0, 218, 2, 32, 1, - 66, 64, 224, 0, 32, 0, 188, 16, 188, 2, 71, 8, 19, 115, 161, 224, 19, 115, 247, 96, 181, 240, 176, 129, 28, 7, 40, 0, - 209, 4, 74, 32, 35, 48, 112, 19, 112, 80, 224, 54, 77, 30, 28, 6, 28, 48, 33, 10, 240, 4, 251, 68, 28, 48, 28, 12, 33, - 10, 240, 4, 250, 245, 23, 227, 24, 228, 64, 92, 52, 48, 75, 24, 112, 44, 61, 1, 28, 6, 66, 157, 209, 236, 28, 42, 58, - 15, 35, 0, 118, 147, 47, 0, 219, 1, 32, 0, 224, 2, 35, 45, 112, 19, 32, 1, 34, 16, 73, 13, 224, 0, 50, 1, 92, 139, 43, - 48, 208, 251, 43, 0, 209, 0, 58, 1, 75, 8, 24, 153, 24, 27, 224, 2, 112, 26, 48, 1, 51, 1, 120, 10, 49, 1, 42, 0, 209, - 248, 75, 3, 84, 26, 176, 1, 188, 240, 188, 1, 71, 0, 70, 192, 19, 117, 188, 172, 19, 117, 188, 197, 19, 117, 188, 187, - 181, 240, 176, 129, 28, 6, 40, 0, 209, 4, 74, 26, 35, 48, 112, 19, 112, 80, 224, 42, 77, 24, 28, 47, 63, 10, 28, 48, - 33, 10, 240, 4, 250, 165, 28, 48, 28, 12, 33, 10, 240, 4, 250, 98, 52, 48, 112, 44, 61, 1, 28, 6, 66, 189, 209, 240, - 28, 42, 35, 0, 58, 15, 118, 147, 35, 16, 224, 0, 51, 1, 92, 209, 41, 48, 208, 251, 41, 0, 209, 0, 59, 1, 72, 8, 34, - 0, 24, 193, 28, 4, 224, 1, 84, 163, 50, 1, 120, 11, 49, 1, 43, 0, 209, 249, 84, 131, 176, 1, 188, 240, 188, 1, 71, 0, - 70, 192, 19, 117, 188, 172, 19, 117, 188, 197, 181, 16, 40, 0, 209, 4, 74, 25, 35, 48, 112, 19, 112, 80, 224, 42, 74, - 23, 36, 15, 28, 17, 57, 8, 28, 3, 64, 35, 9, 0, 43, 9, 221, 0, 51, 7, 51, 48, 112, 19, 58, 1, 66, 138, 209, 244, 58, - 15, 35, 0, 118, 19, 35, 48, 112, 19, 35, 120, 112, 83, 35, 16, 224, 0, 51, 1, 92, 209, 41, 48, 208, 251, 41, 0, 209, - 0, 59, 1, 72, 7, 34, 2, 24, 193, 28, 4, 224, 1, 84, 163, 50, 1, 120, 11, 49, 1, 43, 0, 209, 249, 84, 131, 188, 16, 188, - 1, 71, 0, 19, 117, 188, 172, 19, 117, 188, 195, 181, 240, 176, 129, 28, 7, 28, 13, 28, 8, 28, 17, 28, 22, 247, 253, - 254, 11, 76, 12, 104, 35, 43, 0, 208, 5, 28, 56, 28, 41, 28, 50, 247, 253, 254, 204, 224, 10, 35, 2, 96, 35, 28, 50, - 28, 56, 28, 41, 247, 253, 254, 18, 104, 35, 34, 1, 64, 19, 96, 35, 176, 1, 188, 240, 188, 1, 71, 0, 19, 117, 183, 96, - 180, 15, 181, 240, 75, 60, 176, 133, 104, 27, 174, 10, 206, 16, 7, 154, 212, 109, 72, 58, 43, 0, 208, 3, 33, 9, 247, - 253, 254, 211, 224, 2, 33, 9, 247, 253, 253, 233, 28, 7, 40, 0, 218, 78, 224, 95, 28, 98, 146, 3, 43, 37, 208, 11, 154, - 1, 112, 19, 152, 1, 240, 5, 253, 104, 153, 1, 28, 2, 28, 56, 156, 3, 247, 255, 255, 182, 224, 65, 120, 99, 43, 115, - 208, 44, 43, 115, 216, 4, 43, 100, 208, 7, 43, 105, 209, 49, 224, 4, 43, 117, 208, 10, 43, 120, 209, 44, 224, 21, 104, - 48, 247, 255, 254, 223, 72, 35, 29, 52, 240, 5, 253, 75, 224, 20, 104, 48, 247, 255, 255, 35, 152, 2, 240, 5, 253, 68, - 153, 2, 28, 2, 29, 52, 28, 56, 247, 255, 255, 146, 28, 38, 224, 21, 104, 48, 247, 255, 255, 83, 72, 24, 29, 52, 240, - 5, 253, 53, 28, 2, 73, 21, 28, 56, 231, 240, 104, 52, 29, 53, 28, 32, 240, 5, 253, 44, 28, 33, 28, 2, 28, 56, 247, 255, - 255, 123, 28, 46, 156, 3, 52, 1, 224, 3, 75, 13, 74, 13, 147, 2, 146, 1, 120, 35, 43, 0, 209, 170, 75, 7, 104, 27, 43, - 0, 208, 3, 28, 56, 247, 253, 254, 21, 224, 2, 28, 56, 247, 253, 253, 89, 176, 5, 188, 240, 188, 8, 176, 4, 71, 24, 19, - 117, 183, 96, 19, 115, 171, 224, 19, 117, 188, 172, 19, 115, 162, 0, 32, 1, 71, 112, 181, 16, 76, 11, 176, 130, 28, - 32, 33, 4, 247, 253, 253, 99, 75, 9, 33, 11, 104, 24, 35, 4, 147, 1, 34, 0, 35, 0, 148, 0, 247, 253, 253, 45, 40, 0, - 219, 0, 104, 32, 176, 2, 188, 16, 188, 2, 71, 8, 19, 117, 184, 32, 19, 115, 162, 32, 181, 0, 176, 129, 247, 255, 255, - 224, 35, 1, 176, 1, 64, 24, 188, 2, 71, 8, 70, 192, 181, 112, 176, 130, 28, 22, 42, 0, 209, 2, 32, 1, 66, 64, 224, 30, - 76, 17, 77, 18, 35, 0, 96, 43, 96, 19, 96, 99, 96, 163, 97, 35, 97, 99, 96, 32, 96, 225, 28, 40, 33, 4, 247, 253, 253, - 45, 28, 32, 33, 24, 247, 253, 253, 41, 75, 10, 33, 2, 104, 24, 35, 4, 147, 1, 28, 34, 35, 24, 149, 0, 247, 253, 252, - 243, 104, 43, 96, 51, 176, 2, 188, 112, 188, 2, 71, 8, 70, 192, 19, 117, 184, 64, 19, 117, 184, 32, 19, 115, 162, 32, - 181, 48, 76, 13, 37, 0, 176, 131, 96, 32, 96, 101, 96, 165, 96, 225, 97, 34, 97, 101, 28, 32, 33, 24, 247, 253, 253, - 4, 75, 7, 33, 1, 104, 24, 28, 34, 35, 24, 149, 0, 149, 1, 247, 253, 252, 207, 176, 3, 188, 48, 188, 2, 71, 8, 70, 192, - 19, 117, 184, 64, 19, 115, 162, 32, 181, 240, 176, 131, 28, 4, 72, 53, 157, 10, 96, 130, 154, 8, 96, 195, 28, 43, 97, - 2, 159, 9, 30, 90, 65, 147, 97, 195, 35, 0, 96, 65, 96, 4, 97, 71, 97, 133, 98, 3, 33, 36, 247, 253, 252, 219, 72, 44, - 33, 16, 247, 253, 252, 215, 45, 0, 208, 5, 155, 8, 28, 40, 28, 25, 67, 121, 247, 253, 252, 207, 74, 37, 105, 211, 43, - 0, 209, 3, 75, 37, 104, 27, 43, 1, 209, 26, 76, 36, 75, 32, 96, 165, 96, 35, 35, 36, 96, 99, 152, 8, 33, 24, 28, 3, - 67, 123, 96, 227, 75, 28, 28, 32, 97, 35, 35, 16, 97, 99, 247, 253, 252, 181, 75, 28, 33, 7, 104, 24, 34, 2, 35, 1, - 148, 0, 247, 253, 252, 117, 224, 9, 75, 23, 33, 7, 104, 24, 75, 19, 147, 0, 35, 16, 147, 1, 35, 36, 247, 253, 252, 118, - 28, 6, 45, 0, 208, 5, 154, 8, 28, 40, 28, 17, 67, 121, 247, 253, 252, 117, 76, 11, 33, 16, 28, 32, 247, 253, 252, 112, - 155, 11, 43, 0, 208, 7, 152, 12, 40, 16, 216, 4, 28, 24, 28, 33, 154, 12, 240, 4, 253, 111, 176, 3, 28, 48, 188, 240, - 188, 2, 71, 8, 19, 117, 183, 192, 19, 117, 184, 0, 19, 117, 183, 100, 19, 117, 183, 160, 19, 115, 162, 32, 181, 0, 75, - 9, 176, 135, 136, 27, 34, 0, 146, 0, 146, 1, 146, 2, 146, 3, 146, 4, 4, 27, 32, 7, 33, 3, 34, 2, 247, 255, 255, 120, - 176, 7, 188, 2, 71, 8, 70, 192, 19, 117, 183, 104, 181, 0, 176, 135, 35, 0, 32, 7, 33, 3, 34, 2, 147, 0, 147, 1, 147, - 2, 147, 3, 147, 4, 247, 255, 255, 101, 176, 7, 188, 2, 71, 8, 181, 112, 176, 134, 28, 5, 28, 14, 28, 20, 42, 0, 208, - 32, 247, 255, 255, 209, 40, 0, 219, 28, 2, 113, 28, 32, 247, 253, 252, 69, 75, 15, 104, 27, 43, 0, 209, 0, 2, 109, 35, - 128, 0, 155, 147, 1, 35, 0, 147, 3, 147, 4, 33, 3, 34, 1, 28, 43, 32, 25, 148, 2, 150, 0, 247, 255, 255, 64, 28, 4, - 67, 228, 247, 255, 255, 202, 15, 224, 224, 0, 32, 0, 176, 6, 188, 112, 188, 2, 71, 8, 70, 192, 19, 117, 183, 100, 181, - 240, 176, 129, 28, 7, 28, 14, 28, 21, 36, 0, 28, 56, 28, 49, 28, 42, 247, 255, 255, 197, 40, 0, 208, 1, 32, 1, 224, - 3, 52, 1, 44, 10, 209, 243, 32, 0, 176, 1, 188, 240, 188, 2, 71, 8, 70, 192, 181, 112, 176, 134, 28, 4, 28, 14, 28, - 21, 42, 0, 208, 32, 247, 255, 255, 137, 40, 0, 219, 28, 75, 17, 104, 27, 43, 0, 209, 0, 2, 100, 35, 128, 0, 155, 147, - 1, 35, 0, 34, 1, 147, 3, 147, 4, 33, 3, 28, 35, 32, 18, 150, 0, 149, 2, 247, 255, 254, 252, 28, 4, 2, 113, 28, 40, 67, - 228, 247, 253, 251, 196, 247, 255, 255, 130, 15, 224, 224, 0, 32, 0, 176, 6, 188, 112, 188, 2, 71, 8, 70, 192, 19, 117, - 183, 100, 181, 240, 176, 129, 28, 7, 28, 14, 28, 21, 36, 0, 28, 56, 28, 49, 28, 42, 247, 255, 255, 197, 40, 0, 208, - 1, 32, 1, 224, 3, 52, 1, 44, 10, 209, 243, 32, 0, 176, 1, 188, 240, 188, 2, 71, 8, 70, 192, 181, 0, 75, 9, 176, 129, - 104, 24, 40, 0, 219, 1, 247, 253, 251, 156, 74, 5, 35, 1, 66, 91, 96, 19, 74, 4, 35, 0, 176, 1, 32, 1, 96, 19, 188, - 2, 71, 8, 70, 192, 19, 115, 162, 32, 19, 117, 183, 112, 181, 16, 76, 7, 104, 35, 43, 0, 209, 1, 32, 0, 224, 4, 247, - 255, 255, 223, 35, 0, 96, 35, 32, 1, 188, 16, 188, 2, 71, 8, 70, 192, 19, 117, 183, 108, 181, 240, 176, 133, 144, 1, - 28, 15, 28, 22, 28, 29, 36, 10, 224, 17, 152, 1, 28, 57, 170, 3, 247, 255, 254, 73, 40, 0, 219, 15, 155, 3, 46, 0, 208, - 2, 66, 29, 209, 2, 224, 8, 66, 29, 209, 6, 72, 6, 240, 0, 249, 244, 60, 1, 210, 235, 28, 32, 224, 0, 32, 0, 176, 5, - 188, 240, 188, 2, 71, 8, 70, 192, 0, 0, 39, 16, 181, 240, 75, 199, 176, 141, 104, 27, 43, 1, 209, 0, 225, 106, 72, 197, - 33, 1, 247, 253, 251, 117, 76, 196, 96, 32, 40, 0, 218, 0, 225, 119, 79, 194, 33, 4, 28, 56, 247, 253, 251, 95, 77, - 193, 35, 0, 128, 43, 35, 4, 104, 32, 33, 4, 147, 1, 34, 0, 35, 0, 151, 0, 247, 253, 251, 39, 40, 0, 219, 1, 136, 59, - 128, 43, 247, 255, 253, 227, 37, 1, 66, 40, 209, 0, 225, 92, 3, 193, 213, 0, 224, 222, 76, 178, 104, 32, 247, 253, 251, - 34, 72, 175, 33, 1, 247, 253, 251, 74, 96, 32, 40, 0, 218, 0, 225, 77, 32, 47, 33, 1, 34, 7, 247, 255, 254, 35, 40, - 0, 218, 0, 225, 49, 32, 47, 33, 1, 34, 1, 35, 7, 247, 255, 255, 146, 40, 0, 218, 0, 225, 40, 33, 4, 74, 166, 32, 52, - 247, 255, 254, 18, 33, 4, 74, 164, 32, 56, 247, 255, 254, 13, 75, 163, 32, 41, 96, 29, 33, 1, 34, 14, 247, 255, 254, - 6, 40, 0, 218, 0, 225, 20, 32, 41, 33, 1, 34, 15, 247, 255, 253, 254, 40, 0, 218, 0, 225, 12, 32, 44, 33, 2, 34, 0, - 247, 255, 253, 246, 40, 0, 218, 0, 225, 4, 32, 44, 33, 2, 74, 150, 247, 255, 253, 238, 40, 0, 218, 0, 224, 252, 32, - 44, 33, 2, 34, 0, 35, 2, 247, 255, 255, 93, 40, 0, 218, 0, 224, 243, 32, 44, 33, 2, 74, 142, 247, 255, 253, 221, 40, - 0, 218, 0, 224, 235, 32, 46, 33, 1, 34, 14, 247, 255, 253, 213, 40, 0, 218, 0, 224, 227, 36, 0, 32, 0, 33, 0, 34, 0, - 35, 0, 148, 0, 148, 1, 148, 2, 148, 3, 148, 4, 247, 255, 253, 230, 40, 0, 218, 0, 224, 212, 35, 16, 147, 4, 35, 213, - 174, 7, 32, 8, 33, 0, 34, 7, 0, 91, 148, 0, 148, 1, 148, 2, 150, 3, 247, 255, 253, 213, 40, 0, 218, 0, 224, 195, 155, - 7, 34, 255, 64, 19, 43, 170, 208, 0, 224, 189, 37, 10, 224, 34, 32, 55, 33, 3, 34, 1, 35, 0, 148, 0, 148, 1, 148, 2, - 148, 3, 148, 4, 247, 255, 253, 191, 40, 0, 218, 0, 224, 173, 35, 16, 147, 4, 32, 41, 33, 0, 34, 4, 75, 107, 148, 0, - 148, 1, 148, 2, 150, 3, 247, 255, 253, 176, 40, 0, 218, 0, 224, 158, 104, 51, 43, 0, 219, 5, 72, 101, 240, 0, 249, 13, - 61, 1, 210, 218, 224, 149, 45, 0, 218, 0, 224, 146, 74, 93, 0, 89, 213, 2, 35, 1, 96, 19, 224, 0, 96, 20, 77, 87, 74, - 94, 136, 43, 146, 3, 34, 16, 36, 0, 146, 4, 4, 27, 32, 2, 33, 0, 34, 3, 148, 0, 148, 1, 148, 2, 247, 255, 253, 138, - 40, 0, 219, 121, 171, 11, 147, 3, 35, 4, 147, 4, 32, 3, 33, 0, 34, 6, 35, 0, 148, 0, 148, 1, 148, 2, 247, 255, 253, - 123, 40, 0, 219, 106, 155, 11, 12, 27, 128, 43, 224, 7, 35, 128, 3, 91, 74, 70, 64, 3, 208, 1, 96, 21, 224, 0, 96, 19, - 36, 0, 32, 40, 33, 1, 170, 11, 148, 11, 247, 255, 253, 20, 40, 0, 219, 105, 154, 11, 35, 253, 64, 26, 35, 2, 67, 26, - 32, 40, 33, 1, 146, 11, 247, 255, 253, 58, 40, 0, 219, 93, 37, 1, 28, 56, 33, 4, 96, 61, 247, 253, 250, 68, 75, 49, - 33, 6, 104, 24, 28, 58, 35, 4, 148, 0, 148, 1, 247, 253, 250, 15, 40, 0, 219, 76, 247, 255, 253, 189, 40, 0, 219, 72, - 35, 128, 32, 16, 33, 3, 34, 1, 0, 155, 148, 0, 148, 1, 148, 2, 148, 3, 148, 4, 247, 255, 253, 55, 40, 0, 219, 27, 75, - 37, 32, 55, 136, 27, 33, 3, 4, 27, 34, 1, 148, 0, 148, 1, 148, 2, 148, 3, 148, 4, 247, 255, 253, 40, 40, 0, 219, 12, - 32, 6, 33, 3, 34, 1, 35, 2, 148, 0, 148, 1, 148, 2, 148, 3, 148, 4, 247, 255, 253, 27, 40, 0, 218, 2, 247, 255, 253, - 165, 224, 27, 247, 255, 253, 162, 75, 28, 96, 29, 75, 15, 96, 29, 32, 1, 224, 22, 33, 1, 34, 7, 32, 47, 247, 255, 252, - 233, 33, 1, 34, 1, 35, 7, 32, 47, 247, 255, 254, 91, 76, 10, 104, 32, 247, 253, 249, 209, 72, 7, 33, 1, 247, 253, 249, - 249, 96, 32, 247, 255, 254, 38, 32, 0, 176, 13, 188, 240, 188, 2, 71, 8, 70, 192, 19, 117, 183, 112, 19, 115, 162, 64, - 19, 115, 162, 32, 19, 117, 184, 32, 19, 117, 183, 104, 1, 63, 0, 195, 19, 117, 183, 100, 0, 0, 1, 1, 0, 0, 1, 7, 64, - 48, 0, 0, 0, 0, 39, 16, 19, 117, 183, 116, 19, 117, 183, 108, 181, 0, 176, 129, 32, 129, 33, 0, 34, 0, 35, 0, 247, 253, - 249, 134, 176, 1, 188, 1, 71, 0, 70, 192, 181, 0, 176, 129, 32, 128, 33, 0, 34, 0, 35, 0, 247, 253, 249, 122, 176, 1, - 188, 1, 71, 0, 70, 192, 181, 48, 28, 13, 28, 4, 28, 19, 176, 129, 28, 42, 28, 33, 32, 16, 247, 253, 249, 108, 176, 1, - 188, 48, 188, 2, 71, 8, 181, 0, 176, 129, 32, 18, 33, 0, 34, 0, 35, 0, 247, 253, 249, 96, 176, 1, 188, 2, 71, 8, 70, - 192, 181, 0, 176, 129, 32, 17, 33, 0, 34, 0, 35, 0, 247, 253, 249, 84, 176, 1, 188, 2, 71, 8, 70, 192, 181, 240, 77, - 18, 176, 131, 28, 4, 73, 17, 34, 0, 104, 40, 247, 253, 249, 119, 75, 16, 28, 33, 104, 24, 247, 253, 249, 98, 78, 12, - 28, 47, 172, 1, 104, 56, 28, 33, 34, 0, 247, 253, 249, 114, 155, 1, 66, 179, 209, 247, 104, 40, 28, 33, 34, 0, 247, - 253, 249, 106, 75, 5, 104, 24, 247, 253, 249, 98, 176, 3, 188, 240, 188, 1, 71, 0, 19, 115, 162, 96, 0, 0, 5, 85, 19, - 115, 162, 100, 181, 16, 76, 12, 104, 35, 43, 0, 218, 16, 32, 64, 247, 255, 250, 68, 33, 16, 247, 253, 249, 89, 75, 8, - 28, 2, 96, 32, 33, 1, 72, 7, 247, 253, 249, 98, 75, 6, 96, 24, 247, 253, 249, 66, 188, 16, 188, 1, 71, 0, 70, 192, 19, - 115, 162, 96, 0, 0, 6, 102, 0, 15, 66, 64, 19, 115, 162, 100, 181, 48, 28, 5, 28, 12, 28, 16, 33, 0, 224, 15, 92, 106, - 92, 99, 66, 154, 210, 2, 32, 1, 66, 64, 224, 11, 66, 154, 217, 1, 32, 1, 224, 7, 42, 0, 208, 4, 43, 0, 208, 2, 49, 1, - 66, 129, 211, 237, 32, 0, 188, 48, 188, 2, 71, 8, 181, 16, 28, 12, 35, 0, 28, 17, 224, 1, 84, 196, 51, 1, 66, 139, 211, - 251, 247, 253, 249, 23, 188, 16, 188, 1, 71, 0, 181, 16, 28, 12, 28, 17, 34, 0, 224, 2, 92, 163, 84, 131, 50, 1, 66, - 138, 211, 250, 247, 253, 249, 8, 188, 16, 188, 1, 71, 0, 70, 192, 181, 0, 28, 10, 176, 129, 33, 0, 224, 1, 84, 67, 49, - 1, 92, 83, 43, 0, 209, 250, 84, 67, 247, 253, 248, 247, 176, 1, 188, 1, 71, 0, 181, 0, 176, 129, 120, 3, 28, 2, 48, - 1, 43, 0, 209, 250, 28, 16, 247, 255, 255, 230, 176, 1, 188, 1, 71, 0, 70, 192, 32, 1, 71, 112, 181, 16, 76, 6, 104, - 32, 40, 0, 219, 4, 247, 253, 248, 189, 35, 1, 66, 91, 96, 35, 32, 1, 188, 16, 188, 2, 71, 8, 19, 115, 162, 104, 181, - 240, 78, 24, 176, 163, 104, 51, 28, 7, 43, 0, 218, 2, 36, 6, 66, 100, 224, 34, 35, 31, 172, 18, 173, 2, 34, 32, 67, - 156, 67, 157, 24, 164, 24, 173, 35, 4, 96, 37, 96, 99, 28, 32, 33, 8, 247, 253, 248, 187, 35, 1, 104, 48, 73, 12, 34, - 0, 148, 0, 247, 253, 248, 124, 33, 4, 28, 4, 28, 40, 247, 253, 248, 175, 104, 45, 75, 7, 96, 29, 44, 0, 208, 2, 47, - 0, 208, 0, 96, 61, 176, 35, 28, 32, 188, 240, 188, 2, 71, 8, 19, 115, 162, 104, 85, 77, 83, 2, 19, 117, 184, 96, 181, - 0, 176, 129, 32, 0, 247, 255, 255, 195, 28, 3, 23, 192, 26, 192, 176, 1, 15, 192, 188, 2, 71, 8, 181, 16, 76, 16, 176, - 130, 104, 35, 43, 0, 218, 21, 72, 14, 33, 0, 247, 253, 248, 146, 96, 32, 40, 0, 219, 12, 35, 0, 73, 11, 34, 0, 147, - 0, 247, 253, 248, 69, 32, 0, 247, 255, 255, 166, 40, 0, 220, 3, 247, 255, 255, 146, 32, 0, 224, 0, 32, 1, 176, 2, 188, - 16, 188, 2, 71, 8, 70, 192, 19, 115, 162, 104, 19, 115, 162, 128, 85, 77, 83, 1, 181, 240, 176, 183, 147, 3, 75, 46, - 77, 46, 104, 27, 28, 6, 147, 5, 104, 43, 70, 140, 146, 4, 43, 0, 219, 76, 33, 31, 171, 38, 32, 32, 67, 139, 24, 28, - 171, 22, 67, 139, 170, 6, 24, 27, 67, 138, 96, 30, 70, 97, 24, 18, 28, 38, 96, 17, 54, 8, 96, 35, 35, 4, 96, 99, 96, - 162, 96, 115, 154, 4, 28, 39, 97, 34, 153, 5, 55, 16, 70, 99, 67, 75, 96, 123, 104, 32, 104, 97, 247, 253, 248, 58, - 104, 160, 104, 113, 247, 253, 248, 54, 105, 32, 104, 121, 247, 253, 248, 50, 28, 32, 33, 24, 247, 253, 248, 46, 154, - 3, 42, 0, 209, 5, 104, 40, 73, 18, 148, 0, 34, 2, 35, 1, 224, 4, 73, 17, 104, 40, 34, 3, 148, 0, 35, 0, 247, 252, 255, - 230, 40, 0, 219, 13, 104, 32, 104, 97, 247, 252, 255, 244, 104, 160, 104, 113, 247, 252, 255, 240, 105, 32, 104, 121, - 247, 252, 255, 236, 32, 1, 224, 0, 32, 0, 176, 55, 188, 240, 188, 2, 71, 8, 70, 192, 19, 117, 184, 96, 19, 115, 162, - 104, 85, 77, 83, 3, 85, 77, 83, 4, 181, 0, 176, 129, 35, 1, 247, 255, 255, 147, 176, 1, 188, 2, 71, 8, 181, 0, 75, 7, - 176, 129, 104, 27, 43, 0, 218, 1, 32, 0, 224, 3, 247, 255, 255, 238, 30, 67, 65, 152, 176, 1, 188, 2, 71, 8, 70, 192, - 19, 115, 162, 104, 181, 0, 176, 129, 35, 0, 247, 255, 255, 121, 176, 1, 188, 2, 71, 8, 181, 0, 75, 7, 176, 129, 104, - 27, 43, 0, 218, 1, 32, 0, 224, 3, 247, 255, 255, 238, 30, 67, 65, 152, 176, 1, 188, 2, 71, 8, 70, 192, 19, 115, 162, - 104, 181, 240, 176, 129, 28, 6, 39, 0, 37, 0, 224, 18, 105, 115, 25, 92, 104, 227, 43, 0, 208, 7, 104, 48, 104, 33, - 104, 98, 105, 35, 240, 1, 250, 125, 40, 0, 208, 9, 105, 115, 34, 0, 25, 91, 96, 218, 55, 1, 53, 20, 104, 179, 66, 159, - 211, 233, 32, 1, 176, 1, 188, 240, 188, 2, 71, 8, 70, 192, 181, 240, 176, 133, 144, 2, 28, 14, 146, 1, 147, 3, 224, - 89, 154, 2, 155, 2, 104, 146, 32, 1, 70, 148, 105, 92, 66, 64, 39, 0, 37, 0, 224, 22, 104, 33, 28, 74, 208, 15, 66, - 142, 217, 2, 26, 115, 104, 98, 224, 1, 154, 1, 27, 139, 66, 147, 65, 155, 66, 91, 43, 0, 208, 3, 66, 129, 210, 1, 28, - 39, 224, 0, 28, 1, 53, 1, 52, 20, 28, 8, 69, 101, 211, 230, 47, 0, 208, 44, 104, 60, 66, 180, 217, 15, 155, 2, 27, 164, - 104, 24, 28, 49, 28, 34, 155, 3, 240, 1, 250, 53, 154, 3, 2, 99, 24, 210, 155, 1, 146, 3, 27, 27, 25, 54, 147, 1, 104, - 59, 26, 242, 104, 123, 26, 157, 155, 1, 66, 157, 217, 0, 28, 29, 105, 56, 2, 83, 2, 108, 24, 192, 28, 34, 153, 3, 240, - 4, 248, 65, 154, 3, 155, 1, 25, 18, 146, 3, 27, 91, 34, 1, 147, 1, 25, 118, 96, 250, 224, 7, 155, 2, 28, 49, 104, 24, - 154, 1, 155, 3, 240, 1, 250, 12, 224, 2, 154, 1, 42, 0, 209, 162, 176, 5, 32, 1, 188, 240, 188, 2, 71, 8, 70, 192, 181, - 240, 176, 137, 145, 4, 105, 66, 28, 6, 146, 5, 104, 131, 104, 194, 39, 0, 32, 1, 70, 156, 146, 6, 153, 5, 37, 0, 151, - 7, 66, 64, 224, 28, 104, 11, 154, 4, 28, 12, 147, 1, 66, 154, 211, 8, 154, 1, 104, 75, 24, 211, 154, 4, 66, 154, 210, - 2, 155, 1, 51, 1, 209, 70, 47, 0, 209, 9, 154, 1, 50, 1, 209, 1, 39, 1, 224, 2, 104, 139, 66, 131, 210, 1, 104, 136, - 149, 7, 53, 1, 49, 20, 69, 101, 211, 224, 47, 0, 209, 17, 154, 7, 0, 147, 24, 155, 154, 5, 0, 155, 24, 212, 104, 227, - 43, 1, 209, 8, 104, 48, 104, 33, 104, 98, 105, 35, 240, 1, 249, 193, 40, 0, 208, 41, 96, 231, 155, 4, 105, 52, 153, - 6, 27, 24, 240, 3, 250, 226, 154, 6, 28, 19, 67, 67, 25, 29, 104, 115, 24, 169, 66, 153, 217, 0, 28, 25, 154, 7, 27, - 79, 0, 147, 24, 155, 154, 5, 0, 155, 24, 212, 35, 1, 66, 91, 96, 35, 104, 48, 105, 35, 28, 41, 28, 58, 240, 1, 249, - 181, 40, 0, 208, 7, 96, 37, 96, 103, 74, 6, 104, 19, 51, 1, 96, 19, 96, 163, 224, 0, 36, 0, 176, 9, 28, 32, 188, 240, - 188, 2, 71, 8, 70, 192, 19, 117, 184, 100, 181, 240, 176, 131, 145, 1, 153, 8, 38, 128, 147, 0, 0, 182, 24, 203, 28, - 23, 66, 179, 216, 26, 28, 17, 247, 255, 255, 124, 28, 5, 40, 0, 208, 20, 104, 4, 105, 0, 27, 60, 2, 100, 25, 0, 33, - 0, 28, 50, 240, 4, 248, 50, 154, 0, 105, 40, 24, 164, 25, 0, 153, 1, 154, 8, 240, 3, 255, 142, 35, 1, 96, 235, 32, 1, - 224, 0, 32, 0, 176, 3, 188, 240, 188, 2, 71, 8, 70, 192, 181, 240, 176, 129, 28, 30, 155, 6, 28, 21, 25, 154, 35, 128, - 0, 155, 28, 15, 66, 154, 216, 19, 28, 41, 247, 255, 255, 80, 28, 4, 40, 0, 208, 13, 104, 3, 105, 0, 26, 235, 2, 91, - 25, 155, 24, 192, 28, 57, 154, 6, 240, 3, 255, 105, 35, 1, 96, 227, 32, 1, 224, 0, 32, 0, 176, 1, 188, 240, 188, 2, - 71, 8, 181, 112, 176, 132, 28, 4, 152, 8, 28, 30, 35, 0, 28, 21, 147, 3, 170, 3, 40, 2, 208, 7, 40, 4, 208, 9, 40, 1, - 208, 1, 32, 0, 224, 19, 112, 17, 224, 10, 10, 11, 112, 17, 112, 83, 224, 6, 10, 11, 112, 83, 12, 11, 112, 147, 14, 11, - 112, 17, 112, 211, 144, 0, 169, 3, 28, 32, 28, 42, 28, 51, 247, 255, 255, 183, 176, 4, 188, 112, 188, 2, 71, 8, 70, - 192, 181, 240, 176, 129, 159, 6, 28, 20, 28, 29, 24, 250, 35, 128, 0, 155, 28, 14, 66, 154, 216, 16, 28, 33, 247, 255, - 255, 2, 40, 0, 208, 11, 104, 3, 105, 1, 26, 227, 2, 91, 25, 91, 24, 201, 28, 48, 28, 58, 240, 3, 255, 28, 32, 1, 224, - 0, 32, 0, 176, 1, 188, 240, 188, 2, 71, 8, 70, 192, 181, 112, 176, 132, 157, 8, 172, 3, 28, 14, 28, 33, 149, 0, 247, - 255, 255, 213, 40, 0, 208, 26, 45, 2, 208, 5, 45, 4, 208, 10, 45, 1, 209, 20, 120, 35, 224, 3, 120, 99, 120, 34, 2, - 27, 67, 19, 96, 51, 32, 1, 224, 12, 120, 98, 120, 163, 2, 18, 4, 27, 67, 26, 120, 35, 67, 26, 120, 227, 6, 27, 67, 26, - 96, 50, 231, 241, 32, 0, 176, 4, 188, 112, 188, 2, 71, 8, 70, 192, 181, 240, 176, 131, 144, 0, 28, 15, 28, 22, 147, - 1, 224, 25, 152, 0, 28, 57, 247, 255, 254, 183, 40, 0, 208, 22, 104, 3, 26, 250, 104, 67, 26, 157, 66, 181, 217, 0, - 28, 53, 105, 1, 2, 83, 2, 108, 24, 201, 152, 1, 28, 34, 240, 3, 254, 204, 155, 1, 25, 127, 25, 27, 147, 1, 27, 118, - 46, 0, 209, 227, 32, 1, 176, 3, 188, 240, 188, 2, 71, 8, 181, 112, 28, 6, 37, 0, 247, 255, 254, 9, 36, 0, 224, 5, 25, - 3, 105, 24, 247, 254, 254, 175, 53, 1, 52, 20, 104, 179, 105, 112, 66, 157, 211, 245, 247, 254, 254, 167, 28, 48, 247, - 254, 254, 164, 188, 112, 188, 1, 71, 0, 70, 192, 181, 240, 176, 133, 144, 0, 28, 14, 28, 20, 28, 31, 41, 1, 216, 0, - 38, 2, 44, 7, 216, 0, 36, 8, 32, 24, 247, 254, 254, 157, 28, 5, 40, 0, 208, 46, 96, 7, 155, 10, 96, 134, 96, 67, 96, - 196, 152, 0, 28, 49, 240, 3, 249, 207, 0, 176, 25, 128, 97, 41, 0, 128, 247, 254, 254, 139, 144, 3, 40, 0, 209, 4, 28, - 40, 247, 254, 254, 121, 37, 0, 224, 23, 2, 100, 148, 1, 35, 0, 39, 1, 156, 3, 147, 2, 66, 127, 35, 0, 96, 99, 96, 163, - 96, 227, 96, 39, 152, 1, 247, 254, 254, 116, 97, 32, 155, 2, 52, 20, 51, 1, 147, 2, 66, 179, 211, 240, 155, 3, 97, 107, - 176, 5, 28, 40, 188, 240, 188, 2, 71, 8, 181, 48, 28, 12, 33, 0, 112, 33, 120, 3, 28, 2, 43, 229, 208, 42, 43, 46, 208, - 1, 32, 0, 224, 12, 112, 35, 120, 64, 40, 46, 209, 2, 112, 96, 112, 161, 224, 31, 112, 97, 224, 29, 84, 35, 48, 1, 40, - 8, 208, 2, 92, 19, 43, 32, 209, 248, 122, 19, 28, 21, 53, 8, 43, 32, 208, 15, 28, 1, 24, 34, 35, 46, 112, 19, 48, 1, - 49, 4, 224, 5, 48, 1, 112, 83, 53, 1, 50, 1, 66, 136, 208, 2, 120, 43, 43, 32, 209, 246, 35, 0, 84, 35, 120, 32, 30, - 67, 65, 152, 188, 48, 188, 2, 71, 8, 70, 192, 181, 16, 122, 3, 126, 140, 126, 200, 43, 3, 209, 9, 125, 75, 125, 10, - 2, 27, 67, 19, 4, 27, 2, 2, 67, 34, 28, 24, 67, 16, 224, 2, 2, 3, 28, 24, 67, 32, 188, 16, 188, 2, 71, 8, 181, 112, - 104, 3, 28, 13, 104, 27, 28, 22, 96, 19, 247, 255, 255, 226, 96, 112, 122, 235, 6, 217, 212, 1, 74, 38, 224, 0, 74, - 38, 7, 217, 212, 1, 35, 146, 224, 0, 35, 0, 67, 19, 96, 179, 35, 1, 129, 179, 129, 243, 35, 2, 130, 51, 104, 51, 32, - 0, 97, 115, 127, 106, 127, 171, 2, 18, 4, 27, 67, 26, 127, 43, 36, 0, 67, 26, 127, 235, 6, 27, 67, 26, 97, 178, 124, - 233, 124, 171, 2, 9, 67, 25, 240, 2, 252, 176, 98, 52, 97, 240, 125, 232, 125, 171, 126, 105, 2, 0, 67, 24, 126, 43, - 2, 9, 67, 25, 240, 2, 252, 164, 98, 180, 98, 112, 123, 232, 123, 171, 124, 105, 2, 0, 67, 24, 124, 43, 2, 9, 67, 25, - 240, 2, 252, 152, 35, 128, 0, 155, 99, 115, 105, 178, 75, 8, 98, 240, 24, 210, 23, 211, 13, 219, 24, 155, 18, 91, 99, - 52, 99, 179, 99, 244, 100, 52, 188, 112, 188, 1, 71, 0, 0, 0, 129, 36, 0, 0, 65, 36, 0, 0, 1, 255, 181, 240, 35, 0, - 98, 11, 98, 75, 98, 139, 28, 10, 28, 11, 28, 12, 50, 44, 51, 32, 28, 7, 203, 35, 194, 35, 28, 37, 53, 56, 34, 128, 176, - 129, 38, 46, 28, 40, 0, 82, 33, 0, 240, 3, 254, 53, 112, 46, 28, 32, 33, 0, 34, 32, 240, 3, 254, 47, 28, 32, 33, 32, - 34, 11, 240, 3, 254, 42, 35, 16, 112, 38, 114, 227, 105, 251, 176, 1, 118, 163, 10, 27, 118, 227, 139, 187, 32, 1, 117, - 35, 10, 27, 117, 99, 188, 240, 188, 2, 71, 8, 181, 240, 176, 139, 144, 3, 145, 2, 146, 1, 42, 0, 209, 1, 32, 0, 224, - 61, 34, 0, 171, 6, 169, 4, 96, 90, 96, 74, 146, 6, 146, 4, 74, 29, 38, 0, 37, 0, 146, 0, 155, 3, 154, 2, 25, 155, 147, - 3, 155, 0, 25, 82, 146, 2, 153, 3, 104, 26, 168, 9, 171, 6, 240, 3, 249, 85, 155, 0, 28, 6, 104, 26, 168, 8, 153, 2, - 171, 4, 240, 3, 249, 77, 28, 5, 46, 0, 219, 18, 40, 0, 219, 16, 154, 1, 27, 146, 146, 1, 42, 0, 208, 11, 159, 9, 28, - 56, 240, 4, 253, 79, 28, 4, 152, 8, 240, 4, 253, 75, 66, 132, 209, 1, 47, 0, 209, 212, 152, 9, 240, 4, 253, 68, 28, - 4, 152, 8, 240, 4, 253, 64, 26, 32, 176, 11, 188, 240, 188, 2, 71, 8, 70, 192, 19, 115, 162, 160, 181, 240, 28, 14, - 104, 179, 104, 12, 51, 1, 176, 129, 28, 5, 28, 23, 104, 73, 43, 16, 209, 34, 106, 195, 49, 1, 66, 153, 209, 21, 44, - 0, 208, 21, 28, 33, 240, 2, 249, 240, 75, 17, 66, 152, 209, 10, 47, 0, 208, 25, 28, 40, 28, 33, 240, 2, 251, 173, 40, - 1, 217, 19, 107, 235, 66, 152, 216, 16, 28, 4, 33, 0, 224, 7, 44, 0, 209, 5, 106, 107, 105, 170, 26, 155, 66, 153, 208, - 6, 36, 0, 35, 0, 96, 52, 96, 113, 96, 179, 32, 1, 224, 0, 32, 0, 176, 1, 188, 240, 188, 2, 71, 8, 15, 255, 255, 255, - 181, 240, 176, 147, 171, 15, 28, 10, 28, 5, 50, 32, 28, 24, 202, 208, 192, 208, 107, 74, 39, 27, 146, 3, 107, 12, 32, - 1, 148, 4, 106, 201, 36, 0, 145, 5, 28, 30, 66, 127, 224, 61, 104, 50, 104, 104, 42, 1, 217, 5, 106, 235, 58, 2, 67, - 90, 106, 107, 24, 211, 224, 0, 105, 171, 104, 114, 33, 32, 24, 154, 104, 179, 145, 0, 1, 91, 169, 7, 247, 255, 253, - 151, 70, 106, 119, 23, 104, 50, 104, 104, 42, 1, 217, 5, 106, 235, 58, 2, 67, 90, 106, 107, 24, 211, 224, 0, 105, 171, - 104, 114, 169, 7, 24, 154, 104, 179, 36, 32, 1, 91, 148, 0, 247, 255, 253, 51, 104, 51, 153, 5, 66, 139, 209, 9, 104, - 115, 154, 4, 66, 147, 209, 5, 156, 3, 104, 179, 27, 27, 66, 92, 65, 92, 224, 0, 36, 0, 28, 40, 28, 49, 34, 0, 247, 255, - 255, 115, 40, 0, 208, 1, 44, 0, 208, 189, 176, 19, 30, 67, 65, 152, 188, 240, 188, 2, 71, 8, 70, 192, 181, 240, 176, - 135, 175, 0, 96, 250, 28, 58, 35, 0, 50, 16, 96, 83, 97, 59, 75, 28, 28, 14, 104, 27, 70, 105, 51, 14, 8, 219, 0, 219, - 26, 201, 70, 141, 104, 249, 70, 107, 57, 1, 28, 5, 96, 187, 36, 0, 96, 121, 224, 25, 28, 58, 104, 184, 50, 16, 240, - 5, 250, 1, 40, 0, 218, 2, 36, 1, 66, 100, 224, 23, 104, 251, 25, 1, 66, 153, 210, 17, 40, 0, 221, 15, 34, 0, 104, 188, - 92, 163, 50, 1, 112, 43, 53, 1, 66, 130, 219, 248, 54, 2, 28, 12, 104, 121, 66, 140, 210, 2, 136, 49, 41, 0, 209, 223, - 35, 0, 112, 43, 70, 189, 176, 7, 28, 32, 188, 240, 188, 2, 71, 8, 19, 115, 162, 160, 181, 240, 76, 72, 28, 11, 68, 165, - 172, 145, 51, 32, 28, 34, 28, 14, 28, 7, 203, 35, 194, 35, 106, 242, 107, 112, 107, 49, 51, 12, 146, 7, 34, 128, 144, - 5, 145, 6, 28, 24, 33, 0, 0, 82, 147, 4, 240, 3, 252, 215, 73, 61, 32, 1, 37, 0, 145, 3, 224, 72, 104, 34, 104, 120, - 42, 1, 217, 5, 106, 251, 58, 2, 67, 90, 106, 123, 24, 211, 224, 0, 105, 187, 104, 98, 33, 32, 24, 154, 104, 163, 145, - 0, 1, 91, 169, 137, 247, 255, 252, 236, 104, 35, 154, 7, 66, 147, 209, 14, 104, 99, 157, 6, 66, 171, 209, 10, 104, 163, - 152, 5, 66, 131, 209, 6, 28, 48, 169, 137, 34, 32, 240, 3, 252, 17, 37, 1, 224, 28, 169, 137, 120, 11, 34, 64, 67, 147, - 0, 90, 24, 210, 0, 146, 24, 210, 58, 13, 42, 247, 221, 0, 34, 241, 0, 82, 171, 9, 72, 33, 24, 153, 200, 4, 173, 137, - 24, 171, 120, 91, 92, 170, 2, 27, 67, 19, 128, 11, 154, 3, 49, 2, 66, 144, 209, 243, 37, 0, 28, 56, 28, 33, 34, 0, 247, - 255, 254, 189, 40, 0, 208, 2, 45, 0, 208, 178, 224, 1, 32, 0, 224, 29, 104, 35, 157, 7, 66, 171, 209, 12, 104, 99, 152, - 6, 66, 131, 209, 8, 104, 163, 153, 5, 66, 139, 209, 4, 28, 48, 153, 4, 247, 255, 253, 118, 224, 6, 34, 128, 152, 4, - 169, 9, 0, 82, 247, 255, 255, 55, 48, 1, 66, 67, 65, 67, 34, 1, 64, 83, 6, 27, 14, 24, 35, 149, 0, 155, 68, 157, 188, - 240, 188, 2, 71, 8, 255, 255, 253, 172, 19, 115, 172, 100, 19, 115, 172, 48, 181, 240, 76, 116, 28, 10, 68, 165, 144, - 5, 171, 149, 50, 44, 202, 81, 195, 81, 156, 149, 28, 13, 44, 0, 208, 1, 148, 9, 224, 2, 152, 5, 105, 192, 144, 9, 153, - 9, 170, 146, 145, 149, 171, 149, 28, 17, 203, 81, 193, 81, 28, 41, 72, 104, 35, 0, 49, 56, 145, 6, 147, 7, 147, 8, 39, - 0, 28, 20, 174, 138, 144, 4, 224, 153, 28, 33, 34, 0, 152, 5, 247, 255, 254, 98, 154, 5, 66, 65, 65, 65, 145, 7, 104, - 80, 104, 34, 42, 1, 217, 6, 153, 5, 58, 2, 106, 203, 67, 90, 106, 75, 24, 211, 224, 1, 154, 5, 105, 147, 104, 98, 33, - 32, 24, 154, 104, 163, 145, 0, 1, 91, 28, 49, 247, 255, 252, 66, 122, 243, 43, 15, 209, 69, 120, 51, 70, 156, 6, 27, - 43, 0, 218, 1, 39, 0, 224, 26, 70, 96, 33, 64, 66, 8, 208, 22, 171, 149, 28, 39, 207, 7, 195, 7, 35, 64, 70, 98, 67, - 154, 0, 83, 24, 155, 0, 155, 24, 153, 104, 39, 41, 255, 221, 0, 33, 255, 0, 73, 34, 0, 171, 10, 82, 202, 123, 112, 151, - 9, 144, 8, 39, 1, 123, 115, 153, 8, 66, 139, 208, 1, 39, 0, 224, 79, 47, 0, 208, 77, 35, 64, 70, 98, 67, 154, 0, 83, - 24, 155, 0, 155, 24, 155, 28, 26, 58, 13, 72, 57, 42, 247, 221, 0, 34, 247, 0, 82, 171, 10, 24, 153, 200, 4, 24, 179, - 120, 91, 92, 178, 2, 27, 67, 19, 128, 11, 154, 4, 49, 2, 66, 144, 209, 244, 224, 49, 7, 24, 212, 47, 120, 51, 43, 0, - 208, 71, 43, 229, 208, 42, 43, 32, 217, 40, 47, 0, 208, 27, 76, 43, 28, 49, 35, 0, 38, 1, 68, 108, 66, 51, 209, 1, 32, - 0, 224, 0, 32, 128, 120, 10, 8, 91, 24, 155, 6, 27, 14, 27, 24, 27, 6, 27, 49, 1, 14, 27, 66, 161, 209, 239, 153, 8, - 66, 139, 208, 48, 28, 42, 50, 56, 35, 0, 112, 19, 171, 149, 170, 146, 202, 81, 195, 81, 156, 146, 168, 138, 153, 6, - 247, 255, 252, 159, 148, 9, 224, 3, 153, 7, 41, 0, 209, 0, 231, 97, 154, 7, 42, 0, 209, 19, 156, 9, 28, 42, 148, 149, - 171, 149, 50, 32, 203, 67, 194, 67, 171, 146, 203, 81, 194, 81, 171, 138, 28, 42, 203, 82, 194, 82, 203, 19, 194, 19, - 203, 65, 194, 65, 32, 1, 224, 0, 32, 0, 35, 153, 0, 155, 68, 157, 188, 240, 188, 2, 71, 8, 34, 128, 152, 6, 169, 10, - 0, 82, 247, 255, 254, 61, 48, 1, 209, 217, 231, 239, 255, 255, 253, 156, 19, 115, 172, 100, 19, 115, 172, 48, 0, 0, - 2, 51, 181, 112, 35, 0, 98, 75, 35, 1, 66, 91, 98, 10, 98, 139, 28, 10, 28, 11, 50, 44, 51, 32, 203, 112, 194, 112, - 247, 255, 254, 255, 188, 112, 188, 2, 71, 8, 181, 240, 176, 213, 144, 1, 28, 15, 28, 8, 33, 128, 0, 73, 28, 22, 240, - 4, 250, 98, 28, 5, 40, 255, 216, 45, 28, 50, 172, 2, 78, 25, 152, 1, 28, 33, 247, 255, 255, 218, 68, 110, 224, 34, 33, - 128, 168, 16, 0, 73, 240, 4, 250, 81, 66, 133, 209, 6, 28, 56, 169, 16, 28, 42, 247, 255, 253, 24, 40, 0, 208, 24, 28, - 49, 28, 32, 247, 255, 252, 48, 28, 48, 33, 13, 240, 4, 250, 64, 66, 133, 209, 6, 28, 56, 28, 49, 28, 42, 247, 255, 253, - 7, 40, 0, 208, 7, 152, 1, 28, 33, 247, 255, 254, 195, 40, 0, 209, 218, 32, 0, 224, 0, 32, 1, 176, 85, 188, 240, 188, - 2, 71, 8, 0, 0, 1, 67, 181, 240, 76, 196, 68, 165, 145, 6, 49, 56, 144, 7, 145, 8, 28, 8, 33, 128, 0, 73, 146, 5, 240, - 4, 250, 27, 40, 0, 209, 0, 227, 55, 152, 8, 33, 128, 0, 73, 144, 165, 240, 4, 250, 18, 28, 4, 40, 255, 217, 0, 227, - 45, 73, 184, 152, 8, 240, 4, 250, 32, 40, 0, 208, 0, 227, 38, 34, 0, 224, 10, 153, 6, 24, 139, 51, 56, 120, 27, 59, - 32, 6, 27, 14, 27, 43, 207, 217, 0, 227, 26, 50, 1, 66, 162, 211, 242, 34, 128, 32, 0, 169, 165, 0, 82, 35, 0, 240, - 2, 254, 175, 144, 12, 40, 255, 217, 0, 227, 12, 152, 8, 240, 4, 248, 232, 155, 6, 30, 65, 48, 55, 24, 26, 32, 0, 224, - 2, 112, 16, 57, 1, 58, 1, 41, 0, 220, 4, 152, 8, 240, 4, 248, 218, 36, 0, 224, 4, 120, 19, 43, 32, 208, 242, 231, 246, - 52, 1, 66, 132, 218, 5, 157, 6, 25, 43, 51, 56, 120, 27, 43, 32, 208, 246, 44, 0, 221, 10, 158, 6, 52, 56, 25, 52, 28, - 32, 240, 4, 248, 195, 28, 33, 28, 2, 152, 8, 240, 3, 250, 80, 152, 8, 240, 4, 248, 187, 36, 128, 153, 6, 0, 100, 26, - 34, 48, 56, 24, 8, 33, 0, 240, 3, 250, 156, 152, 7, 153, 8, 154, 5, 247, 255, 255, 67, 28, 5, 40, 0, 208, 0, 226, 202, - 33, 32, 34, 11, 152, 6, 240, 3, 250, 142, 73, 133, 152, 8, 28, 34, 240, 4, 249, 25, 40, 0, 209, 7, 154, 6, 35, 46, 112, - 19, 36, 0, 35, 1, 147, 9, 148, 10, 225, 118, 73, 127, 152, 8, 28, 34, 240, 4, 249, 10, 40, 0, 209, 7, 157, 6, 35, 46, - 38, 1, 112, 43, 112, 107, 150, 9, 144, 10, 225, 103, 149, 159, 149, 160, 39, 0, 37, 0, 224, 1, 53, 1, 39, 1, 153, 8, - 93, 75, 43, 46, 208, 249, 35, 128, 34, 0, 0, 91, 146, 11, 147, 3, 224, 48, 156, 3, 168, 165, 27, 98, 171, 159, 240, - 2, 253, 181, 28, 6, 40, 0, 218, 0, 226, 140, 152, 165, 240, 4, 252, 44, 240, 4, 255, 78, 28, 4, 152, 165, 240, 4, 255, - 74, 66, 160, 208, 0, 39, 1, 44, 32, 209, 2, 25, 173, 39, 1, 224, 18, 28, 96, 209, 1, 36, 95, 39, 1, 72, 96, 28, 33, - 240, 3, 255, 158, 40, 0, 208, 1, 36, 95, 39, 1, 75, 93, 153, 11, 68, 107, 84, 92, 49, 1, 145, 11, 25, 173, 154, 11, - 42, 7, 220, 6, 155, 8, 25, 89, 120, 11, 43, 46, 208, 1, 43, 0, 209, 199, 156, 6, 25, 99, 51, 56, 120, 27, 43, 46, 208, - 2, 43, 0, 208, 0, 39, 1, 152, 8, 33, 46, 240, 4, 249, 108, 28, 4, 40, 0, 208, 82, 152, 8, 33, 46, 240, 3, 255, 117, - 66, 132, 208, 0, 226, 78, 226, 78, 75, 73, 152, 11, 34, 46, 68, 107, 84, 26, 35, 0, 48, 1, 170, 159, 144, 11, 147, 159, - 96, 83, 147, 13, 35, 128, 0, 91, 27, 91, 147, 4, 224, 50, 168, 165, 28, 49, 154, 4, 171, 159, 240, 2, 253, 84, 28, 5, - 40, 0, 218, 0, 226, 43, 152, 165, 240, 4, 251, 203, 240, 4, 254, 237, 28, 4, 152, 165, 240, 4, 254, 233, 66, 160, 208, - 0, 39, 1, 44, 32, 209, 2, 25, 118, 39, 1, 224, 18, 28, 97, 209, 1, 36, 95, 39, 1, 72, 48, 28, 33, 240, 3, 255, 61, 40, - 0, 208, 1, 36, 95, 39, 1, 75, 45, 154, 11, 68, 107, 84, 156, 50, 1, 146, 11, 25, 118, 155, 13, 51, 1, 147, 13, 43, 3, - 208, 2, 120, 51, 43, 0, 209, 201, 120, 51, 43, 0, 208, 0, 39, 1, 76, 35, 157, 11, 68, 108, 35, 0, 85, 99, 47, 0, 208, - 102, 45, 0, 208, 100, 152, 12, 33, 13, 48, 12, 240, 2, 252, 102, 48, 1, 144, 9, 153, 8, 28, 32, 34, 13, 240, 3, 255, - 245, 40, 0, 209, 6, 152, 7, 28, 33, 154, 5, 247, 255, 254, 84, 40, 0, 208, 81, 72, 20, 37, 7, 68, 104, 224, 0, 61, 1, - 93, 67, 43, 46, 208, 2, 45, 0, 220, 249, 224, 16, 45, 0, 221, 14, 25, 68, 240, 3, 255, 172, 27, 66, 72, 13, 28, 33, - 68, 104, 240, 3, 249, 56, 34, 8, 27, 82, 28, 32, 33, 95, 240, 3, 249, 138, 37, 1, 38, 1, 79, 7, 224, 44, 255, 255, 253, - 100, 19, 115, 172, 118, 19, 115, 172, 45, 19, 115, 172, 44, 19, 115, 172, 100, 0, 0, 2, 99, 0, 0, 2, 107, 0, 15, 66, - 64, 28, 40, 33, 10, 240, 2, 252, 108, 49, 48, 112, 33, 28, 40, 33, 10, 240, 2, 252, 28, 60, 1, 28, 5, 40, 0, 209, 241, - 32, 126, 73, 189, 112, 32, 152, 7, 68, 105, 154, 5, 247, 255, 254, 12, 40, 0, 208, 9, 54, 1, 28, 53, 66, 190, 209, 0, - 225, 144, 76, 183, 68, 108, 231, 223, 33, 1, 145, 9, 73, 179, 34, 0, 68, 105, 224, 4, 156, 6, 84, 163, 50, 1, 42, 8, - 208, 4, 92, 139, 43, 46, 208, 1, 43, 0, 209, 245, 157, 6, 28, 17, 24, 171, 32, 32, 224, 2, 112, 24, 49, 1, 51, 1, 41, - 7, 221, 250, 72, 167, 68, 104, 92, 131, 43, 46, 208, 3, 158, 6, 34, 32, 24, 115, 224, 17, 28, 83, 24, 195, 152, 6, 24, - 66, 224, 2, 112, 16, 49, 1, 50, 1, 120, 24, 51, 1, 40, 0, 208, 239, 41, 10, 221, 246, 231, 236, 112, 26, 49, 1, 51, - 1, 41, 10, 221, 250, 33, 0, 145, 10, 36, 1, 154, 10, 66, 34, 209, 1, 32, 0, 224, 0, 32, 128, 158, 6, 157, 10, 92, 114, - 8, 107, 24, 155, 6, 27, 14, 27, 24, 27, 6, 27, 14, 27, 49, 1, 147, 10, 41, 11, 209, 235, 171, 156, 34, 0, 96, 154, 96, - 90, 152, 5, 170, 159, 144, 156, 28, 24, 200, 112, 194, 112, 70, 111, 32, 1, 157, 9, 144, 14, 36, 0, 28, 30, 55, 66, - 224, 52, 153, 7, 104, 50, 104, 72, 42, 1, 217, 5, 106, 203, 58, 2, 67, 90, 106, 75, 24, 211, 224, 1, 154, 7, 105, 147, - 104, 114, 36, 32, 24, 154, 104, 179, 28, 57, 1, 91, 148, 0, 247, 255, 249, 14, 120, 59, 43, 0, 209, 6, 171, 159, 28, - 49, 201, 21, 195, 21, 61, 1, 36, 1, 224, 20, 43, 229, 208, 1, 157, 9, 224, 7, 152, 9, 66, 133, 209, 3, 171, 159, 28, - 49, 201, 21, 195, 21, 61, 1, 36, 0, 45, 0, 208, 5, 152, 7, 28, 49, 34, 1, 247, 255, 250, 246, 144, 14, 153, 14, 41, - 0, 208, 5, 44, 0, 209, 3, 45, 0, 209, 195, 28, 44, 224, 3, 154, 14, 42, 0, 209, 0, 224, 235, 154, 6, 171, 159, 50, 32, - 203, 67, 194, 67, 44, 0, 208, 57, 70, 108, 52, 66, 28, 32, 33, 0, 34, 32, 240, 3, 248, 166, 158, 6, 28, 111, 54, 44, - 173, 156, 224, 34, 28, 51, 28, 42, 202, 19, 195, 19, 34, 1, 152, 7, 28, 41, 247, 255, 250, 204, 154, 7, 144, 14, 104, - 80, 104, 42, 42, 1, 217, 6, 156, 7, 58, 2, 106, 227, 67, 90, 106, 99, 24, 211, 224, 1, 153, 7, 105, 139, 104, 106, 70, - 105, 24, 154, 104, 171, 36, 32, 1, 91, 49, 66, 63, 1, 148, 0, 247, 255, 248, 94, 47, 0, 208, 3, 152, 14, 40, 0, 209, - 215, 224, 175, 153, 14, 41, 0, 208, 0, 224, 185, 224, 170, 154, 6, 171, 156, 50, 44, 203, 112, 194, 112, 224, 178, 104, - 58, 168, 165, 28, 41, 171, 156, 240, 2, 251, 195, 40, 0, 221, 5, 155, 165, 24, 45, 128, 35, 54, 1, 52, 2, 224, 2, 40, - 0, 208, 4, 224, 5, 46, 254, 216, 1, 45, 0, 209, 234, 35, 0, 128, 35, 158, 9, 39, 1, 0, 115, 25, 155, 0, 155, 25, 155, - 59, 27, 147, 15, 32, 1, 66, 127, 224, 123, 46, 1, 208, 80, 152, 9, 66, 134, 208, 1, 34, 0, 224, 0, 34, 64, 73, 45, 30, - 115, 67, 19, 68, 105, 112, 11, 155, 15, 72, 43, 0, 90, 70, 107, 51, 66, 24, 157, 36, 0, 136, 106, 42, 0, 209, 14, 44, - 1, 221, 7, 136, 43, 43, 0, 209, 4, 104, 3, 84, 207, 24, 91, 112, 95, 224, 9, 104, 3, 34, 0, 84, 202, 24, 91, 224, 3, - 104, 3, 84, 202, 24, 91, 10, 18, 112, 90, 52, 1, 48, 4, 53, 2, 44, 13, 209, 227, 36, 43, 75, 24, 68, 108, 120, 36, 68, - 107, 37, 0, 34, 15, 114, 218, 115, 92, 115, 29, 118, 157, 118, 221, 153, 7, 154, 162, 104, 72, 42, 1, 217, 5, 106, 203, - 58, 2, 67, 90, 106, 75, 24, 209, 224, 1, 154, 7, 105, 145, 171, 162, 104, 90, 104, 155, 24, 138, 33, 32, 145, 0, 73, - 9, 1, 91, 68, 105, 224, 29, 155, 7, 154, 162, 104, 88, 42, 1, 217, 14, 106, 219, 58, 2, 67, 90, 156, 7, 106, 99, 24, - 209, 224, 9, 0, 0, 2, 99, 0, 0, 2, 106, 0, 0, 2, 67, 19, 115, 172, 48, 157, 7, 105, 169, 171, 162, 104, 90, 104, 155, - 24, 138, 33, 32, 145, 0, 153, 6, 1, 91, 247, 254, 255, 184, 169, 162, 152, 7, 34, 0, 247, 255, 250, 7, 153, 15, 62, - 1, 57, 13, 145, 15, 40, 0, 208, 2, 46, 0, 221, 0, 231, 126, 32, 1, 224, 0, 32, 0, 35, 167, 0, 155, 68, 157, 188, 240, - 188, 2, 71, 8, 39, 1, 120, 99, 28, 102, 43, 0, 209, 0, 229, 246, 229, 170, 154, 6, 171, 162, 50, 32, 202, 112, 195, - 112, 70, 108, 52, 66, 34, 128, 0, 146, 28, 32, 33, 0, 240, 2, 255, 173, 35, 0, 170, 156, 96, 83, 147, 156, 157, 8, 38, - 0, 79, 1, 231, 72, 70, 192, 19, 115, 162, 160, 181, 240, 176, 139, 28, 7, 28, 14, 28, 20, 147, 1, 43, 0, 209, 4, 28, - 16, 33, 0, 240, 3, 252, 248, 144, 1, 120, 35, 43, 47, 209, 16, 105, 250, 28, 37, 146, 4, 224, 0, 53, 1, 120, 43, 43, - 47, 208, 251, 155, 1, 66, 157, 211, 8, 28, 56, 28, 49, 247, 255, 249, 55, 36, 1, 224, 3, 108, 122, 28, 37, 146, 4, 36, - 0, 105, 251, 154, 4, 66, 154, 209, 10, 72, 78, 28, 41, 240, 3, 253, 57, 40, 0, 209, 4, 28, 56, 28, 49, 247, 255, 249, - 35, 36, 1, 28, 51, 51, 56, 147, 2, 224, 114, 28, 40, 33, 47, 240, 3, 252, 200, 144, 0, 40, 0, 208, 2, 27, 66, 146, 3, - 224, 3, 28, 40, 240, 3, 253, 115, 144, 3, 35, 128, 154, 3, 0, 91, 66, 154, 216, 114, 28, 56, 28, 49, 154, 4, 247, 255, - 251, 236, 36, 0, 144, 5, 224, 53, 33, 128, 152, 2, 0, 73, 240, 3, 254, 98, 155, 3, 66, 131, 209, 8, 28, 40, 153, 2, - 28, 26, 247, 255, 249, 40, 40, 0, 209, 1, 36, 1, 224, 0, 36, 0, 70, 105, 49, 27, 28, 48, 247, 255, 248, 60, 70, 104, - 48, 27, 33, 13, 240, 3, 254, 75, 154, 3, 66, 130, 209, 6, 70, 105, 28, 40, 49, 27, 247, 255, 249, 17, 40, 0, 208, 1, - 44, 0, 208, 8, 122, 243, 6, 218, 212, 2, 155, 0, 43, 0, 209, 1, 36, 1, 224, 5, 36, 0, 28, 56, 28, 49, 247, 255, 250, - 194, 144, 5, 154, 5, 42, 0, 208, 1, 44, 0, 208, 196, 155, 5, 43, 0, 208, 44, 154, 0, 42, 0, 208, 21, 155, 1, 66, 147, - 217, 18, 122, 243, 6, 218, 213, 16, 28, 56, 28, 49, 247, 255, 248, 66, 157, 0, 144, 4, 224, 0, 53, 1, 120, 43, 43, 47, - 208, 251, 155, 1, 66, 157, 210, 1, 36, 0, 224, 0, 36, 1, 44, 0, 208, 138, 122, 59, 43, 3, 209, 15, 122, 243, 6, 218, - 213, 12, 28, 56, 28, 49, 247, 255, 248, 41, 40, 0, 209, 6, 28, 56, 28, 49, 247, 255, 248, 153, 224, 1, 32, 0, 224, 0, - 32, 1, 176, 11, 188, 240, 188, 2, 71, 8, 70, 192, 19, 115, 172, 45, 181, 48, 176, 207, 28, 10, 35, 0, 70, 105, 28, 4, - 70, 109, 247, 255, 255, 47, 40, 0, 208, 9, 122, 235, 6, 218, 213, 6, 28, 32, 70, 105, 247, 255, 248, 6, 100, 96, 32, - 1, 224, 0, 32, 0, 176, 79, 188, 48, 188, 2, 71, 8, 181, 240, 28, 29, 28, 6, 28, 15, 28, 20, 176, 129, 2, 81, 28, 24, - 247, 251, 253, 52, 105, 115, 28, 56, 28, 42, 28, 33, 240, 0, 248, 4, 176, 1, 188, 240, 188, 2, 71, 8, 71, 24, 70, 192, - 181, 240, 176, 131, 2, 86, 28, 28, 28, 7, 28, 21, 145, 1, 28, 24, 28, 49, 247, 251, 253, 29, 105, 59, 28, 41, 28, 34, - 152, 1, 240, 0, 248, 10, 28, 49, 28, 5, 28, 32, 247, 251, 252, 238, 176, 3, 28, 40, 188, 240, 188, 2, 71, 8, 71, 24, - 35, 120, 66, 91, 96, 3, 32, 1, 66, 64, 71, 112, 104, 75, 34, 0, 51, 252, 32, 0, 100, 90, 71, 112, 181, 112, 104, 76, - 28, 30, 28, 33, 49, 252, 108, 75, 28, 5, 28, 16, 43, 0, 209, 4, 35, 1, 66, 91, 96, 43, 28, 24, 224, 27, 108, 139, 43, - 0, 209, 5, 35, 106, 66, 91, 32, 1, 96, 43, 66, 64, 224, 18, 28, 33, 49, 60, 240, 3, 252, 88, 46, 0, 208, 4, 28, 33, - 201, 1, 28, 50, 247, 254, 255, 179, 28, 33, 201, 1, 247, 255, 250, 3, 28, 35, 51, 252, 100, 152, 32, 0, 188, 112, 188, - 2, 71, 8, 181, 16, 104, 73, 28, 12, 52, 252, 108, 99, 43, 0, 209, 4, 35, 1, 66, 91, 96, 3, 28, 24, 224, 5, 201, 1, 108, - 34, 247, 255, 250, 222, 100, 160, 32, 0, 188, 16, 188, 2, 71, 8, 70, 192, 181, 240, 176, 209, 28, 6, 28, 8, 28, 12, - 146, 1, 240, 1, 253, 40, 28, 5, 40, 0, 209, 4, 35, 1, 66, 91, 96, 51, 28, 24, 224, 35, 28, 32, 33, 58, 240, 3, 251, - 140, 40, 0, 208, 0, 28, 68, 28, 32, 33, 58, 240, 3, 251, 133, 40, 0, 208, 1, 35, 101, 224, 9, 175, 2, 28, 40, 28, 57, - 28, 34, 35, 0, 247, 255, 254, 118, 40, 0, 209, 5, 35, 106, 66, 91, 32, 1, 96, 51, 66, 64, 224, 5, 28, 40, 28, 57, 154, - 1, 247, 254, 255, 95, 32, 0, 176, 81, 188, 240, 188, 2, 71, 8, 181, 240, 176, 209, 144, 1, 28, 16, 104, 79, 28, 20, - 240, 1, 252, 240, 28, 5, 96, 56, 40, 0, 209, 1, 35, 1, 224, 13, 28, 32, 33, 58, 240, 3, 251, 86, 40, 0, 208, 0, 28, - 68, 28, 32, 33, 58, 240, 3, 251, 79, 40, 0, 208, 5, 35, 101, 154, 1, 66, 91, 96, 19, 32, 0, 224, 32, 174, 2, 28, 40, - 28, 49, 28, 34, 35, 0, 247, 255, 254, 60, 40, 0, 209, 4, 35, 106, 154, 1, 66, 91, 96, 19, 224, 18, 122, 243, 6, 218, - 213, 232, 28, 49, 104, 56, 247, 254, 255, 14, 28, 60, 52, 252, 28, 57, 28, 2, 100, 32, 201, 1, 247, 255, 250, 98, 35, - 1, 100, 160, 100, 99, 28, 56, 176, 81, 188, 240, 188, 2, 71, 8, 181, 112, 28, 6, 28, 8, 28, 21, 240, 1, 252, 172, 28, - 4, 40, 0, 209, 4, 35, 1, 66, 91, 96, 51, 28, 24, 224, 29, 240, 1, 250, 96, 107, 35, 96, 43, 107, 35, 96, 107, 107, 227, - 96, 232, 59, 1, 96, 171, 97, 40, 107, 227, 97, 168, 59, 1, 97, 107, 97, 232, 104, 35, 104, 27, 98, 43, 109, 99, 43, - 0, 209, 1, 35, 2, 224, 0, 35, 3, 98, 107, 35, 128, 0, 91, 98, 171, 32, 0, 188, 112, 188, 2, 71, 8, 70, 192, 181, 240, - 176, 223, 144, 3, 28, 8, 28, 12, 240, 1, 252, 123, 28, 6, 40, 0, 209, 5, 35, 1, 153, 3, 66, 91, 96, 11, 28, 24, 224, - 213, 28, 32, 33, 58, 240, 3, 250, 222, 40, 0, 208, 0, 28, 68, 28, 32, 33, 58, 240, 3, 250, 215, 40, 0, 209, 35, 175, - 8, 28, 48, 28, 57, 28, 34, 35, 0, 247, 255, 253, 202, 40, 0, 208, 1, 35, 105, 224, 194, 109, 115, 43, 0, 208, 0, 224, - 179, 28, 32, 33, 47, 240, 3, 252, 178, 28, 5, 40, 0, 209, 2, 108, 119, 28, 33, 224, 18, 28, 48, 28, 57, 28, 34, 28, - 43, 247, 255, 253, 178, 40, 0, 208, 2, 122, 251, 6, 217, 212, 1, 35, 101, 224, 157, 28, 57, 28, 48, 247, 254, 254, 135, - 28, 105, 28, 7, 172, 8, 168, 22, 240, 3, 251, 53, 33, 0, 34, 32, 28, 32, 240, 2, 253, 62, 35, 0, 115, 99, 240, 1, 251, - 106, 115, 160, 10, 0, 115, 224, 240, 1, 251, 103, 116, 32, 10, 0, 116, 96, 240, 1, 251, 96, 117, 160, 10, 0, 117, 224, - 240, 1, 251, 93, 118, 32, 10, 0, 118, 96, 240, 1, 251, 88, 35, 16, 116, 160, 10, 0, 116, 224, 114, 227, 28, 48, 33, - 0, 240, 1, 251, 27, 28, 5, 40, 1, 216, 0, 224, 114, 107, 243, 66, 152, 217, 0, 224, 110, 4, 2, 2, 19, 14, 27, 147, 5, - 118, 163, 12, 3, 14, 18, 4, 27, 146, 4, 118, 226, 2, 26, 14, 18, 14, 27, 146, 7, 28, 48, 117, 34, 28, 33, 147, 6, 28, - 58, 117, 99, 247, 255, 249, 239, 40, 0, 209, 1, 35, 108, 224, 75, 172, 86, 33, 0, 34, 32, 28, 32, 240, 2, 252, 245, - 33, 32, 34, 11, 28, 32, 240, 2, 252, 240, 35, 46, 112, 35, 35, 16, 114, 227, 34, 23, 70, 105, 92, 81, 35, 19, 118, 161, - 70, 106, 92, 154, 33, 31, 118, 226, 70, 107, 92, 203, 34, 27, 117, 35, 70, 105, 92, 81, 61, 2, 117, 97, 106, 243, 104, - 112, 28, 26, 67, 106, 106, 115, 28, 33, 24, 210, 35, 32, 147, 0, 35, 0, 247, 254, 252, 131, 105, 243, 66, 159, 209, - 0, 39, 0, 169, 86, 35, 46, 112, 75, 10, 59, 118, 203, 12, 59, 117, 11, 10, 27, 118, 143, 117, 75, 106, 243, 104, 112, - 28, 26, 67, 106, 106, 115, 24, 210, 35, 32, 147, 0, 247, 254, 252, 151, 104, 112, 247, 254, 251, 102, 40, 0, 208, 1, - 32, 0, 224, 5, 35, 103, 154, 3, 66, 91, 96, 19, 32, 1, 66, 64, 176, 95, 188, 240, 188, 2, 71, 8, 35, 108, 153, 3, 66, - 91, 96, 11, 231, 244, 70, 192, 181, 240, 76, 72, 28, 7, 68, 165, 28, 8, 28, 12, 28, 21, 240, 1, 251, 137, 28, 6, 40, - 0, 208, 4, 28, 40, 240, 1, 251, 131, 66, 134, 208, 4, 35, 1, 66, 91, 96, 59, 28, 24, 224, 116, 109, 115, 43, 0, 209, - 108, 28, 32, 33, 58, 240, 3, 249, 229, 40, 0, 208, 0, 28, 68, 28, 32, 33, 58, 240, 3, 249, 222, 40, 0, 209, 54, 28, - 40, 33, 58, 240, 3, 249, 216, 40, 0, 208, 0, 28, 69, 28, 40, 33, 58, 240, 3, 249, 209, 40, 0, 209, 41, 28, 48, 169, - 80, 28, 34, 35, 0, 247, 255, 252, 197, 40, 0, 209, 1, 35, 106, 224, 73, 28, 48, 169, 2, 28, 42, 35, 0, 247, 255, 252, - 187, 40, 0, 208, 1, 35, 105, 224, 63, 28, 40, 33, 47, 240, 3, 251, 167, 28, 4, 40, 0, 209, 2, 108, 114, 146, 1, 224, - 19, 28, 48, 169, 2, 28, 42, 28, 35, 247, 255, 252, 167, 40, 0, 208, 3, 70, 106, 124, 211, 6, 218, 212, 1, 35, 101, 224, - 39, 28, 48, 169, 2, 247, 254, 253, 123, 28, 101, 144, 1, 172, 2, 34, 156, 0, 82, 169, 80, 28, 32, 240, 2, 251, 152, - 28, 41, 168, 16, 240, 3, 250, 34, 28, 48, 28, 33, 154, 1, 247, 255, 249, 27, 40, 0, 209, 1, 35, 108, 224, 13, 28, 48, - 169, 80, 247, 254, 254, 145, 40, 0, 208, 6, 104, 112, 247, 254, 250, 208, 40, 0, 208, 1, 32, 0, 224, 4, 35, 103, 66, - 91, 32, 1, 96, 59, 66, 64, 35, 159, 0, 155, 68, 157, 188, 240, 188, 2, 71, 8, 70, 192, 255, 255, 253, 132, 181, 112, - 28, 5, 28, 8, 28, 12, 240, 1, 250, 248, 28, 6, 40, 0, 209, 4, 35, 1, 66, 91, 96, 43, 28, 24, 224, 25, 28, 32, 33, 58, - 240, 3, 249, 92, 40, 0, 208, 0, 28, 68, 28, 32, 33, 58, 240, 3, 249, 85, 40, 0, 209, 7, 28, 48, 28, 33, 247, 255, 253, - 19, 40, 0, 208, 1, 32, 0, 224, 4, 35, 101, 66, 91, 32, 1, 96, 43, 66, 64, 188, 112, 188, 2, 71, 8, 70, 192, 181, 240, - 76, 68, 68, 165, 144, 1, 28, 8, 28, 12, 240, 1, 250, 202, 28, 5, 40, 0, 209, 5, 35, 1, 154, 1, 66, 91, 96, 19, 28, 24, - 224, 108, 109, 67, 43, 0, 209, 97, 28, 32, 33, 58, 240, 3, 249, 42, 40, 0, 208, 0, 28, 68, 28, 32, 33, 58, 240, 3, 249, - 35, 40, 0, 208, 1, 35, 101, 224, 97, 174, 80, 28, 40, 28, 49, 28, 34, 35, 0, 247, 255, 252, 20, 40, 0, 209, 1, 35, 106, - 224, 86, 28, 40, 28, 49, 247, 254, 252, 236, 122, 243, 28, 7, 6, 218, 213, 29, 172, 2, 28, 40, 28, 33, 28, 58, 247, - 255, 248, 62, 78, 39, 224, 19, 170, 16, 120, 19, 43, 46, 209, 65, 34, 65, 68, 106, 120, 19, 43, 0, 208, 6, 107, 163, - 28, 50, 64, 26, 35, 184, 3, 155, 66, 154, 209, 53, 28, 40, 28, 33, 247, 254, 255, 54, 40, 0, 209, 233, 47, 1, 217, 14, - 107, 235, 66, 159, 216, 11, 28, 40, 28, 57, 240, 1, 248, 229, 40, 0, 209, 5, 35, 103, 154, 1, 66, 91, 96, 19, 36, 1, - 224, 0, 36, 0, 28, 40, 169, 80, 247, 254, 253, 228, 40, 0, 209, 4, 35, 103, 154, 1, 66, 91, 96, 19, 36, 1, 104, 104, - 247, 254, 250, 30, 40, 0, 209, 1, 35, 103, 224, 12, 44, 0, 209, 1, 32, 0, 224, 1, 32, 1, 66, 64, 35, 159, 0, 155, 68, - 157, 188, 240, 188, 2, 71, 8, 35, 102, 154, 1, 66, 91, 96, 19, 231, 242, 70, 192, 255, 255, 253, 132, 0, 255, 255, 0, - 181, 240, 176, 129, 28, 7, 28, 12, 28, 21, 158, 6, 43, 0, 208, 37, 46, 0, 208, 2, 104, 51, 43, 0, 208, 34, 104, 98, - 106, 235, 66, 154, 217, 1, 35, 101, 224, 34, 66, 154, 209, 24, 104, 33, 28, 40, 240, 0, 255, 113, 75, 17, 66, 152, 208, - 1, 40, 0, 209, 3, 104, 33, 28, 40, 240, 1, 248, 240, 40, 1, 217, 16, 107, 235, 66, 152, 216, 13, 35, 0, 96, 99, 96, - 32, 224, 2, 35, 0, 96, 51, 224, 1, 32, 1, 224, 0, 32, 0, 176, 1, 188, 240, 188, 2, 71, 8, 35, 108, 66, 91, 96, 59, 46, - 0, 209, 240, 231, 244, 70, 192, 15, 255, 255, 255, 181, 240, 76, 111, 34, 128, 68, 165, 145, 3, 144, 4, 107, 205, 0, - 146, 104, 104, 33, 0, 144, 5, 168, 6, 240, 2, 251, 6, 153, 3, 75, 105, 104, 8, 175, 135, 64, 3, 96, 187, 107, 41, 240, - 1, 253, 165, 10, 73, 96, 121, 154, 3, 28, 40, 104, 81, 240, 0, 255, 186, 155, 3, 144, 135, 104, 26, 104, 155, 28, 1, - 26, 158, 46, 0, 208, 19, 42, 0, 208, 17, 104, 123, 43, 0, 209, 14, 104, 188, 44, 0, 209, 11, 28, 40, 240, 1, 248, 163, - 40, 1, 216, 0, 224, 159, 107, 235, 66, 152, 217, 0, 224, 155, 96, 56, 96, 124, 169, 135, 104, 143, 75, 82, 25, 186, - 66, 154, 216, 22, 154, 135, 42, 1, 217, 5, 106, 235, 58, 2, 67, 90, 106, 107, 24, 208, 224, 0, 105, 168, 172, 135, 104, - 98, 28, 59, 24, 130, 169, 6, 152, 5, 150, 0, 247, 254, 250, 161, 104, 163, 25, 155, 96, 163, 224, 109, 47, 0, 221, 70, - 104, 10, 42, 1, 217, 5, 106, 235, 58, 2, 67, 90, 106, 107, 24, 211, 224, 0, 105, 171, 172, 135, 104, 98, 152, 5, 24, - 154, 35, 128, 0, 155, 27, 219, 147, 0, 169, 6, 28, 59, 247, 254, 250, 133, 104, 163, 72, 57, 24, 243, 24, 30, 35, 0, - 96, 163, 104, 99, 51, 1, 96, 99, 224, 38, 104, 98, 106, 235, 66, 154, 211, 11, 33, 0, 96, 97, 28, 40, 104, 33, 240, - 1, 248, 81, 40, 1, 217, 83, 107, 235, 66, 152, 216, 80, 96, 32, 104, 34, 42, 1, 217, 5, 106, 235, 58, 2, 67, 90, 106, - 107, 24, 210, 224, 0, 105, 170, 104, 97, 28, 59, 24, 81, 152, 5, 34, 1, 247, 254, 249, 78, 104, 99, 74, 36, 51, 1, 24, - 182, 96, 99, 224, 1, 172, 135, 175, 6, 75, 31, 66, 158, 216, 211, 35, 0, 147, 0, 152, 4, 28, 33, 28, 42, 28, 51, 247, - 255, 255, 21, 40, 0, 208, 30, 46, 0, 208, 19, 104, 33, 41, 1, 217, 5, 106, 235, 30, 138, 67, 90, 106, 107, 24, 208, - 224, 0, 105, 168, 172, 135, 104, 98, 169, 6, 24, 130, 35, 0, 152, 5, 150, 0, 247, 254, 250, 48, 96, 166, 154, 3, 171, - 135, 50, 12, 203, 19, 194, 19, 154, 3, 32, 1, 104, 147, 96, 19, 35, 139, 0, 155, 68, 157, 188, 240, 188, 2, 71, 8, 35, - 108, 156, 4, 66, 91, 96, 35, 224, 3, 35, 108, 152, 4, 66, 91, 96, 3, 32, 0, 231, 238, 70, 192, 255, 255, 253, 212, 0, - 0, 1, 255, 255, 255, 254, 0, 181, 240, 176, 137, 144, 3, 28, 12, 28, 23, 42, 0, 218, 3, 35, 101, 66, 91, 96, 3, 224, - 17, 41, 0, 208, 2, 109, 75, 43, 0, 209, 5, 152, 3, 35, 1, 66, 91, 96, 3, 28, 24, 224, 110, 108, 203, 43, 0, 209, 6, - 35, 101, 153, 3, 66, 91, 96, 11, 32, 1, 66, 64, 224, 100, 104, 11, 107, 205, 66, 154, 217, 50, 104, 78, 46, 0, 209, - 12, 28, 40, 33, 0, 240, 0, 255, 195, 40, 1, 217, 91, 107, 235, 66, 152, 216, 88, 96, 96, 96, 224, 97, 38, 97, 102, 28, - 34, 171, 5, 50, 12, 202, 97, 195, 97, 104, 161, 145, 1, 96, 167, 152, 3, 28, 33, 247, 255, 254, 218, 40, 0, 209, 2, - 32, 1, 66, 64, 224, 0, 32, 0, 109, 35, 43, 0, 208, 5, 28, 34, 28, 35, 50, 24, 51, 12, 203, 98, 194, 98, 28, 34, 171, - 5, 50, 12, 203, 98, 194, 98, 154, 1, 96, 162, 224, 42, 66, 154, 210, 39, 104, 78, 42, 0, 209, 8, 28, 40, 28, 49, 240, - 0, 255, 48, 96, 103, 97, 167, 97, 231, 98, 39, 224, 27, 107, 41, 30, 80, 240, 1, 252, 47, 28, 2, 28, 49, 50, 1, 28, - 40, 240, 0, 255, 77, 109, 35, 28, 6, 43, 0, 208, 13, 75, 13, 28, 56, 64, 59, 98, 35, 107, 41, 240, 1, 252, 92, 41, 0, - 209, 1, 106, 235, 224, 0, 10, 75, 97, 227, 97, 166, 32, 0, 35, 1, 96, 39, 101, 163, 176, 9, 188, 240, 188, 2, 71, 8, - 35, 108, 157, 3, 66, 91, 96, 43, 231, 142, 0, 0, 1, 255, 181, 240, 176, 133, 28, 12, 144, 1, 28, 25, 28, 16, 44, 0, - 208, 2, 109, 99, 43, 0, 209, 5, 35, 1, 153, 1, 66, 91, 96, 11, 28, 24, 224, 107, 107, 226, 146, 2, 41, 1, 208, 5, 41, - 2, 208, 9, 41, 0, 209, 10, 28, 7, 224, 13, 104, 163, 24, 195, 28, 31, 43, 0, 218, 8, 224, 80, 104, 35, 24, 199, 224, - 4, 35, 101, 153, 1, 66, 91, 96, 11, 224, 76, 104, 35, 66, 159, 216, 78, 104, 99, 147, 3, 43, 0, 208, 74, 153, 2, 28, - 56, 107, 13, 28, 41, 240, 1, 251, 210, 28, 6, 104, 160, 66, 135, 211, 11, 28, 41, 240, 1, 251, 203, 153, 2, 105, 34, - 106, 203, 66, 154, 209, 0, 56, 1, 104, 226, 26, 54, 146, 3, 28, 56, 28, 41, 240, 1, 251, 252, 75, 27, 10, 73, 64, 59, - 97, 33, 97, 99, 152, 2, 153, 3, 240, 0, 253, 131, 224, 5, 152, 2, 28, 41, 240, 0, 253, 126, 62, 1, 149, 3, 28, 5, 46, - 0, 221, 5, 40, 0, 208, 3, 75, 18, 66, 152, 209, 241, 224, 1, 46, 0, 221, 19, 46, 1, 209, 10, 104, 35, 66, 187, 209, - 7, 105, 34, 42, 0, 209, 4, 153, 2, 106, 203, 97, 98, 97, 35, 224, 6, 35, 101, 154, 1, 66, 91, 96, 19, 32, 1, 66, 64, - 224, 3, 155, 3, 96, 227, 96, 167, 28, 56, 176, 5, 188, 240, 188, 2, 71, 8, 70, 192, 0, 0, 1, 255, 15, 255, 255, 255, - 181, 240, 176, 209, 28, 7, 28, 12, 28, 21, 41, 0, 208, 2, 109, 75, 43, 0, 209, 4, 35, 1, 66, 91, 96, 59, 28, 24, 224, - 31, 107, 200, 28, 11, 144, 1, 170, 10, 51, 36, 203, 67, 194, 67, 170, 13, 203, 67, 194, 67, 169, 2, 152, 1, 247, 254, - 252, 11, 40, 0, 209, 5, 35, 103, 66, 91, 32, 1, 96, 59, 66, 64, 224, 9, 152, 1, 169, 2, 28, 42, 247, 254, 250, 66, 104, - 99, 32, 0, 96, 107, 104, 35, 97, 171, 176, 81, 188, 240, 188, 2, 71, 8, 70, 192, 181, 240, 176, 149, 147, 5, 35, 1, - 144, 7, 28, 14, 146, 6, 147, 19, 41, 0, 208, 5, 109, 75, 43, 0, 208, 2, 108, 203, 43, 0, 209, 5, 152, 7, 35, 1, 66, - 91, 96, 3, 28, 24, 225, 175, 107, 205, 104, 48, 104, 105, 154, 5, 145, 8, 28, 4, 33, 0, 35, 0, 25, 18, 65, 89, 41, 0, - 208, 1, 67, 192, 144, 5, 154, 5, 42, 0, 209, 1, 32, 0, 225, 156, 104, 116, 44, 0, 209, 17, 28, 40, 33, 0, 240, 0, 254, - 116, 40, 1, 216, 0, 225, 150, 107, 235, 66, 152, 217, 0, 225, 146, 96, 112, 97, 176, 97, 244, 98, 52, 96, 240, 97, 52, - 97, 116, 109, 51, 43, 0, 208, 5, 28, 50, 171, 16, 50, 24, 202, 145, 195, 145, 224, 26, 104, 178, 104, 51, 66, 154, 217, - 6, 152, 7, 28, 49, 247, 255, 253, 129, 40, 0, 209, 0, 225, 123, 28, 50, 171, 16, 50, 12, 202, 145, 195, 145, 154, 5, - 104, 180, 35, 0, 33, 0, 25, 18, 65, 89, 104, 51, 41, 0, 209, 1, 66, 154, 217, 2, 33, 1, 145, 10, 224, 1, 34, 0, 146, - 10, 172, 16, 171, 19, 147, 0, 28, 33, 155, 5, 152, 7, 28, 42, 247, 255, 253, 34, 104, 164, 35, 128, 0, 155, 70, 164, - 27, 27, 156, 5, 66, 156, 217, 0, 28, 28, 75, 172, 66, 156, 216, 39, 155, 19, 43, 0, 208, 36, 154, 16, 42, 1, 217, 5, - 106, 235, 58, 2, 67, 90, 106, 107, 24, 211, 224, 0, 105, 171, 175, 16, 104, 122, 152, 8, 24, 154, 153, 6, 70, 99, 148, - 0, 247, 254, 248, 50, 152, 6, 155, 5, 25, 0, 27, 27, 147, 9, 144, 6, 104, 187, 74, 156, 24, 227, 96, 187, 66, 147, 221, - 7, 35, 0, 96, 187, 104, 123, 51, 1, 96, 123, 224, 1, 153, 5, 145, 9, 106, 232, 159, 17, 154, 9, 27, 196, 2, 99, 66, - 154, 216, 0, 10, 84, 44, 0, 209, 0, 224, 137, 66, 132, 211, 0, 224, 134, 155, 19, 43, 0, 209, 0, 224, 130, 155, 16, - 43, 1, 217, 5, 59, 2, 28, 2, 67, 90, 106, 107, 24, 209, 224, 0, 105, 169, 25, 201, 152, 8, 28, 34, 155, 6, 247, 253, - 254, 240, 40, 0, 209, 5, 35, 103, 156, 7, 66, 91, 144, 19, 96, 35, 224, 106, 159, 6, 152, 9, 2, 99, 24, 255, 26, 192, - 151, 6, 144, 9, 170, 16, 104, 83, 24, 227, 96, 83, 224, 94, 169, 19, 145, 0, 155, 9, 152, 7, 169, 16, 28, 42, 247, 255, - 252, 174, 155, 19, 43, 0, 208, 96, 154, 16, 155, 3, 146, 11, 154, 2, 107, 47, 202, 19, 195, 19, 156, 11, 224, 21, 106, - 235, 154, 9, 168, 19, 147, 14, 144, 0, 27, 211, 152, 7, 169, 13, 28, 42, 247, 255, 252, 151, 155, 19, 43, 0, 208, 15, - 155, 11, 156, 13, 51, 1, 66, 156, 209, 10, 107, 43, 148, 11, 24, 255, 155, 19, 43, 0, 208, 4, 107, 43, 153, 9, 24, 251, - 66, 139, 211, 225, 154, 16, 42, 1, 217, 5, 106, 235, 58, 2, 67, 90, 106, 107, 24, 209, 224, 0, 105, 169, 10, 122, 152, - 8, 155, 6, 247, 253, 254, 155, 40, 0, 209, 5, 35, 103, 154, 7, 66, 91, 144, 19, 96, 19, 224, 34, 155, 11, 66, 163, 208, - 7, 44, 1, 217, 5, 107, 235, 66, 156, 216, 2, 148, 16, 35, 0, 224, 2, 156, 11, 148, 16, 106, 235, 152, 6, 153, 9, 25, - 192, 27, 201, 147, 17, 144, 6, 145, 9, 224, 5, 70, 106, 70, 107, 50, 64, 51, 52, 146, 2, 147, 3, 107, 43, 156, 9, 66, - 156, 211, 2, 155, 19, 43, 0, 209, 147, 171, 19, 147, 0, 152, 7, 169, 16, 28, 42, 155, 9, 159, 9, 247, 255, 252, 65, - 152, 9, 10, 68, 44, 0, 208, 35, 155, 19, 43, 0, 208, 32, 153, 16, 41, 1, 217, 5, 106, 235, 30, 138, 67, 90, 106, 107, - 24, 209, 224, 0, 105, 169, 152, 8, 28, 34, 155, 6, 247, 253, 254, 81, 40, 0, 209, 5, 35, 103, 153, 7, 66, 91, 144, 19, - 96, 11, 224, 9, 154, 6, 2, 99, 24, 210, 152, 9, 146, 6, 170, 16, 26, 199, 104, 83, 24, 227, 96, 83, 47, 0, 208, 47, - 155, 19, 43, 0, 208, 44, 153, 10, 41, 0, 208, 18, 154, 16, 42, 1, 217, 5, 106, 235, 58, 2, 67, 90, 106, 107, 24, 208, - 224, 0, 105, 168, 154, 17, 153, 6, 24, 130, 35, 0, 152, 8, 151, 0, 247, 253, 255, 5, 224, 17, 154, 16, 42, 1, 217, 5, - 106, 235, 58, 2, 67, 90, 106, 107, 24, 208, 224, 0, 105, 168, 154, 17, 153, 6, 24, 130, 35, 0, 152, 8, 151, 0, 247, - 253, 255, 30, 170, 16, 104, 147, 24, 251, 96, 147, 39, 0, 35, 1, 154, 5, 101, 179, 109, 51, 27, 208, 172, 16, 43, 0, - 208, 7, 28, 51, 51, 24, 204, 162, 195, 162, 104, 51, 24, 27, 96, 51, 224, 10, 28, 51, 51, 12, 204, 162, 195, 162, 104, - 179, 24, 196, 104, 51, 96, 180, 66, 163, 210, 0, 96, 52, 176, 21, 188, 240, 188, 2, 71, 8, 35, 108, 154, 7, 66, 91, - 96, 19, 32, 1, 66, 64, 231, 244, 70, 192, 0, 0, 1, 255, 181, 240, 176, 143, 144, 7, 145, 6, 146, 5, 147, 4, 43, 0, 208, - 27, 153, 6, 41, 0, 208, 5, 109, 75, 43, 0, 208, 2, 108, 139, 43, 0, 209, 5, 35, 1, 154, 7, 66, 91, 96, 19, 28, 24, 225, - 57, 155, 6, 104, 152, 104, 30, 107, 221, 66, 176, 210, 2, 104, 91, 43, 0, 209, 5, 35, 121, 153, 7, 66, 91, 96, 11, 32, - 0, 225, 42, 154, 4, 33, 0, 28, 4, 35, 0, 25, 18, 65, 89, 41, 0, 209, 1, 66, 178, 217, 8, 154, 7, 35, 121, 66, 91, 96, - 19, 155, 6, 104, 26, 104, 155, 26, 211, 147, 4, 153, 6, 156, 4, 104, 202, 105, 15, 146, 12, 105, 75, 147, 13, 107, 203, - 153, 13, 104, 91, 147, 8, 35, 128, 0, 155, 26, 91, 66, 156, 217, 0, 28, 28, 75, 138, 66, 156, 217, 1, 158, 4, 224, 30, - 154, 12, 42, 1, 217, 5, 106, 235, 58, 2, 67, 90, 106, 107, 24, 210, 224, 0, 105, 170, 25, 210, 153, 5, 155, 13, 152, - 8, 148, 0, 247, 253, 254, 222, 155, 4, 153, 5, 154, 13, 27, 30, 75, 125, 25, 9, 24, 162, 145, 5, 146, 13, 66, 154, 221, - 2, 35, 0, 55, 1, 147, 13, 106, 233, 27, 204, 2, 99, 66, 158, 216, 0, 10, 116, 44, 0, 208, 30, 154, 12, 42, 1, 217, 6, - 28, 19, 59, 2, 28, 10, 67, 90, 106, 107, 24, 209, 224, 0, 105, 169, 25, 201, 152, 8, 28, 34, 155, 5, 247, 253, 255, - 5, 40, 0, 209, 5, 35, 103, 153, 7, 66, 91, 96, 11, 34, 0, 224, 6, 154, 5, 2, 99, 24, 210, 146, 5, 26, 246, 25, 63, 34, - 1, 106, 235, 66, 159, 211, 97, 42, 0, 208, 95, 28, 40, 153, 12, 240, 0, 250, 169, 46, 0, 209, 5, 75, 96, 66, 152, 209, - 2, 106, 239, 34, 1, 224, 83, 40, 1, 216, 0, 224, 170, 107, 235, 66, 152, 217, 0, 224, 166, 144, 12, 34, 1, 39, 0, 224, - 72, 155, 12, 33, 0, 147, 9, 145, 10, 28, 40, 153, 9, 240, 0, 250, 142, 107, 42, 155, 10, 28, 4, 24, 155, 147, 10, 155, - 9, 51, 1, 66, 152, 209, 5, 153, 10, 24, 139, 66, 179, 216, 1, 144, 9, 231, 236, 154, 12, 42, 1, 217, 5, 106, 235, 58, - 2, 67, 90, 106, 107, 24, 209, 224, 0, 105, 169, 155, 10, 152, 8, 10, 90, 155, 5, 247, 253, 254, 179, 40, 0, 209, 6, - 35, 103, 153, 7, 66, 91, 96, 11, 34, 0, 151, 11, 224, 33, 154, 10, 26, 182, 46, 0, 209, 7, 75, 61, 66, 156, 209, 4, - 153, 9, 106, 239, 34, 1, 145, 12, 224, 7, 44, 1, 217, 106, 107, 235, 66, 156, 216, 103, 148, 12, 34, 1, 39, 0, 155, - 5, 153, 10, 24, 91, 147, 5, 224, 2, 35, 103, 66, 91, 147, 3, 107, 43, 66, 158, 211, 1, 42, 0, 209, 174, 151, 11, 10, - 116, 44, 0, 208, 33, 42, 0, 208, 31, 153, 12, 41, 1, 217, 6, 28, 10, 106, 235, 58, 2, 67, 90, 106, 107, 24, 209, 224, - 0, 105, 169, 152, 8, 28, 34, 155, 5, 247, 253, 254, 115, 40, 0, 209, 5, 154, 7, 35, 103, 66, 91, 96, 19, 34, 0, 224, - 7, 153, 5, 2, 99, 24, 201, 25, 231, 145, 5, 26, 246, 151, 11, 34, 1, 46, 0, 208, 23, 42, 0, 208, 21, 154, 12, 42, 1, - 217, 5, 106, 235, 58, 2, 67, 90, 106, 107, 24, 208, 224, 0, 105, 168, 155, 11, 153, 5, 24, 194, 152, 8, 35, 0, 150, - 0, 247, 253, 253, 255, 153, 13, 24, 113, 145, 13, 38, 0, 155, 4, 153, 11, 27, 154, 155, 6, 28, 16, 97, 25, 153, 12, - 96, 217, 153, 13, 97, 89, 153, 6, 104, 139, 24, 155, 96, 139, 176, 15, 188, 240, 188, 2, 71, 8, 154, 7, 35, 103, 66, - 91, 96, 19, 34, 0, 231, 159, 155, 3, 153, 7, 34, 0, 96, 11, 231, 149, 0, 0, 1, 255, 15, 255, 255, 255, 181, 48, 176, - 139, 28, 5, 40, 0, 208, 98, 109, 67, 43, 0, 208, 95, 108, 195, 43, 0, 208, 88, 109, 131, 43, 0, 208, 85, 107, 193, 107, - 42, 104, 72, 42, 1, 217, 5, 106, 203, 58, 2, 67, 90, 106, 75, 24, 211, 224, 0, 105, 139, 107, 106, 172, 2, 24, 154, - 107, 171, 33, 32, 1, 91, 145, 0, 28, 33, 247, 253, 253, 182, 104, 43, 10, 26, 119, 35, 119, 98, 12, 26, 14, 27, 119, - 227, 104, 107, 119, 162, 118, 163, 10, 26, 12, 27, 117, 35, 10, 27, 118, 226, 117, 99, 240, 0, 251, 166, 117, 160, 10, - 0, 117, 224, 240, 0, 251, 163, 118, 32, 10, 0, 118, 96, 240, 0, 251, 158, 122, 227, 34, 32, 116, 160, 67, 19, 10, 0, - 107, 233, 107, 42, 116, 224, 114, 227, 104, 72, 42, 1, 217, 5, 106, 203, 58, 2, 67, 90, 106, 75, 24, 211, 224, 0, 105, - 139, 107, 106, 33, 32, 24, 154, 107, 171, 145, 0, 1, 91, 169, 2, 247, 253, 253, 48, 107, 235, 104, 88, 247, 253, 251, - 254, 40, 0, 209, 1, 32, 103, 224, 4, 35, 0, 101, 171, 32, 0, 224, 1, 32, 1, 66, 64, 176, 11, 188, 48, 188, 2, 71, 8, - 181, 16, 109, 75, 28, 4, 28, 8, 43, 0, 209, 4, 35, 1, 66, 91, 96, 35, 28, 24, 224, 6, 247, 255, 255, 133, 40, 0, 208, - 2, 96, 32, 32, 1, 66, 64, 188, 16, 188, 2, 71, 8, 70, 192, 181, 48, 109, 75, 176, 129, 28, 5, 28, 12, 43, 0, 209, 4, - 35, 1, 66, 91, 96, 3, 28, 24, 224, 31, 108, 203, 43, 0, 209, 1, 32, 0, 224, 7, 28, 8, 247, 255, 255, 104, 40, 0, 208, - 2, 96, 40, 32, 1, 66, 64, 107, 226, 35, 0, 101, 99, 108, 147, 59, 1, 100, 147, 108, 98, 42, 0, 208, 1, 108, 35, 100, - 19, 108, 35, 108, 98, 43, 0, 208, 1, 100, 90, 224, 1, 107, 227, 100, 218, 176, 1, 188, 48, 188, 2, 71, 8, 181, 240, - 176, 211, 144, 2, 28, 16, 28, 13, 28, 23, 147, 1, 240, 0, 251, 225, 28, 6, 40, 0, 209, 5, 152, 2, 35, 1, 66, 91, 96, - 3, 32, 6, 224, 17, 28, 56, 33, 58, 240, 2, 250, 68, 40, 0, 208, 0, 28, 71, 28, 56, 33, 58, 240, 2, 250, 61, 40, 0, 208, - 6, 35, 101, 153, 2, 66, 91, 96, 11, 32, 1, 66, 64, 225, 3, 154, 1, 35, 3, 64, 26, 209, 4, 35, 1, 100, 171, 100, 234, - 101, 42, 224, 13, 42, 1, 209, 2, 100, 168, 100, 234, 224, 4, 42, 2, 209, 4, 35, 1, 100, 171, 100, 235, 101, 40, 224, - 1, 35, 102, 224, 32, 108, 235, 43, 0, 208, 3, 109, 115, 43, 0, 208, 0, 224, 131, 172, 4, 35, 0, 28, 33, 28, 58, 28, - 48, 247, 254, 253, 11, 28, 1, 30, 75, 65, 153, 154, 1, 35, 160, 1, 27, 64, 26, 66, 154, 209, 3, 41, 0, 208, 11, 35, - 105, 224, 80, 41, 0, 208, 7, 122, 227, 6, 217, 213, 4, 35, 122, 154, 2, 66, 91, 96, 19, 231, 192, 35, 0, 101, 171, 40, - 0, 209, 79, 155, 1, 5, 155, 213, 70, 109, 115, 43, 0, 209, 91, 28, 56, 33, 47, 240, 2, 251, 218, 28, 4, 40, 0, 209, - 3, 108, 112, 28, 57, 144, 3, 224, 19, 28, 48, 169, 4, 28, 58, 28, 35, 247, 254, 252, 217, 40, 0, 208, 3, 70, 105, 126, - 203, 6, 218, 212, 1, 35, 101, 224, 67, 169, 4, 28, 48, 247, 253, 253, 173, 28, 97, 144, 3, 172, 4, 34, 255, 168, 18, - 240, 2, 251, 70, 33, 0, 34, 32, 28, 32, 240, 1, 252, 99, 35, 0, 115, 99, 240, 0, 250, 143, 115, 160, 10, 0, 115, 224, - 240, 0, 250, 140, 116, 32, 10, 0, 116, 96, 28, 33, 28, 48, 154, 3, 247, 254, 249, 66, 40, 0, 209, 4, 35, 108, 152, 2, - 66, 91, 96, 3, 231, 117, 35, 1, 101, 171, 224, 5, 35, 106, 153, 2, 66, 91, 96, 11, 32, 2, 231, 109, 169, 4, 127, 74, - 127, 139, 2, 18, 4, 27, 67, 26, 127, 11, 67, 26, 127, 203, 6, 27, 67, 26, 108, 235, 96, 42, 43, 0, 208, 7, 122, 203, - 7, 218, 213, 4, 35, 103, 156, 2, 66, 91, 96, 35, 231, 85, 169, 4, 99, 238, 28, 48, 247, 253, 253, 100, 28, 1, 96, 104, - 152, 1, 5, 64, 213, 12, 108, 235, 43, 0, 208, 9, 41, 0, 208, 7, 28, 48, 240, 0, 249, 123, 35, 0, 96, 107, 96, 43, 35, - 1, 101, 171, 28, 42, 50, 36, 171, 12, 203, 19, 194, 19, 171, 15, 203, 19, 194, 19, 35, 0, 104, 105, 154, 1, 96, 171, - 97, 43, 97, 107, 35, 8, 96, 233, 64, 19, 208, 27, 35, 1, 101, 43, 28, 48, 240, 0, 248, 193, 104, 44, 97, 168, 107, 49, - 28, 32, 240, 0, 254, 159, 75, 22, 10, 73, 64, 35, 97, 233, 98, 43, 44, 0, 208, 16, 28, 32, 107, 49, 240, 0, 254, 148, - 41, 0, 209, 10, 106, 243, 98, 41, 97, 235, 224, 6, 101, 43, 28, 42, 28, 43, 50, 24, 51, 12, 203, 19, 194, 19, 35, 1, - 101, 107, 108, 179, 51, 1, 100, 179, 108, 243, 43, 0, 208, 3, 100, 107, 108, 243, 100, 29, 224, 0, 100, 107, 35, 0, - 100, 43, 28, 40, 100, 245, 176, 83, 188, 240, 188, 2, 71, 8, 0, 0, 1, 255, 181, 240, 176, 135, 28, 5, 28, 15, 41, 0, - 209, 1, 32, 0, 224, 97, 35, 0, 147, 5, 122, 1, 41, 2, 208, 54, 41, 3, 208, 70, 41, 1, 208, 2, 32, 1, 66, 64, 224, 85, - 0, 124, 107, 67, 25, 228, 10, 162, 24, 211, 5, 164, 147, 3, 13, 228, 104, 64, 28, 26, 145, 0, 28, 35, 169, 5, 247, 253, - 251, 245, 35, 128, 28, 102, 0, 155, 66, 158, 209, 3, 155, 3, 38, 0, 51, 1, 147, 3, 35, 0, 147, 4, 154, 3, 28, 51, 104, - 104, 36, 1, 169, 4, 148, 0, 247, 253, 251, 226, 155, 4, 154, 5, 2, 27, 67, 26, 66, 39, 208, 1, 9, 19, 224, 1, 75, 23, - 64, 19, 147, 5, 154, 5, 75, 22, 224, 13, 107, 107, 0, 122, 10, 82, 24, 210, 35, 255, 64, 59, 104, 64, 0, 91, 145, 0, - 169, 5, 247, 253, 251, 200, 154, 5, 75, 16, 66, 154, 217, 20, 75, 15, 224, 17, 107, 107, 0, 186, 10, 82, 24, 210, 35, - 127, 33, 4, 64, 59, 104, 64, 0, 155, 145, 0, 169, 5, 247, 253, 251, 181, 154, 5, 75, 8, 66, 154, 217, 1, 51, 9, 147, - 5, 152, 5, 176, 7, 188, 240, 188, 2, 71, 8, 0, 0, 15, 255, 0, 0, 15, 246, 0, 0, 255, 246, 15, 255, 255, 255, 15, 255, - 255, 246, 181, 112, 28, 6, 37, 0, 36, 2, 224, 7, 28, 48, 28, 33, 247, 255, 255, 127, 40, 0, 209, 0, 53, 1, 52, 1, 107, - 243, 66, 156, 217, 244, 28, 40, 188, 112, 188, 2, 71, 8, 181, 112, 28, 5, 28, 12, 78, 11, 224, 4, 28, 33, 28, 40, 247, - 255, 255, 107, 28, 4, 28, 40, 28, 33, 247, 255, 255, 102, 40, 0, 208, 5, 28, 40, 28, 33, 247, 255, 255, 96, 66, 176, - 209, 238, 28, 32, 188, 112, 188, 2, 71, 8, 15, 255, 255, 255, 181, 240, 176, 137, 28, 6, 28, 12, 146, 3, 41, 1, 217, - 117, 107, 195, 66, 153, 216, 114, 122, 5, 45, 2, 208, 86, 45, 3, 208, 98, 45, 1, 209, 107, 0, 75, 24, 91, 10, 153, 5, - 155, 107, 66, 13, 219, 147, 4, 51, 1, 104, 64, 24, 143, 147, 2, 66, 44, 208, 36, 169, 7, 28, 58, 155, 4, 149, 0, 247, - 253, 251, 76, 155, 3, 34, 15, 1, 25, 155, 7, 104, 112, 64, 19, 67, 25, 35, 255, 145, 5, 28, 58, 64, 25, 155, 4, 149, - 0, 247, 253, 250, 241, 35, 128, 156, 2, 0, 155, 66, 156, 209, 1, 55, 1, 36, 0, 155, 5, 104, 112, 4, 25, 35, 1, 147, - 0, 14, 9, 28, 58, 28, 35, 224, 42, 155, 4, 153, 3, 28, 58, 149, 0, 247, 253, 250, 219, 35, 128, 157, 2, 0, 155, 66, - 157, 209, 1, 55, 1, 37, 0, 36, 1, 169, 7, 28, 58, 28, 43, 104, 112, 148, 0, 247, 253, 251, 24, 155, 3, 34, 240, 5, 25, - 155, 7, 15, 9, 64, 19, 67, 25, 104, 112, 148, 0, 28, 58, 28, 43, 224, 9, 107, 115, 0, 74, 10, 82, 24, 210, 35, 255, - 64, 11, 104, 64, 0, 91, 149, 0, 153, 3, 247, 253, 250, 180, 32, 1, 224, 11, 0, 138, 107, 115, 10, 82, 24, 210, 35, 127, - 64, 11, 33, 4, 104, 64, 0, 155, 145, 0, 231, 239, 32, 0, 176, 9, 188, 240, 188, 2, 71, 8, 181, 240, 176, 129, 28, 6, - 28, 13, 41, 1, 217, 27, 107, 195, 66, 153, 216, 24, 108, 3, 66, 153, 210, 13, 100, 49, 224, 11, 28, 41, 28, 48, 247, - 255, 254, 196, 28, 41, 28, 4, 34, 0, 28, 48, 247, 255, 255, 102, 28, 37, 224, 0, 79, 7, 66, 189, 208, 6, 45, 0, 208, - 4, 28, 107, 209, 236, 224, 1, 32, 0, 224, 0, 32, 1, 176, 1, 188, 240, 188, 2, 71, 8, 70, 192, 15, 255, 255, 255, 181, - 240, 176, 129, 28, 7, 28, 13, 42, 0, 209, 3, 247, 255, 255, 204, 38, 0, 224, 32, 30, 86, 247, 255, 254, 157, 224, 5, - 28, 56, 28, 33, 247, 255, 254, 152, 62, 1, 28, 37, 28, 4, 46, 0, 208, 4, 40, 0, 208, 2, 75, 11, 66, 152, 209, 241, 28, - 46, 44, 0, 208, 6, 75, 8, 66, 156, 208, 3, 28, 56, 28, 33, 247, 255, 255, 174, 28, 56, 28, 41, 74, 3, 247, 255, 255, - 39, 176, 1, 28, 48, 188, 240, 188, 2, 71, 8, 15, 255, 255, 255, 181, 240, 107, 199, 176, 131, 28, 5, 28, 14, 66, 185, - 216, 20, 247, 255, 254, 111, 40, 1, 217, 1, 66, 184, 217, 42, 108, 43, 43, 1, 216, 14, 35, 2, 224, 12, 52, 1, 66, 188, - 217, 12, 154, 1, 35, 2, 42, 0, 209, 1, 34, 1, 224, 4, 100, 44, 32, 1, 66, 64, 224, 24, 34, 0, 146, 1, 28, 28, 28, 40, - 28, 33, 247, 255, 254, 82, 40, 0, 209, 233, 100, 44, 46, 1, 217, 6, 66, 190, 210, 4, 28, 40, 28, 49, 28, 34, 247, 255, - 254, 238, 28, 40, 28, 33, 74, 3, 247, 255, 254, 233, 28, 32, 176, 3, 188, 240, 188, 2, 71, 8, 15, 255, 255, 255, 181, - 240, 176, 131, 28, 7, 247, 255, 255, 189, 30, 67, 28, 5, 51, 3, 217, 2, 37, 1, 66, 109, 224, 29, 76, 17, 34, 128, 33, - 0, 28, 32, 0, 146, 240, 1, 249, 239, 30, 169, 38, 0, 145, 1, 224, 15, 104, 120, 45, 1, 217, 5, 153, 1, 28, 26, 67, 74, - 106, 123, 24, 209, 224, 0, 105, 185, 25, 137, 34, 1, 28, 35, 247, 253, 248, 176, 54, 1, 106, 251, 66, 158, 211, 236, - 176, 3, 28, 40, 188, 240, 188, 2, 71, 8, 70, 192, 19, 117, 184, 128, 32, 0, 71, 112, 32, 0, 71, 112, 181, 0, 176, 139, - 170, 1, 10, 195, 96, 147, 5, 67, 14, 155, 96, 83, 35, 31, 64, 24, 64, 11, 96, 211, 5, 203, 15, 27, 59, 1, 0, 64, 97, - 19, 10, 73, 35, 0, 144, 1, 97, 81, 98, 19, 28, 16, 240, 1, 251, 25, 176, 11, 188, 2, 71, 8, 181, 240, 76, 16, 176, 129, - 28, 39, 28, 6, 55, 16, 104, 37, 45, 0, 208, 13, 104, 40, 34, 0, 224, 2, 43, 58, 208, 3, 50, 1, 92, 179, 43, 0, 209, - 249, 28, 49, 240, 2, 248, 43, 40, 0, 208, 5, 52, 4, 66, 188, 209, 235, 28, 35, 59, 16, 104, 29, 176, 1, 28, 40, 188, - 240, 188, 2, 71, 8, 19, 117, 186, 128, 181, 240, 176, 129, 28, 7, 247, 255, 255, 215, 28, 6, 40, 0, 208, 36, 74, 20, - 104, 131, 66, 147, 209, 32, 77, 19, 36, 0, 104, 40, 40, 0, 208, 17, 104, 0, 34, 0, 224, 2, 43, 58, 208, 3, 50, 1, 92, - 187, 43, 0, 209, 249, 28, 57, 240, 1, 255, 255, 40, 0, 209, 3, 74, 10, 0, 163, 80, 152, 224, 9, 52, 1, 53, 4, 44, 4, - 209, 230, 109, 176, 240, 0, 248, 94, 28, 48, 247, 252, 248, 189, 176, 1, 188, 240, 188, 1, 71, 0, 70, 192, 19, 115, - 90, 13, 19, 117, 186, 128, 181, 240, 176, 131, 144, 1, 28, 14, 28, 23, 28, 28, 240, 1, 255, 100, 48, 93, 247, 252, 248, - 181, 28, 5, 40, 0, 208, 10, 28, 48, 28, 33, 28, 58, 240, 0, 248, 85, 28, 6, 40, 0, 209, 4, 28, 40, 247, 252, 248, 155, - 32, 0, 224, 26, 28, 44, 34, 92, 52, 92, 73, 13, 28, 40, 240, 1, 248, 152, 153, 1, 28, 32, 240, 1, 255, 34, 74, 10, 96, - 44, 101, 174, 33, 0, 104, 19, 43, 0, 209, 3, 74, 7, 0, 139, 80, 157, 224, 3, 49, 1, 50, 4, 41, 4, 209, 244, 32, 1, 176, - 3, 188, 240, 188, 2, 71, 8, 19, 115, 172, 128, 19, 117, 186, 128, 181, 0, 176, 129, 34, 0, 35, 4, 247, 255, 255, 188, - 176, 1, 188, 2, 71, 8, 70, 192, 181, 0, 176, 129, 247, 255, 255, 90, 40, 0, 208, 0, 109, 128, 176, 1, 188, 2, 71, 8, - 181, 48, 176, 129, 28, 5, 108, 196, 224, 3, 28, 32, 247, 255, 251, 80, 108, 100, 44, 0, 209, 249, 104, 104, 247, 253, - 249, 154, 28, 40, 247, 252, 248, 81, 176, 1, 188, 48, 188, 1, 71, 0, 70, 192, 181, 240, 77, 213, 176, 159, 35, 0, 145, - 5, 146, 4, 112, 43, 28, 17, 28, 43, 34, 1, 144, 6, 247, 254, 250, 55, 40, 0, 209, 0, 225, 144, 35, 255, 0, 91, 92, 235, - 43, 85, 208, 0, 225, 138, 75, 203, 92, 235, 43, 170, 208, 0, 225, 133, 153, 4, 41, 0, 208, 0, 224, 172, 28, 46, 76, - 199, 54, 54, 28, 48, 28, 33, 34, 3, 240, 0, 255, 255, 40, 0, 209, 0, 224, 161, 28, 40, 48, 82, 28, 33, 34, 3, 240, 0, - 255, 246, 40, 0, 209, 0, 224, 152, 34, 223, 0, 82, 172, 14, 24, 169, 28, 32, 34, 64, 240, 1, 248, 23, 79, 184, 121, - 33, 122, 37, 122, 99, 122, 162, 122, 224, 41, 0, 208, 127, 4, 18, 2, 27, 67, 19, 67, 43, 6, 2, 67, 19, 147, 8, 41, 15, - 209, 88, 35, 228, 33, 0, 0, 91, 145, 9, 147, 3, 154, 8, 152, 6, 24, 142, 28, 49, 34, 1, 28, 59, 247, 254, 249, 235, - 40, 0, 209, 0, 225, 68, 75, 170, 153, 3, 92, 250, 92, 123, 2, 18, 4, 27, 67, 26, 35, 227, 0, 91, 92, 251, 152, 6, 67, - 26, 75, 165, 92, 251, 6, 27, 67, 26, 35, 235, 0, 91, 92, 251, 24, 181, 147, 13, 75, 162, 28, 41, 92, 251, 34, 1, 147, - 12, 35, 236, 0, 91, 92, 251, 147, 11, 75, 158, 92, 251, 147, 10, 28, 59, 247, 254, 249, 196, 40, 0, 209, 0, 225, 29, - 78, 150, 72, 154, 28, 49, 34, 3, 240, 0, 255, 157, 40, 0, 208, 60, 28, 56, 48, 82, 28, 49, 34, 3, 240, 0, 255, 149, - 40, 0, 208, 52, 154, 12, 153, 11, 2, 19, 4, 10, 67, 19, 154, 13, 153, 10, 67, 19, 6, 10, 28, 25, 67, 17, 208, 34, 154, - 9, 50, 1, 146, 9, 42, 8, 209, 172, 224, 28, 152, 6, 153, 8, 34, 1, 75, 129, 247, 254, 249, 153, 40, 0, 209, 0, 224, - 242, 72, 126, 78, 128, 48, 54, 28, 49, 34, 3, 240, 0, 255, 113, 40, 0, 208, 18, 72, 122, 28, 49, 48, 82, 34, 3, 240, - 0, 255, 105, 40, 0, 208, 10, 155, 8, 147, 4, 224, 0, 149, 4, 171, 26, 66, 156, 208, 5, 52, 16, 231, 115, 149, 4, 224, - 1, 153, 8, 145, 4, 76, 118, 77, 113, 28, 32, 28, 41, 34, 3, 240, 0, 255, 83, 40, 0, 208, 8, 28, 32, 48, 28, 28, 41, - 34, 3, 240, 0, 255, 75, 40, 0, 208, 0, 224, 194, 32, 88, 247, 251, 255, 119, 28, 7, 40, 0, 209, 0, 224, 188, 154, 6, - 73, 98, 96, 2, 125, 203, 125, 138, 2, 27, 67, 19, 99, 131, 43, 0, 209, 15, 29, 139, 127, 218, 29, 203, 127, 219, 2, - 18, 4, 27, 67, 26, 29, 75, 127, 219, 67, 26, 28, 11, 51, 8, 127, 219, 6, 27, 67, 26, 99, 130, 73, 86, 125, 11, 124, - 202, 2, 27, 67, 19, 98, 59, 43, 0, 209, 14, 28, 139, 127, 218, 28, 203, 127, 219, 2, 18, 4, 27, 67, 26, 28, 75, 127, - 219, 67, 26, 29, 11, 127, 219, 6, 27, 67, 26, 98, 58, 35, 128, 73, 74, 0, 155, 98, 187, 123, 11, 122, 202, 2, 27, 67, - 19, 123, 74, 28, 16, 67, 88, 18, 64, 144, 7, 98, 248, 154, 7, 106, 62, 2, 83, 99, 59, 123, 205, 123, 139, 2, 45, 67, - 29, 155, 4, 32, 0, 25, 93, 99, 125, 124, 10, 107, 187, 67, 83, 24, 237, 97, 189, 124, 139, 124, 74, 2, 27, 67, 19, 9, - 27, 24, 237, 98, 125, 154, 4, 28, 49, 26, 171, 28, 28, 35, 0, 27, 9, 65, 152, 75, 51, 74, 49, 240, 0, 250, 171, 97, - 56, 97, 121, 155, 4, 27, 118, 24, 246, 153, 7, 28, 48, 240, 0, 250, 8, 75, 53, 34, 2, 99, 248, 100, 58, 66, 152, 216, - 1, 35, 1, 224, 5, 75, 50, 66, 152, 216, 1, 114, 58, 224, 1, 35, 3, 114, 59, 122, 59, 43, 3, 208, 2, 35, 0, 97, 251, - 224, 30, 73, 35, 28, 11, 51, 45, 120, 26, 51, 1, 120, 27, 2, 18, 4, 27, 67, 26, 28, 11, 51, 44, 120, 27, 67, 26, 28, - 11, 51, 47, 120, 27, 49, 40, 6, 27, 67, 26, 97, 250, 120, 10, 6, 19, 43, 0, 219, 6, 35, 15, 64, 26, 107, 187, 67, 90, - 107, 123, 24, 155, 99, 123, 106, 252, 44, 16, 216, 1, 44, 15, 216, 0, 36, 16, 106, 58, 153, 4, 104, 59, 24, 138, 107, - 120, 153, 5, 146, 0, 28, 34, 247, 253, 248, 24, 105, 251, 96, 120, 100, 123, 155, 6, 104, 90, 35, 1, 8, 82, 67, 147, - 101, 123, 35, 0, 100, 187, 100, 251, 224, 0, 39, 0, 176, 31, 28, 56, 188, 240, 188, 2, 71, 8, 70, 192, 0, 0, 0, 0, 0, - 0, 2, 0, 19, 117, 186, 160, 0, 0, 1, 255, 19, 115, 172, 220, 0, 0, 1, 199, 0, 0, 1, 201, 0, 0, 1, 215, 0, 0, 1, 217, - 19, 117, 186, 214, 0, 0, 15, 244, 0, 0, 255, 244, 72, 82, 104, 0, 70, 192, 104, 0, 70, 192, 70, 135, 70, 192, 70, 192, - 28, 32, 180, 254, 247, 250, 255, 102, 40, 0, 218, 20, 72, 75, 104, 3, 104, 88, 188, 254, 70, 135, 70, 192, 70, 192, - 70, 192, 70, 192, 70, 192, 28, 32, 180, 254, 247, 250, 248, 150, 40, 0, 218, 4, 72, 67, 104, 3, 104, 152, 188, 254, - 70, 135, 188, 254, 28, 1, 72, 65, 104, 0, 70, 135, 28, 32, 180, 254, 247, 250, 248, 138, 40, 0, 218, 244, 72, 59, 104, - 3, 104, 216, 188, 254, 70, 135, 70, 192, 70, 192, 70, 192, 70, 192, 70, 192, 28, 32, 180, 254, 247, 250, 248, 126, 40, - 0, 218, 228, 72, 51, 104, 3, 105, 24, 188, 254, 70, 135, 70, 192, 70, 192, 70, 192, 70, 192, 70, 192, 28, 32, 180, 254, - 247, 250, 248, 114, 40, 0, 218, 212, 72, 43, 104, 3, 105, 88, 188, 254, 70, 135, 70, 192, 70, 192, 70, 192, 70, 192, - 70, 192, 28, 32, 180, 254, 180, 1, 70, 105, 247, 250, 252, 200, 188, 8, 43, 0, 209, 193, 40, 0, 218, 191, 72, 33, 104, - 3, 105, 152, 188, 254, 70, 135, 28, 32, 180, 254, 180, 1, 70, 105, 247, 250, 251, 180, 188, 8, 43, 0, 209, 177, 40, - 0, 218, 175, 72, 25, 104, 3, 105, 216, 188, 254, 70, 135, 233, 45, 64, 240, 233, 45, 0, 12, 225, 160, 0, 0, 229, 159, - 64, 80, 225, 47, 255, 20, 225, 160, 0, 0, 225, 160, 0, 0, 225, 160, 0, 0, 247, 251, 253, 134, 74, 16, 104, 17, 188, - 12, 70, 95, 70, 86, 70, 77, 70, 68, 180, 240, 76, 13, 104, 36, 70, 192, 70, 167, 70, 192, 70, 192, 180, 124, 181, 0, - 247, 250, 254, 250, 188, 2, 188, 124, 71, 8, 181, 112, 176, 136, 104, 133, 28, 1, 75, 6, 71, 24, 0, 0, 19, 115, 247, - 44, 19, 115, 160, 28, 19, 115, 102, 177, 19, 115, 247, 48, 19, 115, 247, 52, 32, 16, 0, 213, 70, 192, 70, 192, 70, 192, - 70, 192, 70, 192, 70, 192, 239, 0, 0, 204, 225, 47, 255, 30, 225, 160, 0, 0, 225, 160, 0, 0, 230, 0, 0, 16, 225, 47, - 255, 30, 230, 0, 0, 48, 225, 47, 255, 30, 230, 0, 0, 80, 225, 47, 255, 30, 230, 0, 0, 112, 225, 47, 255, 30, 230, 0, - 0, 144, 225, 47, 255, 30, 230, 0, 0, 176, 225, 47, 255, 30, 230, 0, 0, 208, 225, 47, 255, 30, 230, 0, 0, 240, 225, 47, - 255, 30, 230, 0, 1, 16, 225, 47, 255, 30, 230, 0, 1, 48, 225, 47, 255, 30, 230, 0, 1, 80, 225, 47, 255, 30, 230, 0, - 1, 112, 225, 47, 255, 30, 230, 0, 1, 144, 225, 47, 255, 30, 230, 0, 1, 176, 225, 47, 255, 30, 230, 0, 1, 208, 225, 47, - 255, 30, 230, 0, 1, 240, 225, 47, 255, 30, 230, 0, 2, 16, 225, 47, 255, 30, 230, 0, 2, 48, 225, 47, 255, 30, 230, 0, - 2, 80, 225, 47, 255, 30, 230, 0, 2, 112, 225, 47, 255, 30, 230, 0, 2, 144, 225, 47, 255, 30, 230, 0, 2, 176, 225, 47, - 255, 30, 230, 0, 2, 208, 225, 47, 255, 30, 230, 0, 2, 240, 225, 47, 255, 30, 230, 0, 3, 16, 225, 47, 255, 30, 230, 0, - 3, 48, 225, 47, 255, 30, 230, 0, 3, 80, 225, 47, 255, 30, 230, 0, 3, 112, 225, 47, 255, 30, 230, 0, 3, 144, 225, 47, - 255, 30, 230, 0, 3, 176, 225, 47, 255, 30, 230, 0, 3, 208, 225, 47, 255, 30, 230, 0, 3, 240, 225, 47, 255, 30, 230, - 0, 4, 16, 225, 47, 255, 30, 230, 0, 4, 48, 225, 47, 255, 30, 230, 0, 4, 80, 225, 47, 255, 30, 230, 0, 4, 112, 225, 47, - 255, 30, 230, 0, 4, 144, 225, 47, 255, 30, 230, 0, 4, 176, 225, 47, 255, 30, 230, 0, 4, 208, 225, 47, 255, 30, 230, - 0, 4, 240, 225, 47, 255, 30, 230, 0, 5, 16, 225, 47, 255, 30, 230, 0, 5, 48, 225, 47, 255, 30, 230, 0, 5, 80, 225, 47, - 255, 30, 230, 0, 5, 112, 225, 47, 255, 30, 230, 0, 5, 176, 225, 47, 255, 30, 230, 0, 6, 144, 225, 47, 255, 30, 230, - 0, 7, 240, 225, 47, 255, 30, 230, 0, 8, 16, 225, 47, 255, 30, 230, 0, 8, 48, 225, 47, 255, 30, 230, 0, 8, 80, 225, 47, - 255, 30, 230, 0, 9, 240, 225, 47, 255, 30, 230, 0, 10, 16, 225, 47, 255, 30, 239, 0, 0, 204, 225, 47, 255, 30, 239, - 0, 0, 205, 225, 47, 255, 30, 41, 0, 208, 52, 35, 1, 34, 0, 180, 16, 66, 136, 211, 44, 36, 1, 7, 36, 66, 161, 210, 4, - 66, 129, 210, 2, 1, 9, 1, 27, 231, 248, 0, 228, 66, 161, 210, 4, 66, 129, 210, 2, 0, 73, 0, 91, 231, 248, 66, 136, 211, - 1, 26, 64, 67, 26, 8, 76, 66, 160, 211, 2, 27, 0, 8, 92, 67, 34, 8, 140, 66, 160, 211, 2, 27, 0, 8, 156, 67, 34, 8, - 204, 66, 160, 211, 2, 27, 0, 8, 220, 67, 34, 40, 0, 208, 3, 9, 27, 208, 1, 9, 9, 231, 227, 28, 16, 188, 16, 71, 112, - 181, 2, 240, 0, 248, 94, 32, 0, 188, 6, 71, 16, 70, 192, 181, 3, 247, 255, 255, 191, 188, 14, 67, 66, 26, 137, 71, 24, - 70, 192, 41, 0, 208, 65, 180, 16, 28, 4, 64, 76, 70, 164, 35, 1, 34, 0, 41, 0, 213, 0, 66, 73, 40, 0, 213, 0, 66, 64, - 66, 136, 211, 44, 36, 1, 7, 36, 66, 161, 210, 4, 66, 129, 210, 2, 1, 9, 1, 27, 231, 248, 0, 228, 66, 161, 210, 4, 66, - 129, 210, 2, 0, 73, 0, 91, 231, 248, 66, 136, 211, 1, 26, 64, 67, 26, 8, 76, 66, 160, 211, 2, 27, 0, 8, 92, 67, 34, - 8, 140, 66, 160, 211, 2, 27, 0, 8, 156, 67, 34, 8, 204, 66, 160, 211, 2, 27, 0, 8, 220, 67, 34, 40, 0, 208, 3, 9, 27, - 208, 1, 9, 9, 231, 227, 28, 16, 70, 100, 44, 0, 213, 0, 66, 64, 188, 16, 71, 112, 181, 2, 240, 0, 248, 11, 32, 0, 188, - 6, 71, 16, 181, 3, 247, 255, 255, 179, 188, 14, 67, 66, 26, 137, 71, 24, 70, 192, 71, 112, 70, 192, 181, 240, 70, 87, - 70, 70, 180, 192, 28, 30, 75, 22, 70, 144, 28, 10, 64, 26, 64, 51, 70, 130, 28, 16, 67, 88, 12, 12, 28, 15, 12, 49, - 70, 132, 67, 74, 28, 32, 67, 88, 28, 37, 67, 77, 70, 97, 24, 130, 12, 11, 24, 210, 66, 144, 217, 2, 35, 128, 2, 91, - 24, 237, 75, 9, 70, 97, 4, 20, 12, 16, 64, 11, 24, 42, 24, 225, 70, 64, 67, 120, 70, 83, 67, 115, 24, 192, 24, 128, - 188, 12, 70, 144, 70, 154, 188, 240, 188, 4, 71, 16, 0, 0, 255, 255, 181, 48, 176, 131, 156, 6, 28, 5, 44, 0, 208, 23, - 42, 0, 208, 13, 28, 40, 148, 0, 240, 0, 248, 166, 28, 67, 209, 3, 35, 0, 96, 35, 35, 138, 96, 43, 176, 3, 188, 48, 188, - 2, 71, 8, 74, 5, 28, 40, 33, 0, 35, 1, 148, 0, 240, 0, 248, 149, 231, 237, 32, 130, 0, 64, 24, 44, 231, 227, 19, 115, - 173, 16, 181, 112, 28, 22, 74, 7, 28, 13, 176, 130, 28, 4, 28, 33, 104, 16, 147, 0, 28, 42, 28, 51, 247, 255, 255, 207, - 176, 2, 188, 112, 188, 2, 71, 8, 70, 192, 19, 115, 163, 32, 181, 240, 70, 95, 70, 86, 70, 77, 70, 68, 180, 240, 176, - 135, 70, 139, 153, 16, 70, 130, 28, 22, 147, 3, 70, 136, 41, 0, 208, 68, 70, 91, 43, 0, 208, 72, 154, 3, 42, 0, 208, - 76, 156, 3, 73, 38, 70, 93, 39, 0, 104, 50, 70, 137, 224, 10, 104, 50, 70, 91, 24, 18, 96, 50, 43, 0, 208, 34, 53, 4, - 60, 1, 55, 1, 44, 0, 208, 18, 70, 73, 104, 11, 70, 65, 145, 0, 70, 80, 28, 41, 247, 255, 255, 153, 40, 0, 220, 234, - 28, 129, 209, 19, 73, 24, 104, 50, 104, 11, 24, 210, 96, 50, 44, 0, 209, 236, 159, 3, 176, 7, 28, 56, 188, 60, 70, 144, - 70, 153, 70, 162, 70, 171, 188, 240, 188, 2, 71, 8, 37, 0, 231, 219, 40, 0, 208, 8, 35, 0, 70, 66, 96, 19, 70, 81, 35, - 138, 39, 1, 96, 11, 66, 127, 231, 232, 96, 48, 231, 230, 34, 134, 0, 82, 68, 82, 70, 91, 70, 144, 43, 0, 209, 182, 104, - 51, 36, 1, 66, 100, 147, 5, 174, 5, 148, 3, 231, 179, 39, 0, 231, 214, 19, 115, 162, 160, 181, 112, 28, 22, 74, 7, 28, - 13, 176, 130, 28, 4, 28, 33, 104, 16, 147, 0, 28, 42, 28, 51, 247, 255, 255, 141, 176, 2, 188, 112, 188, 2, 71, 8, 70, - 192, 19, 115, 163, 32, 181, 240, 70, 87, 70, 70, 180, 192, 176, 131, 28, 15, 28, 21, 28, 30, 41, 0, 208, 98, 45, 0, - 208, 11, 46, 0, 209, 9, 36, 2, 66, 100, 176, 3, 28, 32, 188, 12, 70, 144, 70, 154, 188, 240, 188, 2, 71, 8, 76, 203, - 28, 32, 240, 1, 250, 16, 40, 1, 217, 69, 73, 201, 28, 32, 240, 1, 249, 184, 40, 0, 209, 74, 45, 0, 208, 122, 152, 10, - 104, 1, 41, 0, 209, 112, 35, 1, 120, 42, 70, 156, 42, 0, 209, 0, 224, 153, 42, 127, 217, 112, 28, 19, 59, 192, 43, 31, - 216, 0, 225, 230, 28, 19, 59, 224, 43, 15, 216, 0, 225, 158, 28, 19, 59, 240, 43, 7, 216, 0, 225, 251, 28, 19, 59, 248, - 43, 3, 217, 0, 224, 140, 152, 10, 113, 2, 41, 0, 208, 0, 225, 15, 35, 1, 96, 3, 46, 1, 217, 190, 154, 10, 104, 17, 41, - 1, 209, 0, 226, 78, 155, 10, 121, 90, 152, 10, 121, 0, 70, 128, 40, 248, 209, 0, 226, 81, 28, 19, 59, 128, 43, 63, 216, - 0, 226, 90, 36, 1, 66, 100, 231, 171, 45, 0, 208, 58, 120, 42, 96, 58, 120, 43, 28, 28, 30, 98, 65, 148, 231, 162, 175, - 1, 231, 154, 73, 162, 28, 32, 240, 1, 249, 103, 40, 0, 209, 51, 45, 0, 208, 41, 152, 10, 120, 42, 104, 3, 28, 17, 43, - 0, 209, 81, 28, 19, 59, 129, 43, 30, 217, 0, 224, 211, 153, 10, 35, 1, 113, 10, 96, 11, 46, 1, 216, 0, 231, 132, 120, - 105, 32, 2, 28, 11, 59, 64, 43, 62, 217, 2, 59, 64, 43, 124, 216, 206, 154, 10, 121, 19, 2, 27, 24, 203, 96, 59, 35, - 0, 96, 19, 28, 4, 231, 116, 152, 10, 35, 0, 54, 1, 121, 2, 70, 156, 231, 139, 36, 0, 231, 108, 152, 10, 35, 0, 96, 3, - 36, 1, 96, 58, 231, 102, 73, 134, 28, 32, 240, 1, 249, 45, 40, 0, 208, 0, 224, 172, 45, 0, 208, 238, 152, 10, 120, 41, - 104, 3, 28, 10, 43, 0, 208, 0, 225, 12, 28, 11, 59, 161, 43, 93, 216, 169, 35, 1, 113, 1, 96, 3, 46, 1, 216, 0, 231, - 74, 120, 105, 32, 2, 28, 11, 59, 161, 43, 93, 216, 151, 231, 199, 157, 10, 96, 58, 36, 0, 96, 42, 231, 64, 43, 1, 209, - 149, 32, 1, 231, 183, 28, 19, 59, 252, 43, 1, 216, 137, 155, 10, 113, 26, 41, 0, 208, 0, 225, 213, 152, 10, 35, 1, 96, - 3, 46, 1, 216, 0, 231, 43, 154, 10, 104, 17, 41, 1, 209, 0, 226, 67, 155, 10, 121, 90, 152, 10, 121, 0, 70, 128, 40, - 252, 209, 0, 226, 68, 28, 19, 59, 128, 43, 63, 217, 0, 231, 108, 155, 10, 113, 90, 41, 1, 209, 0, 226, 54, 54, 1, 46, - 2, 216, 0, 231, 16, 154, 10, 104, 17, 41, 2, 209, 0, 226, 64, 155, 10, 121, 154, 28, 19, 59, 128, 43, 63, 217, 0, 231, - 87, 152, 10, 113, 130, 41, 2, 209, 0, 226, 49, 54, 1, 46, 3, 216, 0, 230, 251, 154, 10, 104, 17, 41, 3, 209, 0, 226, - 35, 155, 10, 121, 218, 28, 19, 59, 128, 43, 63, 217, 0, 231, 66, 152, 10, 113, 194, 41, 3, 209, 0, 226, 20, 54, 1, 46, - 4, 216, 0, 230, 230, 46, 5, 209, 0, 231, 54, 70, 97, 92, 110, 28, 51, 59, 128, 43, 63, 217, 0, 231, 47, 155, 10, 121, - 90, 33, 63, 64, 10, 6, 18, 70, 96, 35, 1, 70, 148, 70, 66, 64, 19, 7, 155, 70, 98, 67, 26, 155, 10, 121, 155, 64, 11, - 4, 155, 67, 26, 155, 10, 121, 219, 64, 11, 3, 27, 67, 26, 28, 51, 64, 11, 48, 1, 1, 155, 67, 26, 92, 43, 157, 10, 64, - 11, 67, 26, 35, 0, 96, 58, 28, 68, 96, 43, 230, 185, 59, 95, 43, 15, 217, 0, 231, 12, 231, 38, 54, 1, 230, 239, 73, - 45, 28, 32, 240, 1, 248, 121, 40, 0, 208, 0, 230, 255, 45, 0, 209, 0, 225, 64, 153, 10, 120, 200, 46, 0, 208, 42, 74, - 39, 75, 39, 28, 44, 70, 172, 70, 144, 37, 0, 70, 154, 120, 33, 41, 40, 209, 0, 225, 36, 41, 40, 216, 82, 41, 27, 209, - 0, 225, 37, 41, 36, 209, 0, 225, 32, 41, 0, 209, 83, 34, 6, 0, 195, 24, 27, 24, 155, 70, 66, 92, 208, 70, 82, 92, 211, - 43, 5, 217, 0, 230, 213, 74, 25, 0, 155, 88, 211, 70, 159, 154, 10, 113, 17, 28, 98, 53, 1, 28, 20, 66, 174, 216, 219, - 153, 10, 36, 2, 96, 8, 66, 100, 230, 116, 28, 98, 70, 148, 231, 243, 152, 10, 35, 1, 96, 3, 121, 3, 120, 34, 2, 27, - 24, 210, 96, 58, 28, 108, 230, 103, 152, 10, 35, 0, 96, 3, 70, 97, 120, 11, 28, 108, 96, 59, 230, 95, 19, 115, 162, - 164, 19, 115, 172, 228, 19, 115, 172, 252, 19, 115, 172, 244, 19, 115, 172, 236, 19, 115, 173, 160, 19, 115, 173, 88, - 19, 115, 173, 64, 157, 10, 35, 0, 96, 43, 36, 0, 96, 59, 230, 73, 43, 1, 208, 0, 230, 157, 32, 1, 230, 249, 41, 66, - 209, 0, 224, 202, 41, 74, 209, 0, 224, 197, 41, 64, 209, 0, 224, 200, 28, 11, 59, 33, 43, 93, 216, 0, 224, 210, 34, - 8, 231, 165, 152, 10, 113, 2, 41, 0, 208, 0, 224, 178, 35, 1, 96, 3, 46, 1, 216, 0, 230, 40, 153, 10, 104, 11, 43, 1, - 209, 0, 225, 49, 153, 10, 121, 74, 155, 10, 121, 27, 70, 152, 43, 224, 209, 0, 225, 20, 28, 19, 59, 128, 43, 63, 217, - 0, 230, 105, 152, 10, 35, 2, 113, 66, 96, 3, 46, 2, 209, 0, 230, 15, 70, 97, 92, 108, 28, 35, 59, 128, 43, 63, 217, - 0, 230, 91, 35, 0, 96, 3, 121, 67, 73, 159, 32, 63, 70, 69, 64, 3, 3, 42, 64, 10, 1, 155, 67, 19, 28, 34, 64, 2, 28, - 25, 72, 155, 67, 17, 75, 155, 24, 10, 66, 154, 216, 0, 230, 70, 70, 100, 52, 1, 96, 57, 229, 241, 153, 10, 35, 1, 113, - 10, 96, 11, 46, 1, 216, 0, 229, 232, 70, 99, 92, 234, 28, 19, 59, 128, 43, 63, 217, 0, 230, 52, 157, 10, 121, 41, 41, - 193, 216, 0, 230, 47, 35, 0, 96, 43, 35, 63, 64, 26, 35, 31, 64, 11, 1, 155, 70, 100, 67, 26, 52, 1, 96, 58, 229, 210, - 155, 10, 113, 26, 41, 0, 209, 83, 152, 10, 35, 1, 96, 3, 46, 1, 216, 0, 229, 198, 154, 10, 104, 17, 41, 1, 209, 0, 224, - 217, 155, 10, 121, 90, 152, 10, 121, 0, 70, 128, 40, 240, 208, 100, 28, 19, 59, 128, 43, 63, 217, 0, 230, 8, 155, 10, - 113, 90, 41, 1, 208, 87, 54, 1, 46, 2, 216, 0, 229, 173, 153, 10, 104, 11, 43, 2, 209, 0, 224, 187, 153, 10, 121, 138, - 28, 19, 59, 128, 43, 63, 217, 0, 229, 244, 155, 10, 113, 154, 152, 10, 35, 3, 96, 3, 46, 3, 209, 0, 229, 153, 70, 97, - 92, 104, 28, 3, 59, 128, 43, 63, 217, 0, 229, 229, 155, 10, 121, 90, 33, 63, 70, 69, 35, 7, 64, 43, 64, 10, 157, 10, - 4, 155, 3, 18, 67, 26, 121, 171, 64, 11, 1, 155, 67, 26, 28, 3, 64, 11, 67, 26, 70, 100, 35, 0, 96, 58, 52, 1, 96, 43, - 229, 124, 54, 1, 231, 76, 54, 1, 231, 172, 34, 5, 230, 231, 34, 4, 230, 229, 34, 2, 230, 227, 34, 3, 230, 225, 34, 1, - 230, 223, 34, 0, 230, 221, 70, 99, 32, 1, 92, 234, 68, 132, 229, 173, 155, 10, 36, 1, 96, 29, 229, 99, 34, 7, 230, 210, - 42, 135, 220, 0, 229, 175, 229, 169, 54, 1, 230, 42, 152, 10, 35, 2, 96, 3, 231, 164, 42, 143, 220, 0, 229, 165, 231, - 150, 155, 10, 113, 90, 41, 1, 208, 87, 54, 1, 46, 2, 216, 0, 229, 73, 154, 10, 104, 17, 41, 2, 208, 74, 155, 10, 121, - 154, 28, 19, 59, 128, 43, 63, 217, 0, 229, 145, 152, 10, 113, 130, 41, 2, 208, 60, 54, 1, 46, 3, 216, 0, 229, 54, 153, - 10, 104, 11, 43, 3, 208, 47, 153, 10, 121, 202, 28, 19, 59, 128, 43, 63, 217, 0, 229, 126, 155, 10, 113, 218, 152, 10, - 35, 4, 96, 3, 46, 4, 209, 0, 229, 35, 121, 66, 33, 63, 70, 64, 35, 3, 64, 10, 64, 3, 152, 10, 6, 27, 4, 146, 67, 26, - 121, 131, 64, 11, 3, 27, 67, 26, 121, 195, 64, 11, 1, 155, 70, 96, 67, 26, 92, 43, 64, 11, 153, 10, 67, 26, 70, 100, - 35, 0, 96, 58, 52, 1, 96, 11, 229, 8, 42, 159, 220, 0, 229, 86, 230, 230, 70, 99, 32, 1, 92, 234, 68, 132, 231, 204, - 35, 3, 96, 3, 231, 192, 70, 99, 32, 1, 92, 234, 68, 132, 231, 177, 152, 10, 35, 2, 96, 3, 231, 164, 70, 99, 32, 1, 92, - 234, 68, 132, 230, 202, 70, 99, 32, 1, 92, 234, 68, 132, 231, 64, 70, 99, 32, 1, 92, 234, 68, 132, 231, 34, 70, 99, - 32, 1, 92, 234, 68, 132, 229, 184, 152, 10, 35, 2, 96, 3, 229, 197, 42, 131, 220, 0, 229, 41, 229, 182, 35, 4, 96, 3, - 229, 232, 70, 99, 32, 1, 92, 234, 68, 132, 229, 216, 35, 3, 96, 3, 229, 203, 70, 99, 32, 1, 92, 234, 68, 132, 229, 187, - 0, 0, 255, 255, 255, 255, 40, 0, 0, 0, 7, 255, 181, 112, 28, 14, 28, 21, 28, 4, 42, 3, 217, 32, 28, 51, 67, 3, 7, 154, - 208, 18, 120, 35, 120, 8, 66, 131, 209, 27, 30, 106, 224, 6, 52, 1, 49, 1, 120, 35, 120, 8, 58, 1, 66, 131, 209, 18, - 42, 0, 209, 246, 32, 0, 188, 112, 188, 2, 71, 8, 104, 2, 104, 11, 66, 154, 209, 4, 61, 4, 48, 4, 49, 4, 45, 3, 216, - 246, 28, 4, 45, 0, 209, 224, 231, 238, 26, 24, 231, 237, 181, 240, 28, 7, 28, 14, 28, 4, 28, 21, 28, 8, 28, 17, 42, - 15, 217, 3, 28, 51, 67, 59, 7, 154, 208, 11, 41, 0, 208, 5, 34, 0, 92, 131, 84, 163, 50, 1, 66, 138, 209, 250, 28, 56, - 188, 240, 188, 2, 71, 8, 28, 58, 28, 49, 28, 40, 104, 11, 96, 19, 104, 75, 96, 83, 104, 139, 96, 147, 104, 203, 56, - 16, 96, 211, 49, 16, 50, 16, 40, 15, 216, 242, 28, 43, 59, 16, 9, 26, 1, 17, 50, 1, 1, 18, 26, 89, 24, 176, 24, 188, - 41, 3, 217, 216, 34, 0, 88, 131, 80, 163, 50, 4, 26, 139, 43, 3, 216, 249, 31, 11, 8, 154, 0, 145, 50, 1, 0, 146, 26, - 89, 24, 128, 24, 164, 231, 200, 181, 240, 28, 15, 70, 132, 28, 12, 28, 22, 28, 5, 28, 17, 69, 188, 217, 16, 24, 184, - 69, 132, 210, 13, 42, 0, 208, 7, 24, 169, 58, 1, 56, 1, 120, 3, 57, 1, 112, 11, 58, 1, 210, 249, 70, 96, 188, 240, 188, - 2, 71, 8, 46, 15, 216, 8, 41, 0, 208, 247, 34, 0, 92, 163, 84, 171, 50, 1, 66, 138, 209, 250, 231, 240, 70, 99, 67, - 59, 7, 154, 209, 242, 70, 98, 28, 57, 28, 48, 104, 11, 96, 19, 104, 75, 96, 83, 104, 139, 96, 147, 104, 203, 56, 16, - 96, 211, 49, 16, 50, 16, 40, 15, 216, 242, 28, 51, 59, 16, 9, 26, 1, 17, 50, 1, 1, 18, 26, 89, 70, 99, 24, 190, 24, - 156, 41, 3, 217, 14, 34, 0, 88, 179, 80, 163, 50, 4, 26, 139, 43, 3, 216, 249, 31, 11, 8, 154, 0, 145, 50, 1, 0, 146, - 26, 89, 24, 182, 24, 164, 28, 37, 28, 52, 231, 196, 70, 192, 181, 240, 28, 7, 70, 140, 28, 16, 28, 57, 7, 186, 208, - 14, 40, 0, 208, 73, 70, 98, 6, 19, 56, 1, 14, 27, 34, 3, 224, 2, 40, 0, 208, 65, 56, 1, 112, 11, 49, 1, 66, 17, 209, - 248, 28, 5, 28, 10, 40, 3, 217, 46, 35, 255, 70, 98, 64, 26, 2, 19, 67, 19, 4, 26, 28, 20, 28, 14, 67, 28, 40, 15, 217, - 18, 28, 2, 28, 11, 58, 16, 96, 28, 96, 92, 96, 156, 96, 220, 51, 16, 42, 15, 216, 247, 28, 3, 59, 16, 28, 29, 9, 27, - 51, 1, 34, 15, 1, 27, 64, 21, 24, 206, 45, 3, 217, 13, 34, 0, 80, 180, 50, 4, 26, 171, 43, 3, 216, 250, 31, 43, 28, - 29, 8, 155, 51, 1, 34, 3, 0, 155, 64, 21, 24, 246, 28, 50, 45, 0, 208, 7, 70, 97, 6, 11, 14, 25, 35, 0, 84, 209, 51, - 1, 66, 157, 209, 251, 28, 56, 188, 240, 188, 2, 71, 8, 70, 192, 181, 240, 70, 95, 70, 86, 70, 77, 70, 68, 180, 240, - 104, 1, 176, 131, 28, 6, 41, 59, 217, 0, 224, 216, 104, 65, 41, 59, 217, 0, 224, 193, 104, 177, 41, 23, 217, 0, 224, - 171, 105, 53, 45, 11, 221, 0, 224, 152, 105, 119, 7, 185, 209, 69, 28, 56, 33, 100, 247, 255, 250, 131, 41, 0, 208, - 55, 104, 244, 34, 29, 44, 0, 220, 63, 33, 11, 70, 138, 73, 111, 35, 3, 70, 153, 70, 136, 224, 13, 41, 1, 209, 0, 224, - 203, 28, 16, 0, 139, 70, 65, 88, 90, 24, 163, 96, 243, 43, 0, 220, 75, 105, 53, 28, 2, 28, 28, 30, 105, 97, 49, 28, - 75, 209, 237, 28, 61, 70, 81, 63, 1, 70, 75, 97, 119, 97, 49, 66, 31, 208, 0, 224, 176, 28, 56, 33, 100, 247, 255, 250, - 87, 41, 0, 209, 8, 73, 93, 24, 104, 33, 200, 0, 73, 247, 255, 250, 79, 41, 0, 208, 0, 224, 161, 32, 29, 33, 11, 231, - 214, 75, 88, 33, 200, 24, 248, 0, 73, 247, 255, 250, 67, 41, 0, 208, 191, 104, 244, 34, 28, 44, 0, 221, 191, 73, 80, - 35, 0, 70, 136, 70, 138, 33, 3, 70, 155, 70, 137, 224, 16, 0, 171, 70, 65, 88, 91, 66, 163, 218, 16, 45, 1, 208, 23, - 0, 171, 70, 81, 88, 91, 53, 1, 26, 227, 96, 243, 97, 53, 45, 12, 208, 21, 28, 28, 45, 1, 209, 236, 28, 19, 66, 163, - 219, 238, 176, 3, 188, 60, 70, 144, 70, 153, 70, 162, 70, 171, 188, 240, 188, 1, 71, 0, 28, 19, 26, 227, 53, 1, 96, - 243, 97, 53, 45, 12, 209, 233, 28, 60, 70, 91, 55, 1, 70, 73, 97, 119, 97, 51, 66, 15, 209, 17, 28, 56, 33, 100, 247, - 255, 250, 3, 41, 0, 209, 7, 75, 53, 33, 200, 24, 224, 0, 73, 247, 255, 249, 251, 41, 0, 209, 3, 34, 29, 104, 244, 105, - 53, 231, 208, 34, 28, 104, 244, 105, 53, 231, 204, 28, 41, 70, 104, 34, 12, 240, 1, 253, 116, 105, 119, 155, 0, 153, - 1, 24, 255, 97, 119, 97, 49, 41, 0, 219, 62, 28, 13, 231, 88, 34, 24, 70, 104, 240, 1, 253, 102, 104, 242, 155, 0, 24, - 210, 155, 1, 96, 242, 96, 179, 43, 0, 219, 0, 231, 70, 51, 24, 96, 179, 30, 83, 96, 243, 231, 65, 70, 104, 34, 60, 240, - 1, 253, 84, 104, 177, 155, 0, 24, 201, 155, 1, 96, 177, 96, 115, 43, 0, 219, 0, 231, 49, 51, 60, 96, 115, 30, 75, 96, - 179, 28, 25, 231, 43, 70, 104, 34, 60, 240, 1, 253, 65, 104, 113, 155, 0, 24, 201, 155, 1, 96, 113, 96, 51, 43, 0, 219, - 0, 231, 26, 51, 60, 96, 51, 30, 75, 96, 115, 28, 25, 231, 20, 32, 28, 33, 11, 231, 52, 28, 16, 231, 53, 28, 10, 50, - 12, 30, 123, 97, 50, 97, 115, 28, 21, 28, 31, 231, 19, 70, 192, 19, 115, 174, 24, 0, 0, 7, 107, 0, 0, 7, 108, 0, 0, - 7, 109, 181, 240, 70, 95, 70, 86, 70, 77, 70, 68, 180, 240, 176, 131, 28, 6, 240, 1, 253, 52, 70, 130, 28, 48, 247, - 255, 254, 228, 104, 49, 104, 178, 104, 115, 105, 48, 145, 1, 73, 149, 70, 145, 70, 155, 104, 242, 0, 131, 88, 91, 58, - 1, 24, 213, 40, 1, 220, 0, 224, 236, 105, 119, 7, 188, 209, 0, 224, 134, 75, 142, 24, 250, 75, 142, 97, 245, 66, 154, - 217, 0, 224, 141, 47, 70, 220, 0, 224, 149, 33, 3, 36, 70, 70, 136, 224, 19, 28, 32, 33, 100, 247, 255, 249, 96, 41, - 0, 209, 7, 75, 134, 33, 200, 24, 224, 0, 73, 247, 255, 249, 88, 41, 0, 209, 8, 35, 183, 0, 91, 52, 1, 24, 237, 66, 167, - 221, 7, 70, 66, 66, 20, 208, 232, 75, 127, 52, 1, 24, 237, 66, 167, 220, 247, 29, 40, 33, 7, 247, 255, 249, 68, 97, - 177, 41, 0, 218, 0, 224, 165, 70, 74, 1, 19, 26, 155, 1, 25, 70, 92, 26, 201, 1, 35, 27, 27, 0, 155, 1, 9, 24, 201, - 154, 1, 0, 107, 25, 91, 24, 137, 1, 26, 26, 210, 1, 19, 26, 155, 1, 219, 106, 53, 24, 201, 70, 136, 45, 0, 221, 0, 37, - 1, 75, 108, 104, 27, 43, 0, 209, 0, 224, 142, 75, 104, 70, 84, 24, 248, 104, 99, 66, 131, 208, 0, 224, 130, 70, 81, - 106, 12, 107, 139, 27, 24, 105, 202, 107, 207, 70, 164, 69, 128, 219, 0, 224, 147, 27, 209, 70, 82, 104, 19, 43, 0, - 209, 0, 224, 162, 70, 67, 23, 218, 70, 68, 15, 203, 66, 140, 65, 90, 35, 1, 69, 128, 219, 0, 224, 164, 28, 20, 64, 28, - 45, 0, 219, 106, 28, 35, 64, 107, 43, 1, 209, 102, 70, 97, 27, 205, 44, 0, 209, 0, 66, 109, 104, 51, 25, 91, 96, 51, - 28, 48, 247, 255, 254, 75, 68, 168, 224, 89, 28, 56, 33, 100, 247, 255, 248, 231, 41, 0, 208, 93, 53, 1, 75, 71, 24, - 250, 75, 71, 97, 245, 66, 154, 216, 0, 231, 113, 32, 1, 66, 64, 176, 3, 188, 60, 70, 144, 70, 153, 70, 162, 70, 171, - 188, 240, 188, 2, 71, 8, 47, 70, 209, 0, 231, 134, 47, 69, 208, 98, 33, 3, 36, 69, 70, 136, 224, 19, 28, 32, 33, 100, - 247, 255, 248, 197, 41, 0, 209, 7, 75, 57, 33, 200, 24, 224, 0, 73, 247, 255, 248, 189, 41, 0, 209, 8, 35, 183, 0, 91, - 60, 1, 26, 237, 66, 167, 218, 7, 70, 66, 66, 20, 208, 232, 75, 49, 60, 1, 26, 237, 66, 167, 219, 247, 7, 188, 209, 64, - 28, 56, 33, 100, 247, 255, 248, 167, 41, 0, 208, 50, 35, 183, 0, 91, 26, 237, 29, 40, 33, 7, 247, 255, 248, 158, 97, - 177, 41, 0, 219, 0, 231, 89, 29, 203, 97, 179, 231, 86, 240, 0, 248, 75, 40, 0, 208, 0, 231, 119, 28, 44, 44, 1, 208, - 22, 70, 82, 106, 19, 70, 65, 24, 200, 98, 52, 231, 173, 105, 119, 231, 20, 73, 27, 24, 120, 33, 200, 0, 73, 247, 255, - 248, 129, 41, 0, 208, 0, 231, 11, 53, 1, 231, 151, 27, 219, 69, 152, 219, 230, 231, 103, 70, 82, 107, 211, 70, 65, 24, - 200, 98, 52, 231, 150, 73, 16, 24, 120, 33, 200, 0, 73, 247, 255, 248, 108, 41, 0, 208, 196, 75, 13, 26, 237, 231, 196, - 70, 67, 23, 218, 70, 68, 15, 203, 66, 140, 65, 90, 35, 1, 69, 128, 218, 4, 28, 20, 67, 28, 231, 92, 35, 0, 231, 88, - 35, 0, 231, 248, 70, 192, 19, 115, 173, 232, 0, 0, 39, 16, 0, 0, 78, 32, 0, 0, 7, 108, 0, 0, 1, 109, 19, 117, 188, 160, - 181, 240, 70, 95, 70, 86, 70, 77, 70, 68, 180, 240, 176, 133, 28, 6, 240, 1, 251, 234, 75, 92, 70, 130, 66, 158, 220, - 0, 224, 143, 73, 91, 75, 91, 24, 117, 74, 91, 33, 100, 96, 70, 66, 73, 24, 240, 24, 180, 247, 254, 255, 230, 0, 235, - 25, 91, 73, 87, 0, 219, 25, 91, 16, 164, 0, 154, 24, 36, 24, 112, 33, 200, 24, 155, 0, 73, 24, 228, 247, 254, 255, 215, - 33, 100, 24, 36, 28, 48, 247, 255, 248, 28, 145, 1, 33, 200, 28, 48, 0, 73, 247, 255, 248, 22, 66, 74, 65, 74, 0, 83, - 24, 155, 1, 27, 147, 3, 35, 3, 64, 30, 75, 72, 34, 0, 145, 2, 147, 0, 70, 161, 70, 87, 70, 144, 70, 179, 122, 59, 43, - 74, 208, 89, 43, 68, 208, 107, 70, 90, 42, 0, 208, 77, 155, 3, 152, 0, 24, 198, 104, 248, 40, 1, 221, 110, 28, 49, 70, - 77, 34, 1, 201, 8, 50, 1, 24, 237, 66, 130, 219, 250, 33, 1, 26, 67, 0, 156, 29, 40, 33, 7, 247, 254, 255, 233, 105, - 123, 26, 88, 212, 90, 105, 58, 0, 211, 26, 155, 59, 7, 24, 24, 89, 51, 66, 152, 219, 7, 31, 196, 33, 7, 26, 192, 247, - 254, 255, 73, 0, 195, 26, 192, 25, 0, 25, 64, 105, 187, 106, 57, 24, 201, 0, 67, 24, 27, 1, 26, 26, 210, 1, 19, 26, - 155, 34, 1, 1, 219, 68, 144, 24, 201, 70, 67, 97, 249, 55, 28, 43, 2, 209, 188, 70, 80, 105, 194, 107, 131, 33, 1, 66, - 154, 219, 0, 33, 0, 70, 82, 96, 17, 32, 1, 176, 5, 188, 60, 70, 144, 70, 153, 70, 162, 70, 171, 188, 240, 188, 2, 71, - 8, 155, 1, 43, 0, 208, 174, 35, 48, 231, 173, 32, 0, 231, 239, 70, 88, 105, 121, 40, 0, 208, 19, 155, 2, 43, 0, 209, - 20, 34, 59, 15, 203, 32, 0, 66, 138, 65, 67, 34, 1, 64, 83, 6, 27, 14, 26, 70, 72, 24, 67, 24, 152, 231, 191, 105, 123, - 70, 73, 24, 200, 231, 187, 154, 1, 42, 0, 209, 235, 231, 231, 34, 0, 231, 241, 48, 7, 231, 162, 70, 77, 36, 0, 231, - 152, 0, 0, 7, 177, 255, 255, 248, 78, 255, 255, 248, 147, 255, 255, 248, 79, 255, 255, 249, 191, 19, 115, 174, 72, 181, - 240, 70, 95, 70, 86, 70, 77, 70, 68, 180, 240, 176, 129, 70, 147, 70, 129, 28, 15, 240, 1, 251, 24, 70, 73, 104, 12, - 70, 130, 73, 200, 28, 32, 247, 254, 255, 29, 73, 198, 70, 128, 28, 32, 247, 254, 255, 98, 28, 14, 41, 0, 218, 17, 74, - 194, 67, 200, 24, 141, 28, 17, 247, 254, 254, 201, 0, 67, 24, 27, 1, 26, 26, 210, 70, 68, 1, 19, 60, 1, 26, 155, 26, - 36, 1, 219, 70, 160, 24, 238, 75, 186, 66, 158, 221, 17, 75, 185, 24, 245, 28, 40, 73, 182, 247, 254, 254, 180, 0, 66, - 24, 18, 1, 19, 26, 155, 70, 68, 1, 26, 52, 1, 26, 155, 24, 36, 1, 219, 70, 160, 24, 238, 33, 225, 1, 9, 28, 48, 247, - 254, 254, 233, 33, 225, 96, 184, 1, 9, 28, 48, 247, 254, 255, 45, 28, 12, 28, 8, 33, 60, 247, 254, 254, 222, 33, 60, - 96, 120, 28, 32, 247, 254, 255, 35, 70, 64, 96, 57, 48, 4, 33, 7, 247, 254, 255, 29, 70, 69, 97, 185, 41, 0, 218, 0, - 224, 199, 70, 68, 44, 0, 218, 0, 224, 166, 33, 3, 76, 159, 78, 159, 70, 136, 224, 12, 28, 32, 33, 100, 247, 254, 255, - 11, 41, 0, 208, 9, 34, 1, 0, 147, 88, 243, 66, 157, 219, 15, 52, 1, 26, 237, 70, 66, 66, 20, 208, 239, 33, 200, 28, - 32, 0, 73, 247, 254, 254, 250, 66, 74, 65, 74, 0, 147, 88, 243, 66, 157, 218, 239, 73, 145, 24, 99, 97, 123, 0, 83, - 24, 155, 74, 144, 1, 27, 24, 210, 35, 0, 97, 253, 97, 59, 104, 19, 70, 144, 66, 157, 219, 8, 28, 17, 49, 4, 34, 0, 50, - 1, 97, 58, 26, 237, 201, 8, 66, 171, 221, 249, 28, 107, 70, 90, 96, 251, 42, 0, 208, 11, 35, 0, 98, 59, 176, 1, 28, - 56, 188, 60, 70, 144, 70, 153, 70, 162, 70, 171, 188, 240, 188, 2, 71, 8, 240, 1, 248, 149, 75, 126, 104, 27, 43, 0, - 209, 119, 70, 90, 98, 58, 70, 84, 106, 37, 33, 225, 28, 40, 1, 9, 247, 254, 254, 188, 28, 12, 28, 8, 33, 60, 247, 254, - 254, 183, 104, 59, 26, 94, 28, 32, 33, 60, 96, 62, 247, 254, 254, 102, 104, 124, 33, 225, 26, 36, 1, 9, 28, 40, 96, - 124, 247, 254, 254, 94, 104, 189, 26, 41, 28, 13, 96, 185, 46, 59, 220, 0, 224, 140, 28, 51, 28, 98, 59, 60, 96, 122, - 96, 59, 28, 20, 44, 59, 221, 124, 28, 35, 28, 77, 59, 60, 96, 189, 96, 123, 45, 23, 221, 89, 105, 251, 51, 1, 97, 251, - 105, 187, 51, 1, 97, 187, 43, 6, 221, 1, 35, 0, 97, 187, 104, 251, 28, 90, 28, 43, 59, 24, 105, 56, 96, 187, 96, 250, - 0, 131, 70, 68, 89, 25, 66, 138, 221, 11, 26, 83, 96, 251, 28, 67, 97, 59, 43, 12, 209, 5, 105, 123, 34, 0, 51, 1, 97, - 58, 97, 123, 97, 250, 240, 1, 248, 60, 231, 151, 35, 3, 76, 75, 78, 76, 70, 152, 224, 11, 28, 32, 33, 100, 247, 254, - 254, 100, 41, 0, 208, 9, 34, 1, 0, 147, 88, 243, 24, 237, 212, 0, 231, 103, 60, 1, 70, 65, 66, 12, 208, 239, 33, 200, - 28, 32, 0, 73, 247, 254, 254, 83, 66, 74, 65, 74, 231, 238, 29, 203, 97, 187, 231, 52, 70, 81, 104, 75, 66, 163, 208, - 4, 28, 32, 247, 255, 253, 252, 40, 0, 208, 72, 70, 82, 104, 19, 43, 0, 208, 53, 70, 75, 104, 24, 105, 211, 66, 152, - 218, 67, 35, 0, 98, 59, 231, 116, 45, 0, 218, 197, 105, 251, 59, 1, 97, 251, 105, 187, 59, 1, 97, 187, 43, 0, 219, 62, - 104, 251, 28, 42, 59, 1, 50, 24, 96, 251, 96, 186, 43, 0, 209, 181, 105, 59, 59, 1, 97, 59, 43, 0, 219, 52, 0, 155, - 70, 68, 89, 27, 96, 251, 231, 171, 44, 0, 218, 133, 28, 35, 30, 77, 51, 60, 96, 189, 96, 123, 231, 127, 46, 0, 219, - 0, 231, 117, 28, 51, 30, 98, 51, 60, 96, 122, 96, 59, 28, 20, 231, 110, 70, 76, 70, 81, 104, 32, 105, 203, 66, 152, - 218, 15, 107, 139, 34, 1, 66, 152, 219, 0, 34, 0, 98, 58, 42, 1, 208, 9, 231, 55, 35, 1, 66, 91, 98, 59, 231, 51, 107, - 147, 66, 152, 218, 184, 35, 1, 98, 59, 70, 83, 107, 221, 231, 45, 35, 6, 97, 187, 231, 189, 35, 11, 97, 59, 105, 123, - 30, 92, 97, 124, 7, 161, 209, 26, 28, 32, 33, 100, 247, 254, 253, 225, 41, 0, 208, 20, 35, 183, 0, 91, 97, 251, 105, - 59, 231, 184, 0, 1, 81, 128, 0, 1, 81, 127, 255, 254, 174, 128, 0, 0, 7, 178, 19, 115, 174, 168, 255, 255, 248, 148, - 19, 115, 174, 72, 19, 117, 188, 160, 33, 200, 28, 32, 0, 73, 247, 254, 253, 197, 66, 75, 65, 75, 74, 1, 24, 155, 231, - 226, 0, 0, 1, 109, 181, 112, 28, 4, 28, 13, 7, 129, 209, 18, 104, 34, 78, 13, 25, 147, 67, 147, 74, 13, 66, 19, 209, - 11, 28, 17, 48, 4, 104, 2, 78, 9, 25, 147, 67, 147, 66, 11, 208, 248, 120, 3, 43, 0, 208, 3, 48, 1, 120, 3, 43, 0, 209, - 251, 28, 41, 240, 0, 248, 152, 28, 32, 188, 112, 188, 2, 71, 8, 254, 254, 254, 255, 128, 128, 128, 128, 181, 112, 6, - 9, 14, 9, 41, 0, 208, 42, 7, 131, 208, 14, 120, 3, 43, 0, 208, 81, 66, 153, 208, 70, 34, 3, 224, 4, 120, 3, 43, 0, 208, - 74, 66, 153, 208, 63, 48, 1, 66, 16, 209, 247, 2, 11, 67, 11, 4, 26, 28, 21, 78, 33, 104, 2, 67, 29, 76, 33, 25, 147, - 67, 147, 66, 35, 208, 7, 224, 53, 48, 4, 104, 2, 78, 28, 25, 147, 67, 147, 66, 35, 209, 46, 64, 106, 25, 147, 67, 147, - 66, 35, 208, 243, 224, 40, 7, 132, 208, 10, 120, 3, 43, 0, 208, 29, 34, 3, 224, 2, 120, 3, 43, 0, 208, 24, 48, 1, 66, - 16, 209, 249, 104, 2, 78, 15, 25, 147, 67, 147, 74, 15, 66, 19, 209, 7, 28, 17, 48, 4, 104, 2, 76, 11, 25, 19, 67, 147, - 66, 11, 208, 248, 120, 3, 43, 0, 208, 3, 48, 1, 120, 3, 43, 0, 209, 251, 188, 112, 188, 2, 71, 8, 66, 153, 208, 250, - 48, 1, 120, 3, 43, 0, 209, 249, 32, 0, 231, 244, 254, 254, 254, 255, 128, 128, 128, 128, 181, 48, 28, 11, 67, 3, 7, - 154, 209, 28, 104, 2, 104, 11, 66, 154, 209, 24, 76, 16, 25, 19, 67, 147, 74, 15, 66, 19, 209, 11, 28, 20, 48, 4, 49, - 4, 104, 2, 104, 11, 66, 154, 209, 11, 77, 9, 25, 83, 67, 147, 66, 35, 208, 244, 32, 0, 224, 9, 120, 10, 66, 154, 209, - 5, 48, 1, 49, 1, 120, 3, 43, 0, 209, 247, 120, 10, 26, 152, 188, 48, 188, 2, 71, 8, 254, 254, 254, 255, 128, 128, 128, - 128, 181, 112, 28, 11, 67, 3, 28, 5, 7, 154, 209, 14, 104, 10, 76, 12, 25, 19, 76, 12, 67, 147, 66, 35, 209, 7, 192, - 4, 49, 4, 104, 10, 78, 7, 25, 147, 67, 147, 66, 35, 208, 247, 34, 0, 92, 139, 84, 131, 50, 1, 43, 0, 209, 250, 28, 40, - 188, 112, 188, 2, 71, 8, 70, 192, 254, 254, 254, 255, 128, 128, 128, 128, 181, 48, 28, 4, 7, 129, 208, 10, 120, 3, 43, - 0, 208, 33, 34, 3, 224, 2, 120, 3, 43, 0, 208, 24, 48, 1, 66, 16, 209, 249, 104, 2, 77, 13, 25, 83, 67, 147, 74, 13, - 66, 19, 209, 11, 28, 17, 48, 4, 104, 2, 77, 9, 25, 83, 67, 147, 66, 11, 208, 248, 120, 3, 43, 0, 208, 3, 48, 1, 120, - 3, 43, 0, 209, 251, 27, 0, 188, 48, 188, 2, 71, 8, 32, 0, 231, 250, 70, 192, 254, 254, 254, 255, 128, 128, 128, 128, - 181, 240, 70, 87, 70, 78, 70, 69, 180, 224, 28, 6, 28, 13, 42, 0, 208, 59, 75, 31, 104, 27, 32, 1, 30, 84, 70, 156, - 70, 128, 224, 8, 44, 0, 208, 28, 41, 0, 208, 26, 42, 0, 208, 24, 54, 1, 53, 1, 60, 1, 120, 49, 70, 98, 24, 83, 120, - 91, 70, 64, 28, 15, 66, 3, 208, 0, 55, 32, 120, 42, 70, 99, 24, 155, 120, 88, 70, 67, 70, 145, 66, 24, 208, 2, 32, 32, - 24, 128, 70, 129, 69, 79, 208, 224, 70, 96, 24, 67, 120, 91, 7, 216, 213, 0, 49, 32, 28, 16, 70, 98, 24, 19, 120, 91, - 7, 218, 212, 7, 26, 8, 188, 28, 70, 144, 70, 153, 70, 162, 188, 240, 188, 2, 71, 8, 48, 32, 231, 245, 32, 0, 231, 244, - 70, 192, 19, 115, 162, 220, 181, 112, 28, 4, 42, 0, 208, 65, 28, 11, 67, 3, 7, 152, 209, 44, 28, 32, 28, 13, 42, 3, - 217, 38, 104, 36, 104, 11, 66, 156, 209, 34, 58, 4, 42, 0, 208, 50, 73, 27, 24, 99, 73, 27, 67, 163, 66, 11, 209, 44, - 28, 12, 224, 11, 104, 1, 104, 43, 66, 153, 209, 19, 58, 4, 42, 0, 208, 35, 78, 19, 25, 139, 67, 139, 66, 35, 209, 30, - 48, 4, 53, 4, 42, 3, 216, 239, 28, 4, 28, 41, 42, 0, 209, 5, 120, 3, 120, 40, 26, 24, 224, 19, 28, 4, 28, 41, 120, 35, - 120, 8, 58, 1, 66, 152, 208, 9, 231, 245, 40, 0, 208, 8, 52, 1, 49, 1, 120, 35, 120, 8, 66, 152, 209, 237, 58, 1, 42, - 0, 209, 244, 32, 0, 188, 112, 188, 2, 71, 8, 254, 254, 254, 255, 128, 128, 128, 128, 181, 240, 28, 11, 67, 3, 28, 6, - 28, 20, 7, 154, 209, 1, 44, 3, 216, 29, 28, 50, 44, 0, 208, 22, 120, 11, 30, 96, 112, 19, 50, 1, 43, 0, 208, 8, 49, - 1, 40, 0, 208, 13, 120, 11, 56, 1, 112, 19, 50, 1, 43, 0, 209, 246, 40, 0, 208, 5, 35, 0, 33, 0, 84, 209, 51, 1, 66, - 152, 209, 251, 28, 48, 188, 240, 188, 2, 71, 8, 77, 7, 104, 10, 79, 7, 25, 211, 67, 147, 66, 43, 209, 4, 60, 4, 192, - 4, 49, 4, 44, 3, 216, 244, 28, 2, 231, 212, 70, 192, 128, 128, 128, 128, 254, 254, 254, 255, 181, 0, 28, 2, 41, 0, 208, - 14, 120, 3, 43, 0, 208, 11, 57, 1, 224, 3, 120, 3, 57, 1, 43, 0, 208, 2, 48, 1, 41, 0, 209, 248, 26, 128, 188, 2, 71, - 8, 32, 0, 231, 251, 70, 192, 181, 48, 28, 13, 120, 1, 41, 0, 208, 19, 120, 44, 44, 0, 208, 20, 66, 140, 208, 15, 28, - 42, 224, 1, 66, 153, 208, 11, 50, 1, 120, 19, 43, 0, 209, 249, 48, 1, 120, 1, 41, 0, 209, 239, 120, 19, 43, 0, 209, - 0, 32, 0, 188, 48, 188, 2, 71, 8, 48, 1, 120, 1, 28, 42, 41, 0, 209, 227, 231, 242, 70, 192, 181, 48, 176, 129, 28, - 3, 28, 13, 41, 0, 208, 14, 36, 0, 224, 1, 28, 67, 28, 4, 28, 24, 28, 41, 247, 255, 254, 2, 40, 0, 209, 247, 176, 1, - 28, 32, 188, 48, 188, 2, 71, 8, 33, 0, 247, 255, 253, 248, 28, 4, 231, 245, 181, 48, 76, 160, 120, 35, 176, 129, 28, - 5, 43, 67, 209, 2, 120, 99, 43, 0, 208, 42, 73, 156, 28, 32, 247, 255, 254, 74, 40, 0, 209, 12, 28, 40, 33, 1, 240, - 0, 255, 40, 28, 5, 45, 255, 216, 44, 28, 43, 59, 65, 43, 25, 216, 86, 53, 32, 224, 33, 73, 148, 28, 32, 247, 255, 254, - 55, 40, 0, 208, 47, 73, 146, 28, 32, 247, 255, 254, 49, 40, 0, 209, 5, 28, 40, 33, 3, 240, 0, 255, 15, 28, 5, 231, 229, - 73, 141, 28, 32, 247, 255, 254, 37, 40, 0, 208, 223, 45, 254, 216, 7, 75, 138, 104, 27, 25, 91, 120, 91, 28, 40, 7, - 218, 212, 26, 28, 5, 176, 1, 28, 40, 188, 48, 188, 2, 71, 8, 75, 132, 66, 157, 216, 19, 74, 132, 24, 171, 43, 46, 217, - 3, 58, 50, 24, 171, 43, 4, 216, 42, 7, 235, 212, 237, 53, 1, 231, 235, 28, 40, 33, 2, 240, 0, 254, 229, 28, 5, 231, - 187, 48, 32, 231, 226, 75, 123, 66, 157, 216, 64, 74, 122, 24, 171, 43, 26, 217, 98, 74, 121, 24, 171, 43, 22, 216, - 1, 7, 235, 213, 232, 74, 119, 24, 171, 43, 111, 216, 0, 224, 173, 75, 118, 66, 157, 209, 206, 77, 117, 231, 204, 59, - 127, 43, 30, 217, 165, 45, 181, 209, 199, 37, 239, 0, 173, 231, 196, 58, 24, 24, 171, 43, 44, 217, 208, 58, 148, 24, - 171, 43, 16, 217, 204, 58, 26, 24, 171, 43, 38, 217, 200, 58, 42, 24, 171, 43, 16, 217, 196, 74, 105, 24, 171, 43, 14, - 217, 49, 75, 104, 24, 234, 75, 104, 66, 154, 217, 44, 74, 104, 24, 171, 43, 127, 216, 0, 225, 38, 35, 136, 0, 155, 66, - 157, 209, 162, 37, 207, 0, 109, 231, 159, 75, 99, 66, 157, 216, 39, 74, 98, 24, 171, 43, 15, 217, 114, 74, 97, 24, 171, - 43, 31, 216, 0, 231, 111, 74, 96, 24, 171, 43, 32, 217, 159, 58, 42, 24, 171, 43, 52, 217, 155, 58, 70, 24, 171, 43, - 36, 217, 151, 35, 159, 0, 219, 66, 157, 208, 147, 74, 89, 24, 171, 43, 12, 217, 0, 231, 126, 7, 235, 212, 0, 231, 123, - 53, 1, 231, 121, 75, 85, 66, 157, 208, 153, 53, 32, 231, 116, 75, 83, 66, 157, 216, 25, 74, 83, 24, 171, 43, 14, 216, - 0, 231, 124, 74, 81, 24, 171, 43, 148, 216, 0, 231, 119, 58, 160, 24, 171, 43, 88, 216, 0, 231, 114, 74, 77, 24, 171, - 43, 37, 216, 0, 224, 219, 75, 76, 66, 157, 208, 0, 231, 89, 77, 75, 231, 87, 75, 75, 66, 157, 217, 0, 224, 176, 74, - 74, 24, 171, 43, 7, 217, 39, 58, 16, 24, 171, 43, 5, 217, 35, 58, 16, 24, 171, 43, 7, 217, 31, 58, 16, 24, 171, 43, - 7, 217, 27, 58, 16, 24, 171, 43, 5, 217, 23, 58, 32, 24, 171, 43, 7, 217, 19, 58, 32, 24, 171, 43, 7, 217, 15, 58, 16, - 24, 171, 43, 7, 217, 11, 58, 16, 24, 171, 43, 7, 217, 7, 74, 57, 24, 171, 43, 6, 217, 0, 224, 180, 7, 235, 212, 0, 231, - 39, 61, 8, 231, 37, 53, 80, 231, 35, 74, 52, 0, 155, 88, 211, 70, 159, 72, 51, 231, 28, 72, 51, 231, 26, 72, 51, 231, - 24, 32, 240, 0, 128, 231, 21, 72, 49, 231, 19, 72, 49, 231, 17, 72, 49, 231, 15, 72, 49, 231, 13, 32, 243, 0, 128, 231, - 10, 72, 48, 231, 8, 72, 48, 231, 6, 72, 48, 231, 4, 32, 235, 0, 128, 231, 1, 32, 238, 0, 128, 230, 254, 72, 45, 230, - 252, 70, 192, 19, 115, 162, 164, 19, 115, 172, 236, 19, 115, 172, 252, 19, 115, 172, 244, 19, 115, 172, 228, 19, 115, - 162, 220, 0, 0, 2, 255, 255, 255, 255, 0, 0, 0, 3, 255, 255, 255, 252, 111, 255, 255, 252, 40, 255, 255, 252, 122, 0, - 0, 3, 69, 0, 0, 3, 185, 255, 255, 254, 199, 255, 255, 254, 51, 0, 0, 144, 14, 255, 255, 254, 136, 0, 0, 4, 255, 255, - 255, 252, 0, 255, 255, 251, 240, 255, 255, 251, 160, 255, 255, 251, 63, 0, 0, 3, 162, 0, 0, 30, 255, 255, 255, 251, - 0, 255, 255, 226, 0, 255, 255, 250, 207, 0, 0, 30, 155, 0, 0, 30, 97, 0, 0, 31, 255, 255, 255, 224, 248, 255, 255, 224, - 167, 19, 115, 174, 176, 0, 0, 3, 181, 0, 0, 3, 193, 0, 0, 3, 186, 0, 0, 3, 198, 0, 0, 3, 178, 0, 0, 3, 143, 0, 0, 3, - 205, 0, 0, 3, 175, 0, 0, 3, 174, 0, 0, 3, 173, 0, 0, 3, 195, 74, 71, 24, 171, 43, 15, 217, 24, 74, 70, 24, 171, 43, - 25, 217, 22, 74, 69, 24, 171, 43, 25, 216, 0, 230, 113, 74, 68, 24, 171, 43, 37, 217, 21, 75, 67, 66, 157, 208, 22, - 75, 66, 66, 157, 208, 17, 75, 66, 66, 157, 208, 0, 230, 135, 37, 229, 230, 133, 53, 16, 230, 131, 53, 26, 230, 129, - 53, 48, 230, 127, 74, 61, 0, 155, 88, 211, 70, 159, 53, 40, 230, 121, 37, 107, 230, 119, 77, 58, 230, 117, 74, 58, 24, - 171, 43, 68, 217, 0, 230, 112, 74, 56, 0, 155, 88, 211, 70, 159, 72, 55, 230, 105, 72, 55, 230, 103, 72, 55, 230, 101, - 28, 43, 59, 126, 43, 0, 209, 0, 230, 97, 28, 29, 230, 95, 72, 52, 230, 92, 28, 43, 59, 112, 231, 245, 28, 43, 59, 100, - 231, 242, 72, 49, 230, 84, 28, 43, 59, 86, 231, 237, 72, 47, 230, 79, 72, 47, 230, 77, 28, 43, 59, 74, 231, 230, 28, - 43, 59, 8, 231, 227, 28, 168, 230, 69, 72, 43, 230, 67, 72, 43, 230, 65, 72, 43, 230, 63, 32, 162, 0, 128, 230, 60, - 72, 42, 230, 58, 32, 160, 0, 128, 230, 55, 72, 40, 230, 53, 72, 40, 230, 51, 72, 40, 230, 49, 32, 154, 0, 128, 230, - 46, 72, 39, 230, 44, 72, 39, 230, 42, 32, 152, 0, 128, 230, 39, 72, 37, 230, 37, 72, 37, 230, 35, 72, 37, 230, 33, 72, - 37, 230, 31, 72, 37, 230, 29, 32, 149, 0, 128, 230, 26, 72, 36, 230, 24, 32, 115, 230, 22, 28, 104, 230, 20, 32, 255, - 230, 18, 70, 192, 255, 255, 222, 160, 255, 255, 219, 74, 255, 255, 0, 223, 255, 254, 252, 0, 0, 0, 33, 38, 0, 0, 33, - 42, 0, 0, 33, 43, 19, 115, 176, 112, 0, 0, 3, 201, 255, 255, 224, 72, 19, 115, 178, 112, 0, 0, 1, 191, 0, 0, 1, 149, - 0, 0, 31, 243, 0, 0, 31, 229, 0, 0, 31, 195, 0, 0, 3, 185, 0, 0, 31, 179, 0, 0, 2, 146, 0, 0, 2, 139, 0, 0, 2, 138, - 0, 0, 2, 131, 0, 0, 2, 117, 0, 0, 2, 114, 0, 0, 2, 111, 0, 0, 2, 105, 0, 0, 2, 99, 0, 0, 2, 91, 0, 0, 2, 89, 0, 0, 1, - 221, 0, 0, 2, 87, 0, 0, 2, 86, 0, 0, 2, 83, 181, 48, 76, 169, 120, 35, 176, 129, 28, 5, 43, 67, 209, 2, 120, 99, 43, - 0, 208, 48, 73, 165, 28, 32, 247, 255, 251, 220, 40, 0, 209, 18, 28, 40, 33, 1, 240, 0, 252, 186, 28, 5, 45, 255, 216, - 54, 45, 181, 208, 104, 28, 43, 59, 224, 43, 30, 216, 88, 61, 32, 176, 1, 28, 40, 188, 48, 188, 2, 71, 8, 73, 154, 28, - 32, 247, 255, 251, 195, 40, 0, 208, 29, 73, 152, 28, 32, 247, 255, 251, 189, 40, 0, 209, 5, 28, 40, 33, 3, 240, 0, 252, - 155, 28, 5, 231, 223, 73, 147, 28, 32, 247, 255, 251, 177, 40, 0, 208, 217, 45, 254, 216, 224, 75, 144, 104, 27, 25, - 91, 120, 91, 28, 40, 7, 154, 213, 0, 56, 32, 28, 5, 231, 214, 28, 40, 33, 2, 240, 0, 252, 131, 28, 5, 45, 255, 217, - 200, 75, 136, 66, 157, 216, 51, 74, 136, 24, 171, 43, 46, 217, 40, 58, 50, 24, 171, 43, 4, 217, 36, 58, 24, 24, 171, - 43, 44, 217, 32, 58, 148, 24, 171, 43, 16, 217, 28, 58, 26, 24, 171, 43, 38, 217, 24, 58, 42, 24, 171, 43, 16, 217, - 20, 74, 125, 24, 171, 43, 14, 217, 4, 58, 148, 24, 171, 43, 14, 217, 0, 225, 65, 7, 235, 212, 169, 61, 1, 231, 167, - 51, 127, 43, 25, 217, 163, 45, 255, 209, 162, 37, 188, 0, 109, 231, 159, 7, 235, 213, 157, 61, 1, 231, 155, 37, 231, - 0, 173, 231, 152, 75, 112, 66, 157, 216, 72, 33, 235, 0, 137, 66, 141, 208, 27, 75, 109, 28, 42, 64, 26, 35, 232, 0, - 155, 66, 154, 208, 125, 74, 107, 24, 171, 43, 26, 216, 3, 75, 106, 66, 157, 208, 0, 231, 129, 75, 104, 66, 157, 209, - 0, 224, 175, 74, 103, 24, 171, 43, 41, 217, 0, 231, 121, 74, 101, 0, 155, 88, 211, 70, 159, 77, 100, 231, 115, 72, 100, - 28, 5, 231, 112, 72, 100, 28, 5, 231, 109, 72, 99, 28, 5, 231, 106, 72, 99, 28, 5, 231, 103, 30, 107, 43, 0, 209, 0, - 231, 99, 28, 29, 231, 97, 32, 232, 0, 128, 28, 5, 231, 93, 72, 93, 28, 5, 231, 90, 32, 230, 0, 128, 28, 5, 231, 86, - 72, 91, 28, 5, 231, 83, 28, 43, 59, 63, 231, 233, 32, 227, 0, 128, 28, 5, 231, 76, 75, 87, 66, 157, 216, 31, 74, 86, - 24, 171, 43, 15, 217, 116, 74, 85, 24, 171, 43, 31, 216, 0, 231, 63, 74, 84, 24, 171, 43, 32, 217, 156, 58, 42, 24, - 171, 43, 52, 217, 152, 58, 70, 24, 171, 43, 36, 217, 148, 74, 79, 24, 171, 43, 12, 217, 132, 75, 78, 66, 157, 208, 0, - 231, 44, 37, 159, 0, 237, 231, 41, 75, 75, 66, 157, 216, 30, 74, 75, 24, 171, 43, 14, 217, 130, 74, 74, 24, 171, 43, - 148, 216, 0, 231, 125, 58, 160, 24, 171, 43, 88, 216, 0, 231, 120, 74, 70, 24, 171, 43, 37, 216, 0, 224, 201, 75, 68, - 66, 157, 208, 0, 231, 15, 37, 243, 1, 109, 231, 12, 66, 141, 216, 0, 231, 126, 61, 21, 231, 7, 75, 63, 66, 157, 217, - 0, 224, 133, 74, 62, 24, 171, 43, 7, 217, 50, 58, 16, 24, 171, 43, 5, 217, 46, 58, 16, 24, 171, 43, 7, 217, 42, 58, - 16, 24, 171, 43, 7, 217, 38, 58, 16, 24, 171, 43, 5, 217, 34, 58, 32, 24, 171, 43, 7, 217, 30, 58, 32, 24, 171, 43, - 7, 217, 26, 58, 16, 24, 171, 43, 7, 217, 22, 58, 16, 24, 171, 43, 7, 217, 18, 74, 45, 24, 171, 43, 6, 216, 1, 7, 235, - 212, 12, 74, 43, 24, 171, 43, 131, 217, 0, 230, 212, 74, 42, 0, 155, 88, 211, 70, 159, 61, 80, 230, 206, 77, 19, 230, - 204, 53, 8, 230, 202, 70, 192, 19, 115, 162, 164, 19, 115, 172, 236, 19, 115, 172, 252, 19, 115, 172, 244, 19, 115, - 172, 228, 19, 115, 162, 220, 0, 0, 2, 255, 255, 255, 254, 255, 255, 255, 254, 198, 0, 0, 3, 255, 0, 0, 255, 240, 255, - 255, 252, 79, 0, 0, 3, 194, 255, 255, 252, 52, 19, 115, 179, 132, 0, 0, 3, 134, 0, 0, 3, 149, 0, 0, 3, 163, 0, 0, 3, - 161, 0, 0, 3, 154, 0, 0, 3, 166, 0, 0, 3, 146, 0, 0, 4, 255, 255, 255, 251, 176, 255, 255, 251, 208, 255, 255, 251, - 159, 255, 255, 251, 62, 0, 0, 4, 249, 0, 0, 30, 255, 255, 255, 250, 255, 255, 255, 225, 255, 255, 255, 250, 159, 0, - 0, 30, 155, 0, 0, 31, 255, 255, 255, 225, 0, 255, 255, 224, 175, 255, 255, 224, 144, 19, 115, 180, 44, 74, 118, 24, - 171, 43, 15, 217, 43, 74, 117, 24, 171, 43, 25, 217, 41, 74, 116, 24, 171, 43, 25, 216, 0, 230, 111, 74, 115, 24, 171, - 43, 37, 217, 0, 230, 107, 61, 40, 230, 105, 75, 112, 66, 157, 208, 30, 35, 189, 0, 91, 66, 157, 209, 0, 230, 183, 35, - 190, 0, 91, 66, 157, 209, 0, 230, 178, 35, 191, 0, 91, 66, 157, 209, 0, 230, 173, 75, 104, 24, 234, 75, 104, 66, 154, - 217, 0, 230, 81, 0, 147, 74, 103, 88, 211, 70, 159, 61, 16, 230, 75, 61, 26, 230, 73, 61, 48, 230, 71, 37, 73, 230, - 69, 32, 217, 0, 64, 28, 5, 230, 65, 72, 96, 28, 5, 230, 62, 32, 215, 0, 64, 28, 5, 230, 58, 72, 94, 28, 5, 230, 55, - 32, 211, 0, 64, 28, 5, 230, 51, 72, 91, 28, 5, 230, 48, 72, 91, 28, 5, 230, 45, 32, 206, 0, 64, 28, 5, 230, 41, 32, - 203, 0, 64, 28, 5, 230, 37, 72, 86, 28, 5, 230, 34, 32, 202, 0, 64, 28, 5, 230, 30, 72, 84, 28, 5, 230, 27, 32, 200, - 0, 64, 28, 5, 230, 23, 72, 81, 28, 5, 230, 20, 32, 197, 0, 64, 28, 5, 230, 16, 72, 79, 28, 5, 230, 13, 32, 195, 0, 64, - 28, 5, 230, 9, 72, 76, 28, 5, 230, 6, 72, 76, 28, 5, 230, 3, 32, 199, 0, 64, 28, 5, 229, 255, 30, 171, 230, 150, 72, - 72, 28, 5, 229, 250, 32, 136, 0, 128, 28, 5, 229, 246, 32, 204, 0, 64, 28, 5, 229, 242, 72, 68, 28, 5, 229, 239, 32, - 83, 28, 5, 229, 236, 32, 194, 0, 64, 28, 5, 229, 232, 32, 193, 0, 64, 28, 5, 229, 228, 32, 251, 0, 64, 28, 5, 229, 224, - 72, 60, 28, 5, 229, 221, 72, 59, 28, 5, 229, 218, 72, 59, 28, 5, 229, 215, 72, 58, 28, 5, 229, 212, 72, 58, 28, 5, 229, - 209, 72, 57, 28, 5, 229, 206, 72, 57, 28, 5, 229, 203, 72, 56, 28, 5, 229, 200, 72, 56, 28, 5, 229, 197, 72, 55, 28, - 5, 229, 194, 72, 55, 28, 5, 229, 191, 72, 54, 28, 5, 229, 188, 72, 54, 28, 5, 229, 185, 72, 53, 28, 5, 229, 182, 72, - 53, 28, 5, 229, 179, 72, 52, 28, 5, 229, 176, 72, 52, 28, 5, 229, 173, 72, 51, 28, 5, 229, 170, 72, 51, 28, 5, 229, - 167, 72, 50, 28, 5, 229, 164, 72, 50, 28, 5, 229, 161, 72, 49, 28, 5, 229, 158, 72, 49, 28, 5, 229, 155, 72, 48, 28, - 5, 229, 152, 72, 48, 28, 5, 229, 149, 72, 47, 28, 5, 229, 146, 72, 47, 28, 5, 229, 143, 255, 255, 222, 144, 255, 255, - 219, 48, 255, 255, 0, 191, 255, 254, 251, 216, 0, 0, 1, 49, 255, 255, 254, 129, 0, 0, 1, 19, 19, 115, 182, 60, 0, 0, - 1, 177, 0, 0, 1, 169, 0, 0, 1, 159, 0, 0, 1, 157, 0, 0, 1, 151, 0, 0, 1, 147, 0, 0, 1, 143, 0, 0, 1, 137, 0, 0, 1, 129, - 0, 0, 1, 241, 0, 0, 1, 247, 0, 0, 1, 183, 0, 0, 1, 145, 0, 0, 1, 139, 0, 0, 1, 135, 0, 0, 31, 252, 0, 0, 31, 236, 0, - 0, 31, 233, 0, 0, 31, 232, 0, 0, 31, 217, 0, 0, 31, 216, 0, 0, 3, 153, 0, 0, 31, 188, 0, 0, 31, 185, 0, 0, 31, 184, - 0, 0, 31, 251, 0, 0, 31, 250, 0, 0, 31, 235, 0, 0, 31, 234, 0, 0, 31, 249, 0, 0, 31, 248, 0, 0, 31, 219, 0, 0, 31, 218, - 0, 0, 31, 203, 0, 0, 31, 202, 0, 0, 31, 201, 0, 0, 31, 200, 0, 0, 31, 187, 0, 0, 31, 186, 71, 112, 70, 192, 71, 112, - 70, 192, 181, 48, 176, 133, 28, 5, 28, 28, 43, 0, 208, 23, 41, 0, 208, 13, 28, 40, 28, 35, 240, 0, 248, 72, 28, 67, - 209, 3, 35, 0, 96, 35, 35, 138, 96, 43, 176, 5, 188, 48, 188, 2, 71, 8, 70, 105, 28, 40, 49, 6, 34, 0, 28, 35, 240, - 0, 248, 55, 231, 237, 35, 138, 0, 91, 24, 196, 231, 227, 181, 48, 28, 19, 74, 6, 28, 13, 28, 4, 176, 129, 104, 16, 28, - 33, 28, 42, 247, 255, 255, 211, 176, 1, 188, 48, 188, 2, 71, 8, 70, 192, 19, 115, 163, 32, 181, 112, 176, 132, 172, - 1, 28, 5, 33, 0, 34, 8, 28, 32, 247, 254, 250, 249, 70, 110, 75, 9, 54, 15, 104, 24, 28, 42, 28, 49, 28, 35, 240, 0, - 248, 14, 53, 1, 208, 1, 40, 1, 208, 5, 32, 1, 66, 64, 176, 4, 188, 112, 188, 2, 71, 8, 120, 48, 231, 249, 19, 115, 163, - 32, 181, 240, 76, 160, 176, 129, 28, 32, 28, 14, 28, 21, 28, 31, 247, 255, 248, 239, 40, 1, 217, 29, 73, 156, 28, 32, - 247, 255, 248, 151, 40, 0, 209, 31, 46, 0, 208, 66, 45, 127, 217, 61, 28, 42, 75, 151, 58, 128, 66, 154, 216, 61, 5, - 106, 35, 64, 66, 91, 14, 210, 67, 26, 112, 50, 35, 63, 28, 42, 64, 26, 35, 128, 66, 91, 67, 26, 112, 114, 32, 2, 224, - 3, 46, 0, 208, 42, 112, 53, 32, 1, 176, 1, 188, 240, 188, 2, 71, 8, 73, 139, 28, 32, 247, 255, 248, 113, 40, 0, 209, - 99, 46, 0, 208, 28, 4, 43, 14, 25, 41, 0, 208, 237, 28, 11, 51, 127, 6, 27, 14, 27, 43, 30, 217, 0, 224, 166, 72, 130, - 6, 43, 14, 26, 24, 27, 14, 27, 43, 62, 217, 3, 35, 128, 64, 83, 43, 124, 216, 95, 112, 49, 112, 114, 32, 2, 231, 217, - 112, 53, 32, 1, 231, 214, 32, 0, 231, 212, 72, 121, 75, 122, 24, 42, 66, 154, 217, 118, 72, 121, 75, 121, 24, 42, 66, - 154, 216, 22, 2, 234, 35, 16, 66, 91, 15, 82, 67, 26, 112, 50, 3, 171, 34, 128, 66, 82, 14, 155, 67, 19, 112, 115, 5, - 43, 14, 155, 28, 113, 67, 19, 112, 75, 35, 63, 64, 43, 67, 19, 112, 139, 32, 4, 231, 179, 75, 109, 24, 234, 75, 109, - 66, 154, 217, 0, 224, 143, 1, 170, 35, 8, 66, 91, 15, 146, 67, 26, 112, 50, 2, 43, 34, 128, 66, 82, 14, 155, 67, 19, - 112, 115, 3, 171, 14, 155, 28, 113, 67, 19, 112, 75, 5, 43, 14, 155, 28, 72, 67, 19, 112, 67, 35, 63, 64, 43, 67, 19, - 112, 131, 32, 5, 231, 145, 73, 94, 28, 32, 247, 255, 248, 7, 40, 0, 209, 16, 46, 0, 208, 178, 4, 43, 14, 25, 41, 0, - 209, 0, 231, 130, 28, 11, 51, 95, 6, 27, 14, 27, 43, 93, 216, 0, 224, 133, 32, 1, 66, 64, 231, 122, 73, 83, 28, 32, - 247, 254, 255, 240, 40, 0, 208, 0, 231, 111, 46, 0, 209, 0, 231, 111, 6, 43, 14, 28, 4, 43, 14, 25, 41, 0, 209, 47, - 104, 59, 43, 0, 208, 11, 35, 27, 96, 57, 28, 114, 112, 51, 35, 40, 112, 115, 35, 66, 28, 150, 112, 83, 32, 4, 112, 52, - 231, 91, 32, 1, 112, 52, 231, 88, 75, 67, 24, 234, 75, 67, 66, 154, 217, 213, 4, 42, 35, 32, 66, 91, 15, 18, 67, 26, - 112, 50, 5, 43, 34, 128, 66, 82, 14, 155, 67, 19, 112, 115, 35, 63, 64, 43, 67, 19, 112, 179, 32, 3, 231, 65, 28, 11, - 51, 32, 6, 27, 14, 27, 43, 15, 216, 189, 231, 81, 28, 11, 59, 33, 6, 27, 14, 27, 43, 93, 216, 182, 28, 35, 59, 33, 6, - 27, 14, 27, 43, 93, 216, 176, 104, 59, 43, 0, 209, 61, 35, 1, 96, 59, 35, 27, 112, 51, 35, 36, 112, 115, 28, 114, 35, - 66, 112, 83, 28, 150, 32, 5, 112, 49, 112, 116, 231, 29, 72, 40, 75, 40, 24, 42, 66, 154, 216, 154, 0, 106, 35, 4, 66, - 91, 15, 210, 67, 26, 112, 50, 0, 171, 34, 128, 66, 82, 14, 155, 67, 19, 112, 115, 2, 43, 14, 155, 28, 113, 67, 19, 112, - 75, 3, 171, 14, 155, 28, 72, 67, 19, 112, 67, 5, 43, 14, 155, 28, 65, 67, 19, 112, 75, 35, 63, 64, 43, 67, 19, 112, - 139, 32, 6, 230, 247, 32, 190, 6, 43, 5, 192, 14, 26, 24, 27, 14, 27, 43, 93, 216, 0, 231, 16, 231, 111, 32, 2, 231, - 202, 70, 192, 19, 115, 162, 164, 19, 115, 172, 228, 0, 0, 7, 127, 19, 115, 172, 252, 192, 0, 0, 0, 255, 255, 248, 0, - 0, 0, 247, 255, 255, 255, 0, 0, 0, 30, 255, 255, 255, 224, 0, 0, 3, 223, 255, 255, 19, 115, 172, 244, 19, 115, 172, - 236, 255, 255, 40, 0, 0, 0, 7, 255, 252, 0, 0, 0, 123, 255, 255, 255, 181, 240, 28, 12, 176, 129, 28, 6, 28, 8, 28, - 17, 28, 21, 247, 253, 252, 37, 28, 41, 28, 7, 28, 32, 247, 253, 252, 106, 44, 0, 219, 8, 41, 0, 219, 11, 176, 1, 96, - 55, 28, 48, 96, 113, 188, 240, 188, 2, 71, 8, 41, 0, 221, 246, 63, 1, 25, 73, 231, 243, 55, 1, 27, 73, 231, 240, 70, - 192, 72, 0, 71, 112, 19, 115, 162, 224, 181, 16, 41, 2, 208, 69, 41, 3, 208, 62, 41, 1, 208, 4, 32, 1, 66, 64, 188, - 16, 188, 2, 71, 8, 10, 3, 59, 128, 6, 27, 14, 25, 28, 3, 59, 128, 6, 27, 14, 28, 28, 11, 51, 80, 6, 27, 14, 27, 43, - 31, 216, 2, 75, 65, 66, 152, 217, 18, 28, 11, 51, 48, 6, 27, 14, 27, 43, 36, 216, 22, 75, 62, 66, 152, 216, 19, 1, 203, - 26, 91, 0, 91, 73, 60, 25, 27, 74, 60, 24, 91, 0, 91, 90, 208, 231, 216, 1, 203, 26, 91, 0, 91, 73, 57, 25, 27, 74, - 57, 24, 91, 0, 91, 90, 208, 231, 206, 28, 11, 51, 95, 6, 27, 14, 27, 43, 7, 216, 198, 74, 52, 0, 155, 88, 211, 70, 159, - 4, 3, 14, 25, 6, 3, 14, 28, 231, 202, 4, 3, 14, 26, 6, 3, 14, 27, 43, 158, 217, 13, 51, 35, 6, 27, 14, 28, 33, 128, - 42, 159, 216, 13, 28, 19, 59, 112, 6, 91, 14, 27, 24, 203, 6, 27, 14, 25, 231, 182, 59, 126, 6, 27, 14, 28, 33, 127, - 42, 159, 217, 241, 28, 19, 51, 80, 231, 240, 44, 192, 216, 158, 28, 35, 74, 33, 59, 161, 0, 91, 90, 208, 231, 154, 44, - 241, 217, 0, 231, 149, 74, 30, 28, 35, 59, 161, 0, 91, 90, 208, 40, 0, 208, 0, 231, 143, 231, 140, 44, 216, 217, 0, - 231, 137, 74, 25, 231, 242, 44, 246, 217, 0, 231, 132, 35, 192, 1, 155, 24, 224, 231, 130, 44, 243, 217, 0, 231, 125, - 73, 20, 24, 96, 231, 124, 75, 19, 25, 27, 59, 161, 120, 27, 43, 0, 209, 0, 231, 115, 75, 17, 24, 224, 231, 114, 74, - 16, 231, 217, 28, 35, 74, 16, 59, 161, 0, 91, 90, 208, 231, 106, 0, 0, 207, 211, 0, 0, 244, 166, 255, 255, 48, 255, - 19, 115, 210, 218, 255, 255, 80, 191, 19, 115, 187, 176, 19, 115, 187, 144, 19, 115, 240, 60, 19, 115, 239, 154, 19, - 115, 239, 42, 0, 0, 47, 160, 19, 115, 238, 206, 0, 0, 254, 96, 19, 115, 238, 18, 19, 115, 237, 86, 73, 79, 83, 32, 109, - 111, 100, 117, 108, 101, 0, 0, 255, 255, 255, 255, 0, 0, 0, 1, 255, 255, 255, 255, 255, 255, 255, 255, 32, 0, 33, 156, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 71, 120, 70, 192, 229, 31, 240, 4, 0, 0, 0, 0, 19, 115, 101, 160, 19, 115, 101, - 176, 19, 115, 101, 208, 19, 115, 101, 240, 19, 115, 102, 16, 19, 115, 102, 48, 19, 115, 102, 80, 19, 115, 102, 112, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 100, 58, 47, 110, 97, 110, 100, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 100, 101, 118, 47, - 115, 100, 105, 111, 47, 115, 108, 111, 116, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 100, 101, 118, - 47, 117, 115, 98, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 67, 45, 85, 84, - 70, 45, 56, 0, 0, 0, 0, 0, 19, 115, 173, 32, 67, 45, 85, 84, 70, 45, 56, 0, 0, 0, 0, 0, 67, 45, 85, 84, 70, 45, 56, - 0, 0, 0, 0, 0, 67, 45, 85, 84, 70, 45, 56, 0, 0, 0, 0, 0, 19, 115, 186, 141, 19, 115, 186, 140, 0, 0, 0, 1, 0, 0, 0, - 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 115, 163, 40, 0, 0, 0, 0, 0, 0, 0, 0, 19, 115, 166, 20, - 19, 115, 166, 124, 19, 115, 166, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 115, 172, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 51, 14, 171, 205, 18, 52, 230, 109, 222, 236, 0, 5, 0, 11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 47, 116, 105, 116, 108, 101, 47, 48, 48, 48, 49, 48, 48, 48, - 48, 0, 47, 116, 105, 116, 108, 101, 47, 48, 48, 48, 49, 48, 48, 48, 49, 0, 47, 116, 105, 116, 108, 101, 47, 48, 48, - 48, 49, 48, 48, 48, 52, 0, 47, 116, 109, 112, 47, 108, 97, 117, 110, 99, 104, 46, 115, 121, 115, 0, 47, 116, 109, 112, - 0, 47, 116, 105, 99, 107, 101, 116, 47, 48, 48, 48, 49, 48, 48, 48, 48, 0, 47, 116, 105, 99, 107, 101, 116, 47, 48, - 48, 48, 49, 48, 48, 48, 49, 0, 47, 116, 105, 99, 107, 101, 116, 47, 48, 48, 48, 49, 48, 48, 48, 52, 0, 47, 115, 121, - 115, 47, 100, 105, 115, 99, 46, 115, 121, 115, 0, 47, 115, 121, 115, 47, 117, 105, 100, 46, 115, 121, 115, 0, 102, 97, - 116, 0, 47, 116, 105, 99, 107, 101, 116, 0, 47, 115, 121, 115, 0, 47, 116, 105, 116, 108, 101, 0, 115, 100, 58, 47, - 102, 102, 115, 95, 108, 111, 103, 46, 116, 120, 116, 0, 109, 115, 103, 32, 105, 111, 99, 108, 116, 118, 32, 48, 120, - 37, 120, 32, 48, 120, 37, 120, 10, 0, 82, 101, 97, 100, 32, 100, 105, 114, 32, 49, 32, 37, 105, 32, 37, 105, 32, 37, - 115, 10, 0, 82, 101, 97, 100, 32, 100, 105, 114, 32, 50, 32, 37, 105, 32, 37, 115, 32, 114, 101, 116, 58, 32, 37, 105, - 32, 10, 0, 71, 101, 116, 85, 115, 97, 103, 101, 32, 37, 105, 32, 37, 105, 32, 37, 115, 10, 0, 85, 110, 115, 117, 112, - 112, 111, 114, 116, 101, 100, 32, 105, 111, 99, 108, 116, 118, 32, 99, 111, 109, 109, 97, 110, 100, 32, 48, 120, 37, - 120, 10, 0, 109, 115, 103, 32, 105, 111, 99, 108, 116, 32, 48, 120, 37, 120, 32, 48, 120, 37, 120, 10, 0, 67, 114, 101, - 97, 116, 101, 32, 100, 105, 114, 32, 37, 115, 32, 114, 101, 116, 32, 37, 105, 10, 0, 84, 114, 121, 105, 110, 103, 32, - 67, 114, 101, 97, 116, 101, 32, 102, 105, 108, 101, 32, 37, 115, 32, 10, 0, 67, 114, 101, 97, 116, 101, 32, 102, 105, - 108, 101, 32, 37, 115, 32, 114, 101, 116, 32, 37, 105, 10, 0, 68, 101, 108, 101, 116, 105, 110, 103, 32, 102, 105, 108, - 101, 32, 37, 115, 32, 114, 101, 116, 32, 37, 105, 10, 0, 82, 101, 110, 97, 109, 105, 110, 103, 32, 102, 105, 108, 101, - 32, 37, 115, 32, 37, 115, 32, 114, 101, 116, 32, 37, 105, 10, 0, 86, 70, 83, 83, 116, 97, 116, 115, 32, 37, 115, 32, - 114, 101, 116, 32, 37, 105, 10, 0, 70, 70, 83, 32, 71, 69, 84, 70, 73, 76, 69, 83, 84, 65, 84, 83, 32, 10, 0, 71, 69, - 84, 65, 84, 84, 82, 49, 32, 37, 115, 10, 0, 71, 69, 84, 65, 84, 84, 82, 50, 32, 37, 115, 32, 114, 101, 116, 32, 37, - 105, 10, 0, 47, 116, 105, 116, 108, 101, 47, 48, 48, 48, 49, 48, 48, 48, 35, 47, 35, 35, 35, 35, 35, 35, 35, 35, 47, - 100, 97, 116, 97, 47, 110, 111, 99, 111, 112, 121, 0, 83, 101, 116, 32, 65, 84, 84, 82, 32, 32, 37, 115, 32, 114, 101, - 116, 32, 37, 105, 10, 0, 85, 110, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 105, 111, 99, 108, 116, 32, 99, 111, - 109, 109, 97, 110, 100, 32, 48, 120, 37, 120, 10, 0, 102, 102, 115, 32, 111, 112, 101, 110, 32, 37, 115, 10, 0, 69, - 83, 32, 105, 111, 99, 116, 108, 118, 58, 32, 48, 120, 37, 120, 10, 0, 76, 97, 117, 110, 99, 104, 32, 84, 105, 116, 108, - 101, 58, 32, 48, 120, 37, 120, 45, 48, 120, 37, 120, 10, 0, 102, 97, 116, 58, 115, 104, 117, 116, 100, 111, 119, 110, - 0, 70, 70, 83, 32, 83, 104, 117, 116, 100, 111, 119, 110, 10, 0, 0, 0, 19, 115, 20, 52, 19, 115, 18, 80, 19, 115, 16, - 174, 19, 115, 20, 60, 19, 115, 19, 226, 19, 115, 19, 52, 19, 115, 17, 78, 19, 115, 17, 148, 19, 115, 16, 246, 19, 115, - 20, 60, 19, 115, 18, 214, 115, 100, 58, 0, 117, 115, 98, 58, 0, 115, 100, 0, 117, 115, 98, 0, 102, 97, 116, 47, 100, - 101, 118, 47, 115, 100, 105, 111, 0, 102, 97, 116, 58, 111, 102, 102, 0, 102, 97, 116, 58, 111, 110, 0, 115, 100, 58, - 47, 110, 97, 110, 100, 0, 117, 115, 98, 58, 47, 110, 97, 110, 100, 0, 70, 65, 84, 32, 111, 112, 101, 110, 32, 114, 101, - 116, 32, 37, 105, 32, 37, 115, 10, 0, 69, 114, 114, 32, 70, 65, 84, 32, 82, 101, 97, 100, 32, 114, 101, 116, 32, 37, - 105, 32, 108, 101, 110, 32, 105, 32, 10, 0, 69, 114, 114, 32, 70, 65, 84, 32, 83, 101, 101, 107, 32, 114, 101, 116, - 32, 37, 105, 32, 37, 117, 32, 37, 117, 32, 10, 0, 101, 104, 33, 32, 121, 111, 117, 32, 99, 97, 110, 110, 111, 116, 32, - 99, 97, 108, 108, 32, 105, 111, 99, 116, 108, 118, 32, 48, 120, 32, 102, 114, 111, 109, 32, 104, 101, 114, 101, 33, - 10, 0, 70, 65, 84, 32, 71, 101, 116, 70, 105, 108, 101, 83, 116, 97, 116, 115, 32, 114, 101, 116, 32, 37, 105, 32, 37, - 117, 32, 37, 117, 32, 10, 0, 101, 104, 33, 32, 121, 111, 117, 32, 99, 97, 110, 110, 111, 116, 32, 99, 97, 108, 108, - 32, 105, 111, 99, 116, 108, 32, 48, 120, 32, 102, 114, 111, 109, 32, 104, 101, 114, 101, 33, 10, 0, 0, 0, 19, 115, 26, - 58, 19, 115, 27, 126, 19, 115, 27, 184, 19, 115, 28, 130, 19, 115, 29, 138, 19, 115, 30, 80, 19, 115, 29, 242, 115, - 100, 58, 47, 110, 97, 110, 100, 0, 0, 0, 0, 117, 115, 98, 58, 47, 110, 97, 110, 100, 0, 0, 0, 115, 100, 58, 47, 110, - 97, 110, 100, 50, 0, 0, 0, 117, 115, 98, 58, 47, 110, 97, 110, 100, 50, 0, 0, 115, 100, 58, 47, 110, 97, 110, 100, 51, - 0, 0, 0, 117, 115, 98, 58, 47, 110, 97, 110, 100, 51, 0, 0, 115, 100, 58, 47, 110, 97, 110, 100, 52, 0, 0, 0, 117, 115, - 98, 58, 47, 110, 97, 110, 100, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 97, 116, 47, 100, 101, 118, 47, 115, - 100, 105, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 100, 58, 47, 108, 111, 103, 46, 116, - 120, 116, 0, 87, 73, 83, 68, 0, 0, 1, 3, 19, 115, 42, 17, 19, 115, 38, 93, 19, 115, 41, 65, 19, 115, 40, 177, 19, 115, - 38, 33, 19, 115, 41, 161, 87, 85, 83, 66, 0, 0, 2, 3, 19, 115, 47, 217, 19, 115, 47, 193, 19, 115, 49, 61, 19, 115, - 49, 9, 19, 115, 47, 45, 19, 115, 47, 49, 46, 46, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 7, 0, 0, 0, 9, 0, - 0, 0, 14, 0, 0, 0, 16, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 22, 0, 0, 0, 24, 0, 0, 0, 28, 0, 0, 0, 30, 92, 47, 58, 59, - 42, 63, 34, 60, 62, 124, 38, 43, 44, 61, 91, 93, 32, 0, 92, 47, 58, 42, 63, 34, 60, 62, 124, 0, 19, 115, 167, 229, 0, - 0, 0, 92, 19, 115, 90, 13, 19, 115, 89, 173, 19, 115, 82, 53, 19, 115, 85, 221, 19, 115, 80, 193, 19, 115, 81, 205, - 19, 115, 71, 129, 19, 115, 70, 225, 19, 115, 76, 61, 19, 115, 75, 229, 19, 115, 74, 189, 19, 115, 72, 221, 0, 0, 1, - 72, 19, 115, 71, 241, 19, 115, 71, 85, 19, 115, 70, 249, 19, 115, 70, 237, 19, 115, 72, 125, 19, 115, 79, 161, 19, 115, - 89, 129, 0, 0, 0, 0, 70, 65, 84, 0, 67, 0, 0, 0, 67, 45, 85, 84, 70, 45, 56, 0, 67, 45, 74, 73, 83, 0, 0, 0, 67, 45, - 69, 85, 67, 74, 80, 0, 67, 45, 83, 74, 73, 83, 0, 0, 67, 45, 73, 83, 79, 45, 56, 56, 53, 57, 45, 49, 0, 0, 0, 0, 73, - 83, 79, 45, 56, 56, 53, 57, 45, 49, 0, 0, 85, 84, 70, 45, 56, 0, 0, 0, 74, 73, 83, 0, 69, 85, 67, 74, 80, 0, 0, 0, 83, - 74, 73, 83, 0, 0, 0, 0, 46, 0, 0, 0, 19, 115, 111, 32, 19, 115, 110, 238, 19, 115, 111, 12, 19, 115, 111, 6, 19, 115, - 110, 242, 19, 115, 111, 80, 4, 0, 0, 0, 0, 0, 5, 0, 0, 4, 1, 1, 1, 1, 1, 6, 1, 6, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 0, 0, 0, 0, 6, 2, 2, 2, 2, 2, 6, 2, 6, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 6, 6, 6, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 4, 4, 7, 4, 7, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, - 7, 1, 1, 1, 1, 1, 7, 1, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 59, 0, 0, 0, 90, 0, 0, 0, 120, 0, 0, 0, 151, 0, 0, 0, 181, 0, 0, 0, 212, 0, 0, 0, 243, 0, 0, - 1, 17, 0, 0, 1, 48, 0, 0, 1, 78, 0, 0, 0, 31, 0, 0, 0, 28, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, - 0, 31, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 28, 0, 0, 0, 31, 0, 0, - 0, 30, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, - 0, 31, 0, 0, 0, 29, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 30, 0, 0, - 0, 31, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 1, 109, 0, 0, 1, 110, 19, 115, 133, 70, 19, 115, 131, 174, 19, 115, 133, 66, - 19, 115, 133, 62, 19, 115, 133, 58, 19, 115, 131, 174, 19, 115, 133, 52, 19, 115, 131, 174, 19, 115, 133, 48, 19, 115, - 133, 44, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, - 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, - 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, - 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, - 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, - 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, - 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, - 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, - 131, 174, 19, 115, 133, 82, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, - 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, - 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 133, 40, 19, 115, 133, 76, 19, 115, 131, 174, 19, 115, 131, 174, 19, - 115, 131, 174, 19, 115, 133, 36, 19, 115, 133, 30, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, - 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, - 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, - 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, - 115, 131, 174, 19, 115, 131, 174, 19, 115, 131, 174, 19, 115, 133, 26, 19, 115, 133, 22, 19, 115, 133, 82, 19, 115, - 131, 174, 19, 115, 133, 76, 19, 115, 133, 18, 19, 115, 135, 38, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 135, 34, - 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 135, 30, 19, 115, 132, 4, 19, 115, 135, 26, 19, 115, 135, - 34, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 135, 20, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, - 135, 16, 19, 115, 135, 12, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 135, 8, 19, 115, 135, 4, 19, - 115, 135, 0, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 134, 250, 19, 115, 134, 246, 19, 115, 132, 4, 19, 115, 134, - 242, 19, 115, 134, 236, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 134, 232, 19, - 115, 134, 228, 19, 115, 132, 4, 19, 115, 134, 224, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, - 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 134, 218, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 134, 214, 19, 115, - 132, 4, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 134, 208, 19, 115, 135, 34, 19, 115, 132, 4, 19, - 115, 134, 204, 19, 115, 134, 200, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 134, - 196, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, - 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 134, 192, 19, - 115, 135, 34, 19, 115, 132, 4, 19, 115, 134, 192, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 134, 192, 19, 115, 135, - 34, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, - 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, - 115, 135, 34, 19, 115, 132, 4, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, - 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, - 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, - 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 132, 4, 19, 115, 134, 192, 19, 115, 135, 34, 19, 115, 132, 4, 19, 115, - 135, 34, 19, 115, 132, 4, 19, 115, 134, 124, 19, 115, 134, 120, 19, 115, 134, 186, 19, 115, 134, 186, 19, 115, 134, - 180, 19, 115, 134, 180, 19, 115, 134, 176, 19, 115, 131, 82, 19, 115, 134, 172, 19, 115, 131, 82, 19, 115, 131, 82, - 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, - 131, 82, 19, 115, 134, 166, 19, 115, 134, 166, 19, 115, 134, 166, 19, 115, 134, 166, 19, 115, 134, 162, 19, 115, 131, - 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, - 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 134, 186, 19, 115, 134, 186, 19, 115, 134, - 156, 19, 115, 134, 156, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, - 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, - 82, 19, 115, 134, 186, 19, 115, 134, 186, 19, 115, 134, 150, 19, 115, 134, 150, 19, 115, 134, 146, 19, 115, 131, 82, - 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, - 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 131, 82, 19, 115, 134, 132, - 19, 115, 134, 132, 19, 115, 134, 128, 19, 115, 137, 74, 19, 115, 137, 68, 19, 115, 137, 68, 19, 115, 135, 236, 19, 115, - 137, 62, 19, 115, 137, 54, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 137, 48, 19, 115, 137, - 40, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, - 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, - 137, 28, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 137, - 28, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 137, 28, 19, - 115, 137, 22, 19, 115, 137, 16, 19, 115, 137, 10, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 137, 4, 19, 115, 140, - 198, 19, 115, 140, 192, 19, 115, 140, 186, 19, 115, 140, 180, 19, 115, 140, 174, 19, 115, 140, 168, 19, 115, 140, 162, - 19, 115, 140, 156, 19, 115, 140, 150, 19, 115, 140, 144, 19, 115, 140, 138, 19, 115, 140, 132, 19, 115, 140, 126, 19, - 115, 140, 120, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 140, 114, 19, 115, 140, 108, 19, 115, 135, 236, 19, 115, 140, 102, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 140, 96, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 140, 90, 19, 115, 140, 84, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 140, 78, 19, - 115, 140, 72, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 140, 66, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 140, 60, - 19, 115, 140, 12, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 140, 26, 19, 115, 135, 236, 19, - 115, 140, 18, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 140, 54, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 140, 48, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 140, 42, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 140, 34, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 139, 254, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 139, 246, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, - 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 137, 28, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 137, 28, 19, - 115, 135, 236, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 137, 28, 19, 115, 135, 236, 19, 115, 139, 240, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 139, 236, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 139, 236, - 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 139, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 139, 228, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 137, 28, 19, 115, 139, 222, 19, 115, 135, 236, 19, 115, 137, - 28, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, - 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 139, 216, 19, 115, 139, 208, 19, 115, 135, 236, 19, 115, 139, 202, 19, 115, 139, 194, 19, 115, 135, 236, 19, 115, 139, - 188, 19, 115, 135, 236, 19, 115, 139, 180, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 139, 174, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 139, 166, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 135, 236, 19, 115, 139, 160, 19, 115, 139, 152, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 139, 144, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 139, - 138, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 139, 132, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, - 115, 135, 236, 19, 115, 139, 124, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 139, 118, 19, 115, 135, 236, 19, 115, - 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 139, 110, 19, 115, 135, 236, 19, 115, 139, 104, 19, 115, 139, - 96, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, 19, 115, 135, 236, - 19, 115, 140, 6, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 136, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 16, 16, 16, 16, 16, 16, 16, 65, 65, 65, 65, 65, 65, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 16, 16, 16, 16, 16, 16, 66, 66, 66, 66, 66, 66, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, - 16, 16, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 115, 146, 124, 19, 115, 146, 120, 19, 115, 146, 100, 19, 115, - 146, 88, 19, 115, 146, 74, 19, 115, 146, 64, 19, 115, 146, 40, 19, 115, 146, 24, 78, 156, 85, 22, 90, 3, 150, 63, 84, - 192, 97, 27, 99, 40, 89, 246, 144, 34, 132, 117, 131, 28, 122, 80, 96, 170, 99, 225, 110, 37, 101, 237, 132, 102, 130, - 166, 155, 245, 104, 147, 87, 39, 101, 161, 98, 113, 91, 155, 89, 208, 134, 123, 152, 244, 125, 98, 125, 190, 155, 142, - 98, 22, 124, 159, 136, 183, 91, 137, 94, 181, 99, 9, 102, 151, 104, 72, 149, 199, 151, 141, 103, 79, 78, 229, 79, 10, - 79, 77, 79, 157, 80, 73, 86, 242, 89, 55, 89, 212, 90, 1, 92, 9, 96, 223, 97, 15, 97, 112, 102, 19, 105, 5, 112, 186, - 117, 79, 117, 112, 121, 251, 125, 173, 125, 239, 128, 195, 132, 14, 136, 99, 139, 2, 144, 85, 144, 122, 83, 59, 78, - 149, 78, 165, 87, 223, 128, 178, 144, 193, 120, 239, 78, 0, 88, 241, 110, 162, 144, 56, 122, 50, 131, 40, 130, 139, - 156, 47, 81, 65, 83, 112, 84, 189, 84, 225, 86, 224, 89, 251, 95, 21, 152, 242, 109, 235, 128, 228, 133, 45, 150, 98, - 150, 112, 150, 160, 151, 251, 84, 11, 83, 243, 91, 135, 112, 207, 127, 189, 143, 194, 150, 232, 83, 111, 157, 92, 122, - 186, 78, 17, 120, 147, 129, 252, 110, 38, 86, 24, 85, 4, 107, 29, 133, 26, 156, 59, 89, 229, 83, 169, 109, 102, 116, - 220, 149, 143, 86, 66, 78, 145, 144, 75, 150, 242, 131, 79, 153, 12, 83, 225, 85, 182, 91, 48, 95, 113, 102, 32, 102, - 243, 104, 4, 108, 56, 108, 243, 109, 41, 116, 91, 118, 200, 122, 78, 152, 52, 130, 241, 136, 91, 138, 96, 146, 237, - 109, 178, 117, 171, 118, 202, 153, 197, 96, 166, 139, 1, 141, 138, 149, 178, 105, 142, 83, 173, 81, 134, 87, 18, 88, - 48, 89, 68, 91, 180, 94, 246, 96, 40, 99, 169, 99, 244, 108, 191, 111, 20, 112, 142, 113, 20, 113, 89, 113, 213, 115, - 63, 126, 1, 130, 118, 130, 209, 133, 151, 144, 96, 146, 91, 157, 27, 88, 105, 101, 188, 108, 90, 117, 37, 81, 249, 89, - 46, 89, 101, 95, 128, 95, 220, 98, 188, 101, 250, 106, 42, 107, 39, 107, 180, 115, 139, 127, 193, 137, 86, 157, 44, - 157, 14, 158, 196, 92, 161, 108, 150, 131, 123, 81, 4, 92, 75, 97, 182, 129, 198, 104, 118, 114, 97, 78, 89, 79, 250, - 83, 120, 96, 105, 110, 41, 122, 79, 151, 243, 78, 11, 83, 22, 78, 238, 79, 85, 79, 61, 79, 161, 79, 115, 82, 160, 83, - 239, 86, 9, 89, 15, 90, 193, 91, 182, 91, 225, 121, 209, 102, 135, 103, 156, 103, 182, 107, 76, 108, 179, 112, 107, - 115, 194, 121, 141, 121, 190, 122, 60, 123, 135, 130, 177, 130, 219, 131, 4, 131, 119, 131, 239, 131, 211, 135, 102, - 138, 178, 86, 41, 140, 168, 143, 230, 144, 78, 151, 30, 134, 138, 79, 196, 92, 232, 98, 17, 114, 89, 117, 59, 129, 229, - 130, 189, 134, 254, 140, 192, 150, 197, 153, 19, 153, 213, 78, 203, 79, 26, 137, 227, 86, 222, 88, 74, 88, 202, 94, - 251, 95, 235, 96, 42, 96, 148, 96, 98, 97, 208, 98, 18, 98, 208, 101, 57, 155, 65, 102, 102, 104, 176, 109, 119, 112, - 112, 117, 76, 118, 134, 125, 117, 130, 165, 135, 249, 149, 139, 150, 142, 140, 157, 81, 241, 82, 190, 89, 22, 84, 179, - 91, 179, 93, 22, 97, 104, 105, 130, 109, 175, 120, 141, 132, 203, 136, 87, 138, 114, 147, 167, 154, 184, 109, 108, 153, - 168, 134, 217, 87, 163, 103, 255, 134, 206, 146, 14, 82, 131, 86, 135, 84, 4, 94, 211, 98, 225, 100, 185, 104, 60, 104, - 56, 107, 187, 115, 114, 120, 186, 122, 107, 137, 154, 137, 210, 141, 107, 143, 3, 144, 237, 149, 163, 150, 148, 151, - 105, 91, 102, 92, 179, 105, 125, 152, 77, 152, 78, 99, 155, 123, 32, 106, 43, 106, 127, 104, 182, 156, 13, 111, 95, - 82, 114, 85, 157, 96, 112, 98, 236, 109, 59, 110, 7, 110, 209, 132, 91, 137, 16, 143, 68, 78, 20, 156, 57, 83, 246, - 105, 27, 106, 58, 151, 132, 104, 42, 81, 92, 122, 195, 132, 178, 145, 220, 147, 140, 86, 91, 157, 40, 104, 34, 131, - 5, 132, 49, 124, 165, 82, 8, 130, 197, 116, 230, 78, 126, 79, 131, 81, 160, 91, 210, 82, 10, 82, 216, 82, 231, 93, 251, - 85, 154, 88, 42, 89, 230, 91, 140, 91, 152, 91, 219, 94, 114, 94, 121, 96, 163, 97, 31, 97, 99, 97, 190, 99, 219, 101, - 98, 103, 209, 104, 83, 104, 250, 107, 62, 107, 83, 108, 87, 111, 34, 111, 151, 111, 69, 116, 176, 117, 24, 118, 227, - 119, 11, 122, 255, 123, 161, 124, 33, 125, 233, 127, 54, 127, 240, 128, 157, 130, 102, 131, 158, 137, 179, 138, 204, - 140, 171, 144, 132, 148, 81, 149, 147, 149, 145, 149, 162, 150, 101, 151, 211, 153, 40, 130, 24, 78, 56, 84, 43, 92, - 184, 93, 204, 115, 169, 118, 76, 119, 60, 92, 169, 127, 235, 141, 11, 150, 193, 152, 17, 152, 84, 152, 88, 79, 1, 79, - 14, 83, 113, 85, 156, 86, 104, 87, 250, 89, 71, 91, 9, 91, 196, 92, 144, 94, 12, 94, 126, 95, 204, 99, 238, 103, 58, - 101, 215, 101, 226, 103, 31, 104, 203, 104, 196, 106, 95, 94, 48, 107, 197, 108, 23, 108, 125, 117, 127, 121, 72, 91, - 99, 122, 0, 125, 0, 95, 189, 137, 143, 138, 24, 140, 180, 141, 119, 142, 204, 143, 29, 152, 226, 154, 14, 155, 60, 78, - 128, 80, 125, 81, 0, 89, 147, 91, 156, 98, 47, 98, 128, 100, 236, 107, 58, 114, 160, 117, 145, 121, 71, 127, 169, 135, - 251, 138, 188, 139, 112, 99, 172, 131, 202, 151, 160, 84, 9, 84, 3, 85, 171, 104, 84, 106, 88, 138, 112, 120, 39, 103, - 117, 158, 205, 83, 116, 91, 162, 129, 26, 134, 80, 144, 6, 78, 24, 78, 69, 78, 199, 79, 17, 83, 202, 84, 56, 91, 174, - 95, 19, 96, 37, 101, 81, 103, 61, 108, 66, 108, 114, 108, 227, 112, 120, 116, 3, 122, 118, 122, 174, 123, 8, 125, 26, - 124, 254, 125, 102, 101, 231, 114, 91, 83, 187, 92, 69, 93, 232, 98, 210, 98, 224, 99, 25, 110, 32, 134, 90, 138, 49, - 141, 221, 146, 248, 111, 1, 121, 166, 155, 90, 78, 168, 78, 171, 78, 172, 79, 155, 79, 160, 80, 209, 81, 71, 122, 246, - 81, 113, 81, 246, 83, 84, 83, 33, 83, 127, 83, 235, 85, 172, 88, 131, 92, 225, 95, 55, 95, 74, 96, 47, 96, 80, 96, 109, - 99, 31, 101, 89, 106, 75, 108, 193, 114, 194, 114, 237, 119, 239, 128, 248, 129, 5, 130, 8, 133, 78, 144, 247, 147, - 225, 151, 255, 153, 87, 154, 90, 78, 240, 81, 221, 92, 45, 102, 129, 105, 109, 92, 64, 102, 242, 105, 117, 115, 137, - 104, 80, 124, 129, 80, 197, 82, 228, 87, 71, 93, 254, 147, 38, 101, 164, 107, 35, 107, 61, 116, 52, 121, 129, 121, 189, - 123, 75, 125, 202, 130, 185, 131, 204, 136, 127, 137, 95, 139, 57, 143, 209, 145, 209, 84, 31, 146, 128, 78, 93, 80, - 54, 83, 229, 83, 58, 114, 215, 115, 150, 119, 233, 130, 230, 142, 175, 153, 198, 153, 200, 153, 210, 81, 119, 97, 26, - 134, 94, 85, 176, 122, 122, 80, 118, 91, 211, 144, 71, 150, 133, 78, 50, 106, 219, 145, 231, 92, 81, 92, 72, 99, 152, - 122, 159, 108, 147, 151, 116, 143, 97, 122, 170, 113, 138, 150, 136, 124, 130, 104, 23, 126, 112, 104, 81, 147, 108, - 82, 242, 84, 27, 133, 171, 138, 19, 127, 164, 142, 205, 144, 225, 83, 102, 136, 136, 121, 65, 79, 194, 80, 190, 82, - 17, 81, 68, 85, 83, 87, 45, 115, 234, 87, 139, 89, 81, 95, 98, 95, 132, 96, 117, 97, 118, 97, 103, 97, 169, 99, 178, - 100, 58, 101, 108, 102, 111, 104, 66, 110, 19, 117, 102, 122, 61, 124, 251, 125, 76, 125, 153, 126, 75, 127, 107, 131, - 14, 131, 74, 134, 205, 138, 8, 138, 99, 139, 102, 142, 253, 152, 26, 157, 143, 130, 184, 143, 206, 155, 232, 82, 135, - 98, 31, 100, 131, 111, 192, 150, 153, 104, 65, 80, 145, 107, 32, 108, 122, 111, 84, 122, 116, 125, 80, 136, 64, 138, - 35, 103, 8, 78, 246, 80, 57, 80, 38, 80, 101, 81, 124, 82, 56, 82, 99, 85, 167, 87, 15, 88, 5, 90, 204, 94, 250, 97, - 178, 97, 248, 98, 243, 99, 114, 105, 28, 106, 41, 114, 125, 114, 172, 115, 46, 120, 20, 120, 111, 125, 121, 119, 12, - 128, 169, 137, 139, 139, 25, 140, 226, 142, 210, 144, 99, 147, 117, 150, 122, 152, 85, 154, 19, 158, 120, 81, 67, 83, - 159, 83, 179, 94, 123, 95, 38, 110, 27, 110, 144, 115, 132, 115, 254, 125, 67, 130, 55, 138, 0, 138, 250, 150, 80, 78, - 78, 80, 11, 83, 228, 84, 124, 86, 250, 89, 209, 91, 100, 93, 241, 94, 171, 95, 39, 98, 56, 101, 69, 103, 175, 110, 86, - 114, 208, 124, 202, 136, 180, 128, 161, 128, 225, 131, 240, 134, 78, 138, 135, 141, 232, 146, 55, 150, 199, 152, 103, - 159, 19, 78, 148, 78, 146, 79, 13, 83, 72, 84, 73, 84, 62, 90, 47, 95, 140, 95, 161, 96, 159, 104, 167, 106, 142, 116, - 90, 120, 129, 138, 158, 138, 164, 139, 119, 145, 144, 78, 94, 155, 201, 78, 164, 79, 124, 79, 175, 80, 25, 80, 22, 81, - 73, 81, 108, 82, 159, 82, 185, 82, 254, 83, 154, 83, 227, 84, 17, 84, 14, 85, 137, 87, 81, 87, 162, 89, 125, 91, 84, - 91, 93, 91, 143, 93, 229, 93, 231, 93, 247, 94, 120, 94, 131, 94, 154, 94, 183, 95, 24, 96, 82, 97, 76, 98, 151, 98, - 216, 99, 167, 101, 59, 102, 2, 102, 67, 102, 244, 103, 109, 104, 33, 104, 151, 105, 203, 108, 95, 109, 42, 109, 105, - 110, 47, 110, 157, 117, 50, 118, 135, 120, 108, 122, 63, 124, 224, 125, 5, 125, 24, 125, 94, 125, 177, 128, 21, 128, - 3, 128, 175, 128, 177, 129, 84, 129, 143, 130, 42, 131, 82, 136, 76, 136, 97, 139, 27, 140, 162, 140, 252, 144, 202, - 145, 117, 146, 113, 120, 63, 146, 252, 149, 164, 150, 77, 152, 5, 153, 153, 154, 216, 157, 59, 82, 91, 82, 171, 83, - 247, 84, 8, 88, 213, 98, 247, 111, 224, 140, 106, 143, 95, 158, 185, 81, 75, 82, 59, 84, 74, 86, 253, 122, 64, 145, - 119, 157, 96, 158, 210, 115, 68, 111, 9, 129, 112, 117, 17, 95, 253, 96, 218, 154, 168, 114, 219, 143, 188, 107, 100, - 152, 3, 78, 202, 86, 240, 87, 100, 88, 190, 90, 90, 96, 104, 97, 199, 102, 15, 102, 6, 104, 57, 104, 177, 109, 247, - 117, 213, 125, 58, 130, 110, 155, 66, 78, 155, 79, 80, 83, 201, 85, 6, 93, 111, 93, 230, 93, 238, 103, 251, 108, 153, - 116, 115, 120, 2, 138, 80, 147, 150, 136, 223, 87, 80, 94, 167, 99, 43, 80, 181, 80, 172, 81, 141, 103, 0, 84, 201, - 88, 94, 89, 187, 91, 176, 95, 105, 98, 77, 99, 161, 104, 61, 107, 115, 110, 8, 112, 125, 145, 199, 114, 128, 120, 21, - 120, 38, 121, 109, 101, 142, 125, 48, 131, 220, 136, 193, 143, 9, 150, 155, 82, 100, 87, 40, 103, 80, 127, 106, 140, - 161, 81, 180, 87, 66, 150, 42, 88, 58, 105, 138, 128, 180, 84, 178, 93, 14, 87, 252, 120, 149, 157, 250, 79, 92, 82, - 74, 84, 139, 100, 62, 102, 40, 103, 20, 103, 245, 122, 132, 123, 86, 125, 34, 147, 47, 104, 92, 155, 173, 123, 57, 83, - 25, 81, 138, 82, 55, 91, 223, 98, 246, 100, 174, 100, 230, 103, 45, 107, 186, 133, 169, 150, 209, 118, 144, 155, 214, - 99, 76, 147, 6, 155, 171, 118, 191, 102, 82, 78, 9, 80, 152, 83, 194, 92, 113, 96, 232, 100, 146, 101, 99, 104, 95, - 113, 230, 115, 202, 117, 35, 123, 151, 126, 130, 134, 149, 139, 131, 140, 219, 145, 120, 153, 16, 101, 172, 102, 171, - 107, 139, 78, 213, 78, 212, 79, 58, 79, 127, 82, 58, 83, 248, 83, 242, 85, 227, 86, 219, 88, 235, 89, 203, 89, 201, - 89, 255, 91, 80, 92, 77, 94, 2, 94, 43, 95, 215, 96, 29, 99, 7, 101, 47, 91, 92, 101, 175, 101, 189, 101, 232, 103, - 157, 107, 98, 107, 123, 108, 15, 115, 69, 121, 73, 121, 193, 124, 248, 125, 25, 125, 43, 128, 162, 129, 2, 129, 243, - 137, 150, 138, 94, 138, 105, 138, 102, 138, 140, 138, 238, 140, 199, 140, 220, 150, 204, 152, 252, 107, 111, 78, 139, - 79, 60, 79, 141, 81, 80, 91, 87, 91, 250, 97, 72, 99, 1, 102, 66, 107, 33, 110, 203, 108, 187, 114, 62, 116, 189, 117, - 212, 120, 193, 121, 58, 128, 12, 128, 51, 129, 234, 132, 148, 143, 158, 108, 80, 158, 127, 95, 15, 139, 88, 157, 43, - 122, 250, 142, 248, 91, 141, 150, 235, 78, 3, 83, 241, 87, 247, 89, 49, 90, 201, 91, 164, 96, 137, 110, 127, 111, 6, - 117, 190, 140, 234, 91, 159, 133, 0, 123, 224, 80, 114, 103, 244, 130, 157, 92, 97, 133, 74, 126, 30, 130, 14, 81, 153, - 92, 4, 99, 104, 141, 102, 101, 156, 113, 110, 121, 62, 125, 23, 128, 5, 139, 29, 142, 202, 144, 110, 134, 199, 144, - 170, 80, 31, 82, 250, 92, 58, 103, 83, 112, 124, 114, 53, 145, 76, 145, 200, 147, 43, 130, 229, 91, 194, 95, 49, 96, - 249, 78, 59, 83, 214, 91, 136, 98, 75, 103, 49, 107, 138, 114, 233, 115, 224, 122, 46, 129, 107, 141, 163, 145, 82, - 153, 150, 81, 18, 83, 215, 84, 106, 91, 255, 99, 136, 106, 57, 125, 172, 151, 0, 86, 218, 83, 206, 84, 104, 91, 151, - 92, 49, 93, 222, 79, 238, 97, 1, 98, 254, 109, 50, 121, 192, 121, 203, 125, 66, 126, 77, 127, 210, 129, 237, 130, 31, - 132, 144, 136, 70, 137, 114, 139, 144, 142, 116, 143, 47, 144, 49, 145, 75, 145, 108, 150, 198, 145, 156, 78, 192, 79, - 79, 81, 69, 83, 65, 95, 147, 98, 14, 103, 212, 108, 65, 110, 11, 115, 99, 126, 38, 145, 205, 146, 131, 83, 212, 89, - 25, 91, 191, 109, 209, 121, 93, 126, 46, 124, 155, 88, 126, 113, 159, 81, 250, 136, 83, 143, 240, 79, 202, 92, 251, - 102, 37, 119, 172, 122, 227, 130, 28, 153, 255, 81, 198, 95, 170, 101, 236, 105, 111, 107, 137, 109, 243, 110, 150, - 111, 100, 118, 254, 125, 20, 93, 225, 144, 117, 145, 135, 152, 6, 81, 230, 82, 29, 98, 64, 102, 145, 102, 217, 110, - 26, 94, 182, 125, 210, 127, 114, 102, 248, 133, 175, 133, 247, 138, 248, 82, 169, 83, 217, 89, 115, 94, 143, 95, 144, - 96, 85, 146, 228, 150, 100, 80, 183, 81, 31, 82, 221, 83, 32, 83, 71, 83, 236, 84, 232, 85, 70, 85, 49, 86, 23, 89, - 104, 89, 190, 90, 60, 91, 181, 92, 6, 92, 15, 92, 17, 92, 26, 94, 132, 94, 138, 94, 224, 95, 112, 98, 127, 98, 132, - 98, 219, 99, 140, 99, 119, 102, 7, 102, 12, 102, 45, 102, 118, 103, 126, 104, 162, 106, 31, 106, 53, 108, 188, 109, - 136, 110, 9, 110, 88, 113, 60, 113, 38, 113, 103, 117, 199, 119, 1, 120, 93, 121, 1, 121, 101, 121, 240, 122, 224, 123, - 17, 124, 167, 125, 57, 128, 150, 131, 214, 132, 139, 133, 73, 136, 93, 136, 243, 138, 31, 138, 60, 138, 84, 138, 115, - 140, 97, 140, 222, 145, 164, 146, 102, 147, 126, 148, 24, 150, 156, 151, 152, 78, 10, 78, 8, 78, 30, 78, 87, 81, 151, - 82, 112, 87, 206, 88, 52, 88, 204, 91, 34, 94, 56, 96, 197, 100, 254, 103, 97, 103, 86, 109, 68, 114, 182, 117, 115, - 122, 99, 132, 184, 139, 114, 145, 184, 147, 32, 86, 49, 87, 244, 152, 254, 98, 237, 105, 13, 107, 150, 113, 237, 126, - 84, 128, 119, 130, 114, 137, 230, 152, 223, 135, 85, 143, 177, 92, 59, 79, 56, 79, 225, 79, 181, 85, 7, 90, 32, 91, - 221, 91, 233, 95, 195, 97, 78, 99, 47, 101, 176, 102, 75, 104, 238, 105, 155, 109, 120, 109, 241, 117, 51, 117, 185, - 119, 31, 121, 94, 121, 230, 125, 51, 129, 227, 130, 175, 133, 170, 137, 170, 138, 58, 142, 171, 143, 155, 144, 50, 145, - 221, 151, 7, 78, 186, 78, 193, 82, 3, 88, 117, 88, 236, 92, 11, 117, 26, 92, 61, 129, 78, 138, 10, 143, 197, 150, 99, - 151, 109, 123, 37, 138, 207, 152, 8, 145, 98, 86, 243, 83, 168, 144, 23, 84, 57, 87, 130, 94, 37, 99, 168, 108, 52, - 112, 138, 119, 97, 124, 139, 127, 224, 136, 112, 144, 66, 145, 84, 147, 16, 147, 24, 150, 143, 116, 94, 154, 196, 93, - 7, 93, 105, 101, 112, 103, 162, 141, 168, 150, 219, 99, 110, 103, 73, 105, 25, 131, 197, 152, 23, 150, 192, 136, 254, - 111, 132, 100, 122, 91, 248, 78, 22, 112, 44, 117, 93, 102, 47, 81, 196, 82, 54, 82, 226, 89, 211, 95, 129, 96, 39, - 98, 16, 101, 63, 101, 116, 102, 31, 102, 116, 104, 242, 104, 22, 107, 99, 110, 5, 114, 114, 117, 31, 118, 219, 124, - 190, 128, 86, 88, 240, 136, 253, 137, 127, 138, 160, 138, 147, 138, 203, 144, 29, 145, 146, 151, 82, 151, 89, 101, 137, - 122, 14, 129, 6, 150, 187, 94, 45, 96, 220, 98, 26, 101, 165, 102, 20, 103, 144, 119, 243, 122, 77, 124, 77, 126, 62, - 129, 10, 140, 172, 141, 100, 141, 225, 142, 95, 120, 169, 82, 7, 98, 217, 99, 165, 100, 66, 98, 152, 138, 45, 122, 131, - 123, 192, 138, 172, 150, 234, 125, 118, 130, 12, 135, 73, 78, 217, 81, 72, 83, 67, 83, 96, 91, 163, 92, 2, 92, 22, 93, - 221, 98, 38, 98, 71, 100, 176, 104, 19, 104, 52, 108, 201, 109, 69, 109, 23, 103, 211, 111, 92, 113, 78, 113, 125, 101, - 203, 122, 127, 123, 173, 125, 218, 126, 74, 127, 168, 129, 122, 130, 27, 130, 57, 133, 166, 138, 110, 140, 206, 141, - 245, 144, 120, 144, 119, 146, 173, 146, 145, 149, 131, 155, 174, 82, 77, 85, 132, 111, 56, 113, 54, 81, 104, 121, 133, - 126, 85, 129, 179, 124, 206, 86, 76, 88, 81, 92, 168, 99, 170, 102, 254, 102, 253, 105, 90, 114, 217, 117, 143, 117, - 142, 121, 14, 121, 86, 121, 223, 124, 151, 125, 32, 125, 68, 134, 7, 138, 52, 150, 59, 144, 97, 159, 32, 80, 231, 82, - 117, 83, 204, 83, 226, 80, 9, 85, 170, 88, 238, 89, 79, 114, 61, 91, 139, 92, 100, 83, 29, 96, 227, 96, 243, 99, 92, - 99, 131, 99, 63, 99, 187, 100, 205, 101, 233, 102, 249, 93, 227, 105, 205, 105, 253, 111, 21, 113, 229, 78, 137, 117, - 233, 118, 248, 122, 147, 124, 223, 125, 207, 125, 156, 128, 97, 131, 73, 131, 88, 132, 108, 132, 188, 133, 251, 136, - 197, 141, 112, 144, 1, 144, 109, 147, 151, 151, 28, 154, 18, 80, 207, 88, 151, 97, 142, 129, 211, 133, 53, 141, 8, 144, - 32, 79, 195, 80, 116, 82, 71, 83, 115, 96, 111, 99, 73, 103, 95, 110, 44, 141, 179, 144, 31, 79, 215, 92, 94, 140, 202, - 101, 207, 125, 154, 83, 82, 136, 150, 81, 118, 99, 195, 91, 88, 91, 107, 92, 10, 100, 13, 103, 81, 144, 92, 78, 214, - 89, 26, 89, 42, 108, 112, 138, 81, 85, 62, 88, 21, 89, 165, 96, 240, 98, 83, 103, 193, 130, 53, 105, 85, 150, 64, 153, - 196, 154, 40, 79, 83, 88, 6, 91, 254, 128, 16, 92, 177, 94, 47, 95, 133, 96, 32, 97, 75, 98, 52, 102, 255, 108, 240, - 110, 222, 128, 206, 129, 127, 130, 212, 136, 139, 140, 184, 144, 0, 144, 46, 150, 138, 158, 219, 155, 219, 78, 227, - 83, 240, 89, 39, 123, 44, 145, 141, 152, 76, 157, 249, 110, 221, 112, 39, 83, 83, 85, 68, 91, 133, 98, 88, 98, 158, - 98, 211, 108, 162, 111, 239, 116, 34, 138, 23, 148, 56, 111, 193, 138, 254, 131, 56, 81, 231, 134, 248, 83, 234, 83, - 233, 79, 70, 144, 84, 143, 176, 89, 106, 129, 49, 93, 253, 122, 234, 143, 191, 104, 218, 140, 55, 114, 248, 156, 72, - 106, 61, 138, 176, 78, 57, 83, 88, 86, 6, 87, 102, 98, 197, 99, 162, 101, 230, 107, 78, 109, 225, 110, 91, 112, 173, - 119, 237, 122, 239, 123, 170, 125, 187, 128, 61, 128, 198, 134, 203, 138, 149, 147, 91, 86, 227, 88, 199, 95, 62, 101, - 173, 102, 150, 106, 128, 107, 181, 117, 55, 138, 199, 80, 36, 119, 229, 87, 48, 95, 27, 96, 101, 102, 122, 108, 96, - 117, 244, 122, 26, 127, 110, 129, 244, 135, 24, 144, 69, 153, 179, 123, 201, 117, 92, 122, 249, 123, 81, 132, 196, 144, - 16, 121, 233, 122, 146, 131, 54, 90, 225, 119, 64, 78, 45, 78, 242, 91, 153, 95, 224, 98, 189, 102, 60, 103, 241, 108, - 232, 134, 107, 136, 119, 138, 59, 145, 78, 146, 243, 153, 208, 106, 23, 112, 38, 115, 42, 130, 231, 132, 87, 140, 175, - 78, 1, 81, 70, 81, 203, 85, 139, 91, 245, 94, 22, 94, 51, 94, 129, 95, 20, 95, 53, 95, 107, 95, 180, 97, 242, 99, 17, - 102, 162, 103, 29, 111, 110, 114, 82, 117, 58, 119, 58, 128, 116, 129, 57, 129, 120, 135, 118, 138, 191, 138, 220, 141, - 133, 141, 243, 146, 154, 149, 119, 152, 2, 156, 229, 82, 197, 99, 87, 118, 244, 103, 21, 108, 136, 115, 205, 140, 195, - 147, 174, 150, 115, 109, 37, 88, 156, 105, 14, 105, 204, 143, 253, 147, 154, 117, 219, 144, 26, 88, 90, 104, 2, 99, - 180, 105, 251, 79, 67, 111, 44, 103, 216, 143, 187, 133, 38, 125, 180, 147, 84, 105, 63, 111, 112, 87, 106, 88, 247, - 91, 44, 125, 44, 114, 42, 84, 10, 145, 227, 157, 180, 78, 173, 79, 78, 80, 92, 80, 117, 82, 67, 140, 158, 84, 72, 88, - 36, 91, 154, 94, 29, 94, 149, 94, 173, 94, 247, 95, 31, 96, 140, 98, 181, 99, 58, 99, 208, 104, 175, 108, 64, 120, 135, - 121, 142, 122, 11, 125, 224, 130, 71, 138, 2, 138, 230, 142, 68, 144, 19, 144, 184, 145, 45, 145, 216, 159, 14, 108, - 229, 100, 88, 100, 226, 101, 117, 110, 244, 118, 132, 123, 27, 144, 105, 147, 209, 110, 186, 84, 242, 95, 185, 100, - 164, 143, 77, 143, 237, 146, 68, 81, 120, 88, 107, 89, 41, 92, 85, 94, 151, 109, 251, 126, 143, 117, 28, 140, 188, 142, - 226, 152, 91, 112, 185, 79, 29, 107, 191, 111, 177, 117, 48, 150, 251, 81, 78, 84, 16, 88, 53, 88, 87, 89, 172, 92, - 96, 95, 146, 101, 151, 103, 92, 110, 33, 118, 123, 131, 223, 140, 237, 144, 20, 144, 253, 147, 77, 120, 37, 120, 58, - 82, 170, 94, 166, 87, 31, 89, 116, 96, 18, 80, 18, 81, 90, 81, 172, 81, 205, 82, 0, 85, 16, 88, 84, 88, 88, 89, 87, - 91, 149, 92, 246, 93, 139, 96, 188, 98, 149, 100, 45, 103, 113, 104, 67, 104, 188, 104, 223, 118, 215, 109, 216, 110, - 111, 109, 155, 112, 111, 113, 200, 95, 83, 117, 216, 121, 119, 123, 73, 123, 84, 123, 82, 124, 214, 125, 113, 82, 48, - 132, 99, 133, 105, 133, 228, 138, 14, 139, 4, 140, 70, 142, 15, 144, 3, 144, 15, 148, 25, 150, 118, 152, 45, 154, 48, - 149, 216, 80, 205, 82, 213, 84, 12, 88, 2, 92, 14, 97, 167, 100, 158, 109, 30, 119, 179, 122, 229, 128, 244, 132, 4, - 144, 83, 146, 133, 92, 224, 157, 7, 83, 63, 95, 151, 95, 179, 109, 156, 114, 121, 119, 99, 121, 191, 123, 228, 107, - 210, 114, 236, 138, 173, 104, 3, 106, 97, 81, 248, 122, 129, 105, 52, 92, 74, 156, 246, 130, 235, 91, 197, 145, 73, - 112, 30, 86, 120, 92, 111, 96, 199, 101, 102, 108, 140, 140, 90, 144, 65, 152, 19, 84, 81, 102, 199, 146, 13, 89, 72, - 144, 163, 81, 133, 78, 77, 81, 234, 133, 153, 139, 14, 112, 88, 99, 122, 147, 75, 105, 98, 153, 180, 126, 4, 117, 119, - 83, 87, 105, 96, 142, 223, 150, 227, 108, 93, 78, 140, 92, 60, 95, 16, 143, 233, 83, 2, 140, 209, 128, 137, 134, 121, - 94, 255, 101, 229, 78, 115, 81, 101, 89, 130, 92, 63, 151, 238, 78, 251, 89, 138, 95, 205, 138, 141, 111, 225, 121, - 176, 121, 98, 91, 231, 132, 113, 115, 43, 113, 177, 94, 116, 95, 245, 99, 123, 100, 154, 113, 195, 124, 152, 78, 67, - 94, 252, 78, 75, 87, 220, 86, 162, 96, 169, 111, 195, 125, 13, 128, 253, 129, 51, 129, 191, 143, 178, 137, 151, 134, - 164, 93, 244, 98, 138, 100, 173, 137, 135, 103, 119, 108, 226, 109, 62, 116, 54, 120, 52, 90, 70, 127, 117, 130, 173, - 153, 172, 79, 243, 94, 195, 98, 221, 99, 146, 101, 87, 103, 111, 118, 195, 114, 76, 128, 204, 128, 186, 143, 41, 145, - 77, 80, 13, 87, 249, 90, 146, 104, 133, 105, 115, 113, 100, 114, 253, 140, 183, 88, 242, 140, 224, 150, 106, 144, 25, - 135, 127, 121, 228, 119, 231, 132, 41, 79, 47, 82, 101, 83, 90, 98, 205, 103, 207, 108, 202, 118, 125, 123, 148, 124, - 149, 130, 54, 133, 132, 143, 235, 102, 221, 111, 32, 114, 6, 126, 27, 131, 171, 153, 193, 158, 166, 81, 253, 123, 177, - 120, 114, 123, 184, 128, 135, 123, 72, 106, 232, 94, 97, 128, 140, 117, 81, 117, 96, 81, 107, 146, 98, 110, 140, 118, - 122, 145, 151, 154, 234, 79, 16, 127, 112, 98, 156, 123, 79, 149, 165, 156, 233, 86, 122, 88, 89, 134, 228, 150, 188, - 79, 52, 82, 36, 83, 74, 83, 205, 83, 219, 94, 6, 100, 44, 101, 145, 103, 127, 108, 62, 108, 78, 114, 72, 114, 175, 115, - 237, 117, 84, 126, 65, 130, 44, 133, 233, 140, 169, 123, 196, 145, 198, 113, 105, 152, 18, 152, 239, 99, 61, 102, 105, - 117, 106, 118, 228, 120, 208, 133, 67, 134, 238, 83, 42, 83, 81, 84, 38, 89, 131, 94, 135, 95, 124, 96, 178, 98, 73, - 98, 121, 98, 171, 101, 144, 107, 212, 108, 204, 117, 178, 118, 174, 120, 145, 121, 216, 125, 203, 127, 119, 128, 165, - 136, 171, 138, 185, 140, 187, 144, 127, 151, 94, 152, 219, 106, 11, 124, 56, 80, 153, 92, 62, 95, 174, 103, 135, 107, - 216, 116, 53, 119, 9, 127, 142, 159, 59, 103, 202, 122, 23, 83, 57, 117, 139, 154, 237, 95, 102, 129, 157, 131, 241, - 128, 152, 95, 60, 95, 197, 117, 98, 123, 70, 144, 60, 104, 103, 89, 235, 90, 155, 125, 16, 118, 126, 139, 44, 79, 245, - 95, 106, 106, 25, 108, 55, 111, 2, 116, 226, 121, 104, 136, 104, 138, 85, 140, 121, 94, 223, 99, 207, 117, 197, 121, - 210, 130, 215, 147, 40, 146, 242, 132, 156, 134, 237, 156, 45, 84, 193, 95, 108, 101, 140, 109, 92, 112, 21, 140, 167, - 140, 211, 152, 59, 101, 79, 116, 246, 78, 13, 78, 216, 87, 224, 89, 43, 90, 102, 91, 204, 81, 168, 94, 3, 94, 156, 96, - 22, 98, 118, 101, 119, 101, 167, 102, 110, 109, 110, 114, 54, 123, 38, 129, 80, 129, 154, 130, 153, 139, 92, 140, 160, - 140, 230, 141, 116, 150, 28, 150, 68, 79, 174, 100, 171, 107, 102, 130, 30, 132, 97, 133, 106, 144, 232, 92, 1, 105, - 83, 152, 168, 132, 122, 133, 87, 79, 15, 82, 111, 95, 169, 94, 69, 103, 13, 121, 143, 129, 121, 137, 7, 137, 134, 109, - 245, 95, 23, 98, 85, 108, 184, 78, 207, 114, 105, 155, 146, 82, 6, 84, 59, 86, 116, 88, 179, 97, 164, 98, 110, 113, - 26, 89, 110, 124, 137, 124, 222, 125, 27, 150, 240, 101, 135, 128, 94, 78, 25, 79, 117, 81, 117, 88, 64, 94, 99, 94, - 115, 95, 10, 103, 196, 78, 38, 133, 61, 149, 137, 150, 91, 124, 115, 152, 1, 80, 251, 88, 193, 118, 86, 120, 167, 82, - 37, 119, 165, 133, 17, 123, 134, 80, 79, 89, 9, 114, 71, 123, 199, 125, 232, 143, 186, 143, 212, 144, 77, 79, 191, 82, - 201, 90, 41, 95, 1, 151, 173, 79, 221, 130, 23, 146, 234, 87, 3, 99, 85, 107, 105, 117, 43, 136, 220, 143, 20, 122, - 66, 82, 223, 88, 147, 97, 85, 98, 10, 102, 174, 107, 205, 124, 63, 131, 233, 80, 35, 79, 248, 83, 5, 84, 70, 88, 49, - 89, 73, 91, 157, 92, 240, 92, 239, 93, 41, 94, 150, 98, 177, 99, 103, 101, 62, 101, 185, 103, 11, 108, 213, 108, 225, - 112, 249, 120, 50, 126, 43, 128, 222, 130, 179, 132, 12, 132, 236, 135, 2, 137, 18, 138, 42, 140, 74, 144, 166, 146, - 210, 152, 253, 156, 243, 157, 108, 78, 79, 78, 161, 80, 141, 82, 86, 87, 74, 89, 168, 94, 61, 95, 216, 95, 217, 98, - 63, 102, 180, 103, 27, 103, 208, 104, 210, 81, 146, 125, 33, 128, 170, 129, 168, 139, 0, 140, 140, 140, 191, 146, 126, - 150, 50, 84, 32, 152, 44, 83, 23, 80, 213, 83, 92, 88, 168, 100, 178, 103, 52, 114, 103, 119, 102, 122, 70, 145, 230, - 82, 195, 108, 161, 107, 134, 88, 0, 94, 76, 89, 84, 103, 44, 127, 251, 81, 225, 118, 198, 100, 105, 120, 232, 155, 84, - 158, 187, 87, 203, 89, 185, 102, 39, 103, 154, 107, 206, 84, 233, 105, 217, 94, 85, 129, 156, 103, 149, 155, 170, 103, - 254, 156, 82, 104, 93, 78, 166, 79, 227, 83, 200, 98, 185, 103, 43, 108, 171, 143, 196, 79, 173, 126, 109, 158, 191, - 78, 7, 97, 98, 110, 128, 111, 43, 133, 19, 84, 115, 103, 42, 155, 69, 93, 243, 123, 149, 92, 172, 91, 198, 135, 28, - 110, 74, 132, 209, 122, 20, 129, 8, 89, 153, 124, 141, 108, 17, 119, 32, 82, 217, 89, 34, 113, 33, 114, 95, 119, 219, - 151, 39, 157, 97, 105, 11, 90, 127, 90, 24, 81, 165, 84, 13, 84, 125, 102, 14, 118, 223, 143, 247, 146, 152, 156, 244, - 89, 234, 114, 93, 110, 197, 81, 77, 104, 201, 125, 191, 125, 236, 151, 98, 158, 186, 100, 120, 106, 33, 131, 2, 89, - 132, 91, 95, 107, 219, 115, 27, 118, 242, 125, 178, 128, 23, 132, 153, 81, 50, 103, 40, 158, 217, 118, 238, 103, 98, - 82, 255, 153, 5, 92, 36, 98, 59, 124, 126, 140, 176, 85, 79, 96, 182, 125, 11, 149, 128, 83, 1, 78, 95, 81, 182, 89, - 28, 114, 58, 128, 54, 145, 206, 95, 37, 119, 226, 83, 132, 95, 121, 125, 4, 133, 172, 138, 51, 142, 141, 151, 86, 103, - 243, 133, 174, 148, 83, 97, 9, 97, 8, 108, 185, 118, 82, 138, 237, 143, 56, 85, 47, 79, 81, 81, 42, 82, 199, 83, 203, - 91, 165, 94, 125, 96, 160, 97, 130, 99, 214, 103, 9, 103, 218, 110, 103, 109, 140, 115, 54, 115, 55, 117, 49, 121, 80, - 136, 213, 138, 152, 144, 74, 144, 145, 144, 245, 150, 196, 135, 141, 89, 21, 78, 136, 79, 89, 78, 14, 138, 137, 143, - 63, 152, 16, 80, 173, 94, 124, 89, 150, 91, 185, 94, 184, 99, 218, 99, 250, 100, 193, 102, 220, 105, 74, 105, 216, 109, - 11, 110, 182, 113, 148, 117, 40, 122, 175, 127, 138, 128, 0, 132, 73, 132, 201, 137, 129, 139, 33, 142, 10, 144, 101, - 150, 125, 153, 10, 97, 126, 98, 145, 107, 50, 108, 131, 109, 116, 127, 204, 127, 252, 109, 192, 127, 133, 135, 186, - 136, 248, 103, 101, 131, 177, 152, 60, 150, 247, 109, 27, 125, 97, 132, 61, 145, 106, 78, 113, 83, 117, 93, 80, 107, - 4, 111, 235, 133, 205, 134, 45, 137, 167, 82, 41, 84, 15, 92, 101, 103, 78, 104, 168, 116, 6, 116, 131, 117, 226, 136, - 207, 136, 225, 145, 204, 150, 226, 150, 120, 95, 139, 115, 135, 122, 203, 132, 78, 99, 160, 117, 101, 82, 137, 109, - 65, 110, 156, 116, 9, 117, 89, 120, 107, 124, 146, 150, 134, 122, 220, 159, 141, 79, 182, 97, 110, 101, 197, 134, 92, - 78, 134, 78, 174, 80, 218, 78, 33, 81, 204, 91, 238, 101, 153, 104, 129, 109, 188, 115, 31, 118, 66, 119, 173, 122, - 28, 124, 231, 130, 111, 138, 210, 144, 124, 145, 207, 150, 117, 152, 24, 82, 155, 125, 209, 80, 43, 83, 152, 103, 151, - 109, 203, 113, 208, 116, 51, 129, 232, 143, 42, 150, 163, 156, 87, 158, 159, 116, 96, 88, 65, 109, 153, 125, 47, 152, - 94, 78, 228, 79, 54, 79, 139, 81, 183, 82, 177, 93, 186, 96, 28, 115, 178, 121, 60, 130, 211, 146, 52, 150, 183, 150, - 246, 151, 10, 158, 151, 159, 98, 102, 166, 107, 116, 82, 23, 82, 163, 112, 200, 136, 194, 94, 201, 96, 75, 97, 144, - 111, 35, 113, 73, 124, 62, 125, 244, 128, 111, 132, 238, 144, 35, 147, 44, 84, 66, 155, 111, 106, 211, 112, 137, 140, - 194, 141, 239, 151, 50, 82, 180, 90, 65, 94, 202, 95, 4, 103, 23, 105, 124, 105, 148, 109, 106, 111, 15, 114, 98, 114, - 252, 123, 237, 128, 1, 128, 126, 135, 75, 144, 206, 81, 109, 158, 147, 121, 132, 128, 139, 147, 50, 138, 214, 80, 45, - 84, 140, 138, 113, 107, 106, 140, 196, 129, 7, 96, 209, 103, 160, 157, 242, 78, 153, 78, 152, 156, 16, 138, 107, 133, - 193, 133, 104, 105, 0, 110, 126, 120, 151, 129, 85, 95, 12, 78, 16, 78, 21, 78, 42, 78, 49, 78, 54, 78, 60, 78, 63, - 78, 66, 78, 86, 78, 88, 78, 130, 78, 133, 140, 107, 78, 138, 130, 18, 95, 13, 78, 142, 78, 158, 78, 159, 78, 160, 78, - 162, 78, 176, 78, 179, 78, 182, 78, 206, 78, 205, 78, 196, 78, 198, 78, 194, 78, 215, 78, 222, 78, 237, 78, 223, 78, - 247, 79, 9, 79, 90, 79, 48, 79, 91, 79, 93, 79, 87, 79, 71, 79, 118, 79, 136, 79, 143, 79, 152, 79, 123, 79, 105, 79, - 112, 79, 145, 79, 111, 79, 134, 79, 150, 81, 24, 79, 212, 79, 223, 79, 206, 79, 216, 79, 219, 79, 209, 79, 218, 79, - 208, 79, 228, 79, 229, 80, 26, 80, 40, 80, 20, 80, 42, 80, 37, 80, 5, 79, 28, 79, 246, 80, 33, 80, 41, 80, 44, 79, 254, - 79, 239, 80, 17, 80, 6, 80, 67, 80, 71, 103, 3, 80, 85, 80, 80, 80, 72, 80, 90, 80, 86, 80, 108, 80, 120, 80, 128, 80, - 154, 80, 133, 80, 180, 80, 178, 80, 201, 80, 202, 80, 179, 80, 194, 80, 214, 80, 222, 80, 229, 80, 237, 80, 227, 80, - 238, 80, 249, 80, 245, 81, 9, 81, 1, 81, 2, 81, 22, 81, 21, 81, 20, 81, 26, 81, 33, 81, 58, 81, 55, 81, 60, 81, 59, - 81, 63, 81, 64, 81, 82, 81, 76, 81, 84, 81, 98, 122, 248, 81, 105, 81, 106, 81, 110, 81, 128, 81, 130, 86, 216, 81, - 140, 81, 137, 81, 143, 81, 145, 81, 147, 81, 149, 81, 150, 81, 164, 81, 166, 81, 162, 81, 169, 81, 170, 81, 171, 81, - 179, 81, 177, 81, 178, 81, 176, 81, 181, 81, 189, 81, 197, 81, 201, 81, 219, 81, 224, 134, 85, 81, 233, 81, 237, 81, - 240, 81, 245, 81, 254, 82, 4, 82, 11, 82, 20, 82, 14, 82, 39, 82, 42, 82, 46, 82, 51, 82, 57, 82, 79, 82, 68, 82, 75, - 82, 76, 82, 94, 82, 84, 82, 106, 82, 116, 82, 105, 82, 115, 82, 127, 82, 125, 82, 141, 82, 148, 82, 146, 82, 113, 82, - 136, 82, 145, 143, 168, 143, 167, 82, 172, 82, 173, 82, 188, 82, 181, 82, 193, 82, 205, 82, 215, 82, 222, 82, 227, 82, - 230, 152, 237, 82, 224, 82, 243, 82, 245, 82, 248, 82, 249, 83, 6, 83, 8, 117, 56, 83, 13, 83, 16, 83, 15, 83, 21, 83, - 26, 83, 35, 83, 47, 83, 49, 83, 51, 83, 56, 83, 64, 83, 70, 83, 69, 78, 23, 83, 73, 83, 77, 81, 214, 83, 94, 83, 105, - 83, 110, 89, 24, 83, 123, 83, 119, 83, 130, 83, 150, 83, 160, 83, 166, 83, 165, 83, 174, 83, 176, 83, 182, 83, 195, - 124, 18, 150, 217, 83, 223, 102, 252, 113, 238, 83, 238, 83, 232, 83, 237, 83, 250, 84, 1, 84, 61, 84, 64, 84, 44, 84, - 45, 84, 60, 84, 46, 84, 54, 84, 41, 84, 29, 84, 78, 84, 143, 84, 117, 84, 142, 84, 95, 84, 113, 84, 119, 84, 112, 84, - 146, 84, 123, 84, 128, 84, 118, 84, 132, 84, 144, 84, 134, 84, 199, 84, 162, 84, 184, 84, 165, 84, 172, 84, 196, 84, - 200, 84, 168, 84, 171, 84, 194, 84, 164, 84, 190, 84, 188, 84, 216, 84, 229, 84, 230, 85, 15, 85, 20, 84, 253, 84, 238, - 84, 237, 84, 250, 84, 226, 85, 57, 85, 64, 85, 99, 85, 76, 85, 46, 85, 92, 85, 69, 85, 86, 85, 87, 85, 56, 85, 51, 85, - 93, 85, 153, 85, 128, 84, 175, 85, 138, 85, 159, 85, 123, 85, 126, 85, 152, 85, 158, 85, 174, 85, 124, 85, 131, 85, - 169, 85, 135, 85, 168, 85, 218, 85, 197, 85, 223, 85, 196, 85, 220, 85, 228, 85, 212, 86, 20, 85, 247, 86, 22, 85, 254, - 85, 253, 86, 27, 85, 249, 86, 78, 86, 80, 113, 223, 86, 52, 86, 54, 86, 50, 86, 56, 86, 107, 86, 100, 86, 47, 86, 108, - 86, 106, 86, 134, 86, 128, 86, 138, 86, 160, 86, 148, 86, 143, 86, 165, 86, 174, 86, 182, 86, 180, 86, 194, 86, 188, - 86, 193, 86, 195, 86, 192, 86, 200, 86, 206, 86, 209, 86, 211, 86, 215, 86, 238, 86, 249, 87, 0, 86, 255, 87, 4, 87, - 9, 87, 8, 87, 11, 87, 13, 87, 19, 87, 24, 87, 22, 85, 199, 87, 28, 87, 38, 87, 55, 87, 56, 87, 78, 87, 59, 87, 64, 87, - 79, 87, 105, 87, 192, 87, 136, 87, 97, 87, 127, 87, 137, 87, 147, 87, 160, 87, 179, 87, 164, 87, 170, 87, 176, 87, 195, - 87, 198, 87, 212, 87, 210, 87, 211, 88, 10, 87, 214, 87, 227, 88, 11, 88, 25, 88, 29, 88, 114, 88, 33, 88, 98, 88, 75, - 88, 112, 107, 192, 88, 82, 88, 61, 88, 121, 88, 133, 88, 185, 88, 159, 88, 171, 88, 186, 88, 222, 88, 187, 88, 184, - 88, 174, 88, 197, 88, 211, 88, 209, 88, 215, 88, 217, 88, 216, 88, 229, 88, 220, 88, 228, 88, 223, 88, 239, 88, 250, - 88, 249, 88, 251, 88, 252, 88, 253, 89, 2, 89, 10, 89, 16, 89, 27, 104, 166, 89, 37, 89, 44, 89, 45, 89, 50, 89, 56, - 89, 62, 122, 210, 89, 85, 89, 80, 89, 78, 89, 90, 89, 88, 89, 98, 89, 96, 89, 103, 89, 108, 89, 105, 89, 120, 89, 129, - 89, 157, 79, 94, 79, 171, 89, 163, 89, 178, 89, 198, 89, 232, 89, 220, 89, 141, 89, 217, 89, 218, 90, 37, 90, 31, 90, - 17, 90, 28, 90, 9, 90, 26, 90, 64, 90, 108, 90, 73, 90, 53, 90, 54, 90, 98, 90, 106, 90, 154, 90, 188, 90, 190, 90, - 203, 90, 194, 90, 189, 90, 227, 90, 215, 90, 230, 90, 233, 90, 214, 90, 250, 90, 251, 91, 12, 91, 11, 91, 22, 91, 50, - 90, 208, 91, 42, 91, 54, 91, 62, 91, 67, 91, 69, 91, 64, 91, 81, 91, 85, 91, 90, 91, 91, 91, 101, 91, 105, 91, 112, - 91, 115, 91, 117, 91, 120, 101, 136, 91, 122, 91, 128, 91, 131, 91, 166, 91, 184, 91, 195, 91, 199, 91, 201, 91, 212, - 91, 208, 91, 228, 91, 230, 91, 226, 91, 222, 91, 229, 91, 235, 91, 240, 91, 246, 91, 243, 92, 5, 92, 7, 92, 8, 92, 13, - 92, 19, 92, 32, 92, 34, 92, 40, 92, 56, 92, 57, 92, 65, 92, 70, 92, 78, 92, 83, 92, 80, 92, 79, 91, 113, 92, 108, 92, - 110, 78, 98, 92, 118, 92, 121, 92, 140, 92, 145, 92, 148, 89, 155, 92, 171, 92, 187, 92, 182, 92, 188, 92, 183, 92, - 197, 92, 190, 92, 199, 92, 217, 92, 233, 92, 253, 92, 250, 92, 237, 93, 140, 92, 234, 93, 11, 93, 21, 93, 23, 93, 92, - 93, 31, 93, 27, 93, 17, 93, 20, 93, 34, 93, 26, 93, 25, 93, 24, 93, 76, 93, 82, 93, 78, 93, 75, 93, 108, 93, 115, 93, - 118, 93, 135, 93, 132, 93, 130, 93, 162, 93, 157, 93, 172, 93, 174, 93, 189, 93, 144, 93, 183, 93, 188, 93, 201, 93, - 205, 93, 211, 93, 210, 93, 214, 93, 219, 93, 235, 93, 242, 93, 245, 94, 11, 94, 26, 94, 25, 94, 17, 94, 27, 94, 54, - 94, 55, 94, 68, 94, 67, 94, 64, 94, 78, 94, 87, 94, 84, 94, 95, 94, 98, 94, 100, 94, 71, 94, 117, 94, 118, 94, 122, - 158, 188, 94, 127, 94, 160, 94, 193, 94, 194, 94, 200, 94, 208, 94, 207, 94, 214, 94, 227, 94, 221, 94, 218, 94, 219, - 94, 226, 94, 225, 94, 232, 94, 233, 94, 236, 94, 241, 94, 243, 94, 240, 94, 244, 94, 248, 94, 254, 95, 3, 95, 9, 95, - 93, 95, 92, 95, 11, 95, 17, 95, 22, 95, 41, 95, 45, 95, 56, 95, 65, 95, 72, 95, 76, 95, 78, 95, 47, 95, 81, 95, 86, - 95, 87, 95, 89, 95, 97, 95, 109, 95, 115, 95, 119, 95, 131, 95, 130, 95, 127, 95, 138, 95, 136, 95, 145, 95, 135, 95, - 158, 95, 153, 95, 152, 95, 160, 95, 168, 95, 173, 95, 188, 95, 214, 95, 251, 95, 228, 95, 248, 95, 241, 95, 221, 96, - 179, 95, 255, 96, 33, 96, 96, 96, 25, 96, 16, 96, 41, 96, 14, 96, 49, 96, 27, 96, 21, 96, 43, 96, 38, 96, 15, 96, 58, - 96, 90, 96, 65, 96, 106, 96, 119, 96, 95, 96, 74, 96, 70, 96, 77, 96, 99, 96, 67, 96, 100, 96, 66, 96, 108, 96, 107, - 96, 89, 96, 129, 96, 141, 96, 231, 96, 131, 96, 154, 96, 132, 96, 155, 96, 150, 96, 151, 96, 146, 96, 167, 96, 139, - 96, 225, 96, 184, 96, 224, 96, 211, 96, 180, 95, 240, 96, 189, 96, 198, 96, 181, 96, 216, 97, 77, 97, 21, 97, 6, 96, - 246, 96, 247, 97, 0, 96, 244, 96, 250, 97, 3, 97, 33, 96, 251, 96, 241, 97, 13, 97, 14, 97, 71, 97, 62, 97, 40, 97, - 39, 97, 74, 97, 63, 97, 60, 97, 44, 97, 52, 97, 61, 97, 66, 97, 68, 97, 115, 97, 119, 97, 88, 97, 89, 97, 90, 97, 107, - 97, 116, 97, 111, 97, 101, 97, 113, 97, 95, 97, 93, 97, 83, 97, 117, 97, 153, 97, 150, 97, 135, 97, 172, 97, 148, 97, - 154, 97, 138, 97, 145, 97, 171, 97, 174, 97, 204, 97, 202, 97, 201, 97, 247, 97, 200, 97, 195, 97, 198, 97, 186, 97, - 203, 127, 121, 97, 205, 97, 230, 97, 227, 97, 246, 97, 250, 97, 244, 97, 255, 97, 253, 97, 252, 97, 254, 98, 0, 98, - 8, 98, 9, 98, 13, 98, 12, 98, 20, 98, 27, 98, 30, 98, 33, 98, 42, 98, 46, 98, 48, 98, 50, 98, 51, 98, 65, 98, 78, 98, - 94, 98, 99, 98, 91, 98, 96, 98, 104, 98, 124, 98, 130, 98, 137, 98, 126, 98, 146, 98, 147, 98, 150, 98, 212, 98, 131, - 98, 148, 98, 215, 98, 209, 98, 187, 98, 207, 98, 255, 98, 198, 100, 212, 98, 200, 98, 220, 98, 204, 98, 202, 98, 194, - 98, 199, 98, 155, 98, 201, 99, 12, 98, 238, 98, 241, 99, 39, 99, 2, 99, 8, 98, 239, 98, 245, 99, 80, 99, 62, 99, 77, - 100, 28, 99, 79, 99, 150, 99, 142, 99, 128, 99, 171, 99, 118, 99, 163, 99, 143, 99, 137, 99, 159, 99, 181, 99, 107, - 99, 105, 99, 190, 99, 233, 99, 192, 99, 198, 99, 227, 99, 201, 99, 210, 99, 246, 99, 196, 100, 22, 100, 52, 100, 6, - 100, 19, 100, 38, 100, 54, 101, 29, 100, 23, 100, 40, 100, 15, 100, 103, 100, 111, 100, 118, 100, 78, 101, 42, 100, - 149, 100, 147, 100, 165, 100, 169, 100, 136, 100, 188, 100, 218, 100, 210, 100, 197, 100, 199, 100, 187, 100, 216, 100, - 194, 100, 241, 100, 231, 130, 9, 100, 224, 100, 225, 98, 172, 100, 227, 100, 239, 101, 44, 100, 246, 100, 244, 100, - 242, 100, 250, 101, 0, 100, 253, 101, 24, 101, 28, 101, 5, 101, 36, 101, 35, 101, 43, 101, 52, 101, 53, 101, 55, 101, - 54, 101, 56, 117, 75, 101, 72, 101, 86, 101, 85, 101, 77, 101, 88, 101, 94, 101, 93, 101, 114, 101, 120, 101, 130, 101, - 131, 139, 138, 101, 155, 101, 159, 101, 171, 101, 183, 101, 195, 101, 198, 101, 193, 101, 196, 101, 204, 101, 210, 101, - 219, 101, 217, 101, 224, 101, 225, 101, 241, 103, 114, 102, 10, 102, 3, 101, 251, 103, 115, 102, 53, 102, 54, 102, 52, - 102, 28, 102, 79, 102, 68, 102, 73, 102, 65, 102, 94, 102, 93, 102, 100, 102, 103, 102, 104, 102, 95, 102, 98, 102, - 112, 102, 131, 102, 136, 102, 142, 102, 137, 102, 132, 102, 152, 102, 157, 102, 193, 102, 185, 102, 201, 102, 190, 102, - 188, 102, 196, 102, 184, 102, 214, 102, 218, 102, 224, 102, 63, 102, 230, 102, 233, 102, 240, 102, 245, 102, 247, 103, - 15, 103, 22, 103, 30, 103, 38, 103, 39, 151, 56, 103, 46, 103, 63, 103, 54, 103, 65, 103, 56, 103, 55, 103, 70, 103, - 94, 103, 96, 103, 89, 103, 99, 103, 100, 103, 137, 103, 112, 103, 169, 103, 124, 103, 106, 103, 140, 103, 139, 103, - 166, 103, 161, 103, 133, 103, 183, 103, 239, 103, 180, 103, 236, 103, 179, 103, 233, 103, 184, 103, 228, 103, 222, 103, - 221, 103, 226, 103, 238, 103, 185, 103, 206, 103, 198, 103, 231, 106, 156, 104, 30, 104, 70, 104, 41, 104, 64, 104, - 77, 104, 50, 104, 78, 104, 179, 104, 43, 104, 89, 104, 99, 104, 119, 104, 127, 104, 159, 104, 143, 104, 173, 104, 148, - 104, 157, 104, 155, 104, 131, 106, 174, 104, 185, 104, 116, 104, 181, 104, 160, 104, 186, 105, 15, 104, 141, 104, 126, - 105, 1, 104, 202, 105, 8, 104, 216, 105, 34, 105, 38, 104, 225, 105, 12, 104, 205, 104, 212, 104, 231, 104, 213, 105, - 54, 105, 18, 105, 4, 104, 215, 104, 227, 105, 37, 104, 249, 104, 224, 104, 239, 105, 40, 105, 42, 105, 26, 105, 35, - 105, 33, 104, 198, 105, 121, 105, 119, 105, 92, 105, 120, 105, 107, 105, 84, 105, 126, 105, 110, 105, 57, 105, 116, - 105, 61, 105, 89, 105, 48, 105, 97, 105, 94, 105, 93, 105, 129, 105, 106, 105, 178, 105, 174, 105, 208, 105, 191, 105, - 193, 105, 211, 105, 190, 105, 206, 91, 232, 105, 202, 105, 221, 105, 187, 105, 195, 105, 167, 106, 46, 105, 145, 105, - 160, 105, 156, 105, 149, 105, 180, 105, 222, 105, 232, 106, 2, 106, 27, 105, 255, 107, 10, 105, 249, 105, 242, 105, - 231, 106, 5, 105, 177, 106, 30, 105, 237, 106, 20, 105, 235, 106, 10, 106, 18, 106, 193, 106, 35, 106, 19, 106, 68, - 106, 12, 106, 114, 106, 54, 106, 120, 106, 71, 106, 98, 106, 89, 106, 102, 106, 72, 106, 56, 106, 34, 106, 144, 106, - 141, 106, 160, 106, 132, 106, 162, 106, 163, 106, 151, 134, 23, 106, 187, 106, 195, 106, 194, 106, 184, 106, 179, 106, - 172, 106, 222, 106, 209, 106, 223, 106, 170, 106, 218, 106, 234, 106, 251, 107, 5, 134, 22, 106, 250, 107, 18, 107, - 22, 155, 49, 107, 31, 107, 56, 107, 55, 118, 220, 107, 57, 152, 238, 107, 71, 107, 67, 107, 73, 107, 80, 107, 89, 107, - 84, 107, 91, 107, 95, 107, 97, 107, 120, 107, 121, 107, 127, 107, 128, 107, 132, 107, 131, 107, 141, 107, 152, 107, - 149, 107, 158, 107, 164, 107, 170, 107, 171, 107, 175, 107, 178, 107, 177, 107, 179, 107, 183, 107, 188, 107, 198, 107, - 203, 107, 211, 107, 223, 107, 236, 107, 235, 107, 243, 107, 239, 158, 190, 108, 8, 108, 19, 108, 20, 108, 27, 108, 36, - 108, 35, 108, 94, 108, 85, 108, 98, 108, 106, 108, 130, 108, 141, 108, 154, 108, 129, 108, 155, 108, 126, 108, 104, - 108, 115, 108, 146, 108, 144, 108, 196, 108, 241, 108, 211, 108, 189, 108, 215, 108, 197, 108, 221, 108, 174, 108, 177, - 108, 190, 108, 186, 108, 219, 108, 239, 108, 217, 108, 234, 109, 31, 136, 77, 109, 54, 109, 43, 109, 61, 109, 56, 109, - 25, 109, 53, 109, 51, 109, 18, 109, 12, 109, 99, 109, 147, 109, 100, 109, 90, 109, 121, 109, 89, 109, 142, 109, 149, - 111, 228, 109, 133, 109, 249, 110, 21, 110, 10, 109, 181, 109, 199, 109, 230, 109, 184, 109, 198, 109, 236, 109, 222, - 109, 204, 109, 232, 109, 210, 109, 197, 109, 250, 109, 217, 109, 228, 109, 213, 109, 234, 109, 238, 110, 45, 110, 110, - 110, 46, 110, 25, 110, 114, 110, 95, 110, 62, 110, 35, 110, 107, 110, 43, 110, 118, 110, 77, 110, 31, 110, 67, 110, - 58, 110, 78, 110, 36, 110, 255, 110, 29, 110, 56, 110, 130, 110, 170, 110, 152, 110, 201, 110, 183, 110, 211, 110, 189, - 110, 175, 110, 196, 110, 178, 110, 212, 110, 213, 110, 143, 110, 165, 110, 194, 110, 159, 111, 65, 111, 17, 112, 76, - 110, 236, 110, 248, 110, 254, 111, 63, 110, 242, 111, 49, 110, 239, 111, 50, 110, 204, 111, 62, 111, 19, 110, 247, 111, - 134, 111, 122, 111, 120, 111, 129, 111, 128, 111, 111, 111, 91, 111, 243, 111, 109, 111, 130, 111, 124, 111, 88, 111, - 142, 111, 145, 111, 194, 111, 102, 111, 179, 111, 163, 111, 161, 111, 164, 111, 185, 111, 198, 111, 170, 111, 223, 111, - 213, 111, 236, 111, 212, 111, 216, 111, 241, 111, 238, 111, 219, 112, 9, 112, 11, 111, 250, 112, 17, 112, 1, 112, 15, - 111, 254, 112, 27, 112, 26, 111, 116, 112, 29, 112, 24, 112, 31, 112, 48, 112, 62, 112, 50, 112, 81, 112, 99, 112, 153, - 112, 146, 112, 175, 112, 241, 112, 172, 112, 184, 112, 179, 112, 174, 112, 223, 112, 203, 112, 221, 112, 217, 113, 9, - 112, 253, 113, 28, 113, 25, 113, 101, 113, 85, 113, 136, 113, 102, 113, 98, 113, 76, 113, 86, 113, 108, 113, 143, 113, - 251, 113, 132, 113, 149, 113, 168, 113, 172, 113, 215, 113, 185, 113, 190, 113, 210, 113, 201, 113, 212, 113, 206, 113, - 224, 113, 236, 113, 231, 113, 245, 113, 252, 113, 249, 113, 255, 114, 13, 114, 16, 114, 27, 114, 40, 114, 45, 114, 44, - 114, 48, 114, 50, 114, 59, 114, 60, 114, 63, 114, 64, 114, 70, 114, 75, 114, 88, 114, 116, 114, 126, 114, 130, 114, - 129, 114, 135, 114, 146, 114, 150, 114, 162, 114, 167, 114, 185, 114, 178, 114, 195, 114, 198, 114, 196, 114, 206, 114, - 210, 114, 226, 114, 224, 114, 225, 114, 249, 114, 247, 80, 15, 115, 23, 115, 10, 115, 28, 115, 22, 115, 29, 115, 52, - 115, 47, 115, 41, 115, 37, 115, 62, 115, 78, 115, 79, 158, 216, 115, 87, 115, 106, 115, 104, 115, 112, 115, 120, 115, - 117, 115, 123, 115, 122, 115, 200, 115, 179, 115, 206, 115, 187, 115, 192, 115, 229, 115, 238, 115, 222, 116, 162, 116, - 5, 116, 111, 116, 37, 115, 248, 116, 50, 116, 58, 116, 85, 116, 63, 116, 95, 116, 89, 116, 65, 116, 92, 116, 105, 116, - 112, 116, 99, 116, 106, 116, 118, 116, 126, 116, 139, 116, 158, 116, 167, 116, 202, 116, 207, 116, 212, 115, 241, 116, - 224, 116, 227, 116, 231, 116, 233, 116, 238, 116, 242, 116, 240, 116, 241, 116, 248, 116, 247, 117, 4, 117, 3, 117, - 5, 117, 12, 117, 14, 117, 13, 117, 21, 117, 19, 117, 30, 117, 38, 117, 44, 117, 60, 117, 68, 117, 77, 117, 74, 117, - 73, 117, 91, 117, 70, 117, 90, 117, 105, 117, 100, 117, 103, 117, 107, 117, 109, 117, 120, 117, 118, 117, 134, 117, - 135, 117, 116, 117, 138, 117, 137, 117, 130, 117, 148, 117, 154, 117, 157, 117, 165, 117, 163, 117, 194, 117, 179, 117, - 195, 117, 181, 117, 189, 117, 184, 117, 188, 117, 177, 117, 205, 117, 202, 117, 210, 117, 217, 117, 227, 117, 222, 117, - 254, 117, 255, 117, 252, 118, 1, 117, 240, 117, 250, 117, 242, 117, 243, 118, 11, 118, 13, 118, 9, 118, 31, 118, 39, - 118, 32, 118, 33, 118, 34, 118, 36, 118, 52, 118, 48, 118, 59, 118, 71, 118, 72, 118, 70, 118, 92, 118, 88, 118, 97, - 118, 98, 118, 104, 118, 105, 118, 106, 118, 103, 118, 108, 118, 112, 118, 114, 118, 118, 118, 120, 118, 124, 118, 128, - 118, 131, 118, 136, 118, 139, 118, 142, 118, 150, 118, 147, 118, 153, 118, 154, 118, 176, 118, 180, 118, 184, 118, 185, - 118, 186, 118, 194, 118, 205, 118, 214, 118, 210, 118, 222, 118, 225, 118, 229, 118, 231, 118, 234, 134, 47, 118, 251, - 119, 8, 119, 7, 119, 4, 119, 41, 119, 36, 119, 30, 119, 37, 119, 38, 119, 27, 119, 55, 119, 56, 119, 71, 119, 90, 119, - 104, 119, 107, 119, 91, 119, 101, 119, 127, 119, 126, 119, 121, 119, 142, 119, 139, 119, 145, 119, 160, 119, 158, 119, - 176, 119, 182, 119, 185, 119, 191, 119, 188, 119, 189, 119, 187, 119, 199, 119, 205, 119, 215, 119, 218, 119, 220, 119, - 227, 119, 238, 119, 252, 120, 12, 120, 18, 121, 38, 120, 32, 121, 42, 120, 69, 120, 142, 120, 116, 120, 134, 120, 124, - 120, 154, 120, 140, 120, 163, 120, 181, 120, 170, 120, 175, 120, 209, 120, 198, 120, 203, 120, 212, 120, 190, 120, 188, - 120, 197, 120, 202, 120, 236, 120, 231, 120, 218, 120, 253, 120, 244, 121, 7, 121, 18, 121, 17, 121, 25, 121, 44, 121, - 43, 121, 64, 121, 96, 121, 87, 121, 95, 121, 90, 121, 85, 121, 83, 121, 122, 121, 127, 121, 138, 121, 157, 121, 167, - 159, 75, 121, 170, 121, 174, 121, 179, 121, 185, 121, 186, 121, 201, 121, 213, 121, 231, 121, 236, 121, 225, 121, 227, - 122, 8, 122, 13, 122, 24, 122, 25, 122, 32, 122, 31, 121, 128, 122, 49, 122, 59, 122, 62, 122, 55, 122, 67, 122, 87, - 122, 73, 122, 97, 122, 98, 122, 105, 159, 157, 122, 112, 122, 121, 122, 125, 122, 136, 122, 151, 122, 149, 122, 152, - 122, 150, 122, 169, 122, 200, 122, 176, 122, 182, 122, 197, 122, 196, 122, 191, 144, 131, 122, 199, 122, 202, 122, 205, - 122, 207, 122, 213, 122, 211, 122, 217, 122, 218, 122, 221, 122, 225, 122, 226, 122, 230, 122, 237, 122, 240, 123, 2, - 123, 15, 123, 10, 123, 6, 123, 51, 123, 24, 123, 25, 123, 30, 123, 53, 123, 40, 123, 54, 123, 80, 123, 122, 123, 4, - 123, 77, 123, 11, 123, 76, 123, 69, 123, 117, 123, 101, 123, 116, 123, 103, 123, 112, 123, 113, 123, 108, 123, 110, - 123, 157, 123, 152, 123, 159, 123, 141, 123, 156, 123, 154, 123, 139, 123, 146, 123, 143, 123, 93, 123, 153, 123, 203, - 123, 193, 123, 204, 123, 207, 123, 180, 123, 198, 123, 221, 123, 233, 124, 17, 124, 20, 123, 230, 123, 229, 124, 96, - 124, 0, 124, 7, 124, 19, 123, 243, 123, 247, 124, 23, 124, 13, 123, 246, 124, 35, 124, 39, 124, 42, 124, 31, 124, 55, - 124, 43, 124, 61, 124, 76, 124, 67, 124, 84, 124, 79, 124, 64, 124, 80, 124, 88, 124, 95, 124, 100, 124, 86, 124, 101, - 124, 108, 124, 117, 124, 131, 124, 144, 124, 164, 124, 173, 124, 162, 124, 171, 124, 161, 124, 168, 124, 179, 124, 178, - 124, 177, 124, 174, 124, 185, 124, 189, 124, 192, 124, 197, 124, 194, 124, 216, 124, 210, 124, 220, 124, 226, 155, 59, - 124, 239, 124, 242, 124, 244, 124, 246, 124, 250, 125, 6, 125, 2, 125, 28, 125, 21, 125, 10, 125, 69, 125, 75, 125, - 46, 125, 50, 125, 63, 125, 53, 125, 70, 125, 115, 125, 86, 125, 78, 125, 114, 125, 104, 125, 110, 125, 79, 125, 99, - 125, 147, 125, 137, 125, 91, 125, 143, 125, 125, 125, 155, 125, 186, 125, 174, 125, 163, 125, 181, 125, 199, 125, 189, - 125, 171, 126, 61, 125, 162, 125, 175, 125, 220, 125, 184, 125, 159, 125, 176, 125, 216, 125, 221, 125, 228, 125, 222, - 125, 251, 125, 242, 125, 225, 126, 5, 126, 10, 126, 35, 126, 33, 126, 18, 126, 49, 126, 31, 126, 9, 126, 11, 126, 34, - 126, 70, 126, 102, 126, 59, 126, 53, 126, 57, 126, 67, 126, 55, 126, 50, 126, 58, 126, 103, 126, 93, 126, 86, 126, 94, - 126, 89, 126, 90, 126, 121, 126, 106, 126, 105, 126, 124, 126, 123, 126, 131, 125, 213, 126, 125, 143, 174, 126, 127, - 126, 136, 126, 137, 126, 140, 126, 146, 126, 144, 126, 147, 126, 148, 126, 150, 126, 142, 126, 155, 126, 156, 127, 56, - 127, 58, 127, 69, 127, 76, 127, 77, 127, 78, 127, 80, 127, 81, 127, 85, 127, 84, 127, 88, 127, 95, 127, 96, 127, 104, - 127, 105, 127, 103, 127, 120, 127, 130, 127, 134, 127, 131, 127, 136, 127, 135, 127, 140, 127, 148, 127, 158, 127, 157, - 127, 154, 127, 163, 127, 175, 127, 178, 127, 185, 127, 174, 127, 182, 127, 184, 139, 113, 127, 197, 127, 198, 127, 202, - 127, 213, 127, 212, 127, 225, 127, 230, 127, 233, 127, 243, 127, 249, 152, 220, 128, 6, 128, 4, 128, 11, 128, 18, 128, - 24, 128, 25, 128, 28, 128, 33, 128, 40, 128, 63, 128, 59, 128, 74, 128, 70, 128, 82, 128, 88, 128, 90, 128, 95, 128, - 98, 128, 104, 128, 115, 128, 114, 128, 112, 128, 118, 128, 121, 128, 125, 128, 127, 128, 132, 128, 134, 128, 133, 128, - 155, 128, 147, 128, 154, 128, 173, 81, 144, 128, 172, 128, 219, 128, 229, 128, 217, 128, 221, 128, 196, 128, 218, 128, - 214, 129, 9, 128, 239, 128, 241, 129, 27, 129, 41, 129, 35, 129, 47, 129, 75, 150, 139, 129, 70, 129, 62, 129, 83, 129, - 81, 128, 252, 129, 113, 129, 110, 129, 101, 129, 102, 129, 116, 129, 131, 129, 136, 129, 138, 129, 128, 129, 130, 129, - 160, 129, 149, 129, 164, 129, 163, 129, 95, 129, 147, 129, 169, 129, 176, 129, 181, 129, 190, 129, 184, 129, 189, 129, - 192, 129, 194, 129, 186, 129, 201, 129, 205, 129, 209, 129, 217, 129, 216, 129, 200, 129, 218, 129, 223, 129, 224, 129, - 231, 129, 250, 129, 251, 129, 254, 130, 1, 130, 2, 130, 5, 130, 7, 130, 10, 130, 13, 130, 16, 130, 22, 130, 41, 130, - 43, 130, 56, 130, 51, 130, 64, 130, 89, 130, 88, 130, 93, 130, 90, 130, 95, 130, 100, 130, 98, 130, 104, 130, 106, 130, - 107, 130, 46, 130, 113, 130, 119, 130, 120, 130, 126, 130, 141, 130, 146, 130, 171, 130, 159, 130, 187, 130, 172, 130, - 225, 130, 227, 130, 223, 130, 210, 130, 244, 130, 243, 130, 250, 131, 147, 131, 3, 130, 251, 130, 249, 130, 222, 131, - 6, 130, 220, 131, 9, 130, 217, 131, 53, 131, 52, 131, 22, 131, 50, 131, 49, 131, 64, 131, 57, 131, 80, 131, 69, 131, - 47, 131, 43, 131, 23, 131, 24, 131, 133, 131, 154, 131, 170, 131, 159, 131, 162, 131, 150, 131, 35, 131, 142, 131, 135, - 131, 138, 131, 124, 131, 181, 131, 115, 131, 117, 131, 160, 131, 137, 131, 168, 131, 244, 132, 19, 131, 235, 131, 206, - 131, 253, 132, 3, 131, 216, 132, 11, 131, 193, 131, 247, 132, 7, 131, 224, 131, 242, 132, 13, 132, 34, 132, 32, 131, - 189, 132, 56, 133, 6, 131, 251, 132, 109, 132, 42, 132, 60, 133, 90, 132, 132, 132, 119, 132, 107, 132, 173, 132, 110, - 132, 130, 132, 105, 132, 70, 132, 44, 132, 111, 132, 121, 132, 53, 132, 202, 132, 98, 132, 185, 132, 191, 132, 159, - 132, 217, 132, 205, 132, 187, 132, 218, 132, 208, 132, 193, 132, 198, 132, 214, 132, 161, 133, 33, 132, 255, 132, 244, - 133, 23, 133, 24, 133, 44, 133, 31, 133, 21, 133, 20, 132, 252, 133, 64, 133, 99, 133, 88, 133, 72, 133, 65, 134, 2, - 133, 75, 133, 85, 133, 128, 133, 164, 133, 136, 133, 145, 133, 138, 133, 168, 133, 109, 133, 148, 133, 155, 133, 234, - 133, 135, 133, 156, 133, 119, 133, 126, 133, 144, 133, 201, 133, 186, 133, 207, 133, 185, 133, 208, 133, 213, 133, 221, - 133, 229, 133, 220, 133, 249, 134, 10, 134, 19, 134, 11, 133, 254, 133, 250, 134, 6, 134, 34, 134, 26, 134, 48, 134, - 63, 134, 77, 78, 85, 134, 84, 134, 95, 134, 103, 134, 113, 134, 147, 134, 163, 134, 169, 134, 170, 134, 139, 134, 140, - 134, 182, 134, 175, 134, 196, 134, 198, 134, 176, 134, 201, 136, 35, 134, 171, 134, 212, 134, 222, 134, 233, 134, 236, - 134, 223, 134, 219, 134, 239, 135, 18, 135, 6, 135, 8, 135, 0, 135, 3, 134, 251, 135, 17, 135, 9, 135, 13, 134, 249, - 135, 10, 135, 52, 135, 63, 135, 55, 135, 59, 135, 37, 135, 41, 135, 26, 135, 96, 135, 95, 135, 120, 135, 76, 135, 78, - 135, 116, 135, 87, 135, 104, 135, 110, 135, 89, 135, 83, 135, 99, 135, 106, 136, 5, 135, 162, 135, 159, 135, 130, 135, - 175, 135, 203, 135, 189, 135, 192, 135, 208, 150, 214, 135, 171, 135, 196, 135, 179, 135, 199, 135, 198, 135, 187, 135, - 239, 135, 242, 135, 224, 136, 15, 136, 13, 135, 254, 135, 246, 135, 247, 136, 14, 135, 210, 136, 17, 136, 22, 136, 21, - 136, 34, 136, 33, 136, 49, 136, 54, 136, 57, 136, 39, 136, 59, 136, 68, 136, 66, 136, 82, 136, 89, 136, 94, 136, 98, - 136, 107, 136, 129, 136, 126, 136, 158, 136, 117, 136, 125, 136, 181, 136, 114, 136, 130, 136, 151, 136, 146, 136, 174, - 136, 153, 136, 162, 136, 141, 136, 164, 136, 176, 136, 191, 136, 177, 136, 195, 136, 196, 136, 212, 136, 216, 136, 217, - 136, 221, 136, 249, 137, 2, 136, 252, 136, 244, 136, 232, 136, 242, 137, 4, 137, 12, 137, 10, 137, 19, 137, 67, 137, - 30, 137, 37, 137, 42, 137, 43, 137, 65, 137, 68, 137, 59, 137, 54, 137, 56, 137, 76, 137, 29, 137, 96, 137, 94, 137, - 102, 137, 100, 137, 109, 137, 106, 137, 111, 137, 116, 137, 119, 137, 126, 137, 131, 137, 136, 137, 138, 137, 147, 137, - 152, 137, 161, 137, 169, 137, 166, 137, 172, 137, 175, 137, 178, 137, 186, 137, 189, 137, 191, 137, 192, 137, 218, 137, - 220, 137, 221, 137, 231, 137, 244, 137, 248, 138, 3, 138, 22, 138, 16, 138, 12, 138, 27, 138, 29, 138, 37, 138, 54, - 138, 65, 138, 91, 138, 82, 138, 70, 138, 72, 138, 124, 138, 109, 138, 108, 138, 98, 138, 133, 138, 130, 138, 132, 138, - 168, 138, 161, 138, 145, 138, 165, 138, 166, 138, 154, 138, 163, 138, 196, 138, 205, 138, 194, 138, 218, 138, 235, 138, - 243, 138, 231, 138, 228, 138, 241, 139, 20, 138, 224, 138, 226, 138, 247, 138, 222, 138, 219, 139, 12, 139, 7, 139, - 26, 138, 225, 139, 22, 139, 16, 139, 23, 139, 32, 139, 51, 151, 171, 139, 38, 139, 43, 139, 62, 139, 40, 139, 65, 139, - 76, 139, 79, 139, 78, 139, 73, 139, 86, 139, 91, 139, 90, 139, 107, 139, 95, 139, 108, 139, 111, 139, 116, 139, 125, - 139, 128, 139, 140, 139, 142, 139, 146, 139, 147, 139, 150, 139, 153, 139, 154, 140, 58, 140, 65, 140, 63, 140, 72, - 140, 76, 140, 78, 140, 80, 140, 85, 140, 98, 140, 108, 140, 120, 140, 122, 140, 130, 140, 137, 140, 133, 140, 138, 140, - 141, 140, 142, 140, 148, 140, 124, 140, 152, 98, 29, 140, 173, 140, 170, 140, 189, 140, 178, 140, 179, 140, 174, 140, - 182, 140, 200, 140, 193, 140, 228, 140, 227, 140, 218, 140, 253, 140, 250, 140, 251, 141, 4, 141, 5, 141, 10, 141, 7, - 141, 15, 141, 13, 141, 16, 159, 78, 141, 19, 140, 205, 141, 20, 141, 22, 141, 103, 141, 109, 141, 113, 141, 115, 141, - 129, 141, 153, 141, 194, 141, 190, 141, 186, 141, 207, 141, 218, 141, 214, 141, 204, 141, 219, 141, 203, 141, 234, 141, - 235, 141, 223, 141, 227, 141, 252, 142, 8, 142, 9, 141, 255, 142, 29, 142, 30, 142, 16, 142, 31, 142, 66, 142, 53, 142, - 48, 142, 52, 142, 74, 142, 71, 142, 73, 142, 76, 142, 80, 142, 72, 142, 89, 142, 100, 142, 96, 142, 42, 142, 99, 142, - 85, 142, 118, 142, 114, 142, 124, 142, 129, 142, 135, 142, 133, 142, 132, 142, 139, 142, 138, 142, 147, 142, 145, 142, - 148, 142, 153, 142, 170, 142, 161, 142, 172, 142, 176, 142, 198, 142, 177, 142, 190, 142, 197, 142, 200, 142, 203, 142, - 219, 142, 227, 142, 252, 142, 251, 142, 235, 142, 254, 143, 10, 143, 5, 143, 21, 143, 18, 143, 25, 143, 19, 143, 28, - 143, 31, 143, 27, 143, 12, 143, 38, 143, 51, 143, 59, 143, 57, 143, 69, 143, 66, 143, 62, 143, 76, 143, 73, 143, 70, - 143, 78, 143, 87, 143, 92, 143, 98, 143, 99, 143, 100, 143, 156, 143, 159, 143, 163, 143, 173, 143, 175, 143, 183, 143, - 218, 143, 229, 143, 226, 143, 234, 143, 239, 144, 135, 143, 244, 144, 5, 143, 249, 143, 250, 144, 17, 144, 21, 144, - 33, 144, 13, 144, 30, 144, 22, 144, 11, 144, 39, 144, 54, 144, 53, 144, 57, 143, 248, 144, 79, 144, 80, 144, 81, 144, - 82, 144, 14, 144, 73, 144, 62, 144, 86, 144, 88, 144, 94, 144, 104, 144, 111, 144, 118, 150, 168, 144, 114, 144, 130, - 144, 125, 144, 129, 144, 128, 144, 138, 144, 137, 144, 143, 144, 168, 144, 175, 144, 177, 144, 181, 144, 226, 144, 228, - 98, 72, 144, 219, 145, 2, 145, 18, 145, 25, 145, 50, 145, 48, 145, 74, 145, 86, 145, 88, 145, 99, 145, 101, 145, 105, - 145, 115, 145, 114, 145, 139, 145, 137, 145, 130, 145, 162, 145, 171, 145, 175, 145, 170, 145, 181, 145, 180, 145, 186, - 145, 192, 145, 193, 145, 201, 145, 203, 145, 208, 145, 214, 145, 223, 145, 225, 145, 219, 145, 252, 145, 245, 145, 246, - 146, 30, 145, 255, 146, 20, 146, 44, 146, 21, 146, 17, 146, 94, 146, 87, 146, 69, 146, 73, 146, 100, 146, 72, 146, 149, - 146, 63, 146, 75, 146, 80, 146, 156, 146, 150, 146, 147, 146, 155, 146, 90, 146, 207, 146, 185, 146, 183, 146, 233, - 147, 15, 146, 250, 147, 68, 147, 46, 147, 25, 147, 34, 147, 26, 147, 35, 147, 58, 147, 53, 147, 59, 147, 92, 147, 96, - 147, 124, 147, 110, 147, 86, 147, 176, 147, 172, 147, 173, 147, 148, 147, 185, 147, 214, 147, 215, 147, 232, 147, 229, - 147, 216, 147, 195, 147, 221, 147, 208, 147, 200, 147, 228, 148, 26, 148, 20, 148, 19, 148, 3, 148, 7, 148, 16, 148, - 54, 148, 43, 148, 53, 148, 33, 148, 58, 148, 65, 148, 82, 148, 68, 148, 91, 148, 96, 148, 98, 148, 94, 148, 106, 146, - 41, 148, 112, 148, 117, 148, 119, 148, 125, 148, 90, 148, 124, 148, 126, 148, 129, 148, 127, 149, 130, 149, 135, 149, - 138, 149, 148, 149, 150, 149, 152, 149, 153, 149, 160, 149, 168, 149, 167, 149, 173, 149, 188, 149, 187, 149, 185, 149, - 190, 149, 202, 111, 246, 149, 195, 149, 205, 149, 204, 149, 213, 149, 212, 149, 214, 149, 220, 149, 225, 149, 229, 149, - 226, 150, 33, 150, 40, 150, 46, 150, 47, 150, 66, 150, 76, 150, 79, 150, 75, 150, 119, 150, 92, 150, 94, 150, 93, 150, - 95, 150, 102, 150, 114, 150, 108, 150, 141, 150, 152, 150, 149, 150, 151, 150, 170, 150, 167, 150, 177, 150, 178, 150, - 176, 150, 180, 150, 182, 150, 184, 150, 185, 150, 206, 150, 203, 150, 201, 150, 205, 137, 77, 150, 220, 151, 13, 150, - 213, 150, 249, 151, 4, 151, 6, 151, 8, 151, 19, 151, 14, 151, 17, 151, 15, 151, 22, 151, 25, 151, 36, 151, 42, 151, - 48, 151, 57, 151, 61, 151, 62, 151, 68, 151, 70, 151, 72, 151, 66, 151, 73, 151, 92, 151, 96, 151, 100, 151, 102, 151, - 104, 82, 210, 151, 107, 151, 113, 151, 121, 151, 133, 151, 124, 151, 129, 151, 122, 151, 134, 151, 139, 151, 143, 151, - 144, 151, 156, 151, 168, 151, 166, 151, 163, 151, 179, 151, 180, 151, 195, 151, 198, 151, 200, 151, 203, 151, 220, 151, - 237, 159, 79, 151, 242, 122, 223, 151, 246, 151, 245, 152, 15, 152, 12, 152, 56, 152, 36, 152, 33, 152, 55, 152, 61, - 152, 70, 152, 79, 152, 75, 152, 107, 152, 111, 152, 112, 152, 113, 152, 116, 152, 115, 152, 170, 152, 175, 152, 177, - 152, 182, 152, 196, 152, 195, 152, 198, 152, 233, 152, 235, 153, 3, 153, 9, 153, 18, 153, 20, 153, 24, 153, 33, 153, - 29, 153, 30, 153, 36, 153, 32, 153, 44, 153, 46, 153, 61, 153, 62, 153, 66, 153, 73, 153, 69, 153, 80, 153, 75, 153, - 81, 153, 82, 153, 76, 153, 85, 153, 151, 153, 152, 153, 165, 153, 173, 153, 174, 153, 188, 153, 223, 153, 219, 153, - 221, 153, 216, 153, 209, 153, 237, 153, 238, 153, 241, 153, 242, 153, 251, 153, 248, 154, 1, 154, 15, 154, 5, 153, 226, - 154, 25, 154, 43, 154, 55, 154, 69, 154, 66, 154, 64, 154, 67, 154, 62, 154, 85, 154, 77, 154, 91, 154, 87, 154, 95, - 154, 98, 154, 101, 154, 100, 154, 105, 154, 107, 154, 106, 154, 173, 154, 176, 154, 188, 154, 192, 154, 207, 154, 209, - 154, 211, 154, 212, 154, 222, 154, 223, 154, 226, 154, 227, 154, 230, 154, 239, 154, 235, 154, 238, 154, 244, 154, 241, - 154, 247, 154, 251, 155, 6, 155, 24, 155, 26, 155, 31, 155, 34, 155, 35, 155, 37, 155, 39, 155, 40, 155, 41, 155, 42, - 155, 46, 155, 47, 155, 50, 155, 68, 155, 67, 155, 79, 155, 77, 155, 78, 155, 81, 155, 88, 155, 116, 155, 147, 155, 131, - 155, 145, 155, 150, 155, 151, 155, 159, 155, 160, 155, 168, 155, 180, 155, 192, 155, 202, 155, 185, 155, 198, 155, 207, - 155, 209, 155, 210, 155, 227, 155, 226, 155, 228, 155, 212, 155, 225, 156, 58, 155, 242, 155, 241, 155, 240, 156, 21, - 156, 20, 156, 9, 156, 19, 156, 12, 156, 6, 156, 8, 156, 18, 156, 10, 156, 4, 156, 46, 156, 27, 156, 37, 156, 36, 156, - 33, 156, 48, 156, 71, 156, 50, 156, 70, 156, 62, 156, 90, 156, 96, 156, 103, 156, 118, 156, 120, 156, 231, 156, 236, - 156, 240, 157, 9, 157, 8, 156, 235, 157, 3, 157, 6, 157, 42, 157, 38, 157, 175, 157, 35, 157, 31, 157, 68, 157, 21, - 157, 18, 157, 65, 157, 63, 157, 62, 157, 70, 157, 72, 157, 93, 157, 94, 157, 100, 157, 81, 157, 80, 157, 89, 157, 114, - 157, 137, 157, 135, 157, 171, 157, 111, 157, 122, 157, 154, 157, 164, 157, 169, 157, 178, 157, 196, 157, 193, 157, 187, - 157, 184, 157, 186, 157, 198, 157, 207, 157, 194, 157, 217, 157, 211, 157, 248, 157, 230, 157, 237, 157, 239, 157, 253, - 158, 26, 158, 27, 158, 30, 158, 117, 158, 121, 158, 125, 158, 129, 158, 136, 158, 139, 158, 140, 158, 146, 158, 149, - 158, 145, 158, 157, 158, 165, 158, 169, 158, 184, 158, 170, 158, 173, 151, 97, 158, 204, 158, 206, 158, 207, 158, 208, - 158, 212, 158, 220, 158, 222, 158, 221, 158, 224, 158, 229, 158, 232, 158, 239, 158, 244, 158, 246, 158, 247, 158, 249, - 158, 251, 158, 252, 158, 253, 159, 7, 159, 8, 118, 183, 159, 21, 159, 33, 159, 44, 159, 62, 159, 74, 159, 82, 159, 84, - 159, 99, 159, 95, 159, 96, 159, 97, 159, 102, 159, 103, 159, 108, 159, 106, 159, 119, 159, 114, 159, 118, 159, 149, - 159, 156, 159, 160, 88, 47, 105, 199, 144, 89, 116, 100, 81, 220, 113, 153, 48, 0, 48, 1, 48, 2, 255, 12, 255, 14, 48, - 251, 255, 26, 255, 27, 255, 31, 255, 1, 48, 155, 48, 156, 0, 180, 255, 64, 0, 168, 255, 62, 32, 62, 255, 63, 48, 253, - 48, 254, 48, 157, 48, 158, 48, 3, 78, 221, 48, 5, 48, 6, 48, 7, 48, 252, 32, 20, 32, 16, 255, 15, 255, 60, 48, 28, 32, - 22, 255, 92, 32, 38, 32, 37, 32, 24, 32, 25, 32, 28, 32, 29, 255, 8, 255, 9, 48, 20, 48, 21, 255, 59, 255, 61, 255, - 91, 255, 93, 48, 8, 48, 9, 48, 10, 48, 11, 48, 12, 48, 13, 48, 14, 48, 15, 48, 16, 48, 17, 255, 11, 34, 18, 0, 177, - 0, 215, 0, 247, 255, 29, 34, 96, 255, 28, 255, 30, 34, 102, 34, 103, 34, 30, 34, 52, 38, 66, 38, 64, 0, 176, 32, 50, - 32, 51, 33, 3, 0, 165, 255, 4, 0, 162, 0, 163, 255, 5, 255, 3, 255, 6, 255, 10, 255, 32, 0, 167, 38, 6, 38, 5, 37, 203, - 37, 207, 37, 206, 37, 199, 37, 198, 37, 161, 37, 160, 37, 179, 37, 178, 37, 189, 37, 188, 32, 59, 48, 18, 33, 146, 33, - 144, 33, 145, 33, 147, 48, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 8, 34, 11, 34, - 134, 34, 135, 34, 130, 34, 131, 34, 42, 34, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 39, 34, 40, 0, 172, - 33, 210, 33, 212, 34, 0, 34, 3, 34, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 32, 34, 165, - 35, 18, 34, 2, 34, 7, 34, 97, 34, 82, 34, 106, 34, 107, 34, 26, 34, 61, 34, 29, 34, 53, 34, 43, 34, 44, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 43, 32, 48, 38, 111, 38, 109, 38, 106, 32, 32, 32, 33, 0, 182, 34, 44, 0, 0, 0, 0, - 0, 0, 37, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 145, 3, 146, 3, 147, 3, 148, 3, 149, 3, 150, 3, 151, 3, - 152, 3, 153, 3, 154, 3, 155, 3, 156, 3, 157, 3, 158, 3, 159, 3, 160, 3, 161, 3, 163, 3, 164, 3, 165, 3, 166, 3, 167, - 3, 168, 3, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 177, 3, 178, 3, 179, 3, 180, 3, 181, 3, 182, 3, 183, - 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 3, 192, 3, 193, 3, 195, 3, 196, 3, 197, 3, 198, 3, 199, - 3, 200, 3, 201, 4, 16, 4, 17, 4, 18, 4, 19, 4, 20, 4, 21, 4, 1, 4, 22, 4, 23, 4, 24, 4, 25, 4, 26, 4, 27, 4, 28, 4, - 29, 4, 30, 4, 31, 4, 32, 4, 33, 4, 34, 4, 35, 4, 36, 4, 37, 4, 38, 4, 39, 4, 40, 4, 41, 4, 42, 4, 43, 4, 44, 4, 45, - 4, 46, 4, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 48, 4, 49, - 4, 50, 4, 51, 4, 52, 4, 53, 4, 81, 4, 54, 4, 55, 4, 56, 4, 57, 4, 58, 4, 59, 4, 60, 4, 61, 4, 62, 4, 63, 4, 64, 4, 65, - 4, 66, 4, 67, 4, 68, 4, 69, 4, 70, 4, 71, 4, 72, 4, 73, 4, 74, 4, 75, 4, 76, 4, 77, 4, 78, 4, 79, 37, 0, 37, 2, 37, - 12, 37, 16, 37, 24, 37, 20, 37, 28, 37, 44, 37, 36, 37, 52, 37, 60, 37, 1, 37, 3, 37, 15, 37, 19, 37, 27, 37, 23, 37, - 35, 37, 51, 37, 43, 37, 59, 37, 75, 37, 32, 37, 47, 37, 40, 37, 55, 37, 63, 37, 29, 37, 48, 37, 37, 37, 56, 37, 66 -}; diff --git a/source/mload/fatffs_module.h b/source/mload/fatffs_module.h deleted file mode 100644 index 8f591c37..00000000 --- a/source/mload/fatffs_module.h +++ /dev/null @@ -1,3 +0,0 @@ -#define size_fatffs_module 58440 - -extern unsigned char fatffs_module[58440]; diff --git a/source/mload/mload_modules.c b/source/mload/mload_modules.c index c3346241..a1090d51 100644 --- a/source/mload/mload_modules.c +++ b/source/mload/mload_modules.c @@ -5,6 +5,8 @@ #define ALIGNED(x) __attribute__((aligned(x))) +#define DEBUG_MLOAD + /* Used for Hermes NAND emulation */ int global_mount; int sd_ok=0; @@ -287,7 +289,7 @@ int load_fatffs_module(u8 *discid) if(mload_init()<0) return -1; - mload_elf((void *) fatffs_module, &my_data_elf); + mload_elf((void *) fatffs_module_bin, &my_data_elf); my_thread_id= mload_run_thread(my_data_elf.start, my_data_elf.stack, my_data_elf.size_stack, my_data_elf.prio); if(my_thread_id<0) return -1; diff --git a/source/mload/mload_modules.h b/source/mload/mload_modules.h index 12a54af2..1d4efd12 100644 --- a/source/mload/mload_modules.h +++ b/source/mload/mload_modules.h @@ -3,7 +3,7 @@ #include "dip_plugin.h" #include "mload.h" -#include "fatffs_module.h" +#include "fatffs_module_bin.h" #ifdef __cplusplus extern "C" { diff --git a/source/prompts/ProgressWindow.cpp b/source/prompts/ProgressWindow.cpp index b1ae11f7..3dfb0db4 100644 --- a/source/prompts/ProgressWindow.cpp +++ b/source/prompts/ProgressWindow.cpp @@ -17,6 +17,7 @@ #include "prompts/ProgressWindow.h" #include "usbloader/wbfs.h" #include "usbloader/utils.h" +#include "usbloader/spinner.h" /*** Variables used only in this file ***/ static lwp_t progressthread = LWP_THREAD_NULL; @@ -32,8 +33,8 @@ static f32 progressDone = 0.0; static bool showTime = false; static bool showSize = false; static bool changed = true; -static s32 gameinstalldone = 0; -static s32 gameinstalltotal = -1; +static u32 gameinstalldone = 0; +static u32 gameinstalltotal = 0; static time_t start; /*** Extern variables ***/ @@ -51,10 +52,10 @@ extern void HaltGui(); ***************************************************************************/ static void GameInstallProgress() { - if (gameinstalltotal <= 0) + if (gameinstalltotal == 0) return; - int oldinstalldone = gameinstalldone; + u32 oldinstalldone = gameinstalldone; GetProgressValue(&gameinstalldone, &gameinstalltotal); @@ -312,7 +313,7 @@ static void * ProgressThread (void *arg) { ***************************************************************************/ void ProgressStop() { showProgress = 0; - gameinstalltotal = -1; + gameinstalltotal = 0; // wait for thread to finish while (!LWP_ThreadIsSuspended(progressthread)) diff --git a/source/prompts/PromptWindows.cpp b/source/prompts/PromptWindows.cpp index cc6d0b5e..22909ee3 100644 --- a/source/prompts/PromptWindows.cpp +++ b/source/prompts/PromptWindows.cpp @@ -10,7 +10,7 @@ #include "usbloader/wbfs.h" #include "usbloader/wdvd.h" #include "usbloader/partition_usbloader.h" -#include "usbloader/usbstorage.h" +#include "usbloader/usbstorage2.h" #include "usbloader/getentries.h" #include "language/gettext.h" #include "libwiigui/gui.h" diff --git a/source/settings/Settings.cpp b/source/settings/Settings.cpp index 73797047..29e899b5 100644 --- a/source/settings/Settings.cpp +++ b/source/settings/Settings.cpp @@ -2201,6 +2201,7 @@ int MenuSettings() if (Settings.partition != settingspartitionold) { reloaddatabasefile = true; CloseXMLDatabase(); + CFG_Cleanup(); } OpenXMLDatabase(Settings.titlestxt_path, Settings.db_language, Settings.db_JPtoEN, reloaddatabasefile, Settings.titlesOverride==1?true:false, true); // open file, reload titles, keep in memory } diff --git a/source/settings/cfg.c b/source/settings/cfg.c index f6df6c15..e66fc208 100644 --- a/source/settings/cfg.c +++ b/source/settings/cfg.c @@ -1882,12 +1882,12 @@ void CFG_LoadGlobal(void) { void CFG_Cleanup(void) { int i = 0; - for(i = 0; i < num_title; i++) - { - if(cfg_title[i].title) - free(cfg_title[i].title); - cfg_title[i].title = NULL; - } + for(i = 0; i < num_title; i++) + { + if(cfg_title[i].title) + free(cfg_title[i].title); + cfg_title[i].title = NULL; + } if (cfg_title) { free(cfg_title); cfg_title = NULL; diff --git a/source/sys.cpp b/source/sys.cpp index 243beeec..eb56c0ce 100644 --- a/source/sys.cpp +++ b/source/sys.cpp @@ -3,7 +3,7 @@ #include #include "usbloader/wdvd.h" -#include "usbloader/usbstorage.h" +#include "usbloader/usbstorage2.h" #include "usbloader/disc.h" #include "usbloader/wbfs.h" #include "usbloader/partition_usbloader.h" @@ -78,7 +78,7 @@ int Sys_ChangeIos(int ios) { WDVD_Close(); - USBStorage_Deinit(); + USBStorage2_Deinit(); s32 ret = IOS_ReloadIOSsafe(ios); if (ret < 0) { @@ -122,7 +122,7 @@ int Sys_IosReload(int IOS) { WDVD_Close(); - USBStorage_Deinit(); + USBStorage2_Deinit(); if (IOS == 249 || IOS == 222 || IOS == 223) { for (int i = 0; i < 10; i++) { @@ -132,7 +132,7 @@ int Sys_IosReload(int IOS) { ret = WBFS_Init(WBFS_DEVICE_USB); if (!(ret < 0)) break; sleep(1); - USBStorage_Deinit(); + USBStorage2_Deinit(); } if (ret>=0) { ret = Disc_Init(); diff --git a/source/usbloader/disc.h b/source/usbloader/disc.h index a06827e9..7d1f6d24 100644 --- a/source/usbloader/disc.h +++ b/source/usbloader/disc.h @@ -19,7 +19,8 @@ extern "C" { u8 bufsize; /* Padding */ - u8 unused1[14]; + u8 is_ciso; + u8 unused1[13]; /* Magic word */ u32 magic; diff --git a/source/usbloader/frag.c b/source/usbloader/frag.c index 3bb4651d..c30c009b 100644 --- a/source/usbloader/frag.c +++ b/source/usbloader/frag.c @@ -8,7 +8,7 @@ #include "libntfs/ntfs.h" #include "libwbfs/libwbfs.h" #include "wbfs.h" -#include "usbstorage.h" +#include "usbstorage2.h" #include "frag.h" #include "utils.h" diff --git a/source/usbloader/partition_usbloader.c b/source/usbloader/partition_usbloader.c index 082972fe..590e2651 100644 --- a/source/usbloader/partition_usbloader.c +++ b/source/usbloader/partition_usbloader.c @@ -7,7 +7,7 @@ #include "partition_usbloader.h" #include "sdhc.h" -#include "usbstorage.h" +#include "usbstorage2.h" #include "utils.h" #include "wbfs.h" #include "libwbfs/libwbfs.h" @@ -33,12 +33,12 @@ s32 Partition_GetEntries(u32 device, partitionEntry *outbuf, u32 *outval) switch (device) { case WBFS_DEVICE_USB: { /* Get sector size */ - ret = USBStorage_GetCapacity(§or_size); + ret = USBStorage2_GetCapacity(§or_size); if (ret == 0) return -1; /* Read partition table */ - ret = USBStorage_ReadSectors(0, 1, &table); + ret = USBStorage2_ReadSectors(0, 1, &table); if (ret < 0) return ret; @@ -86,7 +86,7 @@ bool Device_ReadSectors(u32 device, u32 sector, u32 count, void *buffer) /* Read from specified device */ switch (device) { case WBFS_DEVICE_USB: - ret = USBStorage_ReadSectors(sector, count, buffer); + ret = USBStorage2_ReadSectors(sector, count, buffer); if (ret < 0) return false; return true; @@ -105,7 +105,7 @@ bool Device_WriteSectors(u32 device, u32 sector, u32 count, void *buffer) /* Read from specified device */ switch (device) { case WBFS_DEVICE_USB: - ret = USBStorage_WriteSectors(sector, count, buffer); + ret = USBStorage2_WriteSectors(sector, count, buffer); if (ret < 0) return false; return true; @@ -129,7 +129,7 @@ s32 Partition_GetEntriesEx(u32 device, partitionEntry *outbuf, u32 *psect_size, // Get sector size switch (device) { case WBFS_DEVICE_USB: - ret = USBStorage_GetCapacity(§or_size); + ret = USBStorage2_GetCapacity(§or_size); if (ret == 0) return -1; break; case WBFS_DEVICE_SDHC: diff --git a/source/usbloader/spinner.c b/source/usbloader/spinner.c new file mode 100644 index 00000000..14d22c6d --- /dev/null +++ b/source/usbloader/spinner.c @@ -0,0 +1,17 @@ +#include +#include "libwbfs/libwbfs.h" + +static u32 done = 0; +static u32 total = 0; + +void WBFS_Spinner(u32 d, u32 t) +{ + done = d; + total = t; +} + +void GetProgressValue(u32 * d, u32 * t) +{ + *d = done; + *t = total; +} diff --git a/source/usbloader/spinner.h b/source/usbloader/spinner.h new file mode 100644 index 00000000..dc0e9c3a --- /dev/null +++ b/source/usbloader/spinner.h @@ -0,0 +1,15 @@ +#ifndef SPINNER_H_ +#define SPINNER_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +void WBFS_Spinner(u32 d, u32 t); +void GetProgressValue(u32 * d, u32 * t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/source/usbloader/usbstorage.c b/source/usbloader/usbstorage.c deleted file mode 100644 index d9657a00..00000000 --- a/source/usbloader/usbstorage.c +++ /dev/null @@ -1,382 +0,0 @@ -/*------------------------------------------------------------- - -usbstorage_starlet.c -- USB mass storage support, inside starlet -Copyright (C) 2009 Kwiirk - -If this driver is linked before libogc, this will replace the original -usbstorage driver by svpe from libogc -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any -damages arising from the use of this software. - -Permission is granted to anyone to use this software for any -purpose, including commercial applications, and to alter it and -redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you -must not claim that you wrote the original software. If you use -this software in a product, an acknowledgment in the product -documentation would be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and -must not be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source -distribution. - --------------------------------------------------------------*/ - -#include -#include -#include -#include - -/* IOCTL commands */ -#define UMS_BASE (('U'<<24)|('M'<<16)|('S'<<8)) -#define USB_IOCTL_UMS_INIT (UMS_BASE+0x1) -#define USB_IOCTL_UMS_GET_CAPACITY (UMS_BASE+0x2) -#define USB_IOCTL_UMS_READ_SECTORS (UMS_BASE+0x3) -#define USB_IOCTL_UMS_WRITE_SECTORS (UMS_BASE+0x4) -#define USB_IOCTL_UMS_READ_STRESS (UMS_BASE+0x5) -#define USB_IOCTL_UMS_SET_VERBOSE (UMS_BASE+0x6) -#define USB_IOCTL_UMS_UNMOUNT (UMS_BASE+0x10) -#define USB_IOCTL_UMS_WATCHDOG (UMS_BASE+0x80) - -#define WBFS_BASE (('W'<<24)|('F'<<16)|('S'<<8)) -#define USB_IOCTL_WBFS_OPEN_DISC (WBFS_BASE+0x1) -#define USB_IOCTL_WBFS_READ_DISC (WBFS_BASE+0x2) -#define USB_IOCTL_WBFS_READ_DIRECT_DISC (WBFS_BASE+0x3) -#define USB_IOCTL_WBFS_STS_DISC (WBFS_BASE+0x4) -#define USB_IOCTL_WBFS_SET_DEVICE (WBFS_BASE+0x50) -#define USB_IOCTL_WBFS_SET_FRAGLIST (WBFS_BASE+0x51) - -#define UMS_HEAPSIZE 0x1000 - -/* Variables */ -static char fs[] ATTRIBUTE_ALIGN(32) = "/dev/usb2"; -static char fs2[] ATTRIBUTE_ALIGN(32) = "/dev/usb/ehc"; - -static s32 hid = -1, fd = -1; -static u32 sector_size; - -s32 USBStorage_GetCapacity(u32 *_sector_size) { - if (fd > 0) { - s32 ret; - - ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_GET_CAPACITY, ":i", §or_size); - - if (ret && _sector_size) - *_sector_size = sector_size; - - return ret; - } - - return IPC_ENOENT; -} - -s32 USBStorage_Init(void) { - s32 ret; - - /* Already open */ - if (fd > 0) - return 0; - - /* Create heap */ - if (hid < 0) { - hid = iosCreateHeap(UMS_HEAPSIZE); - if (hid < 0) - return IPC_ENOMEM; - } - - /* Open USB device */ - fd = IOS_Open(fs, 0); - if (fd < 0) - fd = IOS_Open(fs2, 0); - if (fd < 0) - return fd; - - /* Initialize USB storage */ - ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_INIT, ":"); - if (ret<0) goto err; - - /* Get device capacity */ - ret = USBStorage_GetCapacity(NULL); - if (!ret) - goto err; - - return 0; - -err: - /* Close USB device */ - if (fd > 0) { - IOS_Close(fd); - fd = -1; - } - - return -1; -} - -/** Hermes **/ -s32 USBStorage_Watchdog(u32 on_off) { - if (fd >= 0) { - s32 ret; - - ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_WATCHDOG, "i:", on_off); - - return ret; - } - - return IPC_ENOENT; -} - -s32 USBStorage_Umount(void) { - if (fd >= 0) { - s32 ret; - ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_UNMOUNT, ":"); - return ret; - } - - return IPC_ENOENT; -} - -void USBStorage_Deinit(void) { - /* Close USB device */ - if (fd > 0) { - IOS_Close(fd); - fd = -1; - } -} - -s32 USBStorage_ReadSectors(u32 sector, u32 numSectors, void *buffer) { - -// void *buf = (void *)buffer; - u32 len = (sector_size * numSectors); - - s32 ret; - - /* Device not opened */ - if (fd < 0) - return fd; - - - ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_READ_SECTORS, "ii:d", sector, numSectors, buffer, len); - return ret; -} - -s32 USBStorage_WriteSectors(u32 sector, u32 numSectors, const void *buffer) { - u32 len = (sector_size * numSectors); - - s32 ret; - - /* Device not opened */ - if (fd < 0) - return fd; - - /* Write data */ - ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_WRITE_SECTORS, "ii:d", sector, numSectors, buffer, len); - - return ret; -} - -static bool __io_usb_Startup(void) -{ - return USBStorage_Init() >= 0; -} - -static bool __io_usb_IsInserted(void) -{ - s32 ret; - if (fd < 0) return false; - ret = USBStorage_GetCapacity(NULL); - if (ret == 0) return false; - return true; -} - -bool __io_usb_ReadSectors(u32 sector, u32 count, void *buffer) -{ - s32 ret = USBStorage_ReadSectors(sector, count, buffer); - return ret > 0; -} - -bool __io_usb_WriteSectors(u32 sector, u32 count, void *buffer) -{ - s32 ret = USBStorage_WriteSectors(sector, count, buffer); - return ret > 0; -} - -static bool __io_usb_ClearStatus(void) -{ - return true; -} - -static bool __io_usb_Shutdown(void) -{ - // do nothing - return true; -} - -static bool __io_usb_NOP(void) -{ - // do nothing - return true; -} - -const DISC_INTERFACE __io_usbstorage_ro = { - DEVICE_TYPE_WII_USB, - FEATURE_MEDIUM_CANREAD | FEATURE_WII_USB, - (FN_MEDIUM_STARTUP) &__io_usb_Startup, - (FN_MEDIUM_ISINSERTED) &__io_usb_IsInserted, - (FN_MEDIUM_READSECTORS) &__io_usb_ReadSectors, - (FN_MEDIUM_WRITESECTORS) &__io_usb_NOP, //&__io_usb_WriteSectors, - (FN_MEDIUM_CLEARSTATUS) &__io_usb_ClearStatus, - (FN_MEDIUM_SHUTDOWN) &__io_usb_Shutdown -}; - -s32 USBStorage_WBFS_Open(char *buffer) -{ - u32 len = 8; - - s32 ret; - - /* Device not opened */ - if (fd < 0) - return fd; - - extern u32 wbfs_part_lba; - u32 part = wbfs_part_lba; - - /* Read data */ - ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_WBFS_OPEN_DISC, "dd:", buffer, len, &part, 4); - - return ret; -} - -// woffset is in 32bit words, len is in bytes -s32 USBStorage_WBFS_Read(u32 woffset, u32 len, void *buffer) -{ - s32 ret; - - USBStorage_Init(); - /* Device not opened */ - if (fd < 0) - return fd; - - /* Read data */ - ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_WBFS_READ_DISC, "ii:d", woffset, len, buffer, len); - - return ret; -} - - -s32 USBStorage_WBFS_SetDevice(int dev) -{ - s32 ret; - static s32 retval = 0; - retval = 0; - USBStorage_Init(); - // Device not opened - if (fd < 0) return fd; - // ioctl - ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_WBFS_SET_DEVICE, "i:i", dev, &retval); - if (retval) return retval; - return ret; -} - -s32 USBStorage_WBFS_SetFragList(void *p, int size) -{ - s32 ret; - USBStorage_Init(); - // Device not opened - if (fd < 0) return fd; - // ioctl - ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_WBFS_SET_FRAGLIST, "d:", p, size); - return ret; -} - -#define DEVICE_TYPE_WII_UMS (('W'<<24)|('U'<<16)|('M'<<8)|'S') - -bool umsio_Startup() { - return USBStorage_Init() == 0; -} - -bool umsio_IsInserted() { - return true; // allways true -} - -bool umsio_ReadSectors(sec_t sector, sec_t numSectors, u8 *buffer) { - u32 cnt = 0; - s32 ret; - /* Do reads */ - while (cnt < numSectors) { - u32 sectors = (numSectors - cnt); - - /* Read sectors is too big */ - if (sectors > 32) - sectors = 32; - - /* USB read */ - ret = USBStorage_ReadSectors(sector + cnt, sectors, &buffer[cnt*512]); - if (ret < 0) - return false; - - /* Increment counter */ - cnt += sectors; - } - - return true; -} - -bool umsio_WriteSectors(sec_t sector, sec_t numSectors, const u8* buffer) { - u32 cnt = 0; - s32 ret; - - /* Do writes */ - while (cnt < numSectors) { - u32 sectors = (numSectors - cnt); - - /* Write sectors is too big */ - if (sectors > 32) - sectors = 32; - - /* USB write */ - ret = USBStorage_WriteSectors(sector + cnt, sectors, &buffer[cnt * 512]); - if (ret < 0) - return false; - - /* Increment counter */ - cnt += sectors; - } - - return true; -} - -bool umsio_ClearStatus(void) { - return true; -} - -bool umsio_Shutdown() { - USBStorage_Deinit(); - return true; -} - -const DISC_INTERFACE __io_wiiums = { - DEVICE_TYPE_WII_UMS, - FEATURE_MEDIUM_CANREAD | FEATURE_MEDIUM_CANWRITE | FEATURE_WII_USB, - (FN_MEDIUM_STARTUP) &umsio_Startup, - (FN_MEDIUM_ISINSERTED) &umsio_IsInserted, - (FN_MEDIUM_READSECTORS) &umsio_ReadSectors, - (FN_MEDIUM_WRITESECTORS) &umsio_WriteSectors, - (FN_MEDIUM_CLEARSTATUS) &umsio_ClearStatus, - (FN_MEDIUM_SHUTDOWN) &umsio_Shutdown -}; - -const DISC_INTERFACE __io_wiiums_ro = { - DEVICE_TYPE_WII_UMS, - FEATURE_MEDIUM_CANREAD | FEATURE_MEDIUM_CANWRITE | FEATURE_WII_USB, - (FN_MEDIUM_STARTUP) &umsio_Startup, - (FN_MEDIUM_ISINSERTED) &umsio_IsInserted, - (FN_MEDIUM_READSECTORS) &umsio_ReadSectors, - (FN_MEDIUM_WRITESECTORS) &__io_usb_NOP, - (FN_MEDIUM_CLEARSTATUS) &umsio_ClearStatus, - (FN_MEDIUM_SHUTDOWN) &umsio_Shutdown -}; diff --git a/source/usbloader/usbstorage.h b/source/usbloader/usbstorage.h deleted file mode 100644 index 4a148f0c..00000000 --- a/source/usbloader/usbstorage.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef _USBSTORAGE_H_ -#define _USBSTORAGE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - /* Prototypes */ - s32 USBStorage_GetCapacity(u32 *); - s32 USBStorage_Init(void); - void USBStorage_Deinit(void); - s32 USBStorage_Watchdog(u32 on_off); - s32 USBStorage_ReadSectors(u32, u32, void *); - s32 USBStorage_WriteSectors(u32, u32, const void *); - - s32 USBStorage_WBFS_Open(char *buf_id); - s32 USBStorage_WBFS_Read(u32 woffset, u32 len, void *buffer); - s32 USBStorage_WBFS_SetDevice(int dev); - s32 USBStorage_WBFS_SetFragList(void *p, int size); - - extern const DISC_INTERFACE __io_wiiums; - extern const DISC_INTERFACE __io_wiiums_ro; -#ifdef __cplusplus -} -#endif - -#endif diff --git a/source/usbloader/usbstorage2.c b/source/usbloader/usbstorage2.c new file mode 100644 index 00000000..b0567125 --- /dev/null +++ b/source/usbloader/usbstorage2.c @@ -0,0 +1,456 @@ +/*------------------------------------------------------------- + +usbstorage_starlet.c -- USB mass storage support, inside starlet +Copyright (C) 2009 Kwiirk + +If this driver is linked before libogc, this will replace the original +usbstorage driver by svpe from libogc +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any +damages arising from the use of this software. + +Permission is granted to anyone to use this software for any +purpose, including commercial applications, and to alter it and +redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you +must not claim that you wrote the original software. If you use +this software in a product, an acknowledgment in the product +documentation would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and +must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source +distribution. + +-------------------------------------------------------------*/ + +#include +#include +#include +#include +#include "usbstorage2.h" + +/* IOCTL commands */ +#define UMS_BASE (('U'<<24)|('M'<<16)|('S'<<8)) +#define USB_IOCTL_UMS_INIT (UMS_BASE+0x1) +#define USB_IOCTL_UMS_GET_CAPACITY (UMS_BASE+0x2) +#define USB_IOCTL_UMS_READ_SECTORS (UMS_BASE+0x3) +#define USB_IOCTL_UMS_WRITE_SECTORS (UMS_BASE+0x4) +#define USB_IOCTL_UMS_READ_STRESS (UMS_BASE+0x5) +#define USB_IOCTL_UMS_SET_VERBOSE (UMS_BASE+0x6) +#define USB_IOCTL_UMS_UMOUNT (UMS_BASE+0x10) +#define USB_IOCTL_UMS_WATCHDOG (UMS_BASE+0x80) + +#define USB_IOCTL_UMS_TESTMODE (UMS_BASE+0x81) + +#define WBFS_BASE (('W'<<24)|('F'<<16)|('S'<<8)) +#define USB_IOCTL_WBFS_OPEN_DISC (WBFS_BASE+0x1) +#define USB_IOCTL_WBFS_READ_DISC (WBFS_BASE+0x2) +#define USB_IOCTL_WBFS_READ_DIRECT_DISC (WBFS_BASE+0x3) +#define USB_IOCTL_WBFS_STS_DISC (WBFS_BASE+0x4) +#define USB_IOCTL_WBFS_SET_DEVICE (WBFS_BASE+0x50) +#define USB_IOCTL_WBFS_SET_FRAGLIST (WBFS_BASE+0x51) + +#define UMS_HEAPSIZE 0x1000 //0x10000 + +/* Variables */ +static char fs[] ATTRIBUTE_ALIGN(32) = "/dev/usb2"; +static char fs2[] ATTRIBUTE_ALIGN(32) = "/dev/usb/ehc"; + +static char fsoff[] ATTRIBUTE_ALIGN(32) = "/dev/usb2/OFF"; + +static s32 hid = -1, fd = -1; +static u32 sector_size; +static int mounted=0; + +s32 USBStorage2_Umount(void) +{ + if (fd >= 0 && mounted) { + s32 ret; + + ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_UMOUNT, ":"); + + return ret; + } + + return IPC_ENOENT; +} + + +s32 USBStorage2_Watchdog(u32 on_off) +{ + if (fd >= 0) { + s32 ret; + + ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_WATCHDOG, "i:", on_off); + + return ret; + } + + return IPC_ENOENT; +} + +s32 USBStorage2_TestMode(u32 on_off) +{ + if (fd >= 0) { + s32 ret; + + ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_TESTMODE, "i:", on_off); + + return ret; + } + + return IPC_ENOENT; +} + + +inline s32 __USBStorage2_isMEM2Buffer(const void *buffer) +{ + u32 high_addr = ((u32)buffer) >> 24; + + return (high_addr == 0x90) || (high_addr == 0xD0); +} + + +s32 USBStorage2_GetCapacity(u32 *_sector_size) +{ + if (fd >= 0) { + s32 ret; + + ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_GET_CAPACITY, ":i", §or_size); + + if (ret && _sector_size) + *_sector_size = sector_size; + + return ret; + } + + return IPC_ENOENT; +} + +s32 USBStorage2_EHC_Off(void) +{ + USBStorage2_Deinit(); + fd=IOS_Open(fsoff, 0); + USBStorage2_Deinit(); + return 0; + +} + +s32 USBStorage2_Init(void) +{ + s32 ret,ret2; + static u32 sector_size=0; + + /* Already open */ + if (fd >= 0) + return 0; + + /* Create heap */ + if (hid < 0) { + hid = iosCreateHeap(UMS_HEAPSIZE); + if (hid < 0) + return IPC_ENOMEM; + } + + /* Open USB device */ + fd = IOS_Open(fs, 0); + if (fd < 0) fd = IOS_Open(fs2, 0); + + if (fd < 0) + return fd; + + /* Initialize USB storage */ + ret=IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_INIT, ":"); + if(ret<0) goto err; + if(ret>1) ret=0; + ret2=ret; + + /* Get device capacity */ + ret = USBStorage2_GetCapacity(§or_size); + if (!ret) + { + ret=-1; + goto err; + } + if(ret2==0 && sector_size!=512) // check for HD sector size 512 bytes + { + ret=-20001; + goto err; + } + if(ret2==1 && sector_size!=2048) // check for DVD sector size 2048 bytes + { + ret=-20002; + goto err; + } + mounted=1; + return ret2; // 0->HDD, 1->DVD + +err: + /* Close USB device */ + if (fd >= 0) { + IOS_Close(fd); + fd = -1; + } + + + return ret; +} + +void USBStorage2_Deinit(void) +{ +mounted = 0; + + + /* Close USB device */ + if (fd >= 0) { + IOS_Close(fd); + fd = -1; + } +} + +extern void* SYS_AllocArena2MemLo(u32 size,u32 align); + +static void *mem2_ptr=NULL; + +s32 USBStorage2_ReadSectors(u32 sector, u32 numSectors, void *buffer) +{ + void *buf = (void *)buffer; + u32 len = (sector_size * numSectors); + + s32 ret; + + /* Device not opened */ + if (fd < 0) + return fd; + if(!mem2_ptr) mem2_ptr=SYS_AllocArena2MemLo(2048*256,32); + /* MEM1 buffer */ + if (!__USBStorage2_isMEM2Buffer(buffer)) { + /* Allocate memory */ + buf = mem2_ptr; //iosAlloc(hid, len); + if (!buf) + return IPC_ENOMEM; + } + + /* Read data */ + ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_READ_SECTORS, "ii:d", sector, numSectors, buf, len); + + /* Copy data */ + if (buf != buffer) { + memcpy(buffer, buf, len); + //iosFree(hid, buf); + } + + return ret; +} + +s32 USBStorage2_WriteSectors(u32 sector, u32 numSectors, const void *buffer) +{ + void *buf = (void *)buffer; + u32 len = (sector_size * numSectors); + + s32 ret; + + /* Device not opened */ + if (fd < 0) + return fd; + if(!mem2_ptr) mem2_ptr=SYS_AllocArena2MemLo(2048*256,32); + + + /* MEM1 buffer */ + if (!__USBStorage2_isMEM2Buffer(buffer)) { + /* Allocate memory */ + buf = mem2_ptr; //buf = iosAlloc(hid, len); + if (!buf) + return IPC_ENOMEM; + + /* Copy data */ + memcpy(buf, buffer, len); + } + + /* Write data */ + ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_WRITE_SECTORS, "ii:d", sector, numSectors, buf, len); + + /* Free memory */ + if (buf != buffer) + iosFree(hid, buf); + + return ret; +} + +static bool __usbstorage_Startup(void) +{ + + +return USBStorage2_Init()==0; +} + +static bool __usbstorage_IsInserted(void) +{ + return ( USBStorage2_GetCapacity(NULL)>=0); +} + +static bool __usbstorage_ReadSectors(u32 sector, u32 numSectors, void *buffer) +{ + s32 retval; + + retval = USBStorage2_ReadSectors( sector, numSectors, buffer); + + if(retval < 0) + return false; + return true; +} + +static bool __usbstorage_WriteSectors(u32 sector, u32 numSectors, const void *buffer) +{ + s32 retval; + + retval = USBStorage2_WriteSectors( sector, numSectors, buffer); + + if(retval < 0) + return false; + + return true; +} + +static bool __usbstorage_ClearStatus(void) +{ + return true; +} + +static bool __usbstorage_Shutdown(void) +{ + //if(mounted) USBStorage2_Umount(); + USBStorage2_Deinit(); + + mounted = 0; + return true; +} + +const DISC_INTERFACE __io_usbstorage2 = { + DEVICE_TYPE_WII_UMS, + FEATURE_MEDIUM_CANREAD | FEATURE_MEDIUM_CANWRITE | FEATURE_WII_USB, + (FN_MEDIUM_STARTUP)&__usbstorage_Startup, + (FN_MEDIUM_ISINSERTED)&__usbstorage_IsInserted, + (FN_MEDIUM_READSECTORS)&__usbstorage_ReadSectors, + (FN_MEDIUM_WRITESECTORS)&__usbstorage_WriteSectors, + (FN_MEDIUM_CLEARSTATUS)&__usbstorage_ClearStatus, + (FN_MEDIUM_SHUTDOWN)&__usbstorage_Shutdown +}; + +static bool __io_usb_Startup(void) +{ + return USBStorage2_Init() >= 0; +} + +static bool __io_usb_IsInserted(void) +{ + s32 ret; + if (fd < 0) return false; + ret = USBStorage2_GetCapacity(NULL); + if (ret == 0) return false; + return true; +} + +bool __io_usb_ReadSectors(u32 sector, u32 count, void *buffer) +{ + s32 ret = USBStorage2_ReadSectors(sector, count, buffer); + return ret > 0; +} + +bool __io_usb_WriteSectors(u32 sector, u32 count, void *buffer) +{ + s32 ret = USBStorage2_WriteSectors(sector, count, buffer); + return ret > 0; +} + +static bool __io_usb_ClearStatus(void) +{ + return true; +} + +static bool __io_usb_Shutdown(void) +{ + // do nothing + return true; +} + +static bool __io_usb_NOP(void) +{ + // do nothing + return true; +} + +const DISC_INTERFACE __io_usbstorage2_ro = { + DEVICE_TYPE_WII_UMS, + FEATURE_MEDIUM_CANREAD | FEATURE_MEDIUM_CANWRITE | FEATURE_WII_USB, + (FN_MEDIUM_STARTUP)&__usbstorage_Startup, + (FN_MEDIUM_ISINSERTED)&__usbstorage_IsInserted, + (FN_MEDIUM_READSECTORS)&__usbstorage_ReadSectors, + (FN_MEDIUM_WRITESECTORS)&__io_usb_NOP, + (FN_MEDIUM_CLEARSTATUS)&__usbstorage_ClearStatus, + (FN_MEDIUM_SHUTDOWN)&__usbstorage_Shutdown +}; + +s32 USBStorage_WBFS_Open(char *buffer) +{ + u32 len = 8; + + s32 ret; + + /* Device not opened */ + if (fd < 0) + return fd; + + extern u32 wbfs_part_lba; + u32 part = wbfs_part_lba; + + /* Read data */ + ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_WBFS_OPEN_DISC, "dd:", buffer, len, &part, 4); + + return ret; +} + +// woffset is in 32bit words, len is in bytes +s32 USBStorage_WBFS_Read(u32 woffset, u32 len, void *buffer) +{ + s32 ret; + + USBStorage2_Init(); + /* Device not opened */ + if (fd < 0) + return fd; + + /* Read data */ + ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_WBFS_READ_DISC, "ii:d", woffset, len, buffer, len); + + return ret; +} + + +s32 USBStorage_WBFS_SetDevice(int dev) +{ + s32 ret; + static s32 retval = 0; + retval = 0; + USBStorage2_Init(); + // Device not opened + if (fd < 0) return fd; + // ioctl + ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_WBFS_SET_DEVICE, "i:i", dev, &retval); + if (retval) return retval; + return ret; +} + +s32 USBStorage_WBFS_SetFragList(void *p, int size) +{ + s32 ret; + USBStorage2_Init(); + // Device not opened + if (fd < 0) return fd; + // ioctl + ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_WBFS_SET_FRAGLIST, "d:", p, size); + return ret; +} diff --git a/source/usbloader/usbstorage2.h b/source/usbloader/usbstorage2.h new file mode 100644 index 00000000..75f1cb17 --- /dev/null +++ b/source/usbloader/usbstorage2.h @@ -0,0 +1,33 @@ +#ifndef _USBSTORAGE2_H_ +#define _USBSTORAGE2_H_ + +#include "ogc/disc_io.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Prototypes */ +s32 USBStorage2_GetCapacity(u32 *); +s32 USBStorage2_Init(void); +void USBStorage2_Deinit(void); +s32 USBStorage2_Umount(void); + +s32 USBStorage2_ReadSectors(u32, u32, void *); +s32 USBStorage2_WriteSectors(u32, u32, const void *); + +s32 USBStorage2_Watchdog(u32 on_off); + +s32 USBStorage2_TestMode(u32 on_off); + +s32 USBStorage2_EHC_Off(void); + +#define DEVICE_TYPE_WII_UMS (('W'<<24)|('U'<<16)|('M'<<8)|'S') + +extern const DISC_INTERFACE __io_usbstorage2; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/source/usbloader/wbfs.cpp b/source/usbloader/wbfs.cpp index 1a7932d9..6d9e58b5 100644 --- a/source/usbloader/wbfs.cpp +++ b/source/usbloader/wbfs.cpp @@ -30,10 +30,6 @@ void WBFS_CloseDisc(wbfs_disc_t *disc) { current->CloseDisc(disc); } -void GetProgressValue(s32 * d, s32 * m) { - current->GetProgressValue(d, m); -} - wbfs_t *GetHddInfo(void) { return current->GetHddInfo(); } @@ -44,7 +40,7 @@ s32 WBFS_Init(u32 device) { s32 WBFS_Open(void) { WBFS_Close(); - + current = new Wbfs_Wbfs(WBFS_DEVICE_USB, 0, 0); // Fix me! wbfs_part_fs = wbfs_part_idx = wbfs_part_lba = 0; @@ -169,7 +165,7 @@ s32 WBFS_OpenLBA(u32 lba, u32 size) delete part; return -1; } - + WBFS_Close(); current = part; return 0; @@ -187,7 +183,7 @@ bool WBFS_Close(void) wbfs_part_idx = 0; wbfs_part_lba = 0; wbfs_fs_drive[0] = '\0'; - + ResetGamelist(); return 0; @@ -262,6 +258,6 @@ int WBFS_GetFragList(u8 *id) { return current->GetFragList(id); } -bool WBFS_ShowFreeSpace(void) { +bool WBFS_ShowFreeSpace(void) { return current->ShowFreeSpace(); } diff --git a/source/usbloader/wbfs.h b/source/usbloader/wbfs.h index 8bbee634..96c2068c 100644 --- a/source/usbloader/wbfs.h +++ b/source/usbloader/wbfs.h @@ -15,7 +15,7 @@ extern "C" { /* Macros */ #define WBFS_MIN_DEVICE 1 #define WBFS_MAX_DEVICE 2 - + extern s32 wbfsDev; extern int wbfs_part_fs; extern u32 wbfs_part_idx; @@ -23,7 +23,6 @@ extern "C" { extern char wbfs_fs_drive[16]; /* Prototypes */ - void GetProgressValue(s32 * d, s32 * m); s32 WBFS_Init(u32); s32 WBFS_Open(void); s32 WBFS_Format(u32, u32); @@ -40,7 +39,7 @@ extern "C" { s32 WBFS_RenameGame(u8 *, const void *); s32 WBFS_ReIDGame(u8 *discid, const void *newID); f32 WBFS_EstimeGameSize(void); - + int WBFS_GetFragList(u8 *id); /* s32 __WBFS_ReadUSB(void *fp, u32 lba, u32 count, void *iobuf); diff --git a/source/usbloader/wbfs/wbfs_base.cpp b/source/usbloader/wbfs/wbfs_base.cpp index 3da06130..b5f57315 100644 --- a/source/usbloader/wbfs/wbfs_base.cpp +++ b/source/usbloader/wbfs/wbfs_base.cpp @@ -5,17 +5,15 @@ #include #include "usbloader/sdhc.h" -#include "usbloader/usbstorage.h" +#include "usbloader/usbstorage2.h" #include "fatmounter.h" +#include "wbfs_rw.h" #include "wbfs_base.h" -rw_sector_callback_t Wbfs::readCallback = NULL; -rw_sector_callback_t Wbfs::writeCallback = NULL; s32 Wbfs::done = -1; s32 Wbfs::total = -1; u32 Wbfs::nb_sectors; -u32 Wbfs::sector_size; Wbfs::Wbfs(u32 device, u32 lba, u32 size) : hdd(NULL) { @@ -36,14 +34,14 @@ s32 Wbfs::Init(u32 device) switch (device) { case WBFS_DEVICE_USB: /* Initialize USB storage */ - ret = USBStorage_Init(); + ret = USBStorage2_Init(); if (ret >= 0) { /* Setup callbacks */ readCallback = __ReadUSB; writeCallback = __WriteUSB; /* Device info */ /* Get USB capacity */ - nb_sectors = USBStorage_GetCapacity(§or_size); + nb_sectors = USBStorage2_GetCapacity(§or_size); if (!nb_sectors) return -1; } else @@ -85,7 +83,7 @@ s32 Wbfs::Format() return -1; } -s32 Wbfs::CheckGame(u8 *discid) +s32 Wbfs::CheckGame(u8 *discid) { wbfs_disc_t *disc = NULL; @@ -101,7 +99,7 @@ s32 Wbfs::CheckGame(u8 *discid) return 0; } -s32 Wbfs::GameSize(u8 *discid, f32 *size) +s32 Wbfs::GameSize(u8 *discid, f32 *size) { wbfs_disc_t *disc = NULL; @@ -124,13 +122,7 @@ s32 Wbfs::GameSize(u8 *discid, f32 *size) return 0; } -void Wbfs::Spinner(s32 x, s32 max) -{ - done = x; - total = max; -} - -wbfs_t *Wbfs::GetHddInfo() +wbfs_t *Wbfs::GetHddInfo() { return hdd; } diff --git a/source/usbloader/wbfs/wbfs_base.h b/source/usbloader/wbfs/wbfs_base.h index 78299f5a..9d1d76ef 100644 --- a/source/usbloader/wbfs/wbfs_base.h +++ b/source/usbloader/wbfs/wbfs_base.h @@ -40,23 +40,13 @@ public: static s32 OpenLBA(u32 lba, u32 size); */ protected: - static rw_sector_callback_t readCallback; - static rw_sector_callback_t writeCallback; - static s32 __ReadDVD(void *fp, u32 lba, u32 len, void *iobuf); - static void Spinner(s32 x, s32 max); - static u32 nb_sectors; - static u32 sector_size; /* WBFS HDD */ wbfs_t *hdd; - + u32 device, lba, size; private: - static s32 __ReadUSB(void *fp, u32 lba, u32 count, void *iobuf); - static s32 __WriteUSB(void *fp, u32 lba, u32 count, void *iobuf); - static s32 __ReadSDHC(void *fp, u32 lba, u32 count, void *iobuf); - static s32 __WriteSDHC(void *fp, u32 lba, u32 count, void *iobuf); static s32 total, done; }; diff --git a/source/usbloader/wbfs/wbfs_fat.cpp b/source/usbloader/wbfs/wbfs_fat.cpp index 5c9663f1..072ebefd 100644 --- a/source/usbloader/wbfs/wbfs_fat.cpp +++ b/source/usbloader/wbfs/wbfs_fat.cpp @@ -15,6 +15,8 @@ #include "usbloader/disc.h" #include "fatmounter.h" #include "wbfs_fat.h" +#include "../spinner.h" +#include "wbfs_rw.h" #include "gecko.h" @@ -51,7 +53,7 @@ s32 Wbfs_Fat::Open() if (WBFSDevice_Init(lba)) return -1; strcpy(wbfs_fs_drive, "WBFS:"); } - + return 0; } @@ -170,7 +172,7 @@ s32 Wbfs_Fat::AddGame(void) } wbfs_t *old_hdd = hdd; hdd = part; // used by spinner - ret = wbfs_add_disc(part, __ReadDVD, NULL, Spinner, part_sel, copy_1_1); + ret = wbfs_add_disc(part, __ReadDVD, NULL, WBFS_Spinner, part_sel, copy_1_1); hdd = old_hdd; wbfs_trim(part); ClosePart(part); @@ -258,7 +260,7 @@ s32 Wbfs_Fat::ReIDGame(u8 *discid, const void *newID) wbfs_t *part = OpenPart((char *) discid); if (!part) return -1; - + s32 ret = wbfs_rID_disc(part, discid,(u8*)newID); ClosePart(part); @@ -287,7 +289,7 @@ s32 Wbfs_Fat::ReIDGame(u8 *discid, const void *newID) return ret; } -f32 Wbfs_Fat::EstimateGameSize() +f32 Wbfs_Fat::EstimateGameSize() { wbfs_t *part = NULL; u64 size = (u64)143432*2*0x8000ULL; @@ -321,7 +323,7 @@ bool Wbfs_Fat::CheckLayoutB(char *fname, int len, u8* id, char *fname_title) // cut at '[' fname_title[len-8] = 0; int n = strlen(fname_title); - if (n == 0) return false; + if (n == 0) return false; // cut trailing _ or ' ' if (fname_title[n - 1] == ' ' || fname_title[n - 1] == '_' ) { fname_title[n - 1] = 0; @@ -375,7 +377,7 @@ s32 Wbfs_Fat::GetHeadersCount() memcpy(id, fname, 6); id[6] = 0; - *fname_title = 0; + *fname_title = 0; is_dir = S_ISDIR(st.st_mode); //printf("mode: %d %d %x\n", is_dir, st.st_mode, st.st_mode); @@ -408,14 +410,18 @@ s32 Wbfs_Fat::GetHeadersCount() strcpy(strrchr(fpath, '.'), ".iso"); // replace .wbfs with .iso if (stat(fpath, &st) == -1) { //printf("missing: %s\n", fpath); - if (lay_a && lay_b == 1) { - // mark lay_b so that the stat check is still done, - // but lay_b is not re-tried again - lay_b = 2; - // retry with layout b - goto try_lay_b; + // try .ciso + strcpy(strrchr(fpath, '.'), ".ciso"); // replace .iso with .ciso + if (stat(fpath, &st) == -1 ) { + if (lay_a && lay_b == 1) { + // mark lay_b so that the stat check is still done, + // but lay_b is not re-tried again + lay_b = 2; + // retry with layout b + goto try_lay_b; + } + continue; } - continue; } } } else { @@ -424,10 +430,12 @@ s32 Wbfs_Fat::GetHeadersCount() } else { // usb:/wbfs/GAMEID.wbfs // or usb:/wbfs/GAMEID.iso + // or usb:/wbfs/GAMEID.ciso p = strrchr(fname, '.'); if (!p) continue; if ( (strcasecmp(p, ".wbfs") != 0) - && (strcasecmp(p, ".iso") != 0) ) continue; + && (strcasecmp(p, ".iso") != 0) + && (strcasecmp(p, ".ciso") != 0) ) continue; int n = p - fname; // length withouth .wbfs if (n != 6) { // TITLE [GAMEID].wbfs @@ -461,6 +469,7 @@ s32 Wbfs_Fat::GetHeadersCount() fseek(fp, 512, SEEK_SET); fread(&tmpHdr, sizeof(struct discHdr), 1, fp); fclose(fp); + tmpHdr.is_ciso = 0; if ((tmpHdr.magic == 0x5D1C9EA3) && (memcmp(tmpHdr.id, id, 6) == 0)) { goto add_hdr; } @@ -472,7 +481,7 @@ s32 Wbfs_Fat::GetHeadersCount() if (!part) { continue; } - // Get header + // Get header ret = wbfs_get_disc_info(part, 0, (u8*)&tmpHdr, sizeof(struct discHdr), &size); ClosePart(part); @@ -486,6 +495,19 @@ s32 Wbfs_Fat::GetHeadersCount() fseek(fp, 0, SEEK_SET); fread(&tmpHdr, sizeof(struct discHdr), 1, fp); fclose(fp); + tmpHdr.is_ciso = 0; + if ((tmpHdr.magic == 0x5D1C9EA3) && (memcmp(tmpHdr.id, id, 6) == 0)) { + goto add_hdr; + } + } + } else if (strcasecmp(strrchr(fpath,'.'), ".ciso") == 0) { + // ciso file + FILE *fp = fopen(fpath, "rb"); + if (fp != NULL) { + fseek(fp, 0x8000, SEEK_SET); + fread(&tmpHdr, sizeof(struct discHdr), 1, fp); + fclose(fp); + tmpHdr.is_ciso = 1; if ((tmpHdr.magic == 0x5D1C9EA3) && (memcmp(tmpHdr.id, id, 6) == 0)) { goto add_hdr; } @@ -504,7 +526,7 @@ s32 Wbfs_Fat::GetHeadersCount() } dirclose(dir_iter); //dbg_time2("\nFAT_GetCount"); Wpad_WaitButtonsCommon(); - + return 0; } @@ -517,6 +539,9 @@ int Wbfs_Fat::FindFilename(u8 *id, char *fname, int len) // look for direct .iso file strcpy(strrchr(fname, '.'), ".iso"); // replace .wbfs with .iso if (stat(fname, &st) == 0) return 1; + // look for direct .ciso file + strcpy(strrchr(fname, '.'), ".ciso"); // replace .iso with .ciso + if (stat(fname, &st) == 0) return 1; // direct file not found, check subdirs *fname = 0; DIR_ITER *dir_iter; @@ -549,6 +574,9 @@ int Wbfs_Fat::FindFilename(u8 *id, char *fname, int len) if (stat(fname, &st) == 0) break; // look for .iso file snprintf(fname, len, "%s/%s/%.6s.iso", path, name, id); + if (stat(fname, &st) == 0) break; + // look for .ciso file + snprintf(fname, len, "%s/%s/%.6s.ciso", path, name, id); } else { // TITLE [GAMEID].wbfs char fn_title[TITLE_LEN]; @@ -556,7 +584,8 @@ int Wbfs_Fat::FindFilename(u8 *id, char *fname, int len) char *p = strrchr(name, '.'); if (!p) continue; if ( (strcasecmp(p, ".wbfs") != 0) - && (strcasecmp(p, ".iso") != 0) ) continue; + && (strcasecmp(p, ".iso") != 0) + && (strcasecmp(p, ".ciso") != 0) ) continue; int n = p - name; // length withouth .wbfs if (!CheckLayoutB(name, n, fn_id, fn_title)) continue; if (strncmp((char*)fn_id, (char*)id, 6) != 0) continue; @@ -745,10 +774,10 @@ int Wbfs_Fat::GetFragList(u8 *id) int i; int is_wbfs = 0; int ret_val = -1; - + ret = FindFilename(id, fname, sizeof(fname)); if (!ret) return -1; - + if (strcasecmp(strrchr(fname,'.'), ".wbfs") == 0) { is_wbfs = 1; } @@ -784,7 +813,8 @@ int Wbfs_Fat::GetFragList(u8 *id) ret = wbfs_get_fragments(d, &_frag_append, fw); if (ret) goto out; CloseDisc(d); - // DEBUG: frag_list->num = MAX_FRAG-10; // stress test + // DEBUG: + frag_list->num = MAX_FRAG-10; // stress test ret = frag_remap(frag_list, fw, fa); if (ret) goto out; } else { @@ -808,7 +838,7 @@ out: int Wbfs_Fat::GetFragList(char *filename, _frag_append_t append_fragment, FragList *fs) { - return _FAT_get_fragments(filename, append_fragment, fs); + return _FAT_get_fragments(filename, append_fragment, fs); } bool Wbfs_Fat::ShowFreeSpace(void) diff --git a/source/usbloader/wbfs/wbfs_fat.h b/source/usbloader/wbfs/wbfs_fat.h index 9c477add..4d1e73b3 100644 --- a/source/usbloader/wbfs/wbfs_fat.h +++ b/source/usbloader/wbfs/wbfs_fat.h @@ -15,20 +15,20 @@ public: virtual s32 Open(); wbfs_disc_t* OpenDisc(u8 *); void CloseDisc(wbfs_disc_t *); - + s32 GetCount(u32 *); s32 GetHeaders(struct discHdr *, u32, u32); - + s32 AddGame(); s32 RemoveGame(u8 *); - + s32 DiskSpace(f32 *, f32 *); - + s32 RenameGame(u8 *, const void *); s32 ReIDGame(u8 *, const void *); - + f32 EstimateGameSize(); - + int GetFragList(u8 *); virtual int GetFragList(char *, _frag_append_t, FragList *); virtual bool ShowFreeSpace(void); @@ -37,13 +37,13 @@ protected: static char wbfs_fs_drive[16]; private: split_info_t split; - + static u32 fat_sector_size; static char wbfs_fat_dir[16]; static char invalid_path[]; static struct discHdr *fat_hdr_list; static u32 fat_hdr_count; - + wbfs_t* OpenPart(char *fname); void ClosePart(wbfs_t* part); wbfs_t* CreatePart(u8 *id, char *path); @@ -52,12 +52,12 @@ private: bool CheckLayoutB(char *fname, int len, u8* id, char *fname_title); s32 GetHeadersCount(); void GetDir(struct discHdr *header, char *path); - + void mk_title_txt(struct discHdr *header, char *path); void mk_gameid_title(struct discHdr *header, char *name, int re_space, int layout); void title_filename(char *title); bool is_gameid(char *id); - + static int nop_rw_sector(void *_fp, u32 lba, u32 count, void* buf) { return 0; } }; diff --git a/source/usbloader/wbfs/wbfs_ntfs.h b/source/usbloader/wbfs/wbfs_ntfs.h index 7c1961c0..cdcc0eec 100644 --- a/source/usbloader/wbfs/wbfs_ntfs.h +++ b/source/usbloader/wbfs/wbfs_ntfs.h @@ -7,9 +7,9 @@ class Wbfs_Ntfs : public Wbfs_Fat { public: Wbfs_Ntfs(u32 device, u32 lba, u32 size) : Wbfs_Fat(device, lba, size) {} - - virtual s32 Open(); - + + virtual s32 Open(); + int GetFragList(char *filename, _frag_append_t append_fragment, FragList *fs); bool ShowFreeSpace(void); }; diff --git a/source/usbloader/wbfs/wbfs_rw.cpp b/source/usbloader/wbfs/wbfs_rw.c similarity index 77% rename from source/usbloader/wbfs/wbfs_rw.cpp rename to source/usbloader/wbfs/wbfs_rw.c index 0cdbc2e0..5a2f056b 100644 --- a/source/usbloader/wbfs/wbfs_rw.cpp +++ b/source/usbloader/wbfs/wbfs_rw.c @@ -1,15 +1,25 @@ #include #include +#include #include "usbloader/sdhc.h" -#include "usbloader/usbstorage.h" +#include "usbloader/usbstorage2.h" #include "usbloader/wdvd.h" -#include "wbfs_base.h" +#include "wbfs_rw.h" /* Constants */ #define MAX_NB_SECTORS 32 -s32 Wbfs::__ReadDVD(void *fp, u32 lba, u32 len, void *iobuf) { +u32 sector_size = 512; +rw_sector_callback_t readCallback = NULL; +rw_sector_callback_t writeCallback = NULL; + +void SetSectorSize(u32 size) +{ + sector_size = size; +} + +s32 __ReadDVD(void *fp, u32 lba, u32 len, void *iobuf) { void *buffer = NULL; u64 offset; @@ -58,7 +68,7 @@ out: return ret; } -s32 Wbfs::__ReadUSB(void *fp, u32 lba, u32 count, void *iobuf) { +s32 __ReadUSB(void *fp, u32 lba, u32 count, void *iobuf) { u32 cnt = 0; s32 ret; @@ -72,7 +82,7 @@ s32 Wbfs::__ReadUSB(void *fp, u32 lba, u32 count, void *iobuf) { sectors = MAX_NB_SECTORS; /* USB read */ - ret = USBStorage_ReadSectors(lba + cnt, sectors, ptr); + ret = USBStorage2_ReadSectors(lba + cnt, sectors, ptr); if (ret < 0) return ret; @@ -83,7 +93,7 @@ s32 Wbfs::__ReadUSB(void *fp, u32 lba, u32 count, void *iobuf) { return 0; } -s32 Wbfs::__WriteUSB(void *fp, u32 lba, u32 count, void *iobuf) { +s32 __WriteUSB(void *fp, u32 lba, u32 count, void *iobuf) { u32 cnt = 0; s32 ret; @@ -97,7 +107,7 @@ s32 Wbfs::__WriteUSB(void *fp, u32 lba, u32 count, void *iobuf) { sectors = MAX_NB_SECTORS; /* USB write */ - ret = USBStorage_WriteSectors(lba + cnt, sectors, ptr); + ret = USBStorage2_WriteSectors(lba + cnt, sectors, ptr); if (ret < 0) return ret; @@ -108,7 +118,7 @@ s32 Wbfs::__WriteUSB(void *fp, u32 lba, u32 count, void *iobuf) { return 0; } -s32 Wbfs::__ReadSDHC(void *fp, u32 lba, u32 count, void *iobuf) { +s32 __ReadSDHC(void *fp, u32 lba, u32 count, void *iobuf) { u32 cnt = 0; s32 ret; @@ -133,7 +143,7 @@ s32 Wbfs::__ReadSDHC(void *fp, u32 lba, u32 count, void *iobuf) { return 0; } -s32 Wbfs::__WriteSDHC(void *fp, u32 lba, u32 count, void *iobuf) { +s32 __WriteSDHC(void *fp, u32 lba, u32 count, void *iobuf) { u32 cnt = 0; s32 ret; diff --git a/source/usbloader/wbfs/wbfs_rw.h b/source/usbloader/wbfs/wbfs_rw.h new file mode 100644 index 00000000..2357fa37 --- /dev/null +++ b/source/usbloader/wbfs/wbfs_rw.h @@ -0,0 +1,25 @@ +#ifndef _WBFS_RW_H +#define _WBFS_RW_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "libwbfs/libwbfs.h" + +extern u32 sector_size; +extern rw_sector_callback_t readCallback; +extern rw_sector_callback_t writeCallback; + +s32 __ReadDVD(void *fp, u32 lba, u32 len, void *iobuf); +s32 __ReadUSB(void *fp, u32 lba, u32 count, void *iobuf); +s32 __WriteUSB(void *fp, u32 lba, u32 count, void *iobuf); +s32 __ReadSDHC(void *fp, u32 lba, u32 count, void *iobuf); +s32 __WriteSDHC(void *fp, u32 lba, u32 count, void *iobuf); + +#ifdef __cplusplus +} +#endif + + +#endif //_WBFS_RW_H diff --git a/source/usbloader/wbfs/wbfs_wbfs.cpp b/source/usbloader/wbfs/wbfs_wbfs.cpp index fd879e3e..ab538b98 100644 --- a/source/usbloader/wbfs/wbfs_wbfs.cpp +++ b/source/usbloader/wbfs/wbfs_wbfs.cpp @@ -1,5 +1,7 @@ #include "wbfs_wbfs.h" +#include "../spinner.h" #include "settings/cfg.h" +#include "wbfs_rw.h" extern u32 sector_size; @@ -17,7 +19,7 @@ s32 Wbfs_Wbfs::Open() // Save the new sector size, so it will be used in read and write calls sector_size = 1 << hdd->head->hd_sec_sz_s; - + return 0; } @@ -41,7 +43,7 @@ void Wbfs_Wbfs::CloseDisc(wbfs_disc_t *disc) wbfs_close_disc(disc); } -s32 Wbfs_Wbfs::Format() +s32 Wbfs_Wbfs::Format() { wbfs_t *partition = NULL; @@ -56,7 +58,7 @@ s32 Wbfs_Wbfs::Format() return 0; } -s32 Wbfs_Wbfs::GetCount(u32 *count) +s32 Wbfs_Wbfs::GetCount(u32 *count) { /* No device open */ if (!hdd) @@ -68,7 +70,7 @@ s32 Wbfs_Wbfs::GetCount(u32 *count) return 0; } -s32 Wbfs_Wbfs::GetHeaders(struct discHdr *outbuf, u32 cnt, u32 len) +s32 Wbfs_Wbfs::GetHeaders(struct discHdr *outbuf, u32 cnt, u32 len) { u32 idx, size; s32 ret; @@ -89,7 +91,7 @@ s32 Wbfs_Wbfs::GetHeaders(struct discHdr *outbuf, u32 cnt, u32 len) return 0; } -s32 Wbfs_Wbfs::AddGame() +s32 Wbfs_Wbfs::AddGame() { s32 ret; @@ -100,7 +102,7 @@ s32 Wbfs_Wbfs::AddGame() /* Add game to device */ partition_selector_t part_sel; int copy_1_1 = 0; - + if (Settings.fullcopy) { part_sel = ALL_PARTITIONS; copy_1_1 = 1; @@ -108,7 +110,7 @@ s32 Wbfs_Wbfs::AddGame() part_sel = Settings.partitions_to_install == install_game_only ? ONLY_GAME_PARTITION : ALL_PARTITIONS; } - ret = wbfs_add_disc(hdd, __ReadDVD, NULL, Spinner, part_sel, copy_1_1); + ret = wbfs_add_disc(hdd, __ReadDVD, NULL, WBFS_Spinner, part_sel, copy_1_1); if (ret < 0) return ret; @@ -131,7 +133,7 @@ s32 Wbfs_Wbfs::RemoveGame(u8 *discid) return 0; } -s32 Wbfs_Wbfs::DiskSpace(f32 *used, f32 *free) +s32 Wbfs_Wbfs::DiskSpace(f32 *used, f32 *free) { f32 ssize; u32 cnt; @@ -181,7 +183,7 @@ s32 Wbfs_Wbfs::ReIDGame(u8 *discid, const void *newID) return 0; } -f32 Wbfs_Wbfs::EstimateGameSize() +f32 Wbfs_Wbfs::EstimateGameSize() { partition_selector_t part_sel = ONLY_GAME_PARTITION; if (Settings.fullcopy) { diff --git a/source/usbloader/wbfs/wbfs_wbfs.h b/source/usbloader/wbfs/wbfs_wbfs.h index 69a9739b..0124f853 100644 --- a/source/usbloader/wbfs/wbfs_wbfs.h +++ b/source/usbloader/wbfs/wbfs_wbfs.h @@ -12,19 +12,19 @@ public: s32 Open(); wbfs_disc_t* OpenDisc(u8 *); void CloseDisc(wbfs_disc_t *); - + s32 Format(); s32 GetCount(u32 *); s32 GetHeaders(struct discHdr *, u32, u32); - + s32 AddGame(); s32 RemoveGame(u8 *); - + s32 DiskSpace(f32 *, f32 *); - + s32 RenameGame(u8 *, const void *); s32 ReIDGame(u8 *, const void *); - + f32 EstimateGameSize(); }; diff --git a/source/usbloader/wbfs_fat.c b/source/usbloader/wbfs_fat.c deleted file mode 100644 index b432f4c5..00000000 --- a/source/usbloader/wbfs_fat.c +++ /dev/null @@ -1,739 +0,0 @@ -// WBFS FAT by oggzee - - -// WBFS FAT by oggzee - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "libwbfs/libwbfs.h" -#include "usbloader/disc.h" -#include "usbloader/sdhc.h" -#include "usbloader/usbstorage.h" -#include "usbloader/utils.h" -#include "usbloader/wbfs.h" -#include "usbloader/wdvd.h" -#include "usbloader/splits.h" -#include "usbloader/wbfs_fat.h" -#include "usbloader/partition_usbloader.h" -#include "libfat/fat.h" -#include "settings/cfg.h" - -// max fat fname = 256 -#define MAX_FAT_PATH 1024 - -char wbfs_fs_drive[16]; -char wbfs_fat_dir[16] = "/wbfs"; -char invalid_path[] = "/\\:|<>?*\"'"; - -split_info_t split; - -static u32 fat_sector_size = 512; - -static struct discHdr *fat_hdr_list = NULL; -static int fat_hdr_count = 0; - - -void WBFS_Spinner(s32 x, s32 max); -s32 __WBFS_ReadDVD(void *fp, u32 lba, u32 len, void *iobuf); - -bool is_gameid(char *id) -{ - int i; - for (i=0; i<6; i++) { - if (!isalnum((u32) id[i])) return false; - } - return true; -} - - -s32 _WBFS_FAT_GetHeadersCount() -{ - DIR_ITER *dir_iter; - char path[MAX_FAT_PATH]; - char fname[MAX_FAT_PATH]; - char fpath[MAX_FAT_PATH]; - struct discHdr tmpHdr; - struct stat st; - wbfs_t *part = NULL; - u8 id[8]; - int ret; - char *p; - u32 size; - int is_dir; - int len; - char dir_title[65]; - char *title; - - //dbg_time1(); - - SAFE_FREE(fat_hdr_list); - fat_hdr_count = 0; - - strcpy(path, wbfs_fs_drive); - strcat(path, wbfs_fat_dir); - dir_iter = diropen(path); - if (!dir_iter) return 0; - - while (dirnext(dir_iter, fname, &st) == 0) { - //printf("found: %s\n", fname); Wpad_WaitButtonsCommon(); - if ((char)fname[0] == '.') continue; - len = strlen(fname); - if (len < 8) continue; // "GAMEID_x" - - memcpy(id, fname, 6); - id[6] = 0; - - is_dir = S_ISDIR(st.st_mode); - //printf("mode: %d %d %x\n", is_dir, st.st_mode, st.st_mode); - if (is_dir) { - int lay_a = 0; - int lay_b = 0; - if (fname[6] == '_' && is_gameid((char*)id)) { - // usb:/wbfs/GAMEID_TITLE/GAMEID.wbfs - lay_a = 1; - } - if (fname[len-8] == '[' && fname[len-1] == ']' && is_gameid(&fname[len-7])) { - // usb:/wbfs/TITLE[GAMEID]/GAMEID.wbfs - lay_b = 1; - } - if (!lay_a && !lay_b) continue; - if (lay_a) { - strncpy(dir_title, &fname[7], sizeof(dir_title)); - } else { - try_lay_b: - memcpy(id, &fname[len-7], 6); - id[6] = 0; - strncpy(dir_title, fname, sizeof(dir_title)); - dir_title[len-8] = 0; // cut at '[' - int n = strlen(dir_title); - if (n == 0) continue; - // cut trailing _ or ' ' - if (dir_title[n - 1] == ' ' || dir_title[n - 1] == '_' ) { - dir_title[n - 1] = 0; - } - if (strlen(dir_title) == 0) continue; - } - snprintf(fpath, sizeof(fpath), "%s/%s/%s.wbfs", path, fname, id); - //printf("path2: %s\n", fpath); - // if more than 50 games, skip second stat to improve speed - // but if ambiguous layout check anyway - if (fat_hdr_count < 50 || (lay_a && lay_b)) { - if (stat(fpath, &st) == -1) { - //printf("missing: %s\n", fpath); - // try .iso - strcpy(strrchr(fpath, '.'), ".iso"); // replace .wbfs with .iso - if (stat(fpath, &st) == -1) { - //printf("missing: %s\n", fpath); - if (lay_a && lay_b == 1) { - // mark lay_b so that the stat check is still done, - // but lay_b is not re-tried again - lay_b = 2; - // retry with layout b - goto try_lay_b; - } - continue; - } - } - } else { - st.st_size = 1024*1024; - } - } else { - // usb:/wbfs/GAMEID.wbfs - // or usb:/wbfs/GAMEID.iso - p = strrchr(fname, '.'); - if (!p) continue; - if ( (strcasecmp(p, ".wbfs") != 0) - && (strcasecmp(p, ".iso") != 0) ) continue; - if (p - fname != 6) continue; // GAMEID. - snprintf(fpath, sizeof(fpath), "%s/%s", path, fname); - } - - //printf("found: %s %d MB\n", fpath, (int)(st.st_size/1024/1024)); - // size must be at least 1MB to be considered a valid wbfs file - if (st.st_size < 1024*1024) continue; - // if we have titles.txt entry use that - title = cfg_get_title(id); - // if directory, and no titles.txt get title from dir name - if (!title && is_dir) { - title = dir_title; - } - if (title) { - memset(&tmpHdr, 0, sizeof(tmpHdr)); - memcpy(tmpHdr.id, id, 6); - strncpy(tmpHdr.title, title, sizeof(tmpHdr.title)-1); - tmpHdr.magic = 0x5D1C9EA3; - goto add_hdr; - } - - // else read it from file directly - if (strcasecmp(strrchr(fpath,'.'), ".wbfs") == 0) { - // wbfs file directly - FILE *fp = fopen(fpath, "rb"); - if (fp != NULL) { - fseek(fp, 512, SEEK_SET); - fread(&tmpHdr, sizeof(struct discHdr), 1, fp); - fclose(fp); - if ((tmpHdr.magic == 0x5D1C9EA3) && (memcmp(tmpHdr.id, id, 6) == 0)) { - goto add_hdr; - } - } - // no title found, read it from wbfs file - // but this is a little bit slower - // open 'partition' file - part = WBFS_FAT_OpenPart(fpath); - if (!part) { - printf("bad wbfs file: %s\n", fpath); - sleep(2); - continue; - } - /* Get header */ - ret = wbfs_get_disc_info(part, 0, (u8*)&tmpHdr, - sizeof(struct discHdr), &size); - WBFS_FAT_ClosePart(part); - if (ret == 0) { - goto add_hdr; - } - } else if (strcasecmp(strrchr(fpath,'.'), ".iso") == 0) { - // iso file - FILE *fp = fopen(fpath, "rb"); - if (fp != NULL) { - fseek(fp, 0, SEEK_SET); - fread(&tmpHdr, sizeof(struct discHdr), 1, fp); - fclose(fp); - if ((tmpHdr.magic == 0x5D1C9EA3) && (memcmp(tmpHdr.id, id, 6) == 0)) { - goto add_hdr; - } - } - } - // fail: - continue; - - // succes: add tmpHdr to list: - add_hdr: - memset(&st, 0, sizeof(st)); - //printf("added: %.6s %.20s\n", tmpHdr.id, tmpHdr.title); Wpad_WaitButtons(); - fat_hdr_count++; - fat_hdr_list = realloc(fat_hdr_list, fat_hdr_count * sizeof(struct discHdr)); - memcpy(&fat_hdr_list[fat_hdr_count-1], &tmpHdr, sizeof(struct discHdr)); - } - dirclose(dir_iter); - //dbg_time2("\nFAT_GetCount"); Wpad_WaitButtonsCommon(); - return 0; -} - - -s32 WBFS_FAT_GetCount(u32 *count) -{ - *count = 0; - _WBFS_FAT_GetHeadersCount(); - if (fat_hdr_count && fat_hdr_list) { - // for compacter mem - move up as it will be freed later - int size = fat_hdr_count * sizeof(struct discHdr); - struct discHdr *buf = malloc(size); - if (buf) { - memcpy(buf, fat_hdr_list, size); - SAFE_FREE(fat_hdr_list); - fat_hdr_list = buf; - } - } - *count = fat_hdr_count; - return 0; -} - -s32 WBFS_FAT_GetHeaders(void *outbuf, u32 cnt, u32 len) -{ - int i; - int slen = len; - if (slen > sizeof(struct discHdr)) { - slen = sizeof(struct discHdr); - } - for (i=0; ip = &wbfs_iso_file; - iso_file->header = (void*)fd; - return iso_file; - } - - wbfs_t *part = WBFS_FAT_OpenPart(fname); - if (!part) return NULL; - return wbfs_open_disc(part, discid); -} - -void WBFS_FAT_CloseDisc(wbfs_disc_t* disc) -{ - if (!disc) return; - wbfs_t *part = disc->p; - - // is this really a .iso file? - if (part == &wbfs_iso_file) { - close((int)disc->header); - free(disc); - return; - } - - wbfs_close_disc(disc); - WBFS_FAT_ClosePart(part); - return; -} - -s32 WBFS_FAT_DiskSpace(f32 *used, f32 *free) -{ - f32 size; - int ret; - struct statvfs wbfs_fat_vfs; - - *used = 0; - *free = 0; - ret = statvfs(wbfs_fs_drive, &wbfs_fat_vfs); - if (ret) return -1; - - /* FS size in GB */ - size = (f32)wbfs_fat_vfs.f_frsize * (f32)wbfs_fat_vfs.f_blocks / GB_SIZE; - *free = (f32)wbfs_fat_vfs.f_frsize * (f32)wbfs_fat_vfs.f_bfree / GB_SIZE; - *used = size - *free; - - return 0; -} - -static int nop_read_sector(void *_fp,u32 lba,u32 count,void*buf) -{ - //printf("read %d %d\n", lba, count); //Wpad_WaitButtons(); - return 0; -} - -static int nop_write_sector(void *_fp,u32 lba,u32 count,void*buf) -{ - //printf("write %d %d\n", lba, count); //Wpad_WaitButtons(); - return 0; -} - -void WBFS_FAT_fname(u8 *id, char *fname, int len, char *path) -{ - if (path == NULL) { - snprintf(fname, len, "%s%s/%.6s.wbfs", wbfs_fs_drive, wbfs_fat_dir, id); - } else { - snprintf(fname, len, "%s/%.6s.wbfs", path, id); - } -} - -// format title so that it is usable in a filename -void title_filename(char *title) -{ - int i, len; - // trim leading space - len = strlen(title); - while (*title == ' ') { - memmove(title, title+1, len); - len--; - } - // trim trailing space - not allowed on windows directories - while (len && title[len-1] == ' ') { - title[len-1] = 0; - len--; - } - // replace silly chars with '_' - for (i=0; iid, 6); - name[6] = 0; - strncpy(title, get_title(header), sizeof(title)); - title_filename(title); - - if (layout == 0) { - sprintf(name, "%s_%s", id, title); - } else { - sprintf(name, "%s [%s]", title, id); - } - - // replace space with '_' - if (re_space) { - len = strlen(name); - for (i = 0; i < len; i++) { - if(name[i]==' ') name[i] = '_'; - } - } -} - -void WBFS_FAT_get_dir(struct discHdr *header, char *path) -{ - strcpy(path, wbfs_fs_drive); - strcat(path, wbfs_fat_dir); - if (Settings.FatInstallToDir) { - strcat(path, "/"); - int layout = 0; - if (Settings.FatInstallToDir == 2) layout = 1; - mk_gameid_title(header, path + strlen(path), 0, layout); - } -} - -void mk_title_txt(struct discHdr *header, char *path) -{ - char fname[MAX_FAT_PATH]; - FILE *f; - - strcpy(fname, path); - strcat(fname, "/"); - mk_gameid_title(header, fname+strlen(fname), 1, 0); - strcat(fname, ".txt"); - - f = fopen(fname, "wb"); - if (!f) return; - fprintf(f, "%.6s = %.64s\n", header->id, get_title(header)); - fclose(f); - printf("Info file: %s\n", fname); -} - - -int WBFS_FAT_find_fname(u8 *id, char *fname, int len) -{ - struct stat st; - // look for direct .wbfs file - WBFS_FAT_fname(id, fname, len, NULL); - if (stat(fname, &st) == 0) return 1; - // look for direct .iso file - strcpy(strrchr(fname, '.'), ".iso"); // replace .wbfs with .iso - if (stat(fname, &st) == 0) return 1; - // direct file not found, check subdirs - *fname = 0; - DIR_ITER *dir_iter; - char path[MAX_FAT_PATH]; - char name[MAX_FAT_PATH]; - strcpy(path, wbfs_fs_drive); - strcat(path, wbfs_fat_dir); - dir_iter = diropen(path); - //printf("dir: %s %p\n", path, dir); Wpad_WaitButtons(); - if (!dir_iter) { - return 0; - } - while (dirnext(dir_iter, name, &st) == 0) { - if (name[0] == '.') continue; - int n = strlen(name); - if (n < 8) continue; - if (name[6] == '_') { - // GAMEID_TITLE - if (strncmp(name, (char*)id, 6) != 0) goto try_alter; - } else { - try_alter: - // TITLE [GAMEID] - if (name[n-8] != '[' || name[n-1] != ']') continue; - if (strncmp(&name[n-7], (char*)id, 6) != 0) continue; - } - // look for .wbfs file - snprintf(fname, len, "%s/%s/%.6s.wbfs", path, name, id); - if (stat(fname, &st) == 0) { - break; - } - // look for .iso file - snprintf(fname, len, "%s/%s/%.6s.iso", path, name, id); - if (stat(fname, &st) == 0) { - break; - } - *fname = 0; - } - dirclose(dir_iter); - if (*fname) { - // found - //printf("found:%s\n", fname); - return 2; - } - // not found - return 0; -} - -wbfs_t* WBFS_FAT_OpenPart(char *fname) -{ - wbfs_t *part = NULL; - int ret; - - // wbfs 'partition' file - ret = split_open(&split, fname); - if (ret) return NULL; - part = wbfs_open_partition( - split_read_sector, - nop_write_sector, //readonly //split_write_sector, - &split, fat_sector_size, split.total_sec, 0, 0); - if (!part) { - split_close(&split); - } - return part; -} - -wbfs_t* WBFS_FAT_CreatePart(u8 *id, char *path) -{ - char fname[MAX_FAT_PATH]; - wbfs_t *part = NULL; - u64 size = (u64)143432*2*0x8000ULL; - u32 n_sector = size / 512; - int ret; - - //printf("CREATE PART %s %lld %d\n", id, size, n_sector); - snprintf(fname, sizeof(fname), "%s%s", wbfs_fs_drive, wbfs_fat_dir); - mkdir(fname, 0777); // base usb:/wbfs - mkdir(path, 0777); // game subdir - WBFS_FAT_fname(id, fname, sizeof(fname), path); - printf("Writing to %s\n", fname); - ret = split_create(&split, fname, OPT_split_size, size, true); - if (ret) return NULL; - - // force create first file - u32 scnt = 0; - int fd = split_get_file(&split, 0, &scnt, 0); - if (fd<0) { - printf("ERROR creating file\n"); - sleep(2); - split_close(&split); - return NULL; - } - - part = wbfs_open_partition( - split_read_sector, - split_write_sector, - &split, fat_sector_size, n_sector, 0, 1); - if (!part) { - split_close(&split); - } - return part; -} - -void WBFS_FAT_ClosePart(wbfs_t* part) -{ - if (!part) return; - split_info_t *s = (split_info_t*)part->callback_data; - wbfs_close(part); - if (s) split_close(s); -} - -s32 WBFS_FAT_RemoveGame(u8 *discid) -{ - char fname[MAX_FAT_PATH]; - int loc; - // wbfs 'partition' file - loc = WBFS_FAT_find_fname(discid, fname, sizeof(fname)); - if ( !loc ) return -1; - split_create(&split, fname, 0, 0, true); - split_close(&split); - if (loc == 1) return 0; - - // game is in subdir - // remove optional .txt file - DIR_ITER *dir_iter; - struct stat st; - char path[MAX_FAT_PATH]; - char name[MAX_FAT_PATH]; - strncpy(path, fname, sizeof(path)); - char *p = strrchr(path, '/'); - if (p) *p = 0; - dir_iter = diropen(path); - if (!dir_iter) return 0; - while (dirnext(dir_iter, name, &st) == 0) { - if (name[0] == '.') continue; - if (name[6] != '_') continue; - if (strncmp(name, (char*)discid, 6) != 0) continue; - p = strrchr(name, '.'); - if (!p) continue; - if (strcasecmp(p, ".txt") != 0) continue; - snprintf(fname, sizeof(fname), "%s/%s", path, name); - remove(fname); - break; - } - dirclose(dir_iter); - // remove game subdir - unlink(path); - - return 0; -} - - -s32 WBFS_FAT_AddGame(void) -{ - static struct discHdr header ATTRIBUTE_ALIGN(32); - char path[MAX_FAT_PATH]; - wbfs_t *part = NULL; - s32 ret; - - // read ID from DVD - Disc_ReadHeader(&header); - // path - WBFS_FAT_get_dir(&header, path); - // create wbfs 'partition' file - part = WBFS_FAT_CreatePart(header.id, path); - if (!part) return -1; - /* Add game to device */ - partition_selector_t part_sel = ALL_PARTITIONS; - int copy_1_1 = Settings.fullcopy; - switch (Settings.partitions_to_install) { - case install_game_only: - part_sel = ONLY_GAME_PARTITION; - break; - case install_all: - part_sel = ALL_PARTITIONS; - break; - case install_all_but_update: - part_sel = REMOVE_UPDATE_PARTITION; - break; - } - if (copy_1_1) { - part_sel = ALL_PARTITIONS; - } - extern wbfs_t *hdd; - wbfs_t *old_hdd = hdd; - hdd = part; // used by spinner - ret = wbfs_add_disc(part, __WBFS_ReadDVD, NULL, WBFS_Spinner, part_sel, copy_1_1); - hdd = old_hdd; - wbfs_trim(part); - WBFS_FAT_ClosePart(part); - - if (ret < 0) return ret; - mk_title_txt(&header, path); - - return 0; -} - -s32 WBFS_FAT_DVD_Size(u64 *comp_size, u64 *real_size) -{ - s32 ret; - u32 comp_sec = 0, last_sec = 0; - - wbfs_t *part = NULL; - u64 size = (u64)143432*2*0x8000ULL; - u32 n_sector = size / fat_sector_size; - u32 wii_sec_sz; - - // init a temporary dummy part - // as a placeholder for wbfs_size_disc - part = wbfs_open_partition( - nop_read_sector, nop_write_sector, - NULL, fat_sector_size, n_sector, 0, 1); - if (!part) return -1; - wii_sec_sz = part->wii_sec_sz; - - /* Add game to device */ - partition_selector_t part_sel; - if (Settings.partitions_to_install) { - part_sel = ALL_PARTITIONS; - } else { - part_sel = ONLY_GAME_PARTITION; - } - ret = wbfs_size_disc(part, __WBFS_ReadDVD, NULL, part_sel, &comp_sec, &last_sec); - wbfs_close(part); - if (ret < 0) - return ret; - - *comp_size = (u64)wii_sec_sz * comp_sec; - *real_size = (u64)wii_sec_sz * last_sec; - - return 0; -} - -s32 WBFS_FAT_RenameGame(u8 *discid, const void *newname) -{ - wbfs_t *part = WBFS_FAT_OpenPart((char *) discid); - if (!part) - return -1; - - s32 ret = wbfs_ren_disc(part, discid,(u8*)newname); - - WBFS_FAT_ClosePart(part); - - return ret; -} - -s32 WBFS_FAT_ReIDGame(u8 *discid, const void *newID) -{ - wbfs_t *part = WBFS_FAT_OpenPart((char *) discid); - if (!part) - return -1; - - s32 ret = wbfs_rID_disc(part, discid,(u8*)newID); - - WBFS_FAT_ClosePart(part); - - if(ret == 0) - { - char fname[100]; - char fnamenew[100]; - s32 cnt = 0x31; - - WBFS_FAT_fname(discid, fname, sizeof(fname), NULL); - WBFS_FAT_fname((u8*) newID, fnamenew, sizeof(fnamenew), NULL); - - int stringlength = strlen(fname); - - while(rename(fname, fnamenew) == 0) - { - fname[stringlength] = cnt; - fname[stringlength+1] = 0; - fnamenew[stringlength] = cnt; - fnamenew[stringlength+1] = 0; - cnt++; - } - } - - return ret; -} - -s32 WBFS_FAT_EstimateGameSize(void) { - wbfs_t *part = NULL; - u64 size = (u64)143432*2*0x8000ULL; - u32 n_sector = size / fat_sector_size; - u32 wii_sec_sz; - - // init a temporary dummy part - // as a placeholder for wbfs_size_disc - part = wbfs_open_partition( - nop_read_sector, nop_write_sector, - NULL, fat_sector_size, n_sector, 0, 1); - if (!part) return -1; - wii_sec_sz = part->wii_sec_sz; - - partition_selector_t part_sel; - if (Settings.fullcopy) { - part_sel = ALL_PARTITIONS; - } else { - part_sel = Settings.partitions_to_install == install_game_only ? ONLY_GAME_PARTITION : ALL_PARTITIONS; - } - return wbfs_estimate_disc(part, __WBFS_ReadDVD, NULL, part_sel); -}