diff --git a/filemanager/fm.css b/filemanager/fm.css index 69f9609..e14e035 100644 --- a/filemanager/fm.css +++ b/filemanager/fm.css @@ -161,7 +161,6 @@ div { .u2 { grid-area: u2; - cursor: pointer; background-color: #CC6666; margin-top: 0px; padding-left: 10px; @@ -169,8 +168,16 @@ div { font-size: 80%; } -.u2:hover { +.u2 .s1, .u2 .s2 { + cursor: pointer; + height: 100%; + padding: 0 2px 0 2px; + display: inline-block; +} + +.u2 .s1:hover, .u2 .s2:hover { background-color: #9999FF; + border-radius: 2px; color: white; } diff --git a/filemanager/fm.html b/filemanager/fm.html index 660377d..a72396a 100644 --- a/filemanager/fm.html +++ b/filemanager/fm.html @@ -44,7 +44,7 @@
 
-
Download all files
+
Download all files this folder
Loading...
 
diff --git a/filemanager/fm.js b/filemanager/fm.js index 885ae8f..48a3713 100644 --- a/filemanager/fm.js +++ b/filemanager/fm.js @@ -601,9 +601,13 @@ function msgline(msg) { } //000000000000000000000000000 -function downloadall() { - msgline("Sending all files in one zip."); - window.location.href = "/c?za=all"; +function downloadall(param) { + if (param==0) { + msgline("Sending this folder in one zip file."); + } else { + msgline("Sending all files in one zip file."); + } + window.location.href = "/job?fs=" + getFileSystemIndex() + "&job=dwnldll&fn=dummy&folder=" + foldername; msgline(""); } diff --git a/src/ESPFMfGK.cpp b/src/ESPFMfGK.cpp index bfb0bd5..0cc811f 100644 --- a/src/ESPFMfGK.cpp +++ b/src/ESPFMfGK.cpp @@ -4,8 +4,7 @@ #include // web page/javascript/css #include // web page/javascript/css #include // some form fragments - -#include +#include // Den ZIP-Code #include #include @@ -490,10 +489,18 @@ void ESPFMfGK::recurseFolder(String foldername, bool flatview, int maxtiefe, boo { if (foldername != "/") { + String collector = "-1:..:" + Folder1LevelUp(foldername); + collector += itemtrenner; + collector += "-2:" + foldername; + collector += itemtrenner; + fileManager->sendContent(collector); + + /** / fileManager->sendContent("-1:..:" + Folder1LevelUp(foldername)); fileManager->sendContent(itemtrenner); // 0 fileManager->sendContent("-2:" + foldername); fileManager->sendContent(itemtrenner); // 1 + /**/ } recurseFolderList(foldername, -1, 0); } @@ -539,6 +546,19 @@ void ESPFMfGK::recurseFolder(String foldername, bool flatview, int maxtiefe, boo if (!(flags & ESPFMfGK::flagIsNotVisible)) { + String collector = String(file.path()); + collector += itemtrenner; + collector += DeUmlautFilename(String(file.path())); + collector += itemtrenner; + collector += dispFileString(file.size(), false); + collector += itemtrenner; + collector += colorline(linecounter); + collector += itemtrenner; + collector += String(flags); + collector += itemtrenner; + fileManager->sendContent(collector); + + /** / fileManager->sendContent(String(file.path())); // .path() ist fqfn, .name() nur fn? fileManager->sendContent(itemtrenner); // 0 fileManager->sendContent(DeUmlautFilename(String(file.path()))); // Display Name @@ -549,7 +569,7 @@ void ESPFMfGK::recurseFolder(String foldername, bool flatview, int maxtiefe, boo fileManager->sendContent(itemtrenner); // 3 fileManager->sendContent(String(flags)); fileManager->sendContent(itemtrenner); // 4 - + /**/ linecounter++; } } @@ -600,56 +620,43 @@ void ESPFMfGK::fileManagerFileListInsert(void) int linecounter = 0; recurseFolder(path, !sit, maxtiefe, true, linecounter); - fileManager->sendContent(antworttrenner); - String sinfo = "  Size: " + - dispFileString(totalBytes(fsinfo[fsi].filesystem), true) + - ", used: " + - dispFileString(usedBytes(fsinfo[fsi].filesystem), true) + - ""; - /* - fileManager->sendContent(F(" FS blocksize: ")); - fileManager->sendContent(String(info.blockSize)); - fileManager->sendContent(F(", pageSize: ")); - fileManager->sendContent(String(info.pageSize)); - */ + collector += "\">  Size: " + + dispFileString(totalBytes(fsinfo[fsi].filesystem), true) + + ", used: " + + dispFileString(usedBytes(fsinfo[fsi].filesystem), true) + + ""; - fileManager->sendContent(sinfo); - - fileManager->sendContent(antworttrenner); - - fileManager->sendContent(F(""; for (int i = 0; i < maxfilesystem; i++) { if (i == fsi) { - fileManager->sendContent(F("")); + collector += ">" + fsinfo[i].fsname + ""; } - fileManager->sendContent(F("")); + collector += ""; - fileManager->sendContent(F("sendContent(F("onchange=\"fsselectonchange();\"")); + collector += "sendContent(F(" checked ")); + collector += " checked "; } - fileManager->sendContent(F("/>")); - fileManager->sendContent(F("")); + collector += "/>"; + fileManager->sendContent(collector); // The End. fileManager->sendContent(""); } @@ -670,20 +677,15 @@ void ESPFMfGK::fileManagerBootinfo(void) // hier kann man die globalen Stati initialisieren, weil man weiß, dass die Webseite gerade frisch geladen wird. lastFileSystemIndex = -1; - fileManager->setContentLength(CONTENT_LENGTH_UNKNOWN); - fileManager->send(200, F("text/html"), String()); - - fileManager->sendContent(BackgroundColor); - fileManager->sendContent(extrabootinfotrenner); - - fileManager->sendContent(ExtraHTMLfoot); - fileManager->sendContent(extrabootinfotrenner); - - fileManager->sendContent(WebPageTitle); - fileManager->sendContent(extrabootinfotrenner); + String collector = // + BackgroundColor + // + extrabootinfotrenner + // + ExtraHTMLfoot + // + extrabootinfotrenner + // + WebPageTitle + // + extrabootinfotrenner; - // The End. - fileManager->sendContent(""); + fileManager->send(200, F("text/html"), collector); } //***************************************************************************************************** @@ -706,11 +708,13 @@ String ESPFMfGK::getFileNameFromParam(uint32_t flag) // No flags, do nothing if (checkFileFlags == NULL) { + Serial.println("CheckFileFlags==NULL"); return ""; } if (fileManager->args() < 3) { + Serial.println("Args < 3"); return ""; } @@ -718,13 +722,14 @@ String ESPFMfGK::getFileNameFromParam(uint32_t flag) if (fn == "") { + Serial.println("arg(fn) is empty"); return ""; } int fsi = getFileSystemIndex(); // Sonderregel, wenn eine neue Datei erstellt werden soll - if (flag & flagCanCreateNew) + if ((flag & flagCanCreateNew) || (flag & flagAllowInZip)) { return fn; } @@ -734,6 +739,7 @@ String ESPFMfGK::getFileNameFromParam(uint32_t flag) { // file exists! if (checkFileFlags(*fsinfo[fsi].filesystem, fn, flagIsValidAction | flag) & flag == 0) { + Serial.println("checkFileFlags fail."); return ""; } @@ -742,6 +748,7 @@ String ESPFMfGK::getFileNameFromParam(uint32_t flag) } } + Serial.println("Return nothing"); return ""; } @@ -968,6 +975,28 @@ void ESPFMfGK::fileManagerJobber(void) fileManagerFileEditorInsert(fn); return; //<<========================== } + else if (jobname == "dwnldll") // downloadall + { + String fn = getFileNameFromParam(flagAllowInZip | flagCanDownload); + /**/ + Serial.print("Downloadall: "); + Serial.print(fn); + Serial.println(); + /**/ + if (fn == "") + { + Illegal404(); + return; + } + { + ESPFMfGKGa *z = new ESPFMfGKGa(); + z->fileManager = fileManager; + z->checkFileFlags = checkFileFlags; + z->getAllFilesInOneZIP(fsinfo[getFileSystemIndex()].filesystem, fileManager->arg("folder")); + delete z; + } + return; //<<========================== + } else if ((jobname == "download") || (jobname == "preview")) { String fn = getFileNameFromParam(flagCanDownload); @@ -1195,282 +1224,6 @@ void ESPFMfGK::fileManagerReceiver(void) } } -struct __attribute__((__packed__)) zipFileHeader -{ - uint32_t signature; // 0x04034b50; - uint16_t versionneeded; - uint16_t bitflags; - uint16_t comp_method; - uint16_t lastModFileTime; - uint16_t lastModFileDate; - uint32_t crc_32; - uint32_t comp_size; - uint32_t uncompr_size; - uint16_t fname_len; - uint16_t extra_field_len; -}; - -struct __attribute__((__packed__)) zipDataDescriptor -{ - uint32_t signature; // 0x08074b50 - uint32_t crc32; - uint32_t comp_size; - uint32_t uncompr_size; -}; - -struct __attribute__((__packed__)) zipEndOfDirectory -{ - uint32_t signature; // 0x06054b50; - uint16_t nrofdisks; - uint16_t diskwherecentraldirectorystarts; - uint16_t nrofcentraldirectoriesonthisdisk; - uint16_t totalnrofcentraldirectories; - uint32_t sizeofcentraldirectory; - uint32_t ofsetofcentraldirectoryrelativetostartofarchiv; - uint16_t commentlength; -}; - -struct __attribute__((__packed__)) zipCentralDirectoryFileHeader -{ - uint32_t signature; // 0x02014b50 - uint16_t versionmadeby; - uint16_t versionneededtoextract; - uint16_t flag; - uint16_t compressionmethode; - uint16_t lastModFileTime; - uint16_t lastModFileDate; - uint32_t crc_32; - uint32_t comp_size; - uint32_t uncompr_size; - uint16_t fname_len; - uint16_t extra_len; - uint16_t comment_len; - uint16_t diskstart; - uint16_t internalfileattr; - uint32_t externalfileattr; - uint32_t relofsoflocalfileheader; - // nun filename, extra field, comment -}; - -//***************************************************************************************************** -int ESPFMfGK::WriteChunk(const char *b, size_t l) -{ - // Serial.print(" Chunk: " + String(l) + " "); - - const char *footer = "\r\n"; - char chunkSize[11]; - sprintf(chunkSize, "%zx\r\n", l); - fileManager->client().write(chunkSize, strlen(chunkSize)); - fileManager->client().write(b, l); - fileManager->client().write(footer, 2); - - return strlen(chunkSize) + l + 2; -} - -//***************************************************************************************************** -/* https://en.wikipedia.org/wiki/Zip_(file_format) - https://www.fileformat.info/tool/hexdump.htm - https://hexed.it/?hl=de - HxD https://mh-nexus.de/de/ - - This code needs some memory: - 4 * + copybuffersize - - Uses no compression, because, well, code size. Should be good for 4mb. -*/ -void ESPFMfGK::getAllFilesInOneZIP(void) -{ - const byte copybuffersize = 100; - - fileManager->setContentLength(CONTENT_LENGTH_UNKNOWN); - // fileManager->sendHeader(F("Content-Type"), F("text/text")); - // fileManager->sendHeader(F("Transfer-Encoding"), F("chunked")); - // fileManager->sendHeader(F("Connection"), F("close")); - fileManager->sendHeader(F("Content-Disposition"), F("attachment; filename=alles.zip")); - fileManager->sendHeader(F("Content-Transfer-Encoding"), F("binary")); - fileManager->send(200, F("application/octet-stream"), ""); - - // get the file system. all safe. - int fsi = getFileSystemIndex(); - - // Pass 0: count files - int files = 0; - { - File file = fsinfo[fsi].filesystem->open("/"); - while (file) - { - String fn = file.name(); - /* - if ( (_ViewSysFiles) || (allowAccessToThisFile(fn)) ) { - files++; - } - */ - file = file.openNextFile(); - } - // Serial.println("Files: "+String(files)); - } - // Store the crcs - uint32_t crc_32s[files]; - - // Pass 1: local headers + file - { - zipFileHeader zip; - zip.signature = 0x04034b50; - zip.versionneeded = 0; - zip.bitflags = 1 << 3; - zip.comp_method = 0; // stored - zip.lastModFileTime = 0x4fa5; - zip.lastModFileDate = 0xe44e; - zip.extra_field_len = 0; - - int i = 0; - File file = fsinfo[fsi].filesystem->open("/"); - while (file) - { - String fn = file.name(); - - // if ( (_ViewSysFiles) || (allowAccessToThisFile(fn)) ) { - if (fn.indexOf("/") == 0) - { - fn.remove(0, 1); // "/" filenames beginning with "/" dont work for Windows.... - } - - zip.comp_size = 0; - zip.uncompr_size = 0; - zip.crc_32 = 0; - zip.fname_len = fn.length(); - WriteChunk((char *)&zip, sizeof(zip)); - WriteChunk(fn.c_str(), zip.fname_len); - - // Serial.print("Send: " + fn); - // File f = dir.open("r",FILE_READ); - int len = file.size(); - - // send crc+len later... - zipDataDescriptor datadiscr; - datadiscr.signature = 0x08074b50; - datadiscr.comp_size = len; - datadiscr.uncompr_size = len; - - const char *footer = "\r\n"; - char chunkSize[11]; - sprintf(chunkSize, "%zx\r\n", len); - fileManager->client().write(chunkSize, strlen(chunkSize)); - - { // pff. - CRC32 crc; - byte b[copybuffersize]; - int lenr = len; - while (lenr > 0) - { - byte r = (lenr > copybuffersize) ? copybuffersize : lenr; - file.read(b, r); - crc.update(b, r); - fileManager->client().write(b, r); - lenr -= r; - } - datadiscr.crc32 = crc.finalize(); - crc_32s[i] = datadiscr.crc32; - } - - fileManager->client().write(footer, 2); - - WriteChunk((char *)&datadiscr, sizeof(datadiscr)); - - // f.close(); - i++; - /** / - Serial.print(" "); - Serial.print(l); - Serial.println(); - /**/ - //} - file = file.openNextFile(); - } - } - - // Pass 2: Central directory Structur - { - zipEndOfDirectory eod; - eod.signature = 0x06054b50; - eod.nrofdisks = 0; - eod.diskwherecentraldirectorystarts = 0; - eod.nrofcentraldirectoriesonthisdisk = 0; - eod.totalnrofcentraldirectories = 0; - eod.sizeofcentraldirectory = 0; - eod.ofsetofcentraldirectoryrelativetostartofarchiv = 0; - eod.commentlength = 0; - - zipCentralDirectoryFileHeader CDFH; - - CDFH.signature = 0x02014b50; - CDFH.versionmadeby = 0; - CDFH.versionneededtoextract = 0; - CDFH.flag = 0; - CDFH.compressionmethode = 0; // Stored - CDFH.lastModFileTime = 0x4fa5; - CDFH.lastModFileDate = 0xe44e; - CDFH.extra_len = 0; - CDFH.comment_len = 0; - CDFH.diskstart = 0; - CDFH.internalfileattr = 0x01; - CDFH.externalfileattr = 0x20; - CDFH.relofsoflocalfileheader = 0; - - int i = 0; - - File file = fsinfo[fsi].filesystem->open("/"); - while (file) - { - String fn = file.name(); - - // if ( (_ViewSysFiles) || (allowAccessToThisFile(fn)) ) { - if (fn.indexOf("/") == 0) - { - fn.remove(0, 1); // "/" filenames beginning with "/" dont work for Windows.... - } - // Serial.print("CDFH: " + fn); - // File f = dir.open("r",FILE_READ); - int len = file.size(); - - CDFH.comp_size = len; - CDFH.uncompr_size = len; - CDFH.fname_len = fn.length(); - CDFH.crc_32 = crc_32s[i]; - - // f.close(); - - WriteChunk((char *)&CDFH, sizeof(CDFH)); - WriteChunk(fn.c_str(), CDFH.fname_len); - - int ofs = sizeof(zipFileHeader) + len + CDFH.fname_len + sizeof(zipDataDescriptor); - - // next position - CDFH.relofsoflocalfileheader += ofs; - - // book keeping - eod.nrofcentraldirectoriesonthisdisk++; - eod.totalnrofcentraldirectories++; - eod.ofsetofcentraldirectoryrelativetostartofarchiv += ofs; - eod.sizeofcentraldirectory += sizeof(CDFH) + CDFH.fname_len; - - i++; - //} - file = file.openNextFile(); - } - - // Serial.print("EOD: "); - WriteChunk((char *)&eod, sizeof(eod)); - // Serial.println(); - } - - const char *endchunk = "0\r\n\r\n"; - fileManager->client().write(endchunk, 5); - - fileManager->sendContent(""); - delay(1); -} - //***************************************************************************************************** String ESPFMfGK::DeUmlautFilename(String fn) { // cp437/cp850 to ... @@ -1561,16 +1314,3 @@ uint64_t ESPFMfGK::usedBytes(fs::FS *fs) return -1; } } - -//***************************************************************************************************** -/* - - // +--++--++--++--++--++--++--++--++--++--++--++--++--++--++--+ - // one arg, "za", zip all and download - if ( (fileManager->args() == 1) && (fileManager->argName(0) == "za") ) { - getAllFilesInOneZIP(); - // does it all - return; - } - } -*/ diff --git a/src/ESPFMfGK.h b/src/ESPFMfGK.h index 72511e9..ae134ca 100644 --- a/src/ESPFMfGK.h +++ b/src/ESPFMfGK.h @@ -10,6 +10,8 @@ Changes V1.7 + preview-fenster-titel transparenz optimiert + + Redesign ZIP-Schnittstelle, Verlagerung in eigenen .h/.cpp wg. Sourcecodeumfangsverminderung + + some sendContent-collector-speedups V1.6 + WebPageTitle to set the pweb page title @@ -33,37 +35,7 @@ x more fancy web gui: Prozent-Anzeigen! (Mainly because SD is so slow...) x implemented a basic concept to dynamically add html/css-content and handle URL clicks - V1.03 - x removed all SPIFFS from ESP32 version, switched fully to LittleFS - x fixed rename+delete for ESP32+LittleFS (added "/") - - V1.02 - x fixed the way to select the file system by conditional defines - - V1.01 - + added file name progress while uploading - x fixed error in ZIP file structure (zip.bitflags needs a flag) - - V1.00 - + out of V0.9998... - + ESP8266: LittleFS is default - + javascript: added "msgline();" - + javascript: added "Loading..." as a not-working-hint to show that Javascript is disabled - + cleaning up the "/"-stuff (from SPIFF with leading "/" to LittleFS without...) - + Warning: esp8266 2.7.4 has an error in mime::getContentType(path) for .TXT. Fix line 65 is { kTxtSuffix, kTxt }, - + review of "edit file", moved some stuff to ESPxWebFlMgrWpF.h - - V0.9998 - + Renamed to ESPxWebFlMgr and made it work with esp32 and esp8266 - + separated file manager web page, "build script" to generate it - - V0.7 - + "Download all files" creates a zip file from all files and downloads it - + option to set background color - - html5 fixes - - V0.6 - + Public Release on https://github.com/holgerlembke/ESP8266WebFlMgr + V1.x formerly known as ESPxWebFlMgr */ #include @@ -179,10 +151,6 @@ class ESPFMfGK void servefile(String uri); void Illegal404(); - // Zip-File uncompressed/stored - void getAllFilesInOneZIP(void); - int WriteChunk(const char *b, size_t l); - // Hlpr für die Verwaltung, was angezeigt werden soll static const int8_t maxfilesystems = 4; // !!!!!!! FileSystemInfo_t fsinfo[maxfilesystems]; diff --git a/src/ESPFMfGKGa.cpp b/src/ESPFMfGKGa.cpp new file mode 100644 index 0000000..bd54d93 --- /dev/null +++ b/src/ESPFMfGKGa.cpp @@ -0,0 +1,398 @@ +#include +#include +#include +#include + +#include + +struct __attribute__((__packed__)) zipFileHeader +{ + uint32_t signature; // 0x04034b50; + uint16_t versionneeded; + uint16_t bitflags; + uint16_t comp_method; + uint16_t lastModFileTime; + uint16_t lastModFileDate; + uint32_t crc_32; + uint32_t comp_size; + uint32_t uncompr_size; + uint16_t fname_len; + uint16_t extra_field_len; +}; + +struct __attribute__((__packed__)) zipDataDescriptor +{ + uint32_t signature; // 0x08074b50 + uint32_t crc32; + uint32_t comp_size; + uint32_t uncompr_size; +}; + +struct __attribute__((__packed__)) zipEndOfDirectory +{ + uint32_t signature; // 0x06054b50; + uint16_t nrofdisks; + uint16_t diskwherecentraldirectorystarts; + uint16_t nrofcentraldirectoriesonthisdisk; + uint16_t totalnrofcentraldirectories; + uint32_t sizeofcentraldirectory; + uint32_t ofsetofcentraldirectoryrelativetostartofarchiv; + uint16_t commentlength; +}; + +struct __attribute__((__packed__)) zipCentralDirectoryFileHeader +{ + uint32_t signature; // 0x02014b50 + uint16_t versionmadeby; + uint16_t versionneededtoextract; + uint16_t flag; + uint16_t compressionmethode; + uint16_t lastModFileTime; + uint16_t lastModFileDate; + uint32_t crc_32; + uint32_t comp_size; + uint32_t uncompr_size; + uint16_t fname_len; + uint16_t extra_len; + uint16_t comment_len; + uint16_t diskstart; + uint16_t internalfileattr; + uint32_t externalfileattr; + uint32_t relofsoflocalfileheader; + // nun filename, extra field, comment +}; + +//***************************************************************************************************** +void ESPFMfGKGa::deletefoldert(folder_t *root /**/) +{ + while (root) + { + folder_t *temp = root; + root = root->next; + delete temp; + } +} + +//***************************************************************************************************** +void ESPFMfGKGa::displayfoldert(folder_t *root /**/) +{ + while (root) + { + Serial.println(root->foldername); + root = root->next; + } +} + +//***************************************************************************************************** +ESPFMfGKGa::folder_t *ESPFMfGKGa::buildfilelistrecurser(fs::FS &fs, String pfad, ESPFMfGKGa::folder_t *localroot /**/) +{ + File rootfile = fs.open(pfad); + if (!rootfile) + { + Serial.println("- failed to open directory"); + return NULL; + } + if (!rootfile.isDirectory()) + { + Serial.println(" - not a directory"); + return NULL; + } + + File file = rootfile.openNextFile(); + while (file) + { + if (file.isDirectory()) + { + /** / + Serial.print("DIR: "); + Serial.println(file.name()); + /**/ + + localroot->next = new folder_t; + localroot = localroot->next; + localroot->foldername = file.path(); + localroot->next = NULL; + + localroot = buildfilelistrecurser(fs, file.path(), localroot); + } + file = rootfile.openNextFile(); + } + return localroot; +} + +//***************************************************************************************************** +ESPFMfGKGa::folder_t *ESPFMfGKGa::buildfilelist(fs::FS &fs /**/, String rootfolder) +{ + /** / + Serial.print("buildfilelist root: "); + Serial.println(rootfolder); + /**/ + + folder_t *root = new folder_t; + + root->next = NULL; + root->foldername = rootfolder; + buildfilelistrecurser(fs, rootfolder, root); + + return root; +} + +//***************************************************************************************************** +int ESPFMfGKGa::WriteChunk(const char *b, size_t l) +{ + // Serial.print(" Chunk: " + String(l) + " "); + + const char *footer = "\r\n"; + char chunkSize[11]; + sprintf(chunkSize, "%zx\r\n", l); + fileManager->client().write(chunkSize, strlen(chunkSize)); + fileManager->client().write(b, l); + fileManager->client().write(footer, 2); + + return strlen(chunkSize) + l + 2; +} + +//***************************************************************************************************** +/* https://en.wikipedia.org/wiki/Zip_(file_format) + https://www.fileformat.info/tool/hexdump.htm + https://hexed.it/?hl=de + HxD https://mh-nexus.de/de/ + unzip -t + + This code needs some memory: + 4 * + copybuffersize + + Uses no compression, because, well, code size. Should be good for 4mb. +*/ +void ESPFMfGKGa::getAllFilesInOneZIP(fs::FS *fs, String rootfolder) +{ + const int copybuffersize = 1000; + + fileManager->setContentLength(CONTENT_LENGTH_UNKNOWN); + // fileManager->sendHeader(F("Content-Type"), F("text/text")); + // fileManager->sendHeader(F("Transfer-Encoding"), F("chunked")); + // fileManager->sendHeader(F("Connection"), F("close")); + fileManager->sendHeader(F("Content-Disposition"), F("attachment; filename=alles.zip")); + fileManager->sendHeader(F("Content-Transfer-Encoding"), F("binary")); + fileManager->send(200, F("application/octet-stream"), ""); + + // Upsi. + if (rootfolder == "") + { + rootfolder = "/"; + } + + // Pass -1: get folder list + folder_t *folderlist = buildfilelist(*fs, rootfolder); + /** / + displayfoldert(folderlist); + /**/ + + uint32_t flags; + + // Pass 0: count files + int files = 0; + folder_t *folderi = folderlist; + while (folderi) + { + { + File root = fs->open(folderi->foldername); + File file = root.openNextFile(); + while (file) + { + if (!file.isDirectory()) + { + String fn = file.name(); + if (checkFileFlags != NULL) + { + flags = checkFileFlags(*fs, fn, ESPFMfGK::flagIsValidAction | ESPFMfGK::flagAllowInZip); + } + if (flags & ESPFMfGK::flagAllowInZip) + { + files++; + } + } + file = root.openNextFile(); + } + } + folderi = folderi->next; + } + /** / + Serial.print("Files: "); + Serial.print(files); + Serial.println(); + /**/ + // Store the crcs + uint32_t crc_32s[files]; + + // Pass 1: local headers + file + { + zipFileHeader zip; + zip.signature = 0x04034b50; + zip.versionneeded = 0; + zip.bitflags = 1 << 3; + zip.comp_method = 0; // stored + zip.lastModFileTime = 0x4fa5; + zip.lastModFileDate = 0xe44e; + zip.extra_field_len = 0; + + folderi = folderlist; + int fileidx = 0; + while (folderi) + { + File root = fs->open(folderi->foldername); + File file = root.openNextFile(); + while (file) + { + if (!file.isDirectory()) + { + String fn = file.name(); + + if (checkFileFlags != NULL) + { + flags = checkFileFlags(*fs, fn, ESPFMfGK::flagIsValidAction | ESPFMfGK::flagAllowInZip); + } + if (flags & ESPFMfGK::flagAllowInZip) + { + if (fn.indexOf("/") == 0) + { + fn.remove(0, 1); // "/" filenames beginning with "/" dont work for Windows.... + } + + zip.comp_size = 0; + zip.uncompr_size = 0; + zip.crc_32 = 0; + zip.fname_len = fn.length(); + WriteChunk((char *)&zip, sizeof(zip)); + WriteChunk(fn.c_str(), zip.fname_len); + + size_t len = file.size(); + + // send crc+len later... + zipDataDescriptor datadiscr; + datadiscr.signature = 0x08074b50; + datadiscr.comp_size = len; + datadiscr.uncompr_size = len; + + const char *footer = "\r\n"; + char chunkSize[11]; + sprintf(chunkSize, "%zx\r\n", len); + fileManager->client().write(chunkSize, strlen(chunkSize)); + + { // pff. + CRC32 crc; + byte b[copybuffersize]; + size_t r; + do + { + r = file.read(b, copybuffersize); + if (r > 0) + { + crc.update(b, r); + fileManager->client().write(b, r); + } + } while (r == copybuffersize); + datadiscr.crc32 = crc.finalize(); + crc_32s[fileidx] = datadiscr.crc32; + } + fileManager->client().write(footer, 2); + + WriteChunk((char *)&datadiscr, sizeof(datadiscr)); + fileidx++; + } + } + file = root.openNextFile(); + } + folderi = folderi->next; + } + } + + // Pass 2: Central directory Structur + { + zipEndOfDirectory eod; + eod.signature = 0x06054b50; + eod.nrofdisks = 0; + eod.diskwherecentraldirectorystarts = 0; + eod.nrofcentraldirectoriesonthisdisk = 0; + eod.totalnrofcentraldirectories = 0; + eod.sizeofcentraldirectory = 0; + eod.ofsetofcentraldirectoryrelativetostartofarchiv = 0; + eod.commentlength = 0; + + zipCentralDirectoryFileHeader CDFH; + + CDFH.signature = 0x02014b50; + CDFH.versionmadeby = 0; + CDFH.versionneededtoextract = 0; + CDFH.flag = 0; + CDFH.compressionmethode = 0; // Stored + CDFH.lastModFileTime = 0x4fa5; + CDFH.lastModFileDate = 0xe44e; + CDFH.extra_len = 0; + CDFH.comment_len = 0; + CDFH.diskstart = 0; + CDFH.internalfileattr = 0x01; + CDFH.externalfileattr = 0x20; + CDFH.relofsoflocalfileheader = 0; + + folderi = folderlist; + int fileidx = 0; + while (folderi) + { + File root = fs->open(folderi->foldername); + File file = root.openNextFile(); + while (file) + { + if (!file.isDirectory()) + { + String fn = file.name(); + + if (checkFileFlags != NULL) + { + flags = checkFileFlags(*fs, fn, ESPFMfGK::flagIsValidAction | ESPFMfGK::flagAllowInZip); + } + if (flags & ESPFMfGK::flagAllowInZip) + { + if (fn.indexOf("/") == 0) + { + fn.remove(0, 1); // "/" filenames beginning with "/" dont work for Windows.... + } + size_t len = file.size(); + + CDFH.comp_size = len; + CDFH.uncompr_size = len; + CDFH.fname_len = fn.length(); + CDFH.crc_32 = crc_32s[fileidx]; + + WriteChunk((char *)&CDFH, sizeof(CDFH)); + WriteChunk(fn.c_str(), CDFH.fname_len); + + int ofs = sizeof(zipFileHeader) + len + CDFH.fname_len + sizeof(zipDataDescriptor); + + // next position + CDFH.relofsoflocalfileheader += ofs; + + // book keeping + eod.nrofcentraldirectoriesonthisdisk++; + eod.totalnrofcentraldirectories++; + eod.ofsetofcentraldirectoryrelativetostartofarchiv += ofs; + eod.sizeofcentraldirectory += sizeof(CDFH) + CDFH.fname_len; + + fileidx++; + } + } + file = root.openNextFile(); + } + folderi = folderi->next; + } + + WriteChunk((char *)&eod, sizeof(eod)); + } + + const char *endchunk = "0\r\n\r\n"; + fileManager->client().write(endchunk, 5); + + fileManager->sendContent(""); + + deletefoldert(folderlist); +} diff --git a/src/ESPFMfGKGa.h b/src/ESPFMfGKGa.h new file mode 100644 index 0000000..5c3c195 --- /dev/null +++ b/src/ESPFMfGKGa.h @@ -0,0 +1,45 @@ +#ifndef ESPFMfGKGa_h +#define ESPFMfGKGa_h + +#include +#include +#include + +/* + Part of ESP32 File Manager for Generation Klick aka ESPFMfGK + https://github.com/holgerlembke/ESPFMfGK + lembke@gmail.com + + V1.0 + + Redesign ZIP-Schnittstelle, Verlagerung in eigenen .h/.cpp wg. Sourcecodeumfangsverminderung + + Auslagerung aus ESPFMfGK.h + + läuft + +*/ + +// ausgelagerte getAllFilesInOneZIP +class ESPFMfGKGa +{ +private: + // Simple linked list, neue Elemente werden HINTEN eingehängt + struct folder_t + { + folder_t *next; + String foldername; + }; + + void deletefoldert(folder_t *root /**/); + void displayfoldert(folder_t *root /**/); + folder_t *buildfilelistrecurser(fs::FS &fs, String pfad, folder_t *localroot /**/); + folder_t *buildfilelist(fs::FS &fs, String rootfolder /**/); + + int WriteChunk(const char *b, size_t l); + +public: + WebServer *fileManager = NULL; + ESPxWebCallbackFlags_t checkFileFlags = NULL; + + void getAllFilesInOneZIP(fs::FS *fs, String rootfolder); +}; + +#endif diff --git a/src/ESPFMfGKWp.h b/src/ESPFMfGKWp.h index ca5f4c6..d0a6123 100644 --- a/src/ESPFMfGKWp.h +++ b/src/ESPFMfGKWp.h @@ -52,7 +52,7 @@ static const char ESPFMfGKWpindexpage[] PROGMEM = R"==x==(
 
-
Download all files
+
Download all files this folder
Loading...
 
@@ -687,9 +687,13 @@ function msgline(msg) { } //000000000000000000000000000 -function downloadall() { - msgline("Sending all files in one zip."); - window.location.href = "/c?za=all"; +function downloadall(param) { + if (param==0) { + msgline("Sending this folder in one zip file."); + } else { + msgline("Sending all files in one zip file."); + } + window.location.href = "/job?fs=" + getFileSystemIndex() + "&job=dwnldll&fn=dummy&folder=" + foldername; msgline(""); } @@ -987,7 +991,6 @@ div { .u2 { grid-area: u2; - cursor: pointer; background-color: #CC6666; margin-top: 0px; padding-left: 10px; @@ -995,8 +998,16 @@ div { font-size: 80%; } -.u2:hover { +.u2 .s1, .u2 .s2 { + cursor: pointer; + height: 100%; + padding: 0 2px 0 2px; + display: inline-block; +} + +.u2 .s1:hover, .u2 .s2:hover { background-color: #9999FF; + border-radius: 2px; color: white; } diff --git a/src/ESPFMfGKWpDeflate.h b/src/ESPFMfGKWpDeflate.h index 8c9990d..69ebb4a 100644 --- a/src/ESPFMfGKWpDeflate.h +++ b/src/ESPFMfGKWpDeflate.h @@ -6,522 +6,528 @@ //***************************************************************************************************** const char ESPFMfGKWpindexpageDeflate[] = { - 0x9D, 0x56, 0x4D, 0x73, 0xDA, 0x30, 0x10, 0xBD, 0xF3, 0x2B, 0x14, 0x31, 0x93, 0x49, 0xF, 0xE0, -0x10, 0x37, 0xB4, 0x4, 0x9B, 0x43, 0x49, 0x98, 0x1E, 0xD2, 0x26, 0x87, 0x5C, 0xDA, 0x9B, 0xB0, -0x16, 0x5B, 0x45, 0x96, 0x3C, 0x92, 0xF8, 0xFA, 0xF7, 0x5D, 0x7F, 0x0, 0x36, 0x98, 0x4C, 0x26, -0x1E, 0xC6, 0x92, 0x56, 0xAB, 0xB7, 0x4F, 0x6F, 0xD7, 0x12, 0xC1, 0xD5, 0xE3, 0xCB, 0xF4, 0xED, -0xCF, 0xEB, 0x13, 0x49, 0x5C, 0x2A, 0x27, 0x9D, 0x20, 0x6F, 0x88, 0x64, 0x2A, 0xE, 0x29, 0x28, -0x3A, 0xE9, 0xA0, 0x5, 0x18, 0x9F, 0x74, 0x8, 0x9, 0x9C, 0x70, 0x12, 0x26, 0x33, 0x21, 0xE1, -0x17, 0x53, 0x2C, 0x6, 0x13, 0x78, 0xA5, 0x29, 0x9F, 0x4C, 0xC1, 0x31, 0x12, 0x25, 0xCC, 0x58, -0x70, 0x21, 0x5D, 0xB9, 0x45, 0xEF, 0x3B, 0x25, 0x5E, 0x31, 0x25, 0x85, 0x5A, 0x12, 0x3, 0x32, -0xA4, 0xD6, 0xED, 0x24, 0xD8, 0x4, 0xC0, 0x51, 0xE2, 0x76, 0x19, 0x84, 0xD4, 0xC1, 0xD6, 0x79, -0x91, 0xB5, 0x94, 0x24, 0x6, 0x16, 0x21, 0xF5, 0x16, 0x69, 0x3F, 0x1F, 0x16, 0xB, 0x6D, 0x64, -0x44, 0xE6, 0x88, 0x35, 0x51, 0x39, 0xF1, 0xF, 0xED, 0x81, 0x57, 0x5A, 0x91, 0xAA, 0x57, 0x32, -0xEB, 0x4, 0x73, 0xCD, 0x77, 0x24, 0x92, 0xCC, 0xDA, 0x90, 0xCE, 0x59, 0xB4, 0x8C, 0x8D, 0x5E, -0x29, 0x5E, 0x62, 0x70, 0xB1, 0x26, 0x82, 0x87, 0x34, 0x8E, 0x8A, 0x71, 0x65, 0xA9, 0x9C, 0xF5, -0xA0, 0x32, 0xE6, 0xC1, 0xD6, 0x71, 0xE1, 0xB8, 0x61, 0x2, 0xD9, 0x6D, 0x4, 0x77, 0x49, 0x48, -0xFD, 0x5B, 0x24, 0x6, 0x22, 0x4E, 0x5C, 0xD9, 0x2F, 0x36, 0x80, 0x41, 0xB4, 0xE1, 0x60, 0x1E, -0xC8, 0x20, 0xDB, 0x12, 0xAB, 0xA5, 0xE0, 0xA4, 0x3B, 0xC2, 0x67, 0x3A, 0x1D, 0x93, 0x63, 0xFC, -0x5E, 0xA4, 0xA5, 0x36, 0xF, 0x87, 0x99, 0x43, 0x28, 0xC, 0x16, 0x9, 0x13, 0x49, 0x40, 0x38, -0xA3, 0x97, 0x88, 0xD7, 0x9D, 0x4E, 0x87, 0xC3, 0xD1, 0x88, 0x56, 0x86, 0x5E, 0x15, 0x7D, 0x40, -0x89, 0xC1, 0x37, 0xC6, 0x8D, 0xB6, 0xD8, 0xDE, 0x63, 0xBB, 0x2B, 0xDB, 0x85, 0x90, 0x28, 0x67, -0x5, 0x5D, 0xE9, 0xDC, 0x84, 0xCE, 0xB7, 0xC2, 0xB5, 0x2B, 0x10, 0xEE, 0x4B, 0x80, 0x6F, 0xFD, -0xA, 0xA1, 0xE8, 0x54, 0x10, 0xB3, 0xD9, 0x68, 0x34, 0x1C, 0x36, 0x21, 0x98, 0x12, 0x29, 0x73, -0xF0, 0x66, 0x98, 0xB2, 0xB, 0x6D, 0xD2, 0x2A, 0x37, 0xDD, 0x2, 0x8F, 0x39, 0x67, 0xC4, 0x7C, -0xE5, 0xE0, 0x37, 0x4B, 0xF3, 0x4, 0xEE, 0x9D, 0xF6, 0x19, 0x35, 0xDA, 0xE1, 0x5A, 0xC4, 0x37, -0x3A, 0xD, 0xE9, 0x2D, 0x19, 0xDC, 0xE3, 0xF, 0x27, 0x35, 0x2A, 0x38, 0x3C, 0xC, 0xF9, 0xA, -0x79, 0xF9, 0x98, 0x76, 0x3, 0x19, 0x30, 0x37, 0x45, 0xC1, 0x50, 0x62, 0xA1, 0x38, 0x2C, 0x84, -0x12, 0xF9, 0xFA, 0x3, 0x21, 0xCC, 0xF8, 0x3A, 0xAE, 0x72, 0xE7, 0x61, 0xF2, 0xAA, 0xEE, 0x55, -0xAF, 0xD7, 0xCC, 0xE5, 0x1D, 0x2D, 0x36, 0x8D, 0xED, 0xE4, 0x5A, 0xCD, 0x6D, 0x36, 0x2E, 0xBD, -0x49, 0xAF, 0xD7, 0x92, 0xF8, 0x9A, 0xF3, 0x3E, 0xCC, 0xBE, 0x52, 0xF4, 0x9D, 0x18, 0x34, 0x21, -0x5A, 0x3C, 0x70, 0x7D, 0x51, 0xFB, 0x21, 0x9D, 0x1A, 0xE4, 0xF, 0x84, 0x29, 0x2, 0x69, 0xE6, -0x76, 0xB9, 0xAE, 0xC8, 0x5E, 0xAB, 0x48, 0x8A, 0x68, 0x19, 0xD2, 0x94, 0x2D, 0xA1, 0x98, 0xC8, -0xED, 0x37, 0x5F, 0xC6, 0x7B, 0xE4, 0xEB, 0xEE, 0x76, 0x36, 0xBB, 0xFD, 0x31, 0x6E, 0x50, 0x2D, -0x9E, 0xB3, 0x9D, 0xD6, 0x79, 0xFB, 0x15, 0x6F, 0xBF, 0x85, 0x61, 0xC3, 0xF1, 0xEB, 0x89, 0xC3, -0x99, 0x47, 0x5A, 0xAB, 0xFD, 0x9A, 0xD9, 0xE, 0xDE, 0xD9, 0xFC, 0xC1, 0xE7, 0x28, 0xDB, 0xE9, -0x8C, 0x5F, 0xFB, 0x2, 0xDA, 0x81, 0x6A, 0x84, 0xDB, 0xB9, 0xA7, 0x28, 0xAE, 0x56, 0xDC, 0xE8, -0xC, 0x4B, 0x18, 0xDF, 0x3F, 0x99, 0xE2, 0x12, 0xCC, 0xD, 0xAC, 0x41, 0x39, 0x54, 0xB0, 0x98, -0x64, 0xB1, 0x5E, 0x3, 0xD6, 0x50, 0xDE, 0x7B, 0xC1, 0xDE, 0xA9, 0xD3, 0x3E, 0x5C, 0x7E, 0x5C, -0x5, 0x73, 0x73, 0x2C, 0xA7, 0x47, 0x44, 0x6C, 0x18, 0xFE, 0x6A, 0x55, 0xF7, 0xB8, 0x44, 0xA, -0x15, 0x6F, 0x93, 0xC2, 0xFF, 0x80, 0x5C, 0xFE, 0x45, 0xB9, 0xFC, 0x4F, 0xC8, 0x75, 0x46, 0x6D, -0xD5, 0x46, 0xA1, 0xE1, 0x70, 0x57, 0x2B, 0x48, 0xAE, 0x37, 0x4A, 0x6A, 0xC6, 0x99, 0x94, 0x45, -0x39, 0x3E, 0x56, 0x63, 0x82, 0x86, 0xA2, 0x78, 0xED, 0x25, 0x94, 0xAA, 0xF6, 0x52, 0x1B, 0xD3, -0xC9, 0x33, 0xAE, 0x10, 0x2A, 0xEE, 0xF7, 0xFB, 0x97, 0xBC, 0x4F, 0xB, 0xF0, 0xD4, 0x21, 0x2A, -0xD1, 0x22, 0x76, 0xFE, 0x5, 0x66, 0xA2, 0xA6, 0xD7, 0x2B, 0x73, 0x9, 0x51, 0x78, 0xD6, 0x10, -0x9B, 0xE8, 0x95, 0x44, 0x9E, 0x19, 0x9E, 0x18, 0x6, 0x8F, 0x65, 0x3, 0xFD, 0x73, 0x91, 0x4A, -0x98, 0x13, 0xB9, 0x73, 0x50, 0x57, 0x7, 0x25, 0xE4, 0xCD, 0x0, 0x90, 0x67, 0x61, 0xDD, 0x3B, -0xB0, 0x27, 0xC0, 0x35, 0xB0, 0x45, 0x13, 0x2C, 0x2F, 0x32, 0x22, 0x3F, 0xB, 0x6, 0x4D, 0xB0, -0x27, 0x2E, 0x9C, 0x36, 0x9F, 0x42, 0xCA, 0xD6, 0xD, 0xA4, 0x57, 0x3, 0x6B, 0x1, 0x9B, 0x8F, -0x43, 0xB5, 0x7D, 0x9B, 0xC7, 0xCE, 0x61, 0xF3, 0x1A, 0xEF, 0x1, 0xBC, 0x88, 0xB, 0x7B, 0xE0, -0xE5, 0xB7, 0x6F, 0x7E, 0xB, 0x7B, 0xE5, 0x3F, 0x88, 0xFF }; + 0x9D, 0x56, 0xC1, 0x72, 0xDA, 0x30, 0x10, 0xBD, 0xE7, 0x2B, 0x14, 0x65, 0x26, 0x93, 0x1E, 0xC0, +0x10, 0x1A, 0x5A, 0x2, 0xE6, 0x50, 0x12, 0xA6, 0x87, 0xB4, 0xC9, 0x21, 0x97, 0xF6, 0x26, 0xAC, +0xC5, 0x56, 0x91, 0x25, 0x8F, 0x24, 0x48, 0xF8, 0xFB, 0xAE, 0x6C, 0x41, 0x6C, 0x30, 0x99, 0x4C, +0x3C, 0x8C, 0x25, 0xEF, 0x3E, 0xBD, 0x7D, 0xDA, 0x5D, 0xCB, 0x4C, 0xCE, 0xEF, 0x1E, 0x67, 0xCF, +0x7F, 0x9E, 0xEE, 0x49, 0xE6, 0x72, 0x39, 0x3D, 0x9B, 0xF8, 0x81, 0x48, 0xA6, 0xD2, 0x98, 0x82, +0xA2, 0xD3, 0x33, 0xB4, 0x0, 0xE3, 0xD3, 0x33, 0x42, 0x26, 0x4E, 0x38, 0x9, 0xD3, 0xB9, 0x90, +0xF0, 0x8B, 0x29, 0x96, 0x82, 0x99, 0x44, 0x95, 0xC9, 0x3B, 0x73, 0x70, 0x8C, 0x24, 0x19, 0x33, +0x16, 0x5C, 0x4C, 0xD7, 0x6E, 0xD9, 0xF9, 0x4E, 0x49, 0x54, 0xBA, 0xA4, 0x50, 0x2B, 0x62, 0x40, +0xC6, 0xD4, 0xBA, 0xAD, 0x4, 0x9B, 0x1, 0x38, 0x4A, 0xDC, 0xB6, 0x80, 0x98, 0x3A, 0x78, 0x75, +0x51, 0x62, 0x2D, 0x25, 0x99, 0x81, 0x65, 0x4C, 0xA3, 0x65, 0xDE, 0xF5, 0x8F, 0xE5, 0x42, 0x9B, +0x18, 0x51, 0x38, 0x62, 0x4D, 0x52, 0x39, 0xFE, 0xA1, 0x7D, 0x12, 0x55, 0x56, 0x94, 0x1A, 0x55, +0xCA, 0xCE, 0x26, 0xB, 0xCD, 0xB7, 0x24, 0x91, 0xCC, 0xDA, 0x98, 0x2E, 0x58, 0xB2, 0x4A, 0x8D, +0x5E, 0x2B, 0x5E, 0x71, 0x70, 0xB1, 0x21, 0x82, 0xC7, 0x34, 0x4D, 0xCA, 0xE7, 0x60, 0x9, 0x60, +0xDD, 0xF, 0x46, 0x1F, 0x6C, 0x93, 0x96, 0xC0, 0x17, 0x26, 0x50, 0xDD, 0x8B, 0xE0, 0x2E, 0x8B, +0xE9, 0xA0, 0x87, 0xC2, 0x40, 0xA4, 0x99, 0xAB, 0xE6, 0xE5, 0x6, 0x30, 0x88, 0x36, 0x1C, 0xCC, +0x2D, 0xE9, 0x17, 0xAF, 0xC4, 0x6A, 0x29, 0x38, 0xB9, 0x18, 0xE1, 0x35, 0x9B, 0x8D, 0xC9, 0x5B, +0xFC, 0x4E, 0xA2, 0xA5, 0x36, 0xB7, 0x7B, 0xCF, 0x3E, 0x14, 0x6, 0x4B, 0x84, 0x49, 0x24, 0x20, +0x9D, 0xD1, 0x2B, 0xE4, 0xBB, 0x98, 0xCD, 0x86, 0xC3, 0xD1, 0x88, 0x6, 0x43, 0x27, 0x44, 0xEF, +0x53, 0x62, 0xF0, 0x8E, 0x71, 0x93, 0x57, 0x1C, 0x6F, 0x70, 0xDC, 0x56, 0xE3, 0x52, 0x48, 0x4C, +0x67, 0xA0, 0xE, 0x79, 0x6E, 0x52, 0xFB, 0xAD, 0x70, 0xED, 0x4A, 0x86, 0x9B, 0x8A, 0xE0, 0x5B, +0x37, 0x30, 0x94, 0x93, 0x40, 0x31, 0x9F, 0x8F, 0x46, 0xC3, 0x61, 0x93, 0x82, 0x29, 0x91, 0x33, +0x7, 0xCF, 0x86, 0x29, 0xBB, 0xD4, 0x26, 0xF, 0xB5, 0xB9, 0x28, 0xF9, 0x98, 0x73, 0x46, 0x2C, +0xD6, 0xE, 0x7E, 0xB3, 0xDC, 0x17, 0x70, 0x7, 0xDA, 0x55, 0xD4, 0x68, 0x87, 0x6B, 0x91, 0xDF, +0xE8, 0x3C, 0xA6, 0x3D, 0xD2, 0xBF, 0xC1, 0x1F, 0x3A, 0x35, 0x66, 0x70, 0xB8, 0x7F, 0xE4, 0x6B, +0xD4, 0x35, 0xC0, 0xB2, 0x1B, 0x28, 0x80, 0xB9, 0x19, 0x26, 0xC, 0x53, 0x2C, 0x14, 0x87, 0xA5, +0x50, 0xC2, 0xAF, 0xDF, 0xB, 0xC2, 0x8A, 0x6F, 0xD2, 0x50, 0xBB, 0x8, 0x8B, 0x17, 0xA6, 0xE7, +0x9D, 0x4E, 0xB3, 0x96, 0xD7, 0xB4, 0xDC, 0x34, 0x8E, 0xD3, 0x4B, 0xB5, 0xB0, 0xC5, 0xB8, 0x42, +0x93, 0x4E, 0xA7, 0xA5, 0xF0, 0x35, 0xF0, 0x2E, 0xCC, 0xAE, 0x53, 0xF4, 0xB5, 0xE8, 0x37, 0x29, +0x5A, 0x10, 0xB8, 0xBE, 0xEC, 0xFD, 0x98, 0xCE, 0xC, 0xEA, 0x7, 0xC2, 0x14, 0x81, 0xBC, 0x70, +0x5B, 0x9F, 0x57, 0x54, 0xAF, 0x55, 0x22, 0x45, 0xB2, 0x8A, 0x69, 0xCE, 0x56, 0x50, 0x3A, 0xBC, +0xFD, 0xEA, 0xCB, 0x78, 0xC7, 0x7C, 0x79, 0xF1, 0x3A, 0x9F, 0xF7, 0x7E, 0x8C, 0x1B, 0x52, 0xCB, +0xEB, 0x68, 0xA7, 0x75, 0xDD, 0x83, 0xA0, 0x7B, 0xD0, 0xA2, 0xB0, 0x1, 0xFC, 0x7A, 0x0, 0x38, +0x42, 0xE4, 0xB5, 0xDE, 0xAF, 0x99, 0x6D, 0xFF, 0x9D, 0xCD, 0xEF, 0x31, 0x6F, 0x69, 0x3B, 0xF4, +0xC, 0x6A, 0x6F, 0x40, 0x3B, 0x51, 0x4D, 0x70, 0xBB, 0xF6, 0x1C, 0x93, 0xAB, 0x15, 0x37, 0xBA, +0xC0, 0x16, 0xC6, 0xFB, 0x4F, 0xA6, 0xB8, 0x4, 0x73, 0x5, 0x1B, 0x50, 0xE, 0x33, 0x58, 0x3A, +0x59, 0xAA, 0x37, 0x80, 0x3D, 0xE4, 0x67, 0x8F, 0x38, 0x3B, 0x4, 0xED, 0xC2, 0xF9, 0xE3, 0x6A, +0xB2, 0x30, 0x6F, 0xED, 0x74, 0x87, 0x8C, 0xD, 0xC3, 0x5F, 0xAD, 0xEA, 0x88, 0x53, 0xA2, 0x30, +0xE3, 0x6D, 0xA9, 0x18, 0x7C, 0x20, 0x5D, 0x83, 0x93, 0xE9, 0x1A, 0x7C, 0x22, 0x5D, 0x47, 0xD2, +0xD6, 0x6D, 0x12, 0x1A, 0x0, 0x8C, 0x7F, 0xA7, 0x5F, 0x94, 0xD4, 0x8C, 0x7, 0xA0, 0x2D, 0xB0, +0x61, 0xF7, 0x45, 0xAB, 0xF5, 0x2B, 0xF, 0x38, 0x26, 0xE5, 0x55, 0xDF, 0xE7, 0x11, 0x27, 0x65, +0x4F, 0x5B, 0x7C, 0xF, 0x71, 0xD1, 0xB4, 0x8D, 0xE0, 0xFA, 0x4, 0x41, 0xCF, 0x13, 0xB8, 0x4C, +0x58, 0xB2, 0xD4, 0x12, 0x4F, 0xCC, 0x40, 0x71, 0x4A, 0x66, 0x68, 0xEE, 0xDC, 0xA6, 0x74, 0xFA, +0x80, 0x14, 0x42, 0xA5, 0xDD, 0x6E, 0xF7, 0x14, 0xFA, 0xB0, 0xC3, 0xF, 0x1, 0x49, 0xC5, 0x96, +0xB0, 0xE3, 0x57, 0xBC, 0x10, 0xB5, 0x82, 0x3C, 0x31, 0x97, 0x11, 0x85, 0x87, 0x19, 0xB1, 0x99, +0x5E, 0x4B, 0x4E, 0x58, 0x81, 0x47, 0x92, 0xC1, 0x73, 0xDF, 0x40, 0xF7, 0xB8, 0xA, 0x15, 0xCD, +0x41, 0x3D, 0x3D, 0xA9, 0xAB, 0x93, 0x12, 0xF2, 0x6C, 0x0, 0xC8, 0x83, 0xB0, 0xEE, 0x1D, 0xDA, +0x3, 0xE2, 0x1A, 0xD9, 0xB2, 0x49, 0xE6, 0xBB, 0x98, 0xC8, 0xCF, 0x92, 0x41, 0x93, 0xEC, 0x9E, +0xB, 0xA7, 0xCD, 0xA7, 0x98, 0x8A, 0x4D, 0x83, 0xE9, 0xC9, 0xC0, 0x46, 0xC0, 0xCB, 0xC7, 0xA9, +0xDA, 0x5E, 0xFE, 0xB7, 0xC9, 0x7E, 0xF3, 0x1A, 0x3F, 0x34, 0xBB, 0x2E, 0x99, 0x44, 0xFE, 0xF3, +0xEE, 0x3F, 0xF3, 0x51, 0xF5, 0x17, 0xE5, 0x3F }; const char ESPFMfGKWpjavascriptDeflate[] = { - 0xC5, 0x5C, 0xFD, 0x72, 0xDB, 0xB6, 0xB2, 0xFF, 0x3F, 0x4F, 0x81, 0xEA, 0x4C, 0x2A, 0xB9, 0xB6, -0x25, 0xDB, 0x69, 0x7B, 0x7A, 0xED, 0x28, 0x9D, 0xC4, 0x49, 0x4E, 0x33, 0x93, 0x34, 0x99, 0xB8, -0x9D, 0xB6, 0x93, 0xE4, 0xF, 0x8A, 0x84, 0x24, 0xC6, 0x14, 0xC9, 0x43, 0x52, 0xFE, 0xC8, 0x39, -0x79, 0x9B, 0xFB, 0x26, 0xF7, 0xC5, 0xEE, 0x6F, 0xF1, 0x41, 0x2, 0x20, 0x48, 0x49, 0x6E, 0x3A, -0xD5, 0x4C, 0x62, 0x9, 0x5C, 0x2C, 0x76, 0x17, 0xBB, 0x8B, 0xC5, 0x62, 0xC1, 0xAB, 0xA0, 0x60, -0x3C, 0xE1, 0x2B, 0x9E, 0x56, 0xD9, 0x49, 0x7C, 0xCC, 0xA6, 0x2C, 0x5D, 0x27, 0xC9, 0xD9, 0xBD, -0x2B, 0xA3, 0xFD, 0x81, 0xAF, 0x75, 0x55, 0x2E, 0x7C, 0xCD, 0xF3, 0xD8, 0xD7, 0xCA, 0xBD, 0xAD, -0xF9, 0x95, 0xAF, 0xB5, 0xF2, 0xC3, 0x7A, 0x5B, 0xAF, 0xCB, 0xBA, 0x55, 0x34, 0x97, 0xFC, 0xB2, -0x8A, 0xB3, 0xB4, 0xAC, 0xA, 0x9E, 0xA6, 0xBC, 0xC0, 0xC3, 0x8B, 0xAA, 0x88, 0xD3, 0xC5, 0x78, -0x5E, 0x64, 0xAB, 0xF3, 0x65, 0x50, 0x9C, 0x67, 0x11, 0x1F, 0x3D, 0x38, 0x60, 0xC7, 0x7, 0xEC, -0x64, 0x4F, 0xA2, 0xA, 0x80, 0x26, 0x2B, 0xAA, 0xFE, 0x2E, 0x27, 0xA2, 0xCB, 0x3, 0xD5, 0x25, -0xAE, 0xF8, 0x6A, 0x1B, 0xF8, 0x6F, 0x15, 0xFC, 0x2C, 0xCB, 0xAA, 0x38, 0x9D, 0x67, 0xDB, 0xF4, -0xF9, 0x27, 0xFA, 0x88, 0x4E, 0xF3, 0x2C, 0x89, 0x78, 0x91, 0x6, 0x2B, 0xE, 0xF8, 0xC1, 0x40, -0x62, 0xBA, 0x8E, 0xD3, 0x28, 0xBB, 0xE, 0xB3, 0x35, 0x64, 0x4A, 0x78, 0x8E, 0x14, 0x70, 0x1E, -0x54, 0xCB, 0x38, 0x2D, 0x79, 0x81, 0x71, 0xAA, 0x22, 0x63, 0xD3, 0x7B, 0xC, 0x9F, 0xC1, 0xC3, -0x28, 0xBE, 0x62, 0x71, 0x34, 0x7D, 0x3F, 0xC8, 0x93, 0xF7, 0x83, 0x47, 0xE2, 0x67, 0x98, 0x4, -0x65, 0x49, 0x2D, 0xD9, 0x31, 0x35, 0x4D, 0xD0, 0xE6, 0x3E, 0x38, 0x51, 0xB0, 0xFA, 0xA9, 0xF, -0xE6, 0x41, 0x57, 0xE7, 0x6F, 0x75, 0xE7, 0x41, 0x8B, 0x36, 0x7E, 0x63, 0xD2, 0xD6, 0x8D, 0xFB, -0xBB, 0x2E, 0xDC, 0xDF, 0x6F, 0x41, 0xD8, 0x3F, 0xEB, 0xCE, 0x3, 0xB6, 0x6F, 0x88, 0xA1, 0x86, -0x58, 0x77, 0xF1, 0xBD, 0x16, 0x7C, 0xFB, 0x1E, 0x74, 0x31, 0xBB, 0x26, 0x66, 0xBF, 0x4E, 0x67, -0x65, 0x7E, 0xD6, 0x3F, 0x64, 0x17, 0x47, 0x6B, 0xC1, 0x91, 0xEF, 0x41, 0xC3, 0x86, 0xC2, 0xAC, -0xA4, 0x29, 0x35, 0x60, 0x59, 0xAD, 0x12, 0x52, 0x8B, 0x66, 0x82, 0xEF, 0xC7, 0xF7, 0xDD, 0x19, -0x96, 0xA0, 0x55, 0x5C, 0x25, 0xDC, 0x7D, 0x54, 0xA1, 0xE1, 0x7E, 0x75, 0xDF, 0x33, 0xF2, 0xA2, -0x11, 0xDF, 0xFE, 0x3D, 0x9B, 0xD, 0xA5, 0x7C, 0x49, 0x56, 0x72, 0x87, 0x6D, 0xF, 0x1E, 0xAD, -0xA9, 0x50, 0xD4, 0xB4, 0xDA, 0x84, 0x73, 0x51, 0xC4, 0x39, 0x60, 0x4E, 0x4F, 0x4F, 0x5D, 0x96, -0x27, 0x93, 0xA3, 0xEE, 0xCF, 0xBD, 0xF9, 0x3A, 0xD, 0xC9, 0xE0, 0x59, 0x98, 0xAD, 0xF2, 0x82, -0x97, 0xE5, 0xBA, 0x48, 0xE6, 0x71, 0xC2, 0x47, 0x65, 0xB6, 0x2E, 0x42, 0xBE, 0xC7, 0xFE, 0x23, -0x66, 0x63, 0x32, 0x61, 0xD1, 0x2D, 0x2C, 0x29, 0xE, 0x59, 0x9E, 0x95, 0x15, 0x4B, 0xB2, 0x20, -0x62, 0x1F, 0x4B, 0x7A, 0x24, 0x9E, 0x4B, 0xD7, 0x1, 0x79, 0x46, 0x59, 0xB8, 0x26, 0xBF, 0x32, -0xE, 0xB, 0x1E, 0x54, 0xFC, 0x99, 0xF4, 0x32, 0xA3, 0x61, 0x19, 0x82, 0xC0, 0x6A, 0x8, 0xD3, -0x24, 0xF0, 0x92, 0x8F, 0xAB, 0xDB, 0x9C, 0xE0, 0x87, 0xA4, 0xD2, 0x93, 0x8F, 0xC1, 0x55, 0xA0, -0x20, 0x6A, 0x80, 0xB2, 0x8, 0x69, 0x7E, 0x26, 0x8B, 0x4F, 0x71, 0x9E, 0xF3, 0x62, 0xFC, 0xB1, -0x1C, 0xC8, 0x67, 0xF5, 0x10, 0x4B, 0x1E, 0x44, 0xE3, 0x0, 0xF, 0xD3, 0xE8, 0x7C, 0x19, 0x27, -0xD1, 0xA8, 0xE4, 0x64, 0xFA, 0x4, 0x3, 0xDF, 0x9A, 0xC4, 0x29, 0x1F, 0xD, 0x9E, 0xF3, 0x2A, -0x84, 0xED, 0x2C, 0x18, 0x31, 0x35, 0x1E, 0x8F, 0x7, 0x8A, 0x2, 0x22, 0xB8, 0xE0, 0xFF, 0x5E, -0x73, 0x30, 0x3, 0x7, 0xC8, 0xAF, 0xD9, 0xEF, 0xAF, 0x5E, 0xFE, 0x54, 0x55, 0xF9, 0x5B, 0xD9, -0x38, 0x52, 0x70, 0xA, 0x66, 0x9C, 0xA5, 0x79, 0x91, 0x2D, 0x48, 0x40, 0x0, 0xAF, 0x85, 0x36, -0xE2, 0x57, 0x95, 0x16, 0x11, 0x7D, 0xE2, 0xB9, 0x68, 0x1A, 0x27, 0x3C, 0x5D, 0x54, 0xCB, 0x73, -0x88, 0x74, 0x5D, 0x5, 0xB3, 0xA4, 0x16, 0xA3, 0xFE, 0x8, 0xA3, 0xE6, 0x90, 0x6F, 0x5A, 0x11, -0x50, 0xC2, 0x2B, 0x92, 0xC5, 0x2B, 0x98, 0xF9, 0xB8, 0x80, 0x67, 0x8A, 0x46, 0x12, 0xB, 0x84, -0xCC, 0x23, 0x36, 0x61, 0xF4, 0xA3, 0xCA, 0xAA, 0x20, 0xD9, 0x63, 0xDF, 0xB0, 0xE3, 0xA3, 0xA3, -0xF1, 0x91, 0xA2, 0xCE, 0x1C, 0x17, 0xEA, 0x50, 0xB9, 0x38, 0xBF, 0x9A, 0xBA, 0xC3, 0xB8, 0x94, -0xD0, 0xC7, 0xD7, 0xB3, 0xD5, 0xD1, 0x1E, 0xB0, 0x5B, 0xC6, 0xC, 0x6, 0xDC, 0xE2, 0x6D, 0x9F, -0xD, 0xEE, 0x1B, 0xC2, 0xD7, 0x9F, 0xCF, 0xF5, 0x2F, 0xF9, 0xED, 0xB3, 0x23, 0x72, 0xA8, 0x50, -0x74, 0x5B, 0x56, 0xD0, 0xA3, 0x70, 0x19, 0xA4, 0xB, 0x6E, 0x89, 0xDE, 0xE4, 0x84, 0xE4, 0xF9, -0xF4, 0xF5, 0xCF, 0xCF, 0x0, 0x0, 0x4F, 0x59, 0x8E, 0xC5, 0xF7, 0xFF, 0xFE, 0x97, 0x7D, 0xDB, -0x8C, 0x47, 0x22, 0x12, 0xCF, 0x4, 0xD2, 0xB, 0x42, 0xCA, 0xA6, 0xD3, 0xA9, 0xE8, 0xE6, 0x9B, -0x9E, 0x28, 0xA8, 0x2, 0x8D, 0xE, 0xD3, 0x9E, 0x63, 0x4D, 0xE4, 0xBF, 0x40, 0x57, 0xCF, 0x5A, -0x90, 0xA4, 0xA0, 0x80, 0x24, 0xB2, 0xE3, 0x82, 0x8F, 0x86, 0xF4, 0xFB, 0xF0, 0x63, 0x39, 0xDC, -0x3B, 0x68, 0x89, 0x2C, 0xCB, 0xC5, 0xE2, 0xA, 0xE8, 0xF6, 0x2C, 0x88, 0x99, 0xE0, 0x57, 0x3C, -0x39, 0x65, 0xFF, 0xD3, 0xEE, 0x49, 0x1F, 0x5A, 0xC9, 0x4E, 0x99, 0x34, 0x4C, 0x3F, 0x44, 0x15, -0xAF, 0x20, 0xB9, 0x60, 0x95, 0x9F, 0x62, 0xCD, 0x28, 0x4A, 0xFE, 0x2, 0xA6, 0xF7, 0x14, 0x9C, -0x8E, 0xD3, 0xEC, 0x1A, 0x2, 0x9B, 0x90, 0xF2, 0x1C, 0x61, 0x91, 0x3C, 0xDA, 0x6B, 0x75, 0xFF, -0xDC, 0x66, 0x2C, 0x5B, 0x93, 0x6D, 0x10, 0x3B, 0x63, 0xFC, 0x1B, 0x91, 0x44, 0xE, 0x34, 0xB, -0xCE, 0x4C, 0xCA, 0x35, 0x7A, 0xAD, 0x6D, 0xE9, 0x57, 0xAC, 0xA1, 0x3F, 0x3C, 0x2E, 0x8A, 0xE0, -0x76, 0x84, 0xC6, 0xBD, 0x33, 0xF2, 0x1F, 0xF4, 0x34, 0x2E, 0xD9, 0xF1, 0xF7, 0x6C, 0x16, 0x57, -0x25, 0xB4, 0x41, 0x5A, 0x6A, 0x4B, 0x9B, 0x2E, 0x60, 0xCE, 0xA4, 0x4C, 0xDA, 0x21, 0xC1, 0x2, -0x1C, 0xDB, 0x35, 0x7, 0x2D, 0x1, 0x3D, 0xB, 0xC2, 0xCB, 0x5E, 0x23, 0xD6, 0x1F, 0xD, 0x3C, -0x5E, 0xE7, 0x64, 0x5B, 0x5B, 0x1A, 0xF5, 0xAE, 0xC6, 0xFD, 0x57, 0x19, 0xF9, 0x97, 0x31, 0xF6, -0x3F, 0x69, 0xF4, 0xDB, 0x4E, 0xD7, 0x2E, 0x6E, 0xA0, 0xED, 0xE, 0xFC, 0x2D, 0x9F, 0xFD, 0x93, -0xB9, 0x83, 0x9F, 0xD8, 0xC1, 0x5F, 0xDC, 0xC5, 0x6F, 0xE8, 0xCF, 0x82, 0x23, 0x8A, 0x4F, 0xB8, -0xC, 0xD9, 0x5C, 0x25, 0xF4, 0xF0, 0xD5, 0xA1, 0xA5, 0x19, 0x56, 0xB6, 0xD1, 0xF0, 0xCD, 0xEB, -0x8B, 0x5F, 0x86, 0x7, 0x6C, 0x38, 0x29, 0x7E, 0x9C, 0x97, 0xD3, 0x21, 0x84, 0x8, 0xF4, 0xCF, -0x81, 0xFE, 0x2, 0x2C, 0xF3, 0xD5, 0x8B, 0x34, 0xE2, 0x37, 0x60, 0x72, 0x9F, 0xD, 0xBF, 0x9E, -0xA7, 0xE2, 0xB9, 0xF4, 0x10, 0xD4, 0x32, 0x5E, 0x7C, 0xD2, 0x4B, 0xAE, 0xFE, 0x4C, 0x26, 0x9D, -0xF8, 0x5D, 0x50, 0x19, 0x43, 0x17, 0x2B, 0xE5, 0xA, 0xC9, 0xBE, 0x9E, 0xE3, 0x27, 0x1C, 0x4A, -0x30, 0xF2, 0xD9, 0x7F, 0x92, 0xCD, 0x14, 0xD8, 0x13, 0x7C, 0x1D, 0xBD, 0x23, 0x87, 0xF0, 0xE1, -0xC0, 0x23, 0x23, 0x5A, 0xFB, 0x4F, 0xD9, 0x0, 0x4B, 0x77, 0x12, 0x87, 0x1, 0x4D, 0xD3, 0x24, -0xB, 0x2B, 0x5E, 0x1D, 0xCE, 0xE2, 0x34, 0x28, 0x6E, 0x7, 0xB6, 0x74, 0x9C, 0xA1, 0x34, 0x45, -0x6A, 0xE5, 0x1F, 0xD9, 0xDC, 0x1E, 0x8, 0x32, 0xE, 0xFA, 0x65, 0x50, 0x4B, 0x80, 0xBE, 0x8C, -0x34, 0x42, 0x3, 0x48, 0x2D, 0x47, 0x4E, 0x8, 0x20, 0xC4, 0xF5, 0xAF, 0x67, 0x24, 0xAD, 0x1A, -0xFD, 0x80, 0x26, 0x65, 0xD0, 0x31, 0x29, 0x7, 0xAC, 0x2A, 0xD6, 0x14, 0x93, 0x98, 0x68, 0xC4, -0x98, 0xB4, 0xE3, 0x42, 0xFB, 0xE7, 0xAD, 0xC3, 0x33, 0xEF, 0x9C, 0x4B, 0xC9, 0x4A, 0x37, 0x98, -0x70, 0x0, 0xA6, 0x70, 0x49, 0x66, 0x10, 0x86, 0x5E, 0x2A, 0x2, 0x7B, 0x72, 0xFB, 0x22, 0x1A, -0xD, 0x57, 0x7C, 0x95, 0x15, 0xB7, 0x5A, 0x1C, 0xA4, 0xDA, 0x56, 0x47, 0xB9, 0x13, 0x34, 0xB5, -0x1A, 0xD1, 0x67, 0x99, 0xC1, 0xF9, 0x26, 0xD9, 0x62, 0x34, 0xFC, 0x9, 0x5E, 0xFD, 0x94, 0x28, -0x61, 0x11, 0x9F, 0x7, 0xEB, 0xA4, 0x92, 0x96, 0x5E, 0xA, 0x9A, 0x18, 0xC2, 0x50, 0x7E, 0x63, -0x4A, 0xBA, 0xE0, 0xD5, 0xBA, 0x48, 0xD9, 0xE1, 0xB1, 0x6C, 0xFA, 0x8C, 0x2D, 0x27, 0x42, 0xC4, -0xFF, 0xB8, 0xCF, 0xD, 0xA, 0xC6, 0xF2, 0x3B, 0x8F, 0x4, 0x83, 0xAA, 0xDB, 0xE, 0x42, 0xE2, -0x37, 0x3C, 0x5C, 0xC3, 0x9, 0x64, 0xAB, 0x55, 0x0, 0x21, 0xAB, 0xBF, 0xA6, 0x9C, 0x6E, 0x96, -0x45, 0xEF, 0x4A, 0x81, 0xE7, 0x7F, 0x63, 0xDC, 0xD1, 0xE9, 0x37, 0x2C, 0x7D, 0x14, 0x34, 0x1A, -0xBA, 0x38, 0x9C, 0x7C, 0xCC, 0x66, 0x1B, 0x7C, 0xC3, 0xE0, 0x6B, 0xD2, 0x51, 0x25, 0x10, 0x4B, -0x2D, 0x9, 0xDB, 0xDD, 0x54, 0xB2, 0x5C, 0x66, 0xD7, 0x72, 0x8B, 0x3D, 0x12, 0x71, 0xCB, 0x81, -0xDA, 0x70, 0x6B, 0xAE, 0xAC, 0xED, 0xB7, 0xFC, 0x21, 0x87, 0x6C, 0xB1, 0xB9, 0xFD, 0x98, 0x7A, -0xBD, 0xA6, 0x6, 0x73, 0x9D, 0x9E, 0x7C, 0xA3, 0x45, 0x75, 0xEF, 0xAF, 0x5A, 0x80, 0xEF, 0xBE, -0xEC, 0xEE, 0xB0, 0xD4, 0x7E, 0x33, 0xE9, 0xD8, 0xBE, 0x90, 0x83, 0x82, 0xCB, 0xC4, 0x24, 0x1A, -0x34, 0x63, 0x5E, 0x19, 0x7B, 0x32, 0xD8, 0xD5, 0x91, 0x98, 0xC2, 0x37, 0x6C, 0x3, 0x11, 0x63, -0xB0, 0xA2, 0x80, 0xCF, 0xA3, 0x42, 0xCD, 0xA6, 0x29, 0x9C, 0xF5, 0x38, 0x98, 0x1, 0xF2, 0x33, -0xFC, 0x2A, 0xE6, 0xD7, 0xE6, 0x36, 0xEB, 0x1A, 0xF9, 0x21, 0xCA, 0x27, 0x9, 0x35, 0x8, 0xE0, -0x3, 0x1A, 0xEF, 0x13, 0xCE, 0x4C, 0x59, 0x99, 0x80, 0xE1, 0x6C, 0x1C, 0x2E, 0x79, 0x78, 0xC9, -0xA3, 0xE, 0xEF, 0xD1, 0x4A, 0xEE, 0x48, 0x3B, 0xE9, 0xD9, 0xFD, 0x95, 0x70, 0x51, 0xF3, 0xAC, -0xFC, 0x52, 0x9B, 0x40, 0x53, 0x15, 0x5D, 0x30, 0x8F, 0x3, 0x79, 0x9C, 0x96, 0xD7, 0xBC, 0x78, -0x53, 0x64, 0x21, 0xFA, 0x64, 0x45, 0xF7, 0xD2, 0x32, 0x9C, 0xC4, 0xDA, 0x98, 0xE5, 0x8C, 0xD0, -0xCA, 0x5E, 0x89, 0xDF, 0x8D, 0x80, 0xA8, 0x2D, 0x97, 0xAB, 0x7D, 0x23, 0x88, 0x8D, 0xCB, 0x8D, -0x14, 0x32, 0xA2, 0xEF, 0x3C, 0xA6, 0x2C, 0xDA, 0x48, 0x81, 0x6F, 0xAF, 0x3C, 0xCB, 0x38, 0xE2, -0x94, 0x8C, 0x22, 0x1A, 0x6A, 0xDD, 0xA9, 0xF3, 0x8B, 0x63, 0x81, 0xF5, 0xA7, 0x5F, 0x5E, 0xBD, -0x34, 0xA6, 0xA4, 0xCE, 0x49, 0xF6, 0x3D, 0x45, 0xDF, 0xB2, 0xBA, 0xC5, 0x3A, 0x73, 0x15, 0x97, -0xF1, 0x2C, 0x4E, 0xE2, 0xEA, 0x96, 0x80, 0xC2, 0x2C, 0x49, 0x82, 0xBC, 0xE4, 0x2D, 0x54, 0x1B, -0x80, 0x37, 0x32, 0x84, 0xED, 0xC8, 0x4F, 0x70, 0x84, 0x58, 0xBC, 0xAA, 0x25, 0xB7, 0x4D, 0x2, -0xD9, 0x4C, 0x9A, 0xA8, 0x86, 0x67, 0x67, 0xE2, 0x2C, 0x93, 0xE9, 0xF1, 0xFD, 0xDB, 0xFA, 0x7D, -0x42, 0x53, 0xF5, 0x6F, 0x34, 0xE5, 0x2, 0x2F, 0xA8, 0x29, 0x7D, 0x90, 0xE3, 0x12, 0x71, 0x54, -0x35, 0x72, 0x52, 0xB7, 0x3A, 0x15, 0x42, 0x1F, 0x7B, 0xDE, 0x8C, 0x7, 0x10, 0xC4, 0x85, 0xEC, -0xC6, 0x8E, 0x4E, 0x59, 0x14, 0x73, 0xF6, 0xBA, 0x88, 0xD0, 0x39, 0x89, 0x61, 0xFC, 0x8D, 0x2F, -0x15, 0x91, 0x20, 0x74, 0x88, 0x70, 0x18, 0xB3, 0xA7, 0x1F, 0x51, 0x36, 0x97, 0x28, 0xD3, 0x44, -0xBE, 0x3B, 0xFA, 0xA0, 0x68, 0x32, 0xF2, 0xBC, 0x86, 0x33, 0x25, 0xD9, 0x88, 0x47, 0xA5, 0xDA, -0x4C, 0xB1, 0x47, 0xEC, 0x68, 0x8F, 0x7D, 0xFD, 0x35, 0x93, 0xAD, 0xE8, 0x4F, 0x6E, 0x75, 0x30, -0xD8, 0x73, 0x5D, 0xE9, 0x32, 0x28, 0x5, 0x1F, 0x19, 0xED, 0xB8, 0x49, 0x7D, 0x9D, 0xD8, 0xD0, -0xA0, 0x71, 0x62, 0x10, 0x59, 0x3B, 0x2F, 0x99, 0xF0, 0x75, 0x9B, 0x73, 0x87, 0xA7, 0x5A, 0xE8, -0x75, 0x82, 0x50, 0x27, 0xDB, 0xE6, 0x29, 0xF, 0x43, 0x37, 0x15, 0x88, 0xC6, 0x5, 0x35, 0x3A, -0x18, 0xAE, 0x91, 0x93, 0xE2, 0xF0, 0x71, 0xEC, 0x21, 0xB3, 0x78, 0x3D, 0x64, 0xC7, 0x5D, 0x7B, -0x12, 0x68, 0x77, 0x41, 0xCA, 0x2C, 0xA5, 0x10, 0x6A, 0x29, 0xE, 0x4E, 0x7D, 0x5B, 0x26, 0xEA, -0x20, 0x16, 0x5E, 0x72, 0x46, 0x7A, 0xB7, 0x2F, 0x30, 0x40, 0x7E, 0x1D, 0xF0, 0x22, 0x93, 0xAC, -0x66, 0x4B, 0x82, 0x1E, 0xD7, 0x83, 0x4C, 0xBA, 0x6, 0x29, 0x2F, 0x45, 0x82, 0xC3, 0xF0, 0xDD, -0xE6, 0x87, 0x54, 0x28, 0xC3, 0x2A, 0x51, 0x14, 0x7C, 0xC1, 0x93, 0xD4, 0xBB, 0x81, 0x52, 0x64, -0x4E, 0x11, 0xC, 0x82, 0x75, 0xEA, 0x22, 0x5B, 0xD6, 0xB9, 0x72, 0x5F, 0xDE, 0x6D, 0x54, 0xCE, -0xF6, 0x49, 0xFE, 0x98, 0xF1, 0xD4, 0x94, 0xF5, 0x2C, 0x78, 0x3F, 0x60, 0x59, 0x1A, 0x62, 0xEF, -0x70, 0x89, 0x16, 0x23, 0xC, 0xA1, 0xE5, 0x71, 0x44, 0x43, 0x60, 0x61, 0x3C, 0x18, 0x4E, 0x10, -0x8C, 0x62, 0x56, 0xDE, 0xAF, 0x4F, 0xBE, 0x7B, 0x72, 0xF2, 0x70, 0x42, 0x68, 0x54, 0xCA, 0x55, -0xFE, 0xEF, 0x2A, 0x88, 0xFE, 0x28, 0x76, 0xDB, 0xDA, 0xD5, 0xAC, 0x43, 0xDD, 0xFB, 0xF2, 0x9A, -0xD1, 0x13, 0xC5, 0x68, 0xB8, 0x86, 0x60, 0x52, 0x84, 0xCA, 0x82, 0x44, 0x91, 0xC3, 0xE9, 0xDC, -0x54, 0x1B, 0xEA, 0xAB, 0x27, 0xE7, 0xCC, 0xC, 0x68, 0xEC, 0x8F, 0x30, 0x4A, 0x9F, 0xEA, 0x5A, -0x28, 0xB3, 0x82, 0x8D, 0x8, 0xF2, 0x72, 0x7A, 0x7C, 0x76, 0xF9, 0xB0, 0x9E, 0x7F, 0xA5, 0x8C, -0x67, 0x97, 0xFB, 0xFB, 0x7D, 0x59, 0x2, 0xC2, 0x20, 0xA7, 0x61, 0x32, 0xD8, 0xAF, 0x3B, 0xBF, -0xBB, 0xFC, 0xD0, 0x3D, 0xE2, 0x9F, 0x9F, 0x38, 0xFA, 0x45, 0xA3, 0xB2, 0x81, 0x9C, 0xC1, 0x1, -0xAD, 0x84, 0xCD, 0xD0, 0x6C, 0x7F, 0xA0, 0x66, 0xB3, 0x6B, 0x6, 0xFD, 0xC9, 0x84, 0xAD, 0xE6, -0xD7, 0x1B, 0x6B, 0xB4, 0x30, 0x48, 0xFE, 0x1C, 0x1F, 0xD0, 0xCB, 0x9C, 0x54, 0x8C, 0x7D, 0x66, -0xF2, 0xA8, 0xE7, 0xD8, 0xE0, 0xB4, 0x2B, 0x31, 0xE2, 0xB5, 0xAA, 0xAF, 0x88, 0x93, 0xBE, 0xEC, -0xD3, 0x2E, 0xDE, 0xA1, 0x56, 0x16, 0x4, 0xA3, 0x8C, 0x8E, 0xA, 0x8F, 0xCE, 0xF0, 0xE7, 0xA1, -0xC4, 0x81, 0xAF, 0xFD, 0x7A, 0x22, 0x25, 0x62, 0x5A, 0x57, 0x27, 0x2B, 0x3D, 0x2, 0x75, 0x15, -0xA6, 0x64, 0xF4, 0x1F, 0x9D, 0xBB, 0x89, 0x6C, 0x52, 0xAD, 0x3, 0xAE, 0x16, 0x93, 0x4B, 0x15, -0x52, 0x54, 0x7A, 0x51, 0x1F, 0x7E, 0x6C, 0x1E, 0x3D, 0xDC, 0xDF, 0xEF, 0xCA, 0x49, 0x1B, 0x84, -0xD9, 0x47, 0x2A, 0x26, 0x80, 0x3F, 0xBC, 0x29, 0xDB, 0xE9, 0xF9, 0x5C, 0xAD, 0x68, 0x1E, 0x21, -0xFA, 0x3, 0x28, 0xF7, 0x40, 0x12, 0x2, 0xD0, 0x42, 0x68, 0x8E, 0x2, 0xDB, 0x2C, 0xF6, 0x47, -0x54, 0xE2, 0x57, 0xA2, 0x3, 0xAA, 0x8D, 0xA, 0xBF, 0x53, 0x78, 0xE6, 0x97, 0x60, 0x7F, 0xD0, -0xD6, 0xA6, 0xE7, 0xB3, 0x37, 0x38, 0x39, 0x96, 0xC1, 0x9, 0xE5, 0xB2, 0x63, 0x11, 0x9B, 0x58, -0xF1, 0x7, 0x82, 0x21, 0x33, 0xFA, 0xA8, 0x97, 0x34, 0xFB, 0x60, 0xDA, 0x8C, 0x7B, 0xEA, 0x83, -0x79, 0x4B, 0xE4, 0xC0, 0x43, 0x2E, 0xB7, 0x5, 0x85, 0x63, 0xFD, 0x16, 0xDC, 0x9, 0xE0, 0xBC, -0x41, 0x10, 0x3D, 0xDC, 0x10, 0xFF, 0x68, 0x70, 0xEB, 0xC, 0x52, 0xEB, 0x7D, 0x3B, 0xBE, 0xD0, -0xC1, 0xC5, 0xBD, 0x9E, 0x50, 0xA6, 0x3B, 0xD8, 0x78, 0xE0, 0x3B, 0xDD, 0x10, 0x91, 0x8D, 0x89, -0x52, 0xC9, 0xFB, 0x79, 0x12, 0x2C, 0x4A, 0xA4, 0xB7, 0x6E, 0xD3, 0x10, 0xE7, 0xA4, 0xE8, 0x2F, -0x68, 0x60, 0xCF, 0x2E, 0xDE, 0xDC, 0xFC, 0xC6, 0x67, 0xCF, 0x93, 0x57, 0x8B, 0xE2, 0xA4, 0x9D, -0x23, 0xA4, 0x4E, 0xA6, 0x9B, 0x51, 0xE1, 0xB, 0xD4, 0xF5, 0x5B, 0xD7, 0xD5, 0x60, 0xC, 0x61, -0x53, 0xA2, 0xF, 0xB6, 0xDB, 0xF2, 0x18, 0x7F, 0x44, 0xA5, 0x4, 0x2D, 0x93, 0x19, 0x49, 0xC4, -0x88, 0xA, 0x8F, 0xD9, 0xC3, 0x87, 0xEC, 0x3B, 0x44, 0x83, 0xB0, 0xA1, 0x23, 0xB5, 0xB0, 0xD2, -0xC3, 0x10, 0x41, 0x7C, 0x76, 0x9D, 0xD2, 0x76, 0xF8, 0xDE, 0x16, 0x4E, 0x3A, 0xC, 0x13, 0x76, -0x9F, 0xE4, 0x6B, 0x38, 0x6A, 0xDD, 0x5F, 0x1C, 0x7A, 0xBE, 0x1F, 0xDE, 0x9F, 0xA7, 0xEF, 0x87, -0x7B, 0xD2, 0xE3, 0x78, 0x5D, 0x95, 0xF2, 0x52, 0xE2, 0x4C, 0x18, 0xDD, 0x9F, 0xAA, 0xEE, 0x7D, -0x3D, 0x4C, 0xB7, 0x78, 0x7F, 0x1E, 0x29, 0xFF, 0xD8, 0x89, 0xBF, 0xC7, 0x87, 0x75, 0x1A, 0x6A, -0x1F, 0xB3, 0x56, 0xD0, 0x3, 0xFE, 0xAC, 0xD3, 0x76, 0xD7, 0x74, 0xEF, 0x6D, 0xC4, 0x5A, 0x59, -0x58, 0xEF, 0xCF, 0x4B, 0x7, 0xDF, 0x66, 0xC, 0x85, 0x85, 0x61, 0xB0, 0x79, 0xE6, 0x8F, 0xFC, -0x33, 0xF, 0xF3, 0x34, 0x1C, 0x81, 0x33, 0xE4, 0x6C, 0x5D, 0x55, 0x99, 0x31, 0x4F, 0x2, 0xD8, -0x9E, 0x79, 0xD1, 0x24, 0xE6, 0x9D, 0xA6, 0x5D, 0xCC, 0xFA, 0xD3, 0x87, 0x13, 0xD9, 0xB1, 0x2D, -0x99, 0xD, 0x34, 0x1E, 0x7B, 0x69, 0x84, 0xE9, 0xFB, 0x2, 0x3E, 0x3F, 0x8D, 0x6F, 0x5, 0xF0, -0xE4, 0x55, 0x76, 0xC5, 0xDF, 0xA7, 0xCF, 0xAE, 0x38, 0x9E, 0x64, 0x2C, 0x80, 0xE3, 0x9B, 0xCF, -0x39, 0x10, 0x21, 0xDF, 0x1C, 0x21, 0xB9, 0x12, 0xF2, 0xB1, 0xC5, 0x86, 0x1C, 0xC2, 0x66, 0xE3, -0xED, 0x9D, 0xD9, 0x38, 0xF1, 0xB2, 0xC1, 0xA3, 0xB8, 0xDA, 0x92, 0x89, 0x67, 0x0, 0xB5, 0xE8, -0xA3, 0xBE, 0x36, 0x75, 0xCF, 0xEE, 0x4C, 0xDD, 0x3, 0x2F, 0x75, 0x38, 0x77, 0xA2, 0x9C, 0xD3, -0x96, 0x4, 0xBE, 0x91, 0xD0, 0x16, 0x8D, 0xA, 0x83, 0x4D, 0xE6, 0x9B, 0x9A, 0x4C, 0xB6, 0x2B, -0x9D, 0xDF, 0x7A, 0xE9, 0xA4, 0x93, 0xD4, 0x2D, 0x89, 0xA4, 0xAC, 0x20, 0x25, 0x97, 0x2C, 0x2A, -0xDD, 0x12, 0x8D, 0x9A, 0xD2, 0xF3, 0x1D, 0x28, 0x95, 0x84, 0x2A, 0xE2, 0x3A, 0xA8, 0xF1, 0x46, -0x70, 0x7E, 0xDF, 0xE0, 0xB5, 0x7A, 0xB0, 0xFC, 0x2A, 0xB8, 0x2C, 0xB2, 0x92, 0x5, 0xEB, 0x79, -0x92, 0x71, 0xE4, 0xA0, 0xDC, 0xE7, 0x4F, 0x63, 0x2C, 0x90, 0x1, 0x95, 0x94, 0x70, 0x9C, 0xA, -0x57, 0x6C, 0xBD, 0x42, 0xBA, 0xC, 0xA9, 0x2A, 0xB0, 0xBA, 0x3C, 0x60, 0xD7, 0x58, 0xE5, 0xEB, -0x5, 0x3F, 0x5D, 0x6, 0x49, 0xB5, 0x46, 0x12, 0x8F, 0x57, 0xD7, 0x41, 0x69, 0x41, 0x52, 0xD7, -0x36, 0x87, 0x6A, 0x17, 0xF5, 0xD5, 0xD4, 0x17, 0x6E, 0x89, 0x5, 0x2B, 0xF2, 0x6F, 0x9B, 0xCC, -0xDE, 0xD3, 0x29, 0x6D, 0x88, 0x3D, 0x22, 0x92, 0x9D, 0x9B, 0x25, 0x8E, 0xA2, 0x8D, 0xF5, 0xAC, -0x94, 0xEB, 0xD8, 0x71, 0x2B, 0xB2, 0xEE, 0x74, 0xD9, 0xBD, 0x78, 0x34, 0x15, 0x6A, 0x19, 0xDF, -0xF7, 0xE0, 0x75, 0x7E, 0x8B, 0x8, 0x8, 0x69, 0x21, 0x48, 0x35, 0xE4, 0x8F, 0x93, 0x64, 0x34, -0xC0, 0x52, 0x33, 0x40, 0x4E, 0x3E, 0xCA, 0xDD, 0xAA, 0xB, 0x45, 0x11, 0x7D, 0xDF, 0x12, 0x89, -0x49, 0x65, 0x67, 0xD, 0x47, 0x17, 0x82, 0xD4, 0x42, 0xD0, 0xDA, 0x7C, 0xF8, 0xBA, 0x94, 0x56, -0x97, 0x93, 0x2D, 0xBA, 0x84, 0xA1, 0xD5, 0xE5, 0x1, 0x75, 0xB1, 0xFA, 0xA0, 0x75, 0xCA, 0xBE, -0x73, 0xE2, 0x72, 0x1D, 0x83, 0xED, 0x5B, 0x21, 0xBB, 0xA1, 0xE9, 0x26, 0x84, 0xDE, 0x6, 0x98, -0x8B, 0xD9, 0x9A, 0xD6, 0x31, 0xE5, 0x3D, 0xDC, 0xC2, 0x2B, 0x8D, 0xA3, 0xAE, 0xEB, 0xB4, 0x62, -0x48, 0x8D, 0xD9, 0x0, 0xAC, 0xD3, 0xD6, 0x66, 0x22, 0xC6, 0xCC, 0xD7, 0x8A, 0xC, 0xCC, 0xDE, -0xEE, 0xE7, 0x62, 0x48, 0x70, 0xEA, 0x2, 0xCA, 0x3A, 0x7D, 0x59, 0xF, 0xF6, 0x2F, 0x3A, 0xCF, -0x93, 0xD6, 0xF8, 0xB7, 0x26, 0xC8, 0x9F, 0x80, 0xC2, 0x1D, 0x92, 0xE4, 0xB3, 0xE1, 0x17, 0x3C, -0x5D, 0xF5, 0x8C, 0xFD, 0x57, 0xE4, 0x79, 0xE5, 0x3E, 0xA5, 0x2B, 0x7F, 0xEB, 0xD4, 0xB8, 0x3A, -0x69, 0x5A, 0xEB, 0x24, 0x96, 0xE8, 0x15, 0x73, 0x75, 0xCA, 0x86, 0xFB, 0x40, 0xA5, 0xDC, 0x84, -0xD3, 0xC5, 0x8A, 0xDA, 0x4F, 0x4F, 0x9F, 0xE0, 0xC4, 0x7B, 0x21, 0xE, 0xBE, 0xB0, 0x71, 0xCB, -0x9A, 0x94, 0x9B, 0x58, 0xBF, 0x1A, 0x24, 0x8F, 0xA6, 0xC7, 0x32, 0x15, 0x2B, 0x37, 0x32, 0x1D, -0x89, 0x58, 0xBD, 0x5, 0xF1, 0x9C, 0x4, 0x95, 0x4F, 0x6E, 0xCF, 0xC9, 0x3C, 0x7E, 0x86, 0x6F, -0x1F, 0xD, 0x67, 0xF5, 0xA8, 0xEE, 0x29, 0xBC, 0xC8, 0x36, 0x18, 0x99, 0x86, 0x50, 0xE7, 0xA4, -0xBA, 0x92, 0xD, 0xE1, 0xBB, 0xF8, 0x83, 0xDA, 0x45, 0x36, 0x58, 0xCF, 0x89, 0x97, 0x7A, 0xDB, -0xD5, 0x5F, 0x5F, 0xE6, 0x97, 0xCB, 0x33, 0x6C, 0xA4, 0x3, 0xB2, 0xCA, 0x39, 0xA4, 0xDA, 0x2D, -0x95, 0x93, 0x46, 0x2A, 0xC7, 0x7D, 0x52, 0x89, 0xFA, 0xCE, 0xC7, 0x68, 0x8, 0x37, 0xCD, 0x1A, -0xF5, 0xEE, 0x41, 0xDD, 0xFD, 0x30, 0xFC, 0x46, 0x2A, 0xA2, 0x84, 0x6E, 0x4A, 0x1F, 0x34, 0x94, -0x9E, 0x74, 0x50, 0x5A, 0x13, 0x28, 0x50, 0x19, 0x5B, 0x5A, 0xFF, 0xB0, 0x90, 0x33, 0x4A, 0x3, -0x52, 0x76, 0x19, 0xA4, 0xA9, 0xB3, 0x11, 0x87, 0x73, 0x59, 0x66, 0x28, 0x5, 0x80, 0xED, 0x44, -0xC6, 0x32, 0xEF, 0x3D, 0xCA, 0xDE, 0xC5, 0x67, 0xCD, 0x4B, 0x59, 0xC, 0x80, 0xF0, 0x47, 0x78, -0x88, 0xDA, 0x1E, 0xBD, 0x7, 0x7F, 0x7F, 0xE2, 0x48, 0xD9, 0xDA, 0x0, 0xD2, 0x7F, 0x84, 0x5A, -0xF, 0x26, 0x8B, 0x6B, 0x61, 0x74, 0xB2, 0x4C, 0x65, 0xBC, 0x2C, 0xF8, 0x5C, 0x1C, 0x2E, 0xA8, -0x23, 0xF7, 0x41, 0xDF, 0x91, 0x3B, 0x60, 0xA6, 0x1A, 0x3B, 0xD5, 0xE6, 0x88, 0xBC, 0xA6, 0x1A, -0x60, 0x27, 0xA, 0x9B, 0x8D, 0x8A, 0x4B, 0x9F, 0x38, 0x44, 0xCD, 0xD2, 0x79, 0x5C, 0xAC, 0x46, -0xD8, 0x3F, 0x4, 0x49, 0x72, 0xAB, 0xC0, 0xC5, 0x59, 0x71, 0xD, 0x6E, 0x4E, 0x7F, 0xED, 0xF9, -0xDF, 0x24, 0x3C, 0x40, 0x20, 0x40, 0x2B, 0xCC, 0x98, 0xC9, 0xD, 0x12, 0x56, 0x80, 0xDA, 0x6F, -0x3B, 0x95, 0x5A, 0x4E, 0x71, 0xC5, 0x40, 0x70, 0xC7, 0x13, 0x97, 0xB1, 0x3B, 0x4C, 0xF5, 0x2A, -0xB8, 0xE4, 0x7C, 0x95, 0x57, 0xB7, 0x5E, 0x16, 0xFD, 0xE4, 0x9E, 0x8B, 0xF2, 0x62, 0xB1, 0x24, -0x89, 0xAE, 0x6E, 0x8D, 0xA0, 0x8F, 0x5A, 0x59, 0x92, 0x8C, 0x2E, 0x35, 0xCD, 0x8D, 0x2A, 0x61, -0xBE, 0x26, 0x78, 0x42, 0x58, 0x76, 0x3B, 0x4F, 0x37, 0xB6, 0x5F, 0x2E, 0xE5, 0xE4, 0xD, 0x80, -0x53, 0xA9, 0x2A, 0xC4, 0xA, 0x42, 0x47, 0x3, 0x22, 0x59, 0x34, 0x91, 0xFF, 0x33, 0x25, 0x77, -0xE0, 0xCA, 0x90, 0x26, 0x57, 0xF7, 0xFF, 0xAA, 0x5D, 0x9B, 0xE3, 0x17, 0x8C, 0xDC, 0x44, 0xEE, -0x38, 0x8F, 0x60, 0xC2, 0x9D, 0x47, 0xA1, 0xC1, 0x18, 0x5D, 0x34, 0x2A, 0x2A, 0xEE, 0x30, 0xB7, -0xE6, 0xCE, 0x6A, 0x87, 0x99, 0xA5, 0x33, 0x7B, 0xD5, 0x55, 0x91, 0x5F, 0x4B, 0x54, 0x35, 0x6F, -0xAA, 0xE4, 0x69, 0xC0, 0x9A, 0xB5, 0x56, 0x96, 0x9C, 0xF, 0xA8, 0x42, 0x6C, 0xD0, 0x82, 0xFA, -0x7B, 0xCB, 0x8D, 0xC1, 0x8, 0x7C, 0xD, 0x10, 0x36, 0xB7, 0x13, 0x9C, 0x0, 0x56, 0x5D, 0x5D, -0x88, 0x69, 0x7D, 0xA1, 0xA2, 0xFF, 0xC1, 0xBE, 0x75, 0x95, 0xC5, 0x5E, 0x53, 0x6A, 0x74, 0xF2, -0x8B, 0x1D, 0x2B, 0xC7, 0xF7, 0x11, 0x2B, 0x7B, 0x50, 0xEC, 0xED, 0x80, 0xA3, 0x22, 0x1C, 0x8E, -0xBE, 0x9A, 0x94, 0x52, 0xD0, 0xDB, 0xBE, 0xE, 0xF0, 0x56, 0x7A, 0x72, 0xF5, 0xEB, 0x9C, 0xAE, -0x36, 0xDC, 0x54, 0xEB, 0x20, 0x79, 0x5E, 0x4, 0xB, 0x71, 0x4F, 0x40, 0xE, 0xE5, 0x2E, 0x90, -0x1A, 0xC9, 0x2C, 0x8B, 0x6E, 0xAD, 0x82, 0x7F, 0x1A, 0xC5, 0xD, 0xF4, 0x9D, 0x58, 0xC9, 0x98, -0x61, 0x38, 0xEA, 0xB7, 0x4A, 0x15, 0x7E, 0xC2, 0xAC, 0x20, 0xA0, 0x1E, 0xAA, 0xDB, 0x15, 0x87, -0x54, 0x91, 0x38, 0xDC, 0x6B, 0xE7, 0x2A, 0xE1, 0x50, 0xE9, 0x14, 0x2, 0xC5, 0x7E, 0xCB, 0x6A, -0x6, 0xB6, 0x68, 0xF3, 0xF9, 0x7F, 0xFF, 0x6B, 0x6D, 0x53, 0x91, 0xCC, 0x16, 0x7, 0x7B, 0xEB, -0x2, 0xD0, 0x25, 0x7B, 0xF2, 0xF2, 0xF5, 0x13, 0x52, 0x1B, 0x91, 0xB7, 0x8E, 0x29, 0x6F, 0x23, -0x56, 0x4F, 0x8A, 0xF3, 0x50, 0xC4, 0xB3, 0x4, 0xE4, 0x75, 0xCC, 0xA9, 0x43, 0xB0, 0x2E, 0xE1, -0xAA, 0x57, 0xA2, 0x56, 0x12, 0x6B, 0x8, 0xC6, 0x1, 0xA8, 0x5C, 0x45, 0xD9, 0x6A, 0x2D, 0xCC, -0x96, 0xB5, 0x35, 0x40, 0x11, 0x6C, 0x8A, 0x16, 0x6A, 0x5F, 0xDC, 0x5E, 0xC8, 0xC5, 0x12, 0xA7, -0x4D, 0xFF, 0x10, 0xB3, 0x1A, 0x47, 0xFB, 0x3, 0x36, 0xB6, 0xAE, 0x90, 0xF8, 0xCA, 0xA7, 0x23, -0x8, 0x7E, 0x21, 0xEE, 0x41, 0x6D, 0x8F, 0x4E, 0x84, 0xC, 0x3E, 0x64, 0x5A, 0x3B, 0x87, 0xFF, -0x18, 0xEE, 0x6F, 0xD4, 0x50, 0xA1, 0xF4, 0x59, 0xC4, 0xBB, 0x87, 0x16, 0xE8, 0x7C, 0x79, 0xE1, -0x5D, 0xA6, 0x14, 0xF1, 0x62, 0x50, 0x54, 0xE5, 0x6F, 0xC8, 0x65, 0x8F, 0x6, 0xF1, 0x2A, 0x58, -0x70, 0xEC, 0xEA, 0xFD, 0x59, 0x1, 0xF1, 0x54, 0xF9, 0x94, 0x17, 0xF4, 0xBD, 0x5D, 0xB9, 0x2B, -0x40, 0xD4, 0xCD, 0x94, 0x5F, 0xDF, 0xBE, 0x54, 0x7A, 0xFC, 0x7A, 0xF6, 0x11, 0x14, 0xE3, 0xF7, -0xC8, 0xE3, 0x74, 0x5A, 0x38, 0x14, 0x7D, 0x96, 0x1E, 0xB, 0xBC, 0x2D, 0x48, 0x5A, 0x17, 0x9F, -0xD2, 0x4, 0x51, 0x95, 0xF9, 0x88, 0x84, 0xD5, 0xB1, 0x93, 0xEF, 0x18, 0x41, 0x86, 0xCA, 0x38, -0x19, 0xA8, 0xF8, 0x45, 0xE, 0xCB, 0x25, 0xC7, 0x1, 0xA, 0x5B, 0x69, 0xF, 0x32, 0x97, 0xA, -0xB, 0x19, 0xC9, 0x4F, 0xD7, 0xF9, 0xC2, 0xB2, 0xDF, 0x4A, 0x81, 0xB6, 0xC8, 0x92, 0x80, 0xE3, -0x20, 0x8A, 0x28, 0x47, 0x59, 0xBD, 0xA4, 0x28, 0x90, 0x76, 0xA7, 0x43, 0x51, 0x95, 0x86, 0x38, -0xFF, 0x80, 0x8D, 0xE0, 0xE3, 0xA7, 0x8F, 0x7C, 0x21, 0xBC, 0x22, 0x8D, 0xEC, 0xFE, 0xBC, 0x56, -0x65, 0x21, 0x52, 0x15, 0x27, 0x93, 0xE0, 0x50, 0x5A, 0xEA, 0xAD, 0x33, 0xF8, 0xD, 0x53, 0xC9, -0x53, 0x94, 0xF8, 0xC6, 0x25, 0xD3, 0xBD, 0xAF, 0x70, 0x8, 0x25, 0x6D, 0x32, 0x5E, 0xB0, 0xC7, -0x17, 0x7F, 0xFC, 0x7C, 0xFE, 0x55, 0xAB, 0xEB, 0x46, 0x41, 0xB6, 0xAB, 0x8C, 0x6B, 0x36, 0xE9, -0xCF, 0xE3, 0x92, 0xCC, 0x77, 0x8B, 0xD9, 0xFD, 0x6C, 0x61, 0xB0, 0x35, 0xD7, 0xB2, 0x5, 0xF7, -0xD4, 0xD1, 0xBB, 0xF5, 0xEF, 0xDB, 0xFE, 0x8B, 0xD1, 0xE4, 0x6A, 0xEC, 0x59, 0xC9, 0x7A, 0x77, -0xE1, 0x26, 0xA4, 0xB1, 0xA5, 0xDE, 0x3E, 0xA6, 0x55, 0x8, 0xDC, 0x88, 0xC1, 0xDA, 0x8F, 0x1B, -0x83, 0x7C, 0xD1, 0xA, 0xB4, 0x3A, 0x9B, 0xBC, 0x63, 0x30, 0x41, 0xFD, 0xB2, 0xC2, 0x8D, 0x25, -0xA8, 0x75, 0x53, 0x20, 0xA1, 0x60, 0xFE, 0xC6, 0xF8, 0xC0, 0xAD, 0xDE, 0x32, 0x9F, 0xF9, 0x93, -0x4B, 0x6E, 0x6A, 0xB3, 0x81, 0xDA, 0xE1, 0x1C, 0xB7, 0xBE, 0x79, 0x6C, 0xA1, 0xDE, 0x70, 0x21, -0xAA, 0xE9, 0x24, 0x47, 0xD2, 0x99, 0x25, 0x19, 0x76, 0x85, 0x97, 0xFE, 0x31, 0x9C, 0x73, 0x58, -0x71, 0x88, 0x60, 0xC5, 0xC6, 0x9E, 0x58, 0xC8, 0x8D, 0x30, 0x5A, 0xA5, 0xA8, 0xF0, 0xC9, 0xAE, -0x35, 0x51, 0x1F, 0x45, 0xD8, 0x92, 0xC7, 0x8B, 0x25, 0x39, 0x9F, 0x91, 0xDA, 0xE3, 0x49, 0x2, -0x44, 0xEB, 0xE1, 0xF1, 0xC9, 0xD1, 0xDE, 0xFE, 0x20, 0xBF, 0xF1, 0x50, 0xAB, 0xBD, 0x6A, 0x1C, -0x89, 0x3A, 0x1D, 0xAB, 0xF7, 0x6F, 0xD4, 0x78, 0x78, 0xFC, 0x5D, 0xDD, 0xF9, 0xB, 0xDB, 0x78, -0xA3, 0x8A, 0xBD, 0x6, 0x5E, 0x83, 0xDD, 0xC9, 0xBA, 0xA9, 0x77, 0xAF, 0x69, 0x6B, 0xF4, 0x5F, -0xD4, 0xAE, 0xCB, 0x2B, 0x1E, 0x79, 0x37, 0x50, 0x9E, 0x80, 0xC7, 0xBD, 0xD5, 0x40, 0x33, 0x8D, -0x95, 0xFE, 0x2A, 0x48, 0x74, 0x45, 0xF, 0xA5, 0x2C, 0xAA, 0xF9, 0xE1, 0xF, 0x7, 0x42, 0x5D, -0xD1, 0x13, 0x41, 0x5C, 0x9A, 0x21, 0x49, 0x91, 0x15, 0x97, 0x63, 0xD, 0xD1, 0x60, 0x5E, 0xA3, -0xCA, 0x24, 0xC, 0x72, 0x8E, 0xFA, 0x98, 0x10, 0x8B, 0xC3, 0xAF, 0x6F, 0x5F, 0xD0, 0xF9, 0x4B, -0x96, 0x52, 0x44, 0xAA, 0xA0, 0x28, 0x36, 0xAC, 0x69, 0xEA, 0x73, 0x19, 0x2, 0xA8, 0x91, 0xFE, -0xEE, 0xB7, 0x77, 0x8C, 0xA0, 0xBA, 0x1E, 0x70, 0x46, 0x99, 0xAE, 0x40, 0x94, 0x6, 0xE, 0xF, -0xE9, 0x73, 0xBD, 0x84, 0xC3, 0xB8, 0xE2, 0x85, 0xBA, 0x2E, 0x2B, 0xA7, 0xA3, 0x52, 0x64, 0xA8, -0x48, 0x8, 0x87, 0x48, 0x32, 0x12, 0xA2, 0x7D, 0xF, 0x45, 0xFC, 0x2B, 0xAC, 0xAB, 0x31, 0xE, -0xE9, 0xAB, 0x9, 0x5D, 0x79, 0x39, 0xA4, 0x92, 0xF2, 0xB3, 0x1A, 0xB5, 0x98, 0x6F, 0xFD, 0xC3, -0x1E, 0x3B, 0x12, 0xE6, 0x6B, 0x1E, 0x58, 0x83, 0x8, 0x22, 0xB5, 0x26, 0xB, 0xE4, 0xBF, 0x2F, -0xDE, 0xA7, 0x43, 0x13, 0x44, 0x8F, 0x4E, 0x27, 0x3D, 0x59, 0x19, 0xD3, 0x2C, 0x9F, 0x32, 0x63, -0x60, 0xE2, 0x71, 0x3A, 0x90, 0x37, 0xF1, 0xC4, 0xB6, 0xFB, 0xAC, 0x66, 0x7D, 0x3A, 0x30, 0x5, -0x41, 0xD8, 0x45, 0x43, 0xF7, 0x18, 0xC4, 0xE1, 0x29, 0x13, 0x57, 0x89, 0xE1, 0x6D, 0xE2, 0xD4, -0xF, 0xED, 0x6D, 0xD5, 0x5A, 0xE0, 0xEB, 0xD0, 0xE6, 0xF2, 0xF0, 0x50, 0x1, 0x91, 0x2, 0xD1, -0x57, 0x50, 0x79, 0x3, 0xE5, 0x92, 0x6C, 0x50, 0xEA, 0x45, 0x64, 0xD1, 0x29, 0xC5, 0xF8, 0xC3, -0xC9, 0xF7, 0xDF, 0x23, 0xCB, 0x78, 0xC1, 0xB, 0xCC, 0x93, 0x41, 0x84, 0x12, 0x2D, 0x6D, 0x2E, -0x3E, 0x6, 0x37, 0x8D, 0x6E, 0x46, 0xD9, 0x86, 0x69, 0x94, 0xE9, 0x3D, 0x4C, 0xA4, 0xD8, 0x6, -0xD9, 0x19, 0xDF, 0xBF, 0x77, 0x81, 0xF2, 0xAF, 0x14, 0x1D, 0x8B, 0x90, 0x6F, 0x69, 0x48, 0x61, -0x6B, 0x3B, 0x2D, 0x59, 0xFE, 0x3A, 0xA6, 0x4D, 0xF7, 0x67, 0xC, 0x51, 0x75, 0x3A, 0x50, 0xC3, -0x9E, 0xE0, 0xDE, 0x48, 0xD4, 0x3B, 0xF9, 0xB1, 0x60, 0x6, 0x3F, 0xE6, 0x54, 0xC6, 0x77, 0xC8, -0x65, 0x3B, 0x79, 0xEC, 0x22, 0x7, 0x5F, 0x16, 0x94, 0xA6, 0x5A, 0x6A, 0x67, 0x4, 0xA4, 0xBA, -0xEE, 0x91, 0xD4, 0x6F, 0x99, 0xE4, 0xE2, 0x7E, 0x1F, 0x93, 0x7E, 0x1, 0x69, 0x60, 0x71, 0x9D, -0x4B, 0x2, 0x97, 0xA2, 0xA3, 0xFF, 0xE6, 0xA, 0xDD, 0xE8, 0xDA, 0x56, 0x1E, 0x12, 0x1B, 0x39, -0x3C, 0xE1, 0xDD, 0x71, 0x46, 0x57, 0x12, 0x52, 0x2D, 0x21, 0x8B, 0x32, 0xA3, 0xC0, 0x78, 0x9B, -0xBB, 0x5A, 0xDD, 0xC4, 0xE9, 0x29, 0xF4, 0x5D, 0xF3, 0x6D, 0x2F, 0x97, 0x3B, 0xDA, 0x8E, 0x93, -0x5F, 0x10, 0xAA, 0x82, 0x6E, 0x6B, 0xF3, 0x4A, 0xF4, 0x17, 0xB6, 0x2F, 0x82, 0xB5, 0xE5, 0xB6, -0x95, 0xD6, 0xEB, 0x8F, 0x75, 0x74, 0x44, 0x58, 0xC4, 0x44, 0xF, 0x7B, 0xF, 0x72, 0xDB, 0x2A, -0xE3, 0xF, 0x49, 0xFE, 0xD4, 0x4A, 0x67, 0xA7, 0x5F, 0x75, 0xC0, 0x31, 0x36, 0x52, 0x4A, 0x5B, -0x5C, 0x41, 0x75, 0xEF, 0x83, 0xE, 0x9B, 0x25, 0x5, 0xE4, 0xD0, 0x1F, 0x5, 0x88, 0x89, 0x23, -0x3F, 0x8B, 0xF2, 0x9, 0xEC, 0xE, 0x96, 0xB7, 0xF0, 0xA3, 0xEB, 0x4A, 0x16, 0xB9, 0x55, 0x58, -0x4D, 0xC5, 0x4D, 0x10, 0xE5, 0xC6, 0x51, 0x76, 0x83, 0x0, 0xF7, 0xC1, 0x9, 0xDD, 0x57, 0xC7, -0xDC, 0xC2, 0xC0, 0xC6, 0xFE, 0xA1, 0xA2, 0xF5, 0x6A, 0x75, 0x4B, 0x4C, 0xCB, 0x2F, 0xEE, 0x95, -0x3A, 0xE3, 0x66, 0xA9, 0xB2, 0xC4, 0x5, 0x92, 0x3D, 0x41, 0x12, 0x15, 0x59, 0x4E, 0x84, 0xD1, -0x1, 0x8A, 0xB0, 0x42, 0xF5, 0xA, 0x1E, 0x22, 0x91, 0xD4, 0xE1, 0x30, 0x4B, 0x93, 0xDB, 0x43, -0x7A, 0x7A, 0x0, 0x92, 0x59, 0xB9, 0x8C, 0xE7, 0x98, 0x58, 0x81, 0x0, 0x47, 0x55, 0x69, 0x89, -0x72, 0x20, 0x3A, 0x3E, 0x96, 0x15, 0x80, 0x8D, 0x81, 0x93, 0xB0, 0x71, 0x7E, 0xF9, 0x49, 0x9C, -0x5F, 0x2E, 0x91, 0xA4, 0xAA, 0x11, 0xDF, 0xC1, 0x5C, 0x6B, 0x44, 0xB5, 0xF2, 0x93, 0x16, 0x36, -0x6A, 0xE1, 0xBE, 0xF6, 0xC2, 0x26, 0x6C, 0xDA, 0xC1, 0xA9, 0x5E, 0xB6, 0x1C, 0x35, 0xE, 0xB1, -0x67, 0x2B, 0x50, 0x39, 0x88, 0xB5, 0x32, 0x48, 0x46, 0x5D, 0xDC, 0x98, 0xE, 0xDD, 0x97, 0xF9, -0x10, 0xCA, 0x42, 0x2E, 0xAC, 0x6B, 0xF4, 0x77, 0x26, 0x91, 0xCE, 0x59, 0xA1, 0x7F, 0xFF, 0xF8, -0x8B, 0xEA, 0x40, 0x45, 0x19, 0xCD, 0xBD, 0xF6, 0x5A, 0x4B, 0x49, 0x6F, 0x3D, 0x17, 0xDA, 0x2D, -0x83, 0xCB, 0xE5, 0x89, 0xB2, 0xEC, 0x3D, 0xF4, 0xE8, 0xB8, 0xFE, 0x98, 0xC4, 0xB9, 0xF9, 0x81, -0x96, 0x1B, 0xDD, 0x4D, 0xDC, 0xED, 0x95, 0x70, 0x87, 0xD3, 0x27, 0xE0, 0x94, 0x97, 0xA5, 0x8A, -0x11, 0xBF, 0xAA, 0xF, 0xC6, 0xDA, 0xC1, 0x7E, 0x8B, 0x73, 0x41, 0x6E, 0xB9, 0x27, 0x30, 0xE4, -0x5C, 0x9C, 0xFF, 0xCA, 0x65, 0xAA, 0xCB, 0x8, 0xF8, 0xD5, 0x98, 0xCC, 0x45, 0xB, 0x5D, 0xA2, -0x6C, 0x6B, 0xFC, 0xBD, 0x1D, 0xE6, 0xCB, 0xDC, 0xF1, 0xC3, 0xBA, 0xA8, 0xF8, 0x8B, 0xA2, 0x3D, -0x7D, 0x81, 0x79, 0xC6, 0x97, 0xC1, 0x55, 0x4C, 0x7, 0xD1, 0xFA, 0x89, 0x98, 0x26, 0x7A, 0xAB, -0x14, 0x9E, 0x11, 0x12, 0x72, 0x6E, 0x3C, 0x92, 0xEF, 0xCB, 0x0, 0x7D, 0xB9, 0x4, 0x7B, 0x2A, -0xFB, 0xD7, 0x1, 0xBF, 0x7C, 0x37, 0x84, 0x45, 0xFD, 0x58, 0x54, 0xA3, 0xB8, 0x51, 0x97, 0x72, -0x64, 0x5E, 0x4E, 0x7B, 0x65, 0x23, 0xFC, 0x8E, 0xB8, 0xC6, 0xD8, 0x0, 0xF7, 0x98, 0x3D, 0xC2, -0xC8, 0x3E, 0x7B, 0xA2, 0x77, 0x80, 0x1C, 0x99, 0xF7, 0x5B, 0xAD, 0x89, 0x7B, 0x91, 0x62, 0xFB, -0xAD, 0x7C, 0x21, 0x91, 0x30, 0xD6, 0x9E, 0xAD, 0x65, 0x76, 0x10, 0xE9, 0xAF, 0x68, 0x78, 0x6A, -0xF0, 0x82, 0xF0, 0x17, 0xE3, 0xCE, 0x29, 0xDF, 0x48, 0xE5, 0x8B, 0xA1, 0x50, 0x7E, 0x72, 0xAE, -0xF2, 0xB5, 0x42, 0xCD, 0x9B, 0x47, 0xEA, 0xAB, 0x29, 0x46, 0xD, 0x80, 0x2B, 0x43, 0xC1, 0x70, -0x5F, 0x5D, 0x80, 0x45, 0xF7, 0xF8, 0x64, 0x2C, 0x46, 0x79, 0x47, 0x66, 0x16, 0xD3, 0x52, 0xF3, -0x41, 0x9A, 0x29, 0xB6, 0x4D, 0xE2, 0xE6, 0xAC, 0x7, 0x39, 0xD5, 0x14, 0x38, 0xC6, 0x78, 0x17, -0x1B, 0x9, 0x16, 0xAF, 0x11, 0xE6, 0xB7, 0xED, 0xC4, 0x6B, 0x10, 0xD8, 0x20, 0xD0, 0xC, 0xB3, -0x4F, 0xF0, 0xA3, 0xC3, 0xBF, 0x56, 0x3B, 0xB7, 0xE7, 0xC1, 0xB4, 0xE8, 0xB8, 0xCC, 0x52, 0xD3, -0xED, 0x9B, 0xBF, 0xC5, 0x50, 0xFA, 0xE5, 0x71, 0xE3, 0x75, 0x9A, 0xE3, 0x20, 0x83, 0x3F, 0x4E, -0x91, 0xC2, 0x16, 0xD5, 0xF7, 0x66, 0x0, 0xD2, 0x80, 0x6D, 0x8E, 0x5D, 0x5B, 0xAA, 0xD5, 0x74, -0xBE, 0xF3, 0x8, 0x4E, 0x62, 0x6B, 0xA7, 0x33, 0x69, 0xE5, 0x5E, 0xF0, 0xD7, 0x89, 0xE6, 0xD1, -0x62, 0x85, 0xF3, 0xF8, 0x7D, 0x97, 0x72, 0x3, 0x9C, 0x2C, 0xB5, 0x6B, 0xB1, 0xF4, 0xCB, 0x54, -0xF0, 0xB0, 0xBE, 0xB2, 0x8C, 0x2, 0x50, 0xCE, 0xE8, 0x1D, 0x3C, 0x7A, 0x95, 0xE9, 0xAC, 0x49, -0x8, 0x7F, 0xFC, 0x14, 0x4C, 0xD1, 0x55, 0xB1, 0x6B, 0xE5, 0x9B, 0x76, 0x3B, 0x8D, 0x6F, 0x92, -0xE5, 0xB3, 0xEC, 0x46, 0x53, 0x49, 0x17, 0x83, 0xC2, 0xDF, 0xC9, 0x56, 0xF, 0x58, 0xF8, 0x87, -0xFC, 0x9B, 0xAB, 0xDF, 0xB9, 0xF8, 0xAD, 0x34, 0x19, 0x7D, 0x68, 0x1B, 0xFB, 0xB8, 0x42, 0x2D, -0x23, 0x62, 0x2C, 0x50, 0x80, 0x22, 0x50, 0xC4, 0xB7, 0x5, 0x25, 0x21, 0x68, 0xB1, 0xD0, 0x9C, -0x10, 0xA0, 0xA8, 0xA4, 0xA3, 0x33, 0x4, 0x3A, 0x50, 0x18, 0xA9, 0xB7, 0x99, 0x89, 0xC9, 0xD4, -0x50, 0x62, 0xDC, 0x3A, 0x57, 0x43, 0x7D, 0xEC, 0x73, 0xA2, 0xA1, 0x7D, 0xCC, 0x65, 0xBE, 0xDD, -0x42, 0x27, 0x6F, 0x6A, 0xB5, 0x32, 0x1A, 0x31, 0x72, 0x8C, 0x3F, 0x32, 0xE3, 0xF7, 0xA8, 0x9D, -0x4, 0x74, 0x5E, 0x83, 0x61, 0x9C, 0xA8, 0xC8, 0xD4, 0xE1, 0xB4, 0xDD, 0x65, 0x72, 0x62, 0x25, -0xD, 0x3F, 0x77, 0xE, 0x2A, 0x12, 0x85, 0xD6, 0x98, 0xA2, 0xA5, 0x7B, 0x48, 0x91, 0x6E, 0x9C, -0xB6, 0x3A, 0x78, 0x7, 0x54, 0xA5, 0x3B, 0x24, 0x36, 0x5D, 0xDD, 0xD3, 0x2D, 0x34, 0x1, 0x61, -0x8A, 0x4C, 0x34, 0x98, 0x84, 0x88, 0x6, 0xCF, 0x69, 0xCF, 0x2A, 0x83, 0x55, 0x92, 0x36, 0xD3, -0xEB, 0x50, 0xE8, 0x90, 0x8D, 0x94, 0xA6, 0xAE, 0x10, 0xD0, 0x14, 0x60, 0xAB, 0x15, 0x7F, 0x12, -0xC7, 0x4A, 0xDD, 0x34, 0xD0, 0xBB, 0xEB, 0x4C, 0x12, 0x54, 0x1F, 0x93, 0x8, 0xD5, 0xB4, 0xD, -0x19, 0x6F, 0x5, 0x68, 0x8B, 0x10, 0xF1, 0xD2, 0xBD, 0x7E, 0x3A, 0x4, 0x88, 0xA5, 0x3E, 0xA2, -0x8F, 0x35, 0x2B, 0xA2, 0xC5, 0x43, 0x86, 0xA8, 0xD1, 0x6, 0x9, 0x2, 0x40, 0xA2, 0xB3, 0x48, -0x98, 0x51, 0x44, 0x82, 0xA1, 0x4F, 0xE0, 0xBC, 0x91, 0x55, 0x34, 0x9C, 0xFE, 0x39, 0x7A, 0xE0, -0x99, 0xDC, 0x60, 0xD4, 0x6F, 0xE3, 0x6B, 0xD0, 0x8C, 0x3C, 0xE3, 0x17, 0x7C, 0x95, 0x5D, 0xF1, -0xAD, 0x49, 0x30, 0x25, 0xE8, 0xED, 0xDA, 0x2F, 0xC4, 0x46, 0xB, 0xB6, 0xEB, 0x6C, 0x28, 0x82, -0xB6, 0xF2, 0xAE, 0xBC, 0x90, 0x70, 0x15, 0x3D, 0xD9, 0xF, 0xA5, 0xCB, 0x54, 0xF9, 0x56, 0xA1, -0xE4, 0xAF, 0x25, 0x27, 0x57, 0xAC, 0x86, 0xA8, 0x68, 0xD2, 0xC9, 0x8F, 0x76, 0x9D, 0x2F, 0x53, -0x1D, 0xC3, 0xF0, 0x9D, 0xF2, 0x4C, 0x1F, 0xCC, 0xDD, 0x30, 0xF5, 0x5C, 0x5, 0x37, 0x9F, 0x74, -0xAA, 0xA3, 0x2F, 0x60, 0xC1, 0x8, 0x7D, 0xE1, 0x9, 0x69, 0x11, 0x40, 0x10, 0x64, 0x50, 0x5, -0x8F, 0xE1, 0x4C, 0xCD, 0xF, 0x8D, 0xF7, 0x29, 0x36, 0x2F, 0x50, 0x29, 0x43, 0xC7, 0x6, 0x5A, -0xBE, 0x66, 0x8C, 0x47, 0x17, 0x24, 0x24, 0x85, 0x6A, 0x6F, 0xFC, 0x49, 0xEC, 0xA6, 0x3D, 0x5B, -0x7D, 0x51, 0xB, 0x8, 0x5C, 0x8F, 0x4, 0x3, 0x9E, 0x83, 0x6E, 0xF9, 0x51, 0xDC, 0x7D, 0x8A, -0xCF, 0xB6, 0x7E, 0xE5, 0x56, 0xF3, 0x8D, 0xC6, 0xE8, 0x22, 0x90, 0x38, 0x54, 0xD4, 0xB1, 0x87, -0x53, 0x49, 0x84, 0x43, 0x43, 0x33, 0xE5, 0xA, 0x4E, 0x82, 0x51, 0x6D, 0x79, 0x3B, 0x4, 0xD3, -0xB3, 0x2F, 0xF5, 0xB1, 0x35, 0xFD, 0xB5, 0xBA, 0xD1, 0x81, 0x73, 0x33, 0x4C, 0xDB, 0xD8, 0xF4, -0x13, 0xEE, 0x9, 0x91, 0xF4, 0x33, 0xB1, 0x96, 0x71, 0xE5, 0xA1, 0x7F, 0x37, 0xDA, 0xFF, 0x30, -0xDA, 0xFF, 0x68, 0xDA, 0x6B, 0xB5, 0xEA, 0x70, 0x4A, 0xEB, 0x1C, 0x6, 0x81, 0x5, 0xDD, 0x31, -0x87, 0x4D, 0xDD, 0xC8, 0xC2, 0xD0, 0x91, 0x42, 0xCA, 0xDA, 0x83, 0xD8, 0x5C, 0x47, 0x2D, 0x86, -0xFB, 0xD8, 0x12, 0x4B, 0x36, 0x78, 0x3B, 0xF4, 0xF1, 0x26, 0xD6, 0x71, 0x30, 0x78, 0xE8, 0x63, -0x70, 0x57, 0x81, 0x34, 0x33, 0x2B, 0xDF, 0xCF, 0x40, 0xDA, 0x30, 0xCE, 0xE6, 0x73, 0xC4, 0x2, -0xBF, 0xA0, 0xE1, 0x10, 0xA3, 0x89, 0xFC, 0x4F, 0x7E, 0x33, 0xF4, 0x75, 0x4A, 0xF8, 0xBC, 0xB2, -0x7B, 0xBD, 0xA4, 0x16, 0x74, 0xFB, 0xDD, 0xEE, 0xE6, 0xCA, 0x43, 0xC9, 0xD8, 0xB2, 0xFE, 0x5A, -0xCA, 0xDD, 0x2E, 0x6B, 0xD3, 0xFC, 0x74, 0xF7, 0xEC, 0x9C, 0xA2, 0x5A, 0x53, 0x3D, 0x6A, 0x2A, -0x1F, 0x6C, 0x3F, 0x6F, 0x7F, 0x95, 0x3A, 0xB6, 0x5C, 0xFB, 0x96, 0xA, 0x29, 0x17, 0x90, 0xE, -0x95, 0x2C, 0x76, 0x64, 0xAE, 0x99, 0x75, 0x7D, 0x90, 0xA, 0x68, 0xD4, 0xC0, 0x90, 0x9A, 0xD2, -0x33, 0x38, 0x96, 0x27, 0x74, 0xEC, 0x2, 0x3B, 0x3E, 0x17, 0x8C, 0xBE, 0x85, 0xCF, 0x46, 0xE1, -0x98, 0xD0, 0x91, 0x6E, 0x15, 0xAA, 0xF, 0x75, 0x25, 0xB6, 0x3F, 0x36, 0x60, 0x23, 0x35, 0x75, -0x91, 0x79, 0xC3, 0xC6, 0x8E, 0x80, 0xCC, 0x22, 0x5B, 0x3F, 0xDF, 0x89, 0x74, 0x7F, 0x68, 0x69, -0x31, 0xB0, 0x9, 0xAF, 0x8F, 0x89, 0xCF, 0x5D, 0x76, 0xA2, 0x94, 0xF0, 0x8E, 0x96, 0xD2, 0xAD, -0x3A, 0x1B, 0x6D, 0xC5, 0xD1, 0x9E, 0xED, 0xB7, 0x23, 0x74, 0x2B, 0xA2, 0xA6, 0x97, 0x2E, 0x8E, -0xD1, 0x79, 0x59, 0x92, 0x65, 0x97, 0xEB, 0x1C, 0xE9, 0x60, 0x1E, 0x89, 0x77, 0x9E, 0xFE, 0xA8, -0x6E, 0x32, 0xD9, 0xEF, 0x61, 0xEF, 0x2C, 0xD, 0xA0, 0xE7, 0x75, 0xA1, 0xB0, 0xF1, 0x8A, 0xF6, -0xCE, 0x13, 0xE6, 0xEC, 0x81, 0x8E, 0xF, 0xAC, 0x77, 0xB7, 0x77, 0xBF, 0x67, 0xAF, 0x5C, 0x38, -0x1D, 0xC4, 0x5B, 0xDD, 0xBB, 0xAF, 0x5, 0xC4, 0xE, 0x39, 0xBC, 0x17, 0x9C, 0xBB, 0xE0, 0xE2, -0x3D, 0xF0, 0x9D, 0xE0, 0xF9, 0x95, 0x3, 0x2E, 0x5E, 0x10, 0xDF, 0x5D, 0x38, 0xD1, 0xC2, 0xDE, -0xB, 0x9E, 0xBB, 0xE0, 0xE2, 0x95, 0xF2, 0x9D, 0xE0, 0x94, 0x66, 0xA8, 0x33, 0x72, 0xD6, 0xC5, -0x24, 0xB5, 0x49, 0x3D, 0x7C, 0x74, 0x4F, 0x45, 0x17, 0xC8, 0x82, 0x53, 0x6, 0x8A, 0xE2, 0xA6, -0xC, 0x65, 0x26, 0xFF, 0xF }; + 0xC5, 0x5C, 0xFD, 0x72, 0xDB, 0x36, 0xB6, 0xFF, 0x3F, 0x4F, 0x81, 0x6A, 0x27, 0x91, 0x5C, 0xDB, +0x92, 0xED, 0xB4, 0xDD, 0xBD, 0x76, 0x94, 0x9D, 0xC4, 0x49, 0xB6, 0x99, 0x49, 0x9A, 0x4C, 0xDC, +0x4E, 0xDB, 0x49, 0xF2, 0x7, 0x45, 0x42, 0x12, 0x63, 0x8A, 0xE4, 0x92, 0x94, 0x3F, 0xB2, 0x9B, +0xB7, 0xB9, 0x6F, 0x72, 0x5F, 0xEC, 0xFE, 0xE, 0x3E, 0x48, 0x0, 0x4, 0x29, 0xC9, 0x4D, 0xA7, +0x9A, 0x49, 0x2C, 0x81, 0x7, 0x7, 0x7, 0x7, 0xE7, 0xB, 0x7, 0x7, 0xBC, 0xA, 0xA, 0xC6, +0x13, 0xBE, 0xE2, 0x69, 0x95, 0x9D, 0xC4, 0xC7, 0x6C, 0xCA, 0xD2, 0x75, 0x92, 0x9C, 0xDD, 0xBB, +0x32, 0xDA, 0x1F, 0xFA, 0x5A, 0x57, 0xE5, 0xC2, 0xD7, 0x3C, 0x8F, 0x7D, 0xAD, 0xDC, 0xDB, 0x9A, +0x5F, 0xF9, 0x5A, 0x2B, 0x3F, 0xAC, 0xB7, 0xF5, 0xBA, 0xAC, 0x5B, 0x45, 0x73, 0xC9, 0x2F, 0xAB, +0x38, 0x4B, 0xCB, 0xAA, 0xE0, 0x69, 0xCA, 0xB, 0x3C, 0xBC, 0xA8, 0x8A, 0x38, 0x5D, 0x8C, 0xE7, +0x45, 0xB6, 0x3A, 0x5F, 0x6, 0xC5, 0x79, 0x16, 0xF1, 0xD1, 0xC3, 0x3, 0x76, 0x7C, 0xC0, 0x4E, +0xF6, 0x24, 0xAA, 0x0, 0x68, 0xB2, 0xA2, 0xEA, 0xEF, 0x72, 0x22, 0xBA, 0x3C, 0x54, 0x5D, 0xE2, +0x8A, 0xAF, 0xB6, 0x81, 0xFF, 0x4E, 0xC1, 0xCF, 0xB2, 0xAC, 0x8A, 0xD3, 0x79, 0xB6, 0x4D, 0x9F, +0xBF, 0xA3, 0x8F, 0xE8, 0x34, 0xCF, 0x92, 0x88, 0x17, 0x69, 0xB0, 0xE2, 0x80, 0x1F, 0xC, 0x24, +0xA6, 0xEB, 0x38, 0x8D, 0xB2, 0xEB, 0x30, 0x5B, 0x83, 0xA7, 0x84, 0xE7, 0x48, 0x1, 0xE7, 0x41, +0xB5, 0x8C, 0xD3, 0x92, 0x17, 0x18, 0xA7, 0x2A, 0x32, 0x36, 0xBD, 0xC7, 0xF0, 0x19, 0x3C, 0x8A, +0xE2, 0x2B, 0x16, 0x47, 0xD3, 0xF, 0x83, 0x3C, 0xF9, 0x30, 0x78, 0x2C, 0x7E, 0x86, 0x49, 0x50, +0x96, 0xD4, 0x92, 0x1D, 0x53, 0xD3, 0x4, 0x6D, 0xEE, 0x83, 0x13, 0x5, 0xAB, 0x9F, 0xFA, 0x60, +0x1E, 0x76, 0x75, 0xFE, 0x4E, 0x77, 0x1E, 0xB4, 0x68, 0xE3, 0x37, 0x26, 0x6D, 0xDD, 0xB8, 0xBF, +0xEF, 0xC2, 0xFD, 0xC3, 0x16, 0x84, 0xFD, 0xBD, 0xEE, 0x3C, 0x60, 0xFB, 0x6, 0x1B, 0x6A, 0x88, +0x75, 0xD7, 0xBC, 0xD7, 0x62, 0xDE, 0xBE, 0x7, 0x5D, 0x93, 0x5D, 0xD3, 0x64, 0x1F, 0xA4, 0xB3, +0x32, 0x3F, 0xEB, 0x1F, 0xB2, 0x6B, 0x46, 0x6B, 0x31, 0x23, 0xDF, 0x83, 0x66, 0x1A, 0xA, 0xB3, +0xE2, 0xA6, 0x94, 0x80, 0x65, 0xB5, 0x4A, 0x48, 0x2C, 0x9A, 0x5, 0xBE, 0x1F, 0xDF, 0x77, 0x57, +0x58, 0x82, 0x56, 0x71, 0x95, 0x70, 0xF7, 0x51, 0x85, 0x86, 0xFB, 0xD5, 0x7D, 0xCF, 0xC8, 0x8B, +0x86, 0x7D, 0xFB, 0xF7, 0xEC, 0x69, 0x28, 0xE1, 0x4B, 0xB2, 0x92, 0x3B, 0xD3, 0xF6, 0xE0, 0xD1, +0x92, 0xA, 0x41, 0x4D, 0xAB, 0x4D, 0x38, 0x17, 0x45, 0x9C, 0x3, 0xE6, 0xF4, 0xF4, 0xD4, 0x9D, +0xF2, 0x64, 0x72, 0xD4, 0xFD, 0xB9, 0x37, 0x5F, 0xA7, 0x21, 0x29, 0x3C, 0xB, 0xB3, 0x55, 0x5E, +0xF0, 0xB2, 0x5C, 0x17, 0xC9, 0x3C, 0x4E, 0xF8, 0xA8, 0xCC, 0xD6, 0x45, 0xC8, 0xF7, 0xD8, 0x7F, +0xC4, 0x6A, 0x4C, 0x26, 0x2C, 0xBA, 0x85, 0x26, 0xC5, 0x21, 0xCB, 0xB3, 0xB2, 0x62, 0x49, 0x16, +0x44, 0xEC, 0x53, 0x49, 0x8F, 0xC4, 0x73, 0x69, 0x3A, 0xC0, 0xCF, 0x28, 0xB, 0xD7, 0x64, 0x57, +0xC6, 0x61, 0xC1, 0x83, 0x8A, 0x3F, 0x97, 0x56, 0x66, 0x34, 0x2C, 0x43, 0x10, 0x58, 0xD, 0xA1, +0x9A, 0x4, 0x5E, 0xF2, 0x71, 0x75, 0x9B, 0x13, 0xFC, 0x90, 0x44, 0x7A, 0xF2, 0x29, 0xB8, 0xA, +0x14, 0x44, 0xD, 0x50, 0x16, 0x21, 0xAD, 0xCF, 0x64, 0xF1, 0x39, 0xCE, 0x73, 0x5E, 0x8C, 0x3F, +0x95, 0x3, 0xF9, 0xAC, 0x1E, 0x62, 0xC9, 0x83, 0x68, 0x1C, 0xE0, 0x61, 0x1A, 0x9D, 0x2F, 0xE3, +0x24, 0x1A, 0x95, 0x9C, 0x54, 0x9F, 0x60, 0x60, 0x5B, 0x93, 0x38, 0xE5, 0xA3, 0xC1, 0xB, 0x5E, +0x85, 0xD0, 0x9D, 0x5, 0xA3, 0x49, 0x8D, 0xC7, 0xE3, 0x81, 0xA2, 0x80, 0x8, 0x2E, 0xF8, 0xBF, +0xD7, 0x1C, 0x93, 0x81, 0x1, 0xE4, 0xD7, 0xEC, 0xB7, 0xD7, 0xAF, 0x7E, 0xAC, 0xAA, 0xFC, 0x9D, +0x6C, 0x1C, 0x29, 0x38, 0x5, 0x33, 0xCE, 0xD2, 0xBC, 0xC8, 0x16, 0xC4, 0x20, 0x80, 0xD7, 0x4C, +0x1B, 0xF1, 0xAB, 0x4A, 0xB3, 0x88, 0x3E, 0xF1, 0x5C, 0x34, 0x8D, 0x13, 0x9E, 0x2E, 0xAA, 0xE5, +0x39, 0x58, 0xBA, 0xAE, 0x82, 0x59, 0x52, 0xB3, 0x51, 0x7F, 0x84, 0x52, 0x73, 0xF0, 0x37, 0xAD, +0x8, 0x28, 0xE1, 0x15, 0xF1, 0xE2, 0x35, 0xD4, 0x7C, 0x5C, 0xC0, 0x32, 0x45, 0x23, 0x89, 0x5, +0x4C, 0xE6, 0x11, 0x9B, 0x30, 0xFA, 0x51, 0x65, 0x55, 0x90, 0xEC, 0xB1, 0x6F, 0xD9, 0xF1, 0xD1, +0xD1, 0xF8, 0x48, 0x51, 0x67, 0x8E, 0xB, 0x71, 0xA8, 0x5C, 0x9C, 0xDF, 0x4C, 0xDD, 0x61, 0x5C, +0x4A, 0xE8, 0xE3, 0xEB, 0xD9, 0xEA, 0x68, 0xF, 0xD8, 0xCD, 0x63, 0x6, 0x5, 0x6E, 0xCD, 0x6D, +0x9F, 0xD, 0xEE, 0x1B, 0xCC, 0xD7, 0x9F, 0x2F, 0xF5, 0x2F, 0xF9, 0xED, 0x8B, 0xC3, 0x72, 0x88, +0x50, 0x74, 0x5B, 0x56, 0x90, 0xA3, 0x70, 0x19, 0xA4, 0xB, 0x6E, 0xB1, 0xDE, 0x9C, 0x9, 0xF1, +0xF3, 0xD9, 0x9B, 0x9F, 0x9E, 0x3, 0x0, 0x96, 0xB2, 0x1C, 0x8B, 0xEF, 0xFF, 0xFD, 0x2F, 0xFB, +0xAE, 0x19, 0x8F, 0x58, 0x24, 0x9E, 0x9, 0xA4, 0x17, 0x84, 0x94, 0x4D, 0xA7, 0x53, 0xD1, 0xCD, +0xB7, 0x3C, 0x51, 0x50, 0x5, 0x1A, 0x1D, 0x96, 0x3D, 0x87, 0x4F, 0xE4, 0x3F, 0x43, 0x56, 0xCF, +0x5A, 0x90, 0x24, 0xA0, 0x80, 0x24, 0xB2, 0xE3, 0x82, 0x8F, 0x86, 0xF4, 0xFB, 0xF0, 0x53, 0x39, +0xDC, 0x3B, 0x68, 0xB1, 0x2C, 0xCB, 0x85, 0x73, 0x5, 0x74, 0x7B, 0x15, 0xC4, 0x4A, 0xF0, 0x2B, +0x9E, 0x9C, 0xB2, 0xFF, 0x69, 0xF7, 0xA4, 0xF, 0x79, 0xB2, 0x53, 0x26, 0x15, 0xD3, 0xF, 0x51, +0xC5, 0x2B, 0x70, 0x2E, 0x58, 0xE5, 0xA7, 0xF0, 0x19, 0x45, 0xC9, 0x5F, 0x42, 0xF5, 0x9E, 0x61, +0xA6, 0xE3, 0x34, 0xBB, 0x6, 0xC3, 0x26, 0x24, 0x3C, 0x47, 0x70, 0x92, 0x47, 0x7B, 0xAD, 0xEE, +0x5F, 0xDA, 0x13, 0xCB, 0xD6, 0xA4, 0x1B, 0x34, 0x9D, 0x31, 0xFE, 0x8D, 0x88, 0x23, 0x7, 0x7A, +0xA, 0xCE, 0x4A, 0x4A, 0x1F, 0xBD, 0xD6, 0xBA, 0xF4, 0xB, 0x7C, 0xE8, 0x3F, 0x9E, 0x14, 0x45, +0x70, 0x3B, 0x42, 0xE3, 0xDE, 0x19, 0xD9, 0xF, 0x7A, 0x1A, 0x97, 0xEC, 0xF8, 0x7, 0x36, 0x8B, +0xAB, 0x12, 0xD2, 0x20, 0x35, 0xB5, 0x25, 0x4D, 0x17, 0x50, 0x67, 0x12, 0x26, 0x6D, 0x90, 0xA0, +0x1, 0x8E, 0xEE, 0x9A, 0x83, 0x96, 0x80, 0x9E, 0x5, 0xE1, 0x65, 0xAF, 0x12, 0xEB, 0x8F, 0x6, +0x1E, 0xAF, 0x73, 0xD2, 0xAD, 0x2D, 0x95, 0x7A, 0x57, 0xE5, 0xFE, 0xB3, 0x94, 0xFC, 0xEB, 0x28, +0xFB, 0x1F, 0x54, 0xFA, 0x6D, 0x97, 0x6B, 0x17, 0x33, 0xD0, 0x36, 0x7, 0xFE, 0x96, 0x2F, 0xFE, +0xC5, 0xDC, 0xC1, 0x4E, 0xEC, 0x60, 0x2F, 0xEE, 0x62, 0x37, 0xF4, 0x67, 0xC1, 0x11, 0xC5, 0x27, +0x5C, 0x86, 0x6C, 0xAE, 0x10, 0x7A, 0xE6, 0xD5, 0x21, 0xA5, 0x19, 0x3C, 0xDB, 0x68, 0xF8, 0xF6, +0xCD, 0xC5, 0xCF, 0xC3, 0x3, 0x36, 0x9C, 0x14, 0xFF, 0x9C, 0x97, 0xD3, 0x21, 0x98, 0x8, 0xF4, +0x2F, 0x80, 0xFE, 0x2, 0x53, 0xE6, 0xAB, 0x97, 0x69, 0xC4, 0x6F, 0x30, 0xC9, 0x7D, 0x36, 0x7C, +0x30, 0x4F, 0xC5, 0x73, 0x69, 0x21, 0xA8, 0x65, 0xBC, 0xF8, 0xAC, 0x5D, 0xAE, 0xFE, 0x4C, 0x26, +0x9D, 0xF8, 0x5D, 0x50, 0x19, 0x43, 0x17, 0x2B, 0x65, 0xA, 0x49, 0xBF, 0x5E, 0xE0, 0x27, 0xC, +0x4A, 0x30, 0xF2, 0xE9, 0x7F, 0x92, 0xCD, 0x14, 0xD8, 0x53, 0x7C, 0x1D, 0xBD, 0x27, 0x83, 0xF0, +0xF1, 0xC0, 0xC3, 0x23, 0xF2, 0xFD, 0xA7, 0x6C, 0x0, 0xD7, 0x9D, 0xC4, 0x61, 0x40, 0xCB, 0x34, +0xC9, 0xC2, 0x8A, 0x57, 0x87, 0xB3, 0x38, 0xD, 0x8A, 0xDB, 0x81, 0xCD, 0x1D, 0x67, 0x28, 0x4D, +0x91, 0xF2, 0xFC, 0x23, 0x7B, 0xB6, 0x7, 0x82, 0x8C, 0x83, 0x7E, 0x1E, 0xD4, 0x1C, 0xA0, 0x2F, +0x23, 0x8D, 0xD0, 0x0, 0x52, 0xEE, 0xC8, 0x9, 0x1, 0x4, 0xBB, 0xFE, 0xF5, 0x9C, 0xB8, 0x55, +0xA3, 0x1F, 0xD0, 0xA2, 0xC, 0x3A, 0x16, 0xE5, 0x80, 0x55, 0xC5, 0x9A, 0x62, 0x12, 0x13, 0x8D, +0x18, 0x93, 0x76, 0x5C, 0x68, 0xFF, 0xB2, 0x75, 0x78, 0xE6, 0x5D, 0x73, 0xC9, 0x59, 0x69, 0x6, +0x13, 0xE, 0xC0, 0x14, 0x26, 0xC9, 0xC, 0xC2, 0xD0, 0x4B, 0x45, 0x60, 0x4F, 0x6F, 0x5F, 0x46, +0xA3, 0xE1, 0x8A, 0xAF, 0xB2, 0xE2, 0x56, 0xB3, 0x83, 0x44, 0xDB, 0xEA, 0x28, 0x77, 0x82, 0xA6, +0x54, 0x23, 0xFA, 0x2C, 0x33, 0x18, 0xDF, 0x24, 0x5B, 0x8C, 0x86, 0x3F, 0xC2, 0xAA, 0x9F, 0x12, +0x25, 0x2C, 0xE2, 0xF3, 0x60, 0x9D, 0x54, 0x52, 0xD3, 0x4B, 0x41, 0x13, 0x43, 0x18, 0xCA, 0x6F, +0x4C, 0x4E, 0x17, 0xBC, 0x5A, 0x17, 0x29, 0x3B, 0x3C, 0x96, 0x4D, 0x5F, 0xB0, 0xE5, 0x44, 0x88, +0xF8, 0x1F, 0xF7, 0xB9, 0x41, 0xC1, 0x58, 0x7E, 0xE7, 0x91, 0x98, 0xA0, 0xEA, 0xB6, 0x3, 0x93, +0xF8, 0xD, 0xF, 0xD7, 0x30, 0x2, 0xD9, 0x6A, 0x15, 0x80, 0xC9, 0xEA, 0xAF, 0xC9, 0xA7, 0x9B, +0x65, 0xD1, 0xEB, 0x29, 0xF0, 0xFC, 0x2F, 0x8C, 0x3B, 0x3A, 0xED, 0x86, 0x25, 0x8F, 0x82, 0x46, +0x43, 0x16, 0x87, 0x93, 0x4F, 0xD9, 0x6C, 0x83, 0x6D, 0x18, 0x3C, 0x20, 0x19, 0x55, 0xC, 0xB1, +0xC4, 0x92, 0xB0, 0xDD, 0x4D, 0x24, 0xCB, 0x65, 0x76, 0x2D, 0xB7, 0xD8, 0x23, 0x11, 0xB7, 0x1C, +0xA8, 0xD, 0xB7, 0x9E, 0x95, 0xB5, 0xFD, 0x96, 0x3F, 0xE4, 0x90, 0xAD, 0x69, 0x6E, 0x3F, 0xA6, +0xF6, 0xD7, 0xD4, 0x60, 0xFA, 0xE9, 0xC9, 0xB7, 0x9A, 0x55, 0xF7, 0xFE, 0x2C, 0x7, 0x7C, 0x77, +0xB7, 0xBB, 0x83, 0xAB, 0xFD, 0x76, 0xD2, 0xB1, 0x7D, 0x21, 0x3, 0x5, 0x93, 0x89, 0x45, 0x34, +0x68, 0xC6, 0xBA, 0x32, 0xF6, 0x74, 0xB0, 0xAB, 0x21, 0x31, 0x99, 0x6F, 0xE8, 0x6, 0x22, 0xC6, +0x60, 0x45, 0x1, 0x9F, 0x47, 0x84, 0x9A, 0x4D, 0x53, 0x38, 0xEB, 0x31, 0x30, 0x3, 0xE4, 0x67, +0xF8, 0x55, 0xCC, 0xAF, 0xCD, 0x6D, 0xD6, 0x35, 0xF2, 0x43, 0x94, 0x4F, 0x12, 0x62, 0x10, 0xC0, +0x6, 0x34, 0xD6, 0x27, 0x9C, 0x99, 0xBC, 0x32, 0x1, 0xC3, 0xD9, 0x38, 0x5C, 0xF2, 0xF0, 0x92, +0x47, 0x1D, 0xD6, 0xA3, 0x95, 0xDC, 0x91, 0x7A, 0xD2, 0xB3, 0xFB, 0x2B, 0x61, 0xA2, 0xE6, 0x59, +0xF9, 0xB5, 0x36, 0x81, 0xA6, 0x28, 0xBA, 0x60, 0x1E, 0x3, 0xF2, 0x24, 0x2D, 0xAF, 0x79, 0xF1, +0xB6, 0xC8, 0x42, 0xF4, 0xC9, 0x8A, 0x6E, 0xD7, 0x32, 0x9C, 0xC4, 0x5A, 0x99, 0xE5, 0x8A, 0x90, +0x67, 0xAF, 0xC4, 0xEF, 0x86, 0x41, 0xD4, 0x96, 0x4B, 0x6F, 0xDF, 0x30, 0x62, 0xA3, 0xBB, 0x91, +0x4C, 0x46, 0xF4, 0x9D, 0xC7, 0x94, 0x45, 0x1B, 0x29, 0xF0, 0xED, 0x85, 0x67, 0x19, 0x47, 0x9C, +0x92, 0x51, 0x44, 0x43, 0x2D, 0x3B, 0x75, 0x7E, 0x71, 0x2C, 0xB0, 0xFE, 0xF8, 0xF3, 0xEB, 0x57, +0xC6, 0x92, 0xD4, 0x39, 0xC9, 0xBE, 0xA7, 0xE8, 0x5B, 0x56, 0xB7, 0xF0, 0x33, 0x57, 0x71, 0x19, +0xCF, 0xE2, 0x24, 0xAE, 0x6E, 0x9, 0x28, 0xCC, 0x92, 0x24, 0xC8, 0x4B, 0xDE, 0x42, 0xB5, 0x1, +0x78, 0xE3, 0x84, 0xB0, 0x1D, 0xF9, 0x11, 0x86, 0x10, 0xCE, 0xAB, 0x5A, 0x72, 0x5B, 0x25, 0x90, +0xCD, 0xA4, 0x85, 0x6A, 0xE6, 0xEC, 0x2C, 0x9C, 0xA5, 0x32, 0x3D, 0xB6, 0x7F, 0x5B, 0xBB, 0x4F, +0x68, 0xAA, 0xFE, 0x8D, 0xA6, 0x74, 0xF0, 0x82, 0x9A, 0xD2, 0x7, 0x39, 0x2E, 0x11, 0x47, 0x55, +0x23, 0x27, 0x75, 0xAB, 0x53, 0x21, 0xF4, 0xB1, 0xD7, 0xCD, 0x78, 0x0, 0x46, 0x5C, 0xC8, 0x6E, +0xEC, 0xE8, 0x94, 0x45, 0x31, 0x67, 0x6F, 0x8A, 0x8, 0x9D, 0x93, 0x18, 0xCA, 0xDF, 0xD8, 0x52, +0x11, 0x9, 0x42, 0x86, 0x8, 0x87, 0xB1, 0x7A, 0xFA, 0x11, 0x65, 0x73, 0x89, 0x32, 0x4D, 0xE4, +0xFB, 0xA3, 0x8F, 0x8A, 0x26, 0x23, 0xCF, 0x6B, 0x18, 0x53, 0xE2, 0x8D, 0x78, 0x54, 0xAA, 0xCD, +0x14, 0x7B, 0xCC, 0x8E, 0xF6, 0xD8, 0x83, 0x7, 0x4C, 0xB6, 0xA2, 0x3F, 0x99, 0xD5, 0xC1, 0x60, +0xCF, 0x35, 0xA5, 0xCB, 0xA0, 0x14, 0xF3, 0xC8, 0x68, 0xC7, 0x4D, 0xE2, 0xEB, 0xC4, 0x86, 0x6, +0x8D, 0x13, 0x83, 0xC8, 0xDA, 0x78, 0xC9, 0x84, 0xAF, 0xDB, 0x9C, 0x3B, 0x73, 0xAA, 0x99, 0x5E, +0x27, 0x8, 0x75, 0xB2, 0x6D, 0x9E, 0xF2, 0x30, 0x74, 0x53, 0x81, 0x68, 0x5C, 0x50, 0xA3, 0x83, +0xE1, 0x1A, 0x39, 0x29, 0xE, 0x1B, 0xC7, 0x1E, 0x31, 0x6B, 0xAE, 0x87, 0xEC, 0xB8, 0x6B, 0x4F, +0x2, 0xE9, 0x2E, 0x48, 0x98, 0x25, 0x17, 0x42, 0xCD, 0xC5, 0xC1, 0xA9, 0x6F, 0xCB, 0x44, 0x1D, +0x84, 0xE3, 0x25, 0x63, 0xA4, 0x77, 0xFB, 0x2, 0x3, 0xF8, 0xD7, 0x1, 0x2F, 0x32, 0xC9, 0x6A, +0xB5, 0x24, 0xE8, 0x71, 0x3D, 0xC8, 0xA4, 0x6B, 0x90, 0xF2, 0x52, 0x24, 0x38, 0xC, 0xDB, 0x6D, +0x7E, 0x48, 0x84, 0x32, 0x78, 0x89, 0xA2, 0xE0, 0xB, 0x9E, 0xA4, 0xDE, 0xD, 0x94, 0x22, 0x73, +0x8A, 0x60, 0x10, 0x53, 0xA7, 0x2E, 0xB2, 0x65, 0x9D, 0x2B, 0xF3, 0xE5, 0xDD, 0x46, 0xE5, 0x6C, +0x9F, 0xF8, 0x8F, 0x15, 0x4F, 0x4D, 0x5E, 0xCF, 0x82, 0xF, 0x3, 0x96, 0xA5, 0x21, 0xF6, 0xE, +0x97, 0x68, 0x31, 0xC2, 0x10, 0x72, 0x8F, 0x23, 0x1A, 0x2, 0x8E, 0xF1, 0x60, 0x38, 0x41, 0x30, +0x8A, 0x55, 0xF9, 0xB0, 0x3E, 0xF9, 0xFE, 0xE9, 0xC9, 0xA3, 0x9, 0xA1, 0x51, 0x29, 0x57, 0xF9, +0xBF, 0x2B, 0x20, 0xFA, 0xA3, 0xA6, 0xDB, 0x96, 0xAE, 0xC6, 0xF, 0x75, 0xEF, 0xCB, 0xEB, 0x89, +0x9E, 0xA8, 0x89, 0x86, 0x6B, 0x30, 0x26, 0x45, 0xA8, 0x2C, 0x48, 0x14, 0x39, 0x9C, 0xCE, 0x4D, +0xB5, 0x21, 0xBE, 0x7A, 0x71, 0xCE, 0xCC, 0x80, 0xC6, 0xFE, 0x8, 0xA5, 0xF4, 0x89, 0xAE, 0x85, +0x32, 0x2B, 0xD8, 0x88, 0x20, 0x2F, 0xA7, 0xC7, 0x67, 0x97, 0x8F, 0xEA, 0xF5, 0x57, 0xC2, 0x78, +0x76, 0xB9, 0xBF, 0xDF, 0x97, 0x25, 0x20, 0xC, 0x72, 0x19, 0x26, 0x83, 0xFD, 0xBA, 0xF3, 0xFB, +0xCB, 0x8F, 0xDD, 0x23, 0xFE, 0xF1, 0x85, 0xA3, 0x5F, 0x34, 0x2A, 0x1B, 0xC8, 0x15, 0x1C, 0x90, +0x27, 0x6C, 0x86, 0x66, 0xFB, 0x3, 0xB5, 0x9A, 0x5D, 0x2B, 0xE8, 0x4F, 0x26, 0x6C, 0xB5, 0xBE, +0xDE, 0x58, 0xA3, 0x85, 0x41, 0xCE, 0xCF, 0xB1, 0x1, 0xBD, 0x93, 0x93, 0x82, 0xB1, 0xCF, 0xCC, +0x39, 0xEA, 0x35, 0x36, 0x66, 0xDA, 0x95, 0x18, 0xF1, 0x6A, 0xD5, 0x37, 0x34, 0x93, 0xBE, 0xEC, +0xD3, 0x2E, 0xD6, 0xA1, 0x16, 0x16, 0x4, 0xA3, 0x8C, 0x8E, 0xA, 0x8F, 0xCE, 0xF0, 0xE7, 0x91, +0xC4, 0x81, 0xAF, 0xFD, 0x72, 0x22, 0x39, 0x62, 0x6A, 0x57, 0xE7, 0x54, 0x7A, 0x18, 0xEA, 0xA, +0x4C, 0xC9, 0xE8, 0x3F, 0x3A, 0x77, 0x13, 0xD9, 0xA4, 0x5A, 0x6, 0x5C, 0x29, 0x26, 0x93, 0x2A, +0xB8, 0xA8, 0xE4, 0xA2, 0x3E, 0xFC, 0xD8, 0x3C, 0x7A, 0xB8, 0xBF, 0xDF, 0x95, 0x93, 0x36, 0x8, +0xB3, 0x8F, 0x54, 0x4C, 0x0, 0x7F, 0x78, 0x53, 0xB6, 0xD3, 0xF3, 0xB9, 0xF2, 0x68, 0x1E, 0x26, +0xFA, 0x3, 0x28, 0xF7, 0x40, 0x12, 0xC, 0xD0, 0x4C, 0x68, 0x8E, 0x2, 0xDB, 0x53, 0xEC, 0x8F, +0xA8, 0xC4, 0xAF, 0x44, 0x7, 0x54, 0x1B, 0x5, 0x7E, 0xA7, 0xF0, 0xCC, 0xCF, 0xC1, 0xFE, 0xA0, +0xAD, 0x4D, 0xCF, 0x17, 0x6F, 0x70, 0x72, 0x2C, 0x83, 0x13, 0xCA, 0x65, 0xC7, 0x22, 0x36, 0xB1, +0xE2, 0xF, 0x4, 0x43, 0x66, 0xF4, 0x51, 0xBB, 0x34, 0xFB, 0x60, 0xDA, 0x8C, 0x7B, 0xEA, 0x83, +0x79, 0x8B, 0xE5, 0xC0, 0x43, 0x26, 0xB7, 0x5, 0x85, 0x63, 0xFD, 0x16, 0xDC, 0x9, 0xE0, 0xBC, +0x41, 0x10, 0x3D, 0xDC, 0x10, 0xFF, 0x68, 0x70, 0xEB, 0xC, 0x52, 0xCB, 0x7D, 0x3B, 0xBE, 0xD0, +0xC1, 0xC5, 0xBD, 0x9E, 0x50, 0xA6, 0x3B, 0xD8, 0x78, 0xE8, 0x3B, 0xDD, 0x10, 0x91, 0x8D, 0x89, +0x52, 0xF1, 0xFB, 0x45, 0x12, 0x2C, 0x4A, 0xA4, 0xB7, 0x6E, 0xD3, 0x10, 0xE7, 0xA4, 0xE8, 0x2F, +0x68, 0x60, 0xCF, 0x2F, 0xDE, 0xDE, 0xFC, 0xCA, 0x67, 0x2F, 0x92, 0xD7, 0x8B, 0xE2, 0xA4, 0x9D, +0x23, 0xA4, 0x4E, 0xA6, 0x99, 0x51, 0xE1, 0xB, 0xC4, 0xF5, 0x3B, 0xD7, 0xD4, 0x60, 0xC, 0xA1, +0x53, 0xA2, 0xF, 0xB6, 0xDB, 0xF2, 0x18, 0x7F, 0x44, 0xA5, 0x4, 0x2D, 0x95, 0x19, 0x49, 0xC4, +0x88, 0xA, 0x8F, 0xD9, 0xA3, 0x47, 0xEC, 0x7B, 0x44, 0x83, 0xD0, 0xA1, 0x23, 0xE5, 0x58, 0xE9, +0x61, 0x88, 0x20, 0x3E, 0xBB, 0x4E, 0x69, 0x3B, 0x7C, 0x6F, 0xB, 0x23, 0x1D, 0x86, 0x9, 0xBB, +0x4F, 0xFC, 0x35, 0xC, 0xB5, 0xEE, 0x2F, 0xE, 0x3D, 0x3F, 0xC, 0xEF, 0xCF, 0xD3, 0xF, 0xC3, +0x3D, 0x69, 0x71, 0xBC, 0xA6, 0x4A, 0x59, 0x29, 0x71, 0x26, 0x8C, 0xEE, 0xCF, 0x54, 0xF7, 0xBE, +0x1E, 0xA6, 0x59, 0xBC, 0x3F, 0x8F, 0x94, 0x7D, 0xEC, 0xC4, 0xDF, 0x63, 0xC3, 0x3A, 0x15, 0xB5, +0x6F, 0xB2, 0x56, 0xD0, 0x83, 0xF9, 0x59, 0xA7, 0xED, 0xAE, 0xEA, 0xDE, 0xDB, 0x88, 0xB5, 0xB2, +0xB0, 0xDE, 0x9F, 0x97, 0xE, 0xBE, 0xCD, 0x18, 0xA, 0xB, 0xC3, 0x60, 0xF3, 0xCA, 0x1F, 0xF9, +0x57, 0x1E, 0xEA, 0x69, 0x18, 0x2, 0x67, 0xC8, 0xD9, 0xBA, 0xAA, 0x32, 0x63, 0x9D, 0x4, 0xB0, +0xBD, 0xF2, 0xA2, 0x49, 0xAC, 0x3B, 0x2D, 0xBB, 0x58, 0xF5, 0x67, 0x8F, 0x26, 0xB2, 0x63, 0x9B, +0x33, 0x1B, 0x68, 0x3C, 0xF6, 0xD2, 0x8, 0xD5, 0xF7, 0x5, 0x7C, 0x7E, 0x1A, 0xDF, 0x9, 0xE0, +0xC9, 0xEB, 0xEC, 0x8A, 0x7F, 0x48, 0x9F, 0x5F, 0x71, 0x3C, 0xC9, 0x58, 0x0, 0xC3, 0x37, 0x9F, +0x73, 0x20, 0x42, 0xBE, 0x39, 0x42, 0x72, 0x25, 0xE4, 0x63, 0x6B, 0x1A, 0x72, 0x8, 0x7B, 0x1A, +0xEF, 0xEE, 0x3C, 0x8D, 0x13, 0xEF, 0x34, 0x78, 0x14, 0x57, 0x5B, 0x4E, 0xE2, 0x39, 0x40, 0x2D, +0xFA, 0xA8, 0xAF, 0x4D, 0xDD, 0xF3, 0x3B, 0x53, 0xF7, 0xD0, 0x4B, 0x1D, 0xCE, 0x9D, 0x28, 0xE7, +0xB4, 0x25, 0x81, 0x6F, 0x25, 0xB4, 0x45, 0xA3, 0xC2, 0x60, 0x93, 0xF9, 0xB6, 0x26, 0x93, 0xED, +0x4A, 0xE7, 0x77, 0x5E, 0x3A, 0xE9, 0x24, 0x75, 0x4B, 0x22, 0x29, 0x2B, 0x48, 0xC9, 0x25, 0x8B, +0x4A, 0xB7, 0x44, 0xA3, 0xA6, 0xF4, 0x7C, 0x7, 0x4A, 0x25, 0xA1, 0x8A, 0xB8, 0xE, 0x6A, 0xBC, +0x11, 0x9C, 0xDF, 0x36, 0x78, 0xB5, 0x1E, 0x53, 0x7E, 0x1D, 0x5C, 0x16, 0x59, 0xC9, 0x82, 0xF5, +0x3C, 0xC9, 0x38, 0x72, 0x50, 0xEE, 0xF3, 0x67, 0x31, 0x1C, 0x64, 0x40, 0x25, 0x25, 0x1C, 0xA7, +0xC2, 0x15, 0x5B, 0xAF, 0x90, 0x2E, 0x43, 0xAA, 0xA, 0x53, 0x5D, 0x1E, 0xB0, 0x6B, 0x78, 0xF9, +0xDA, 0xE1, 0xA7, 0xCB, 0x20, 0xA9, 0xD6, 0x48, 0xE2, 0xF1, 0xEA, 0x3A, 0x28, 0x2D, 0x48, 0xEA, +0xDA, 0x9E, 0xA1, 0xDA, 0x45, 0x7D, 0x33, 0xF5, 0x85, 0x5B, 0xC2, 0x61, 0x45, 0xFE, 0x6D, 0x93, +0xD9, 0x7B, 0x3A, 0xA5, 0xD, 0xB1, 0x87, 0x45, 0xB2, 0x73, 0xE3, 0xE2, 0x28, 0xDA, 0x58, 0xCF, +0x4A, 0xE9, 0xC7, 0x8E, 0x5B, 0x91, 0x75, 0xA7, 0xC9, 0xEE, 0xC5, 0xA3, 0xA9, 0x50, 0x6E, 0x7C, +0xDF, 0x83, 0xD7, 0xF9, 0x2D, 0x22, 0x20, 0xA4, 0x85, 0xC0, 0xD5, 0x90, 0x3F, 0x49, 0x92, 0xD1, +0x0, 0xAE, 0x66, 0x80, 0x9C, 0x7C, 0x94, 0xBB, 0x55, 0x17, 0x8A, 0x22, 0xFA, 0xBE, 0x25, 0x12, +0x93, 0xCA, 0xCE, 0x1A, 0x8E, 0x2E, 0x4, 0xA9, 0x85, 0xA0, 0xB5, 0xF9, 0xF0, 0x75, 0x29, 0xAD, +0x2E, 0x27, 0x5B, 0x74, 0x9, 0x43, 0xAB, 0xCB, 0x43, 0xEA, 0x62, 0xF5, 0x41, 0xEB, 0x94, 0x7D, +0xEF, 0xC4, 0xE5, 0x3A, 0x6, 0xDB, 0xB7, 0x42, 0x76, 0x43, 0xD2, 0x4D, 0x8, 0xBD, 0xD, 0x30, +0x9D, 0xD9, 0x9A, 0xFC, 0x98, 0xB2, 0x1E, 0x6E, 0xE1, 0x95, 0xC6, 0x51, 0xD7, 0x75, 0x5A, 0x31, +0xA4, 0xC6, 0x6C, 0x0, 0xD6, 0x69, 0x6B, 0x33, 0x11, 0x63, 0xE6, 0x6B, 0x45, 0x6, 0x66, 0x6F, +0xF7, 0x73, 0x31, 0x24, 0x38, 0x75, 0x1, 0x65, 0x9D, 0xBE, 0xAC, 0x7, 0xFB, 0x17, 0x9D, 0xE7, +0x49, 0x6D, 0xFC, 0x4B, 0x13, 0xE4, 0x4F, 0x41, 0xE1, 0xE, 0x49, 0xF2, 0xD9, 0xF0, 0x2B, 0x9E, +0xAE, 0x7A, 0xC6, 0xFE, 0x33, 0xF2, 0xBC, 0x72, 0x9F, 0xD2, 0x95, 0xBF, 0x75, 0x6A, 0x5C, 0x9D, +0x34, 0xAD, 0x75, 0x12, 0x4B, 0xF4, 0x8A, 0xB5, 0x3A, 0x65, 0xC3, 0x7D, 0xA0, 0x52, 0x66, 0xC2, +0xE9, 0x62, 0x45, 0xED, 0xA7, 0xA7, 0x4F, 0x71, 0xE2, 0xBD, 0x10, 0x7, 0x5F, 0xD8, 0xB8, 0x65, +0x4D, 0xCA, 0x4D, 0xF8, 0xAF, 0x6, 0xC9, 0xE3, 0xE9, 0xB1, 0x4C, 0xC5, 0xCA, 0x8D, 0x4C, 0x47, +0x22, 0x56, 0x6F, 0x41, 0x3C, 0x27, 0x41, 0xE5, 0xD3, 0xDB, 0x73, 0x52, 0x8F, 0x9F, 0x60, 0xDB, +0x47, 0xC3, 0x59, 0x3D, 0xAA, 0x7B, 0xA, 0x2F, 0xB2, 0xD, 0x46, 0xA6, 0x21, 0xD4, 0x39, 0xA9, +0xAE, 0x64, 0x43, 0xF8, 0x3E, 0xFE, 0xA8, 0x76, 0x91, 0xD, 0xD6, 0x73, 0x9A, 0x4B, 0xBD, 0xED, +0xEA, 0xAF, 0x2F, 0xF3, 0xF3, 0xE5, 0x39, 0x36, 0xD2, 0x1, 0x69, 0xE5, 0x1C, 0x5C, 0xED, 0xE6, +0xCA, 0x49, 0xC3, 0x95, 0xE3, 0x3E, 0xAE, 0x44, 0x7D, 0xE7, 0x63, 0x34, 0x84, 0x9B, 0x66, 0x8D, +0x7A, 0xF7, 0xA0, 0xEE, 0x7E, 0x18, 0x76, 0x23, 0x15, 0x51, 0x42, 0x37, 0xA5, 0xF, 0x1B, 0x4A, +0x4F, 0x3A, 0x28, 0xAD, 0x9, 0x14, 0xA8, 0x8C, 0x2D, 0xAD, 0x7F, 0x58, 0xF0, 0x19, 0xA5, 0x1, +0x29, 0xBB, 0xC, 0xD2, 0xD4, 0xD9, 0x88, 0xC3, 0xB8, 0x2C, 0x33, 0x94, 0x2, 0x40, 0x77, 0x22, +0xC3, 0xCD, 0x7B, 0x8F, 0xB2, 0x77, 0xB1, 0x59, 0xF3, 0x52, 0x16, 0x3, 0x20, 0xFC, 0x11, 0x16, +0xA2, 0xD6, 0x47, 0xEF, 0xC1, 0xDF, 0x1F, 0x38, 0x52, 0xB6, 0x36, 0x80, 0xF4, 0x1F, 0xA1, 0xD6, +0x83, 0xC9, 0xE2, 0x5A, 0x28, 0x9D, 0x2C, 0x53, 0x19, 0x2F, 0xB, 0x3E, 0x17, 0x87, 0xB, 0xEA, +0xC8, 0x7D, 0xD0, 0x77, 0xE4, 0xE, 0x98, 0xA9, 0xC6, 0x4E, 0xB5, 0x39, 0x22, 0xAF, 0xA9, 0x6, +0xD8, 0x89, 0xC2, 0x66, 0xA3, 0xE2, 0xD2, 0x27, 0xE, 0x51, 0xB3, 0x74, 0x1E, 0x17, 0xAB, 0x11, +0xF6, 0xF, 0x41, 0x92, 0xDC, 0x2A, 0x70, 0x71, 0x56, 0x5C, 0x83, 0x9B, 0xCB, 0x5F, 0x5B, 0xFE, +0xB7, 0x9, 0xF, 0x10, 0x8, 0x90, 0x87, 0x19, 0x33, 0xB9, 0x41, 0x82, 0x7, 0xA8, 0xED, 0xB6, +0x53, 0xA9, 0xE5, 0x14, 0x57, 0xC, 0xC4, 0xEC, 0x78, 0xE2, 0x4E, 0xEC, 0xE, 0x4B, 0xBD, 0xA, +0x2E, 0x39, 0x5F, 0xE5, 0xD5, 0xAD, 0x77, 0x8A, 0x7E, 0x72, 0xCF, 0x45, 0x79, 0xB1, 0x70, 0x49, +0xA2, 0xAB, 0x5B, 0x23, 0xE8, 0xA3, 0x56, 0x96, 0x24, 0xA3, 0x4B, 0x4D, 0x73, 0x23, 0x4A, 0x58, +0xAF, 0x9, 0x9E, 0x10, 0x96, 0xDD, 0xCE, 0xD3, 0x8D, 0xED, 0x97, 0x4B, 0x39, 0x59, 0x3, 0xE0, +0x54, 0xA2, 0xA, 0xB6, 0x82, 0xD0, 0xD1, 0x80, 0x48, 0x16, 0x4D, 0x64, 0xFF, 0x4C, 0xCE, 0x1D, +0xB8, 0x3C, 0xA4, 0xC5, 0xD5, 0xFD, 0xBF, 0x69, 0xD7, 0xE6, 0xF8, 0x19, 0x23, 0x37, 0x91, 0x3B, +0xAE, 0x23, 0x26, 0xE1, 0xAE, 0xA3, 0x90, 0x60, 0x8C, 0x2E, 0x1A, 0x15, 0x15, 0x77, 0x58, 0x5B, +0x73, 0x67, 0xB5, 0xC3, 0xCA, 0xD2, 0x99, 0xBD, 0xEA, 0xAA, 0xC8, 0xAF, 0x39, 0xAA, 0x9A, 0x37, +0x55, 0xF2, 0x34, 0x60, 0x8D, 0xAF, 0x95, 0x25, 0xE7, 0x3, 0xAA, 0x10, 0x1B, 0xB4, 0xA0, 0xFE, +0xDA, 0x72, 0x63, 0x4C, 0x4, 0xB6, 0x6, 0x8, 0x9B, 0xDB, 0x9, 0x4E, 0x0, 0xAB, 0xAE, 0x2E, +0xC4, 0xE4, 0x5F, 0xA8, 0xE8, 0x7F, 0xB0, 0x6F, 0x5D, 0x65, 0xB1, 0x7D, 0x4A, 0x8D, 0x4E, 0x7E, +0xB1, 0x63, 0xE5, 0xF8, 0x3E, 0x62, 0x65, 0xF, 0x8A, 0xBD, 0x1D, 0x70, 0x54, 0x84, 0xC3, 0x91, +0x57, 0x93, 0x52, 0xA, 0x7A, 0xDB, 0xD7, 0x1, 0xDE, 0x49, 0x4B, 0xAE, 0x7E, 0x9D, 0xD3, 0xD5, +0x86, 0x9B, 0x6A, 0x1D, 0x24, 0x2F, 0x8A, 0x60, 0x21, 0xEE, 0x9, 0xC8, 0xA1, 0x5C, 0x7, 0xA9, +0x91, 0xCC, 0xB2, 0xE8, 0xD6, 0x2A, 0xF8, 0xA7, 0x51, 0xDC, 0x40, 0xDF, 0x89, 0x95, 0x8C, 0x15, +0x86, 0xA1, 0x7E, 0xA7, 0x44, 0xE1, 0x47, 0xAC, 0xA, 0x2, 0xEA, 0xA1, 0xBA, 0x5D, 0x71, 0x48, +0x15, 0x89, 0xC3, 0xBD, 0x76, 0xAE, 0x12, 0x6, 0x95, 0x4E, 0x21, 0x50, 0xEC, 0xB7, 0xAC, 0x66, +0x98, 0x16, 0x6D, 0x3E, 0xFF, 0xEF, 0x7F, 0xAD, 0x6D, 0x2A, 0x92, 0xD9, 0xE2, 0x60, 0x6F, 0x5D, +0x0, 0xBA, 0x64, 0x4F, 0x5F, 0xBD, 0x79, 0x4A, 0x62, 0x23, 0xF2, 0xD6, 0x31, 0xE5, 0x6D, 0x84, +0xF7, 0xA4, 0x38, 0xF, 0x45, 0x3C, 0x4B, 0x40, 0x5E, 0xC7, 0x9C, 0x3A, 0x4, 0xEB, 0x12, 0xA6, +0x7A, 0x25, 0x6A, 0x25, 0xE1, 0x43, 0x30, 0xE, 0x40, 0xA5, 0x17, 0x65, 0xAB, 0xB5, 0x50, 0x5B, +0xD6, 0x96, 0x0, 0x45, 0xB0, 0xC9, 0x5A, 0x88, 0x7D, 0x71, 0x7B, 0x21, 0x9D, 0x25, 0x4E, 0x9B, +0xFE, 0x26, 0x56, 0x35, 0x8E, 0xF6, 0x7, 0x6C, 0x6C, 0x5D, 0x21, 0xF1, 0x95, 0x4F, 0x47, 0x60, +0xFC, 0x42, 0xDC, 0x83, 0xDA, 0x1E, 0x9D, 0x8, 0x19, 0x7C, 0xC8, 0xB4, 0x74, 0xE, 0xFF, 0x36, +0xDC, 0xDF, 0x28, 0xA1, 0x42, 0xE8, 0xB3, 0x88, 0x77, 0xF, 0x2D, 0xD0, 0xF9, 0xF2, 0xC2, 0xBB, +0x2C, 0x29, 0xE2, 0xC5, 0xA0, 0xA8, 0xCA, 0x5F, 0x91, 0xCB, 0x1E, 0xD, 0xE2, 0x55, 0xB0, 0xE0, +0xD8, 0xD5, 0xFB, 0xB3, 0x2, 0xE2, 0xA9, 0xB2, 0x29, 0x2F, 0xE9, 0x7B, 0xBB, 0x72, 0x57, 0x80, +0xA8, 0x9B, 0x29, 0xBF, 0xBC, 0x7B, 0xA5, 0xE4, 0xF8, 0xCD, 0xEC, 0x13, 0x28, 0xC6, 0xEF, 0x91, +0xC7, 0xE8, 0xB4, 0x70, 0x28, 0xFA, 0x2C, 0x39, 0x16, 0x78, 0x5B, 0x90, 0xE4, 0x17, 0x9F, 0xD1, +0x2, 0x51, 0x95, 0xF9, 0x88, 0x98, 0xD5, 0xB1, 0x93, 0xEF, 0x18, 0x41, 0x86, 0xCA, 0x38, 0x19, +0xA8, 0xF8, 0x45, 0xE, 0xCD, 0x25, 0xC3, 0x1, 0xA, 0x5B, 0x69, 0xF, 0x52, 0x97, 0xA, 0x8E, +0x8C, 0xF8, 0xA7, 0xEB, 0x7C, 0xA1, 0xD9, 0xEF, 0x24, 0x43, 0x5B, 0x64, 0x49, 0xC0, 0x71, 0x10, +0x45, 0x94, 0xA3, 0xAC, 0x5E, 0x51, 0x14, 0x48, 0xBB, 0xD3, 0xA1, 0xA8, 0x4A, 0x43, 0x9C, 0x7F, +0xC0, 0x46, 0xB0, 0xF1, 0xD3, 0xC7, 0xBE, 0x10, 0x5E, 0x91, 0x46, 0x7A, 0x7F, 0x5E, 0x8B, 0xB2, +0x60, 0xA9, 0x8A, 0x93, 0x89, 0x71, 0x28, 0x2D, 0xF5, 0xD6, 0x19, 0xFC, 0x8A, 0xA5, 0xE4, 0x29, +0x4A, 0x7C, 0xE3, 0x92, 0xE9, 0xDE, 0x57, 0x38, 0x84, 0x92, 0x3A, 0x19, 0x2F, 0xD8, 0x93, 0x8B, +0xDF, 0x7F, 0x3A, 0xFF, 0xA6, 0xD5, 0x75, 0x23, 0x23, 0xDB, 0x55, 0xC6, 0xF5, 0x34, 0xE9, 0xCF, +0x93, 0x92, 0xD4, 0x77, 0x8B, 0xD5, 0xFD, 0x62, 0x61, 0xB0, 0x25, 0xD7, 0xD2, 0x5, 0xF7, 0xD4, +0xD1, 0xBB, 0xF5, 0xEF, 0xDB, 0xFE, 0x8B, 0xD1, 0xA4, 0x37, 0xF6, 0x78, 0xB2, 0xDE, 0x5D, 0xB8, +0x9, 0x69, 0x6C, 0xA9, 0xB7, 0x8F, 0x69, 0x15, 0x2, 0x37, 0x62, 0xB0, 0xF6, 0xE3, 0xC6, 0x20, +0x5F, 0xB5, 0x2, 0xAD, 0xCE, 0x26, 0xEF, 0x18, 0x4C, 0x50, 0xBF, 0xAC, 0x70, 0x63, 0x9, 0x6A, +0xDD, 0x14, 0x48, 0x28, 0x98, 0xBF, 0x30, 0x3E, 0x70, 0xAB, 0xB7, 0xCC, 0x67, 0xFE, 0xE4, 0x92, +0x9B, 0xDA, 0x6C, 0xA0, 0x76, 0x38, 0xC7, 0xAD, 0x6F, 0x1E, 0x5B, 0xA8, 0x37, 0x5C, 0x88, 0x6A, +0x3A, 0xC9, 0x91, 0x74, 0x66, 0x49, 0x86, 0x5D, 0xE1, 0xA5, 0x7F, 0xC, 0xE7, 0x1C, 0x56, 0x1C, +0x22, 0x58, 0xB1, 0xB1, 0x27, 0x16, 0x72, 0x23, 0x8C, 0x56, 0x29, 0x2A, 0x6C, 0xB2, 0xAB, 0x4D, +0xD4, 0x47, 0x11, 0xB6, 0xE4, 0xF1, 0x62, 0x49, 0xC6, 0x67, 0xA4, 0xF6, 0x78, 0x92, 0x0, 0xD1, +0x7A, 0x78, 0x7C, 0x72, 0xB4, 0xB7, 0x3F, 0xC8, 0x6F, 0x3C, 0xD4, 0x6A, 0xAB, 0x1A, 0x47, 0xA2, +0x4E, 0xC7, 0xEA, 0xFD, 0x2B, 0x35, 0x1E, 0x1E, 0x7F, 0x5F, 0x77, 0xFE, 0xCA, 0x3A, 0xDE, 0x88, +0x62, 0xAF, 0x82, 0xD7, 0x60, 0x77, 0xD2, 0x6E, 0xEA, 0xDD, 0xAB, 0xDA, 0x1A, 0xFD, 0x57, 0xD5, +0xEB, 0xF2, 0x8A, 0x47, 0xDE, 0xD, 0x94, 0x27, 0xE0, 0x71, 0x6F, 0x35, 0xD0, 0x4A, 0xC3, 0xD3, +0x5F, 0x5, 0x89, 0xAE, 0xE8, 0xA1, 0x94, 0x45, 0x35, 0x3F, 0xFC, 0xC7, 0x81, 0x10, 0x57, 0xF4, +0x44, 0x10, 0x97, 0x66, 0x48, 0x52, 0x64, 0xC5, 0xE5, 0x58, 0x43, 0x34, 0x98, 0xD7, 0xA8, 0x32, +0x9, 0x83, 0x9C, 0xA3, 0x3E, 0x26, 0x84, 0x73, 0xF8, 0xE5, 0xDD, 0x4B, 0x3A, 0x7F, 0xC9, 0x52, +0x8A, 0x48, 0x15, 0x14, 0xC5, 0x86, 0x35, 0x4D, 0x7D, 0x26, 0x43, 0x0, 0x35, 0xDC, 0xDF, 0xFD, +0xF6, 0x8E, 0x11, 0x54, 0xD7, 0x3, 0xCE, 0x28, 0xD3, 0x15, 0x88, 0xD2, 0xC0, 0xE1, 0x21, 0x7D, +0xAE, 0x97, 0x30, 0x18, 0x57, 0xBC, 0x50, 0xD7, 0x65, 0xE5, 0x72, 0x54, 0x8A, 0xC, 0x15, 0x9, +0xE1, 0x10, 0x49, 0x46, 0x42, 0xB4, 0xEF, 0xA1, 0x88, 0x7F, 0x5, 0xBF, 0x1A, 0xE3, 0x90, 0xBE, +0x9A, 0xD0, 0x95, 0x97, 0x43, 0x2A, 0x29, 0x3F, 0xAB, 0x51, 0x8B, 0xF5, 0xD6, 0x3F, 0xEC, 0xB1, +0x23, 0xA1, 0xBE, 0xE6, 0x81, 0x35, 0x88, 0x20, 0x52, 0x6B, 0xB2, 0x40, 0xFE, 0x87, 0xE2, 0x43, +0x3A, 0x34, 0x41, 0xF4, 0xE8, 0x74, 0xD2, 0x93, 0x95, 0x31, 0xAD, 0xF2, 0x29, 0x33, 0x6, 0xA6, +0x39, 0x4E, 0x7, 0xF2, 0x26, 0x9E, 0xD8, 0x76, 0x9F, 0xD5, 0x53, 0x9F, 0xE, 0x4C, 0x46, 0x10, +0x76, 0xD1, 0xD0, 0x3D, 0x6, 0xCD, 0xF0, 0x94, 0x89, 0xAB, 0xC4, 0xB0, 0x36, 0x71, 0xEA, 0x87, +0xF6, 0xB6, 0x6A, 0x29, 0xF0, 0x75, 0x68, 0xCF, 0xF2, 0xF0, 0x50, 0x1, 0x91, 0x0, 0xD1, 0x57, +0x50, 0x79, 0x3, 0xE1, 0x92, 0xD3, 0xA0, 0xD4, 0x8B, 0xC8, 0xA2, 0x53, 0x8A, 0xF1, 0x1F, 0x27, +0x3F, 0xFC, 0x80, 0x2C, 0xE3, 0x5, 0x2F, 0xB0, 0x4E, 0x6, 0x11, 0x8A, 0xB5, 0xB4, 0xB9, 0xF8, +0x14, 0xDC, 0x34, 0xB2, 0x19, 0x65, 0x1B, 0x96, 0x51, 0xA6, 0xF7, 0xB0, 0x90, 0x62, 0x1B, 0x64, +0x67, 0x7C, 0xFF, 0x5A, 0x7, 0xE5, 0xF7, 0x14, 0x1D, 0x4E, 0xC8, 0xE7, 0x1A, 0x52, 0xE8, 0xDA, +0x4E, 0x2E, 0xCB, 0x5F, 0xC7, 0xB4, 0xE9, 0xFE, 0x8C, 0xC1, 0xAA, 0x4E, 0x3, 0x6A, 0xE8, 0x13, +0xCC, 0x1B, 0xB1, 0x7A, 0x27, 0x3B, 0x16, 0xCC, 0x60, 0xC7, 0x9C, 0xCA, 0xF8, 0xE, 0xBE, 0x6C, +0xC7, 0x8F, 0x5D, 0xF8, 0xE0, 0xCB, 0x82, 0xD2, 0x52, 0x4B, 0xE9, 0x8C, 0x80, 0x54, 0xD7, 0x3D, +0x92, 0xF8, 0x2D, 0x93, 0x5C, 0xDC, 0xEF, 0x63, 0xD2, 0x2E, 0x20, 0xD, 0x2C, 0xAE, 0x73, 0x49, +0xE0, 0x52, 0x74, 0xF4, 0xDF, 0x5C, 0xA1, 0x1B, 0x5D, 0xDB, 0xF2, 0x43, 0x62, 0x23, 0x83, 0x27, +0xAC, 0x3B, 0xCE, 0xE8, 0x4A, 0x42, 0xAA, 0x39, 0x64, 0x51, 0x66, 0x14, 0x18, 0x6F, 0x73, 0x57, +0xAB, 0x9B, 0x38, 0xBD, 0x84, 0xBE, 0x6B, 0xBE, 0x6D, 0x77, 0xB9, 0xA3, 0xEE, 0x38, 0xF9, 0x5, +0x21, 0x2A, 0xE8, 0xB6, 0x36, 0xAF, 0x44, 0x7F, 0x65, 0xFD, 0x22, 0x58, 0x9B, 0x6F, 0x5B, 0x49, +0xBD, 0xFE, 0x58, 0x47, 0x47, 0x84, 0x45, 0x2C, 0xF4, 0xB0, 0xF7, 0x20, 0xB7, 0x2D, 0x32, 0xFE, +0x90, 0xE4, 0xF, 0x79, 0x3A, 0x3B, 0xFD, 0xAA, 0x3, 0x8E, 0xB1, 0x91, 0x52, 0xDA, 0xE2, 0xA, +0xAA, 0x7B, 0x1F, 0x74, 0xD8, 0xB8, 0x14, 0x90, 0x43, 0x7F, 0x14, 0x20, 0x16, 0x8E, 0xEC, 0x2C, +0xCA, 0x27, 0xB0, 0x3B, 0x58, 0xDE, 0xC2, 0x8E, 0xAE, 0x2B, 0x59, 0xE4, 0x56, 0xC1, 0x9B, 0x8A, +0x9B, 0x20, 0xCA, 0x8C, 0xA3, 0xEC, 0x6, 0x1, 0xEE, 0xC3, 0x13, 0xBA, 0xAF, 0x8E, 0xB5, 0x85, +0x82, 0x8D, 0xFD, 0x43, 0x45, 0xEB, 0xD5, 0xEA, 0x96, 0x26, 0x2D, 0xBF, 0xB8, 0x57, 0xEA, 0x8C, +0x9B, 0xA5, 0x4A, 0x13, 0x17, 0x48, 0xF6, 0x4, 0x49, 0x54, 0x64, 0x39, 0x11, 0x46, 0x7, 0x28, +0x42, 0xB, 0xD5, 0x2B, 0x78, 0x88, 0x44, 0x12, 0x87, 0xC3, 0x2C, 0x4D, 0x6E, 0xF, 0xE9, 0xE9, +0x1, 0x48, 0x66, 0xE5, 0x32, 0x9E, 0x63, 0x61, 0x5, 0x2, 0x1C, 0x55, 0xA5, 0x25, 0xCA, 0x81, +0xE8, 0xF8, 0x58, 0x56, 0x0, 0x36, 0xA, 0x4E, 0xCC, 0xC6, 0xF9, 0xE5, 0x67, 0x71, 0x7E, 0xB9, +0x44, 0x92, 0xAA, 0x46, 0x7C, 0x7, 0x75, 0xAD, 0x11, 0xD5, 0xC2, 0x4F, 0x52, 0xD8, 0x88, 0x85, +0xFB, 0xDA, 0xB, 0x9B, 0xB0, 0x69, 0xC7, 0x4C, 0xB5, 0xDB, 0x72, 0xC4, 0x38, 0xC4, 0x9E, 0xAD, +0x40, 0xE5, 0x20, 0x7C, 0x65, 0x90, 0x8C, 0xBA, 0x66, 0x63, 0x1A, 0x74, 0x5F, 0xE6, 0x43, 0x8, +0xB, 0x99, 0xB0, 0xAE, 0xD1, 0xDF, 0x9B, 0x44, 0x3A, 0x67, 0x85, 0xFE, 0xFD, 0xE3, 0xCF, 0xAA, +0x3, 0x15, 0x65, 0x34, 0xF7, 0xDA, 0x6B, 0x29, 0x25, 0xB9, 0xF5, 0x5C, 0x68, 0xB7, 0x14, 0x2E, +0x97, 0x27, 0xCA, 0xB2, 0xF7, 0xD0, 0x23, 0xE3, 0xFA, 0x63, 0x12, 0xE7, 0xE6, 0x7, 0x5A, 0x66, +0x74, 0x37, 0x76, 0xB7, 0x3D, 0xE1, 0xE, 0xA7, 0x4F, 0xC0, 0x29, 0x2F, 0x4B, 0x15, 0x23, 0x7E, +0x55, 0x1F, 0x8C, 0xB5, 0x83, 0xFD, 0xD6, 0xCC, 0x5, 0xB9, 0xE5, 0x9E, 0xC0, 0x90, 0x73, 0x71, +0xFE, 0x2B, 0xDD, 0x54, 0x97, 0x12, 0xF0, 0xAB, 0x31, 0xA9, 0x8B, 0x66, 0xBA, 0x44, 0xD9, 0x96, +0xF8, 0x7B, 0x3B, 0xAC, 0x97, 0xB9, 0xE3, 0x87, 0x76, 0x51, 0xF1, 0x17, 0x45, 0x7B, 0xFA, 0x2, +0xF3, 0x8C, 0x2F, 0x83, 0xAB, 0x98, 0xE, 0xA2, 0xF5, 0x13, 0xB1, 0x4C, 0xF4, 0x56, 0x29, 0x3C, +0x23, 0x24, 0x64, 0xDC, 0x78, 0x24, 0xDF, 0x97, 0x1, 0xFA, 0x72, 0x9, 0xF6, 0x4C, 0xF6, 0xAF, +0x3, 0x7E, 0xF9, 0x6E, 0x8, 0x8B, 0xFA, 0xB1, 0xA8, 0x46, 0x71, 0xA3, 0x2E, 0x65, 0xC8, 0xBC, +0x33, 0xED, 0xE5, 0x8D, 0xB0, 0x3B, 0xE2, 0x1A, 0x63, 0x3, 0xDC, 0xA3, 0xF6, 0x8, 0x23, 0xFB, +0xF4, 0x89, 0xDE, 0x1, 0x72, 0x64, 0xDE, 0x6F, 0xB5, 0x16, 0xEE, 0x65, 0x8A, 0xED, 0xB7, 0xB2, +0x85, 0x44, 0xC2, 0x58, 0x5B, 0xB6, 0x96, 0xDA, 0x81, 0xA5, 0xBF, 0xA0, 0xE1, 0x99, 0x31, 0x17, +0x84, 0xBF, 0x18, 0x77, 0x4E, 0xF9, 0x46, 0x2A, 0x5F, 0xC, 0x85, 0xF0, 0x93, 0x71, 0x95, 0xAF, +0x15, 0x6A, 0xDE, 0x3C, 0x52, 0x5F, 0x4D, 0x31, 0x6A, 0x0, 0x5C, 0x1E, 0x8A, 0x9, 0xF7, 0xD5, +0x5, 0x58, 0x74, 0x8F, 0x4F, 0xC6, 0x62, 0x94, 0xF7, 0xA4, 0x66, 0x31, 0xB9, 0x9A, 0x8F, 0x52, +0x4D, 0xB1, 0x6D, 0x12, 0x37, 0x67, 0x3D, 0xC8, 0xA9, 0xA6, 0xC0, 0x51, 0xC6, 0xBB, 0xE8, 0x48, +0xB0, 0x78, 0x83, 0x30, 0xBF, 0xAD, 0x27, 0x5E, 0x85, 0xC0, 0x6, 0x81, 0x56, 0x98, 0x7D, 0x86, +0x1D, 0x1D, 0xFE, 0xB9, 0xD2, 0xB9, 0xFD, 0x1C, 0x4C, 0x8D, 0x8E, 0xCB, 0x2C, 0x35, 0xCD, 0xBE, +0xF9, 0x5B, 0xC, 0xA5, 0x5F, 0x1E, 0x37, 0x5E, 0xA7, 0x39, 0xE, 0x32, 0xF8, 0x93, 0x14, 0x29, +0x6C, 0x51, 0x7D, 0x6F, 0x6, 0x20, 0xD, 0xD8, 0xE6, 0xD8, 0xB5, 0x25, 0x5A, 0x4D, 0xE7, 0x3B, +0x8F, 0xE0, 0x24, 0xB6, 0x76, 0x3A, 0x93, 0x56, 0xE6, 0x5, 0x7F, 0x9D, 0x68, 0x1E, 0x2D, 0x56, +0x38, 0x8F, 0xDF, 0x77, 0x29, 0x37, 0xC0, 0xC9, 0xD2, 0x48, 0xDC, 0xEF, 0x35, 0xF9, 0x2C, 0x1A, +0xA6, 0x53, 0xA3, 0x34, 0xB3, 0xF5, 0x9E, 0x15, 0x91, 0xD0, 0x50, 0x97, 0xC9, 0x20, 0x47, 0x14, +0xA0, 0xD1, 0xFB, 0x87, 0x84, 0xAD, 0xD3, 0x7E, 0xC8, 0xE1, 0x65, 0xB, 0x7, 0xC6, 0xAE, 0x6F, +0x44, 0x77, 0x60, 0xF8, 0x4A, 0xD5, 0xF, 0x98, 0x6B, 0x94, 0x88, 0x1A, 0x1, 0x11, 0x21, 0x3D, +0x90, 0x84, 0x3B, 0x87, 0xEF, 0x72, 0x48, 0x2B, 0x3D, 0xB6, 0x5B, 0xF1, 0x40, 0x93, 0xDB, 0x9F, +0x65, 0x37, 0x9A, 0x77, 0x74, 0x8F, 0x29, 0xFC, 0x8D, 0x4C, 0xCB, 0x1, 0xB, 0x7F, 0x97, 0x7F, +0x73, 0xF5, 0x3B, 0x17, 0xBF, 0x95, 0xE2, 0xA1, 0xF, 0xED, 0xBA, 0x9F, 0x54, 0x28, 0xBD, 0x44, +0x48, 0x8, 0xA, 0x50, 0xB3, 0x8A, 0x70, 0xBC, 0xA0, 0x9C, 0x9, 0xF9, 0x36, 0xCD, 0x14, 0x2, +0x14, 0x85, 0x7F, 0x74, 0xE4, 0x41, 0xE7, 0x1F, 0x23, 0xF5, 0xF2, 0x35, 0x21, 0x7B, 0x1A, 0x4A, +0x8C, 0x5B, 0xA7, 0x96, 0xA8, 0x8F, 0x7D, 0xAC, 0x35, 0xB4, 0x4F, 0xE5, 0xCC, 0x97, 0x71, 0xE8, +0x5C, 0x53, 0xBD, 0x72, 0x46, 0x23, 0x46, 0x8E, 0xF1, 0x47, 0x26, 0x28, 0x1F, 0xB7, 0x73, 0x96, +0xCE, 0x5B, 0x3B, 0x8C, 0x3, 0x20, 0x99, 0xE9, 0x9C, 0xB6, 0xBB, 0x4C, 0x4E, 0xAC, 0x1C, 0xE7, +0x97, 0xCE, 0x41, 0x45, 0x5E, 0xD3, 0x1A, 0x53, 0xB4, 0x74, 0xF, 0x29, 0xB2, 0xA3, 0xD3, 0x56, +0x7, 0xEF, 0x80, 0xAA, 0xD2, 0x88, 0xD8, 0xA6, 0x8B, 0x91, 0xBA, 0x99, 0x26, 0x20, 0x4C, 0x96, +0x89, 0x6, 0x93, 0x10, 0xD1, 0xE0, 0x39, 0x9C, 0x5A, 0x65, 0x30, 0x22, 0xA4, 0x7C, 0xF4, 0xF6, +0x16, 0x3A, 0x13, 0x24, 0xA1, 0xB1, 0xA4, 0x9D, 0x28, 0xC0, 0xCE, 0x30, 0xFE, 0x2C, 0x4E, 0xC1, +0xBA, 0x69, 0xA0, 0x57, 0xED, 0x99, 0x24, 0xA8, 0x3E, 0x26, 0x11, 0xAA, 0x69, 0x1B, 0x32, 0xDE, +0x9, 0xD0, 0x16, 0x21, 0xE2, 0x1D, 0x81, 0xFD, 0x74, 0x8, 0x10, 0x4B, 0x7C, 0x44, 0x1F, 0x6B, +0x55, 0x44, 0x8B, 0x87, 0xC, 0x51, 0x52, 0xE, 0x12, 0x4, 0x80, 0x44, 0x67, 0x91, 0x30, 0xA3, +0x0, 0xA, 0x43, 0x9F, 0xC0, 0xD7, 0x20, 0x9, 0x6A, 0xF8, 0xA8, 0x73, 0xF4, 0xC0, 0x33, 0xB9, +0x1F, 0xAA, 0x5F, 0x1E, 0xD8, 0xA0, 0x19, 0x79, 0xC6, 0x2F, 0xF8, 0x2A, 0xBB, 0xE2, 0x5B, 0x93, +0x60, 0x72, 0xD0, 0xDB, 0xB5, 0x9F, 0x89, 0x8D, 0x14, 0x6C, 0xD7, 0xD9, 0x10, 0x4, 0xAD, 0xE5, +0x5D, 0x69, 0x2C, 0x61, 0x2A, 0x7A, 0x92, 0x35, 0x4A, 0x96, 0xA9, 0x50, 0xAF, 0x42, 0x85, 0x62, +0x8B, 0x4F, 0x2E, 0x5B, 0xD, 0x56, 0xD1, 0xA2, 0x93, 0x5D, 0xEE, 0x3A, 0xE, 0xA7, 0xB2, 0x8B, +0xE1, 0x7B, 0x65, 0x99, 0x3E, 0x9A, 0x9B, 0x77, 0xEA, 0xB9, 0xA, 0x6E, 0x3E, 0xEB, 0xCC, 0x4C, +0x5F, 0x7C, 0x85, 0x11, 0xFA, 0xA2, 0x29, 0x92, 0x22, 0x80, 0x20, 0x26, 0xA2, 0x82, 0x23, 0xC3, +0x98, 0x9A, 0x1F, 0x1A, 0xEF, 0x73, 0x6C, 0xDE, 0xF7, 0x52, 0x8A, 0xE, 0x57, 0x20, 0xDF, 0x8A, +0xC6, 0xA3, 0xB, 0x62, 0x92, 0x42, 0xB5, 0x37, 0xFE, 0x2C, 0xFC, 0x82, 0x27, 0x33, 0x21, 0x4A, +0x17, 0x81, 0xEB, 0xB1, 0x98, 0x80, 0xE7, 0x5C, 0x5E, 0x7E, 0xD4, 0xEC, 0x3E, 0xC7, 0x67, 0x5B, +0xBF, 0x21, 0xAC, 0xF9, 0x46, 0x63, 0x74, 0x11, 0x48, 0x33, 0x54, 0xD4, 0xB1, 0x47, 0x53, 0x49, +0x84, 0x43, 0x43, 0xB3, 0xE4, 0xA, 0x4E, 0x82, 0x51, 0x29, 0x7C, 0x3B, 0x62, 0xD4, 0xAB, 0x2F, +0xE5, 0xB1, 0xB5, 0xFC, 0xB5, 0xB8, 0xD1, 0xF9, 0x78, 0x33, 0x4C, 0x5B, 0xD9, 0xF4, 0x13, 0xEE, +0x89, 0xE8, 0xF4, 0x33, 0xE1, 0xCB, 0xB8, 0xB2, 0xD0, 0xBF, 0x19, 0xED, 0xBF, 0x1B, 0xED, 0xBF, +0x37, 0xED, 0xB5, 0x58, 0x75, 0x18, 0xA5, 0x75, 0xE, 0x85, 0x40, 0x80, 0xE0, 0xA8, 0xC3, 0xA6, +0x6E, 0xA4, 0x61, 0xE8, 0x48, 0x11, 0x70, 0x6D, 0x41, 0xEC, 0x59, 0x47, 0xAD, 0x9, 0xF7, 0x4D, +0x4B, 0xB8, 0x6C, 0xCC, 0xED, 0xD0, 0x37, 0x37, 0xE1, 0xC7, 0x31, 0xC1, 0x43, 0xDF, 0x4, 0x77, +0x65, 0x48, 0xB3, 0xB2, 0xF2, 0x75, 0x12, 0x24, 0xD, 0xE3, 0x6C, 0x3E, 0x47, 0x2C, 0xF0, 0x33, +0x1A, 0xE, 0x31, 0x9A, 0x48, 0x57, 0xE5, 0x37, 0x43, 0x5F, 0xA7, 0x84, 0xCF, 0x2B, 0xBB, 0xD7, +0x2B, 0x6A, 0x41, 0xB7, 0xDF, 0xEC, 0x6E, 0x2E, 0x3F, 0x14, 0x8F, 0x2D, 0xED, 0xAF, 0xB9, 0xDC, +0x6D, 0xB2, 0x36, 0xAD, 0x4F, 0x77, 0xCF, 0xCE, 0x25, 0xAA, 0x25, 0xD5, 0x23, 0xA6, 0xF2, 0xC1, +0xF6, 0xEB, 0xF6, 0x67, 0x89, 0x63, 0xCB, 0xB4, 0x6F, 0x29, 0x90, 0xD2, 0x81, 0x74, 0x88, 0x64, +0xB1, 0xE3, 0xE4, 0x9A, 0x55, 0xD7, 0xE7, 0xBE, 0x80, 0x46, 0xC9, 0xE, 0x89, 0x29, 0x3D, 0x83, +0x61, 0x79, 0x4A, 0xA7, 0x44, 0xD0, 0xE3, 0x73, 0x31, 0xD1, 0x77, 0xB0, 0xD9, 0xA8, 0x73, 0x13, +0x32, 0xD2, 0x2D, 0x42, 0xF5, 0x19, 0xB4, 0xC4, 0xF6, 0xFB, 0x6, 0x6C, 0x24, 0xA6, 0x2E, 0x32, +0x6F, 0xD8, 0xD8, 0x11, 0x90, 0x59, 0x64, 0xEB, 0xE7, 0x3B, 0x91, 0xEE, 0xF, 0x2D, 0xAD, 0x9, +0x6C, 0xC2, 0xEB, 0x9B, 0xC4, 0x97, 0x2E, 0x3D, 0x51, 0x42, 0x78, 0x47, 0x4D, 0xE9, 0x16, 0x9D, +0x8D, 0xBA, 0xE2, 0x48, 0xCF, 0xF6, 0xDB, 0x11, 0xBA, 0xC4, 0x51, 0xD3, 0x4B, 0xF7, 0xDC, 0xE8, +0x78, 0x2F, 0xC9, 0xB2, 0xCB, 0x75, 0x8E, 0xEC, 0x35, 0x8F, 0xC4, 0x2B, 0x5A, 0xFF, 0xA9, 0x2E, +0x5E, 0xD9, 0xAF, 0x8D, 0xEF, 0xAC, 0x64, 0xA0, 0xE7, 0x75, 0x5D, 0xB3, 0xF1, 0x46, 0xF9, 0xCE, +0x3, 0xF1, 0xEC, 0xA1, 0x8E, 0xF, 0xAC, 0x57, 0xCD, 0x77, 0xBF, 0x16, 0xB0, 0x5C, 0x38, 0x1D, +0xC4, 0x4B, 0xE8, 0xBB, 0x6F, 0x31, 0xC4, 0xE, 0x39, 0xBC, 0x17, 0x9C, 0xBB, 0xE0, 0xE2, 0xB5, +0xF5, 0x9D, 0xE0, 0xF9, 0x95, 0x3, 0x2E, 0xDE, 0x67, 0xDF, 0x5D, 0xE7, 0xD1, 0xC2, 0xDE, 0xB, +0x9E, 0xBB, 0xE0, 0xE2, 0xD, 0xF8, 0x9D, 0xE0, 0x94, 0x15, 0xA9, 0x13, 0x88, 0xD6, 0x3D, 0x2A, +0xB5, 0x49, 0x3D, 0x7C, 0x7C, 0x4F, 0x45, 0x17, 0x48, 0xDA, 0x53, 0xC2, 0x8C, 0xE2, 0xA6, 0xC, +0x55, 0x31, 0xFF, 0xF }; //***************************************************************************************************** const char ESPFMfGKWpcssDeflate[] = { - 0xCD, 0x19, 0xC9, 0x6E, 0xDB, 0x38, 0xF4, 0x9E, 0xAF, 0x20, 0x12, 0x14, 0x9D, 0x29, 0x62, 0x57, -0x8B, 0xED, 0x24, 0x36, 0x30, 0x40, 0x56, 0xA0, 0xE7, 0xD9, 0xCE, 0xB4, 0x44, 0x39, 0x9C, 0x91, -0x45, 0x41, 0xA2, 0xE2, 0xB4, 0x41, 0xFF, 0xBD, 0x8F, 0x9B, 0x36, 0x92, 0x8A, 0xDD, 0xB9, 0x4C, -0xC, 0xD8, 0x12, 0xF9, 0xF8, 0xF6, 0x8D, 0x2F, 0xF3, 0x2D, 0x4E, 0xFE, 0xDD, 0x55, 0xAC, 0x29, -0x52, 0xF4, 0x76, 0x86, 0x50, 0xF7, 0x3A, 0x4B, 0x58, 0xCE, 0xAA, 0x35, 0xDA, 0xE6, 0xB0, 0xB4, -0x39, 0xFB, 0x7E, 0x76, 0x96, 0xD2, 0x17, 0x9, 0xB3, 0xC7, 0xD5, 0x8E, 0x16, 0x6B, 0x14, 0x96, -0xAF, 0x1B, 0x78, 0x2D, 0x71, 0x9A, 0xD2, 0x62, 0xB7, 0x46, 0x81, 0x78, 0xCB, 0x58, 0xC1, 0x67, -0x19, 0xDE, 0xD3, 0xFC, 0xEB, 0x1A, 0x7D, 0xFC, 0x9D, 0xEC, 0x18, 0x41, 0x7F, 0x7E, 0xF9, 0x78, -0x89, 0xFE, 0x22, 0x55, 0x8A, 0xB, 0x7C, 0x89, 0x6A, 0x5C, 0xD4, 0xB3, 0x9A, 0x54, 0x34, 0x93, -0x58, 0x2F, 0x76, 0x89, 0xC4, 0x9A, 0xD2, 0xBA, 0xCC, 0x31, 0x1C, 0xDA, 0x55, 0x34, 0x15, 0x98, -0xC4, 0xEF, 0x8C, 0x93, 0x3D, 0xAC, 0x72, 0x22, 0xB8, 0x69, 0xF6, 0x45, 0xBD, 0x46, 0xD7, 0x41, -0xF9, 0x8A, 0xA2, 0xE5, 0x7, 0x84, 0x1B, 0xCE, 0x50, 0xC, 0x6F, 0x36, 0x70, 0xC5, 0xE, 0x0, -0x19, 0x2D, 0x1, 0x52, 0x0, 0x74, 0xA0, 0x28, 0x72, 0xC2, 0xE3, 0x8A, 0x60, 0x38, 0x70, 0xCE, -0x42, 0xC4, 0x22, 0xC4, 0x62, 0xC4, 0x16, 0xE7, 0xE7, 0xFB, 0x10, 0x25, 0xE2, 0x3, 0x4F, 0x51, -0xFB, 0x14, 0x9B, 0xA7, 0x26, 0x44, 0x4D, 0x84, 0x9A, 0x18, 0x35, 0x8B, 0x73, 0x25, 0xC7, 0x1, -0x53, 0x2E, 0x25, 0x29, 0x59, 0x4D, 0x39, 0x65, 0xA0, 0xA1, 0x8A, 0x0, 0x7A, 0xFA, 0x42, 0x4, -0x45, 0xCE, 0x4A, 0x50, 0x99, 0x26, 0x9F, 0x93, 0x8C, 0xC3, 0xDB, 0x52, 0xBD, 0xBD, 0xD0, 0x9A, -0x6E, 0x69, 0x4E, 0x39, 0x48, 0xF, 0x72, 0xE6, 0xB8, 0xAC, 0x89, 0xC2, 0x99, 0x80, 0xBE, 0x2E, -0xB8, 0xFC, 0xA2, 0xF0, 0x55, 0x8A, 0xAF, 0x8C, 0xE, 0xAC, 0x10, 0x8C, 0x6D, 0xA0, 0xCE, 0xA1, -0x37, 0xF1, 0xCB, 0x15, 0x6C, 0x96, 0x33, 0xC, 0xF4, 0x4, 0x55, 0xB5, 0x2F, 0x70, 0x88, 0x5F, -0x22, 0xB1, 0xBE, 0xC, 0xD, 0x50, 0xB0, 0x42, 0x91, 0x9F, 0x83, 0x3E, 0xDE, 0x8C, 0xB2, 0x84, -0x8E, 0xD6, 0x88, 0x85, 0x1B, 0xA7, 0x97, 0x5C, 0xDC, 0xC0, 0xDF, 0xFD, 0xBD, 0xDC, 0x64, 0x55, -0x4A, 0xAA, 0x19, 0xC8, 0x3B, 0x13, 0x4, 0x67, 0x15, 0x4E, 0x69, 0x23, 0xCC, 0xA1, 0x65, 0x57, -0x8C, 0xCF, 0xB6, 0x8C, 0x73, 0xB6, 0x7, 0x8E, 0xC5, 0xAA, 0x24, 0x16, 0x59, 0xC4, 0xA2, 0x9, -0x62, 0x4F, 0x4F, 0x3E, 0x64, 0x8, 0x1D, 0x9E, 0x29, 0x58, 0xB5, 0x2E, 0x71, 0x42, 0x84, 0x38, -0x87, 0xA, 0x97, 0x1B, 0xCB, 0xC5, 0x50, 0x4B, 0xC, 0xBC, 0x43, 0xBB, 0x4C, 0x98, 0x55, 0xDD, -0xBA, 0xED, 0x7B, 0xB0, 0xAD, 0xC4, 0x90, 0x30, 0x18, 0xC, 0x2A, 0x7C, 0x4A, 0x2D, 0x8, 0x75, -0xB2, 0x88, 0x2A, 0x21, 0x1C, 0x3C, 0xDF, 0xDD, 0xDD, 0x45, 0x7D, 0x9E, 0x1D, 0x96, 0x43, 0x28, -0x69, 0xAA, 0x5A, 0x40, 0xA7, 0x24, 0xC3, 0x4D, 0xCE, 0xE5, 0x92, 0x3A, 0x2F, 0x45, 0xDA, 0xB4, -0x54, 0xD6, 0xCF, 0xEC, 0x85, 0x54, 0x3E, 0x5A, 0xF, 0xF1, 0x6A, 0xB5, 0xBA, 0xE9, 0x9D, 0xEE, -0x82, 0x58, 0xA8, 0xB9, 0x26, 0x39, 0x49, 0x94, 0xAF, 0x2A, 0x63, 0xB5, 0x8A, 0x1B, 0x12, 0xD3, -0xD1, 0x7C, 0x20, 0x74, 0xF7, 0xC, 0xEE, 0xB3, 0x65, 0xB9, 0xC, 0x4C, 0x9B, 0x20, 0xAF, 0x20, -0xA6, 0x4B, 0x30, 0x5A, 0xC1, 0x5B, 0x22, 0xAC, 0x14, 0x31, 0x30, 0x41, 0x44, 0xF3, 0xE4, 0xC2, -0xD7, 0x9, 0x2B, 0x30, 0xE5, 0x78, 0x4B, 0x72, 0x89, 0xC8, 0xB1, 0x1D, 0x5B, 0x4E, 0x13, 0x7B, -0x9C, 0xE6, 0xFE, 0xDE, 0x78, 0xE8, 0x9, 0x4E, 0x23, 0x69, 0x2C, 0x2C, 0x1A, 0xB, 0x2F, 0xD, -0xD0, 0xFB, 0x4D, 0x2F, 0xA, 0x8C, 0xF3, 0x7, 0x32, 0xF4, 0xD5, 0x57, 0x30, 0x15, 0x5, 0x90, -0x75, 0x46, 0xC4, 0xF6, 0x61, 0xF, 0x5E, 0x66, 0x11, 0xCD, 0xF0, 0x64, 0x14, 0x1E, 0x9B, 0x4E, -0x57, 0xFE, 0xAC, 0xA8, 0xB3, 0xE8, 0x64, 0xC6, 0xAC, 0xC3, 0x10, 0xD5, 0x61, 0xA4, 0x52, 0xE0, -0x1C, 0x9E, 0x86, 0xB9, 0xE9, 0x5D, 0x46, 0xD5, 0xA9, 0xD8, 0x79, 0xEA, 0x9D, 0x3C, 0xF2, 0xAC, -0xDD, 0x32, 0xEE, 0x74, 0xA7, 0xA8, 0xB7, 0xA2, 0x67, 0x39, 0x91, 0x90, 0xFF, 0x34, 0x35, 0xA7, -0xD9, 0x57, 0x20, 0x5E, 0x70, 0x70, 0x51, 0x48, 0xB2, 0xF0, 0x4D, 0x2A, 0xB1, 0x85, 0x73, 0xBA, -0x2B, 0x66, 0x60, 0xF8, 0x7D, 0xDD, 0x5F, 0xEE, 0xAB, 0x3F, 0x7A, 0xD7, 0xD6, 0x7, 0x9A, 0xF2, -0x67, 0xA5, 0x4A, 0xCD, 0x88, 0xE5, 0x95, 0xFB, 0xD8, 0xEF, 0x78, 0xFF, 0xB, 0x3B, 0xC6, 0x60, -0xC7, 0xB8, 0xB5, 0x63, 0xFC, 0x53, 0x76, 0x8C, 0xA7, 0xEC, 0xA8, 0x84, 0x3E, 0xD6, 0x94, 0x50, -0x5E, 0x47, 0x1A, 0x6C, 0x8E, 0xAE, 0x3C, 0x53, 0x94, 0xAC, 0x30, 0x92, 0xC4, 0xAC, 0xCA, 0xD3, -0x44, 0xFD, 0x6C, 0x5C, 0x32, 0x6A, 0x1C, 0xC3, 0xE3, 0x7, 0xAB, 0x95, 0x27, 0x46, 0x75, 0x7A, -0x97, 0xCC, 0x74, 0xE5, 0x1F, 0x52, 0x37, 0xA7, 0x9, 0xCE, 0x67, 0xD2, 0xFD, 0xC0, 0x3B, 0x68, -0x9A, 0xE6, 0x5D, 0xC2, 0xAD, 0xE9, 0x37, 0x48, 0x41, 0xD7, 0xC1, 0x7, 0xC3, 0xDE, 0x74, 0xB6, -0xEF, 0xAA, 0xA1, 0x9D, 0x1F, 0xA1, 0x41, 0x19, 0x8B, 0x16, 0xFB, 0xF9, 0x72, 0x20, 0x7F, 0x7A, -0xBA, 0xB9, 0x51, 0xD2, 0x8D, 0x59, 0xF3, 0x29, 0xD3, 0xCA, 0x96, 0xCD, 0x62, 0x2, 0x77, 0x10, -0x9C, 0x90, 0x2D, 0x87, 0x94, 0x92, 0x31, 0xA1, 0xA4, 0x6D, 0x6E, 0xB6, 0xD, 0xB8, 0x80, 0x2E, -0x3E, 0x16, 0xDD, 0x3F, 0xFA, 0xD5, 0xAA, 0xAB, 0x4E, 0xD0, 0xCE, 0xA2, 0x9A, 0xE5, 0x34, 0xED, -0x6B, 0x74, 0xC4, 0x98, 0xD5, 0xF2, 0xEA, 0xD2, 0xA1, 0x12, 0x80, 0x69, 0x46, 0x2D, 0xBF, 0x19, -0x70, 0xF5, 0xF3, 0xC6, 0x84, 0x4E, 0xD9, 0xF4, 0xE0, 0x2D, 0x7, 0x61, 0xAB, 0x8D, 0x4, 0xCD, -0x9B, 0xC4, 0x83, 0x76, 0x57, 0x11, 0x52, 0x6C, 0xDC, 0x4D, 0x5E, 0x92, 0xEC, 0x2E, 0x51, 0x92, -0x34, 0xF2, 0xA8, 0x89, 0xC4, 0x70, 0xBE, 0x24, 0xFB, 0x76, 0xDF, 0xC7, 0xEC, 0xED, 0xF2, 0x76, -0x29, 0x98, 0x55, 0x60, 0xA, 0x83, 0xCB, 0xCE, 0x8F, 0x37, 0xB7, 0xC2, 0xCE, 0xA, 0x4C, 0x95, -0xF2, 0x91, 0x62, 0x45, 0xAB, 0x1E, 0xC0, 0x67, 0xE9, 0xD7, 0xA0, 0x38, 0xDA, 0xD7, 0xDD, 0x34, -0x82, 0x51, 0x23, 0xE3, 0x41, 0xE8, 0x44, 0x25, 0x91, 0x28, 0x84, 0x6, 0x4E, 0x35, 0x4B, 0x9C, -0xBC, 0x72, 0x13, 0xB2, 0x95, 0xD0, 0x53, 0x6B, 0x96, 0x53, 0x2E, 0x30, 0x15, 0x29, 0x9, 0xE6, -0xBF, 0xC4, 0x97, 0xE0, 0xD5, 0xAF, 0xA6, 0x26, 0xFD, 0xAA, 0x50, 0x65, 0x5, 0x49, 0x14, 0x36, -0xED, 0x52, 0x7B, 0xF0, 0x7A, 0xD, 0x32, 0x68, 0x1D, 0x47, 0x9E, 0xA8, 0x22, 0x23, 0x52, 0x6B, -0x6E, 0x46, 0x46, 0x5D, 0xEE, 0x74, 0x93, 0x6B, 0x20, 0xFA, 0x2D, 0xAE, 0x61, 0x50, 0x8B, 0x3B, -0xE8, 0x62, 0x4F, 0x94, 0x3D, 0xF4, 0xC8, 0x3E, 0xBE, 0x5E, 0x4A, 0xDA, 0x20, 0x95, 0xBF, 0x0, -0xF5, 0xA2, 0x43, 0xB1, 0xE6, 0xF, 0x10, 0xD8, 0xAF, 0x87, 0x5B, 0x81, 0x31, 0xB3, 0xFA, 0xF5, -0xA5, 0x7C, 0xCB, 0xD1, 0x3A, 0x7C, 0x7D, 0x5F, 0x1E, 0x64, 0x90, 0xC7, 0x87, 0xFB, 0x38, 0x5C, -0x7A, 0xF2, 0x5E, 0xB7, 0x69, 0xB7, 0xE7, 0x12, 0xAB, 0xE5, 0xE6, 0xFF, 0x1, 0xF7, 0x50, 0x43, -0x35, 0xF6, 0x61, 0x7D, 0xBA, 0x7E, 0xBA, 0x7B, 0xB8, 0xF3, 0x65, 0xEA, 0x76, 0xD3, 0xAC, 0x74, -0x68, 0x3F, 0x7F, 0x92, 0x27, 0x4C, 0xCE, 0xFD, 0xF4, 0x59, 0x12, 0xDA, 0x6A, 0x42, 0x53, 0x1C, -0x1A, 0x2E, 0x62, 0xA7, 0x6C, 0x43, 0xB5, 0x2F, 0xEC, 0xCC, 0x3B, 0xB6, 0xDD, 0xC0, 0x23, 0x7B, -0xD5, 0x2A, 0x98, 0x5F, 0x89, 0x5C, 0xE6, 0x49, 0x2, 0x92, 0xD7, 0x9E, 0xC2, 0xC7, 0x99, 0x63, -0x32, 0x47, 0x3B, 0x24, 0xF0, 0xD6, 0xE, 0x29, 0x81, 0xD0, 0xD7, 0x67, 0xF4, 0x98, 0x52, 0xCE, -0xAA, 0x2F, 0x5, 0x4C, 0x41, 0xB8, 0xB8, 0x84, 0xF7, 0xEB, 0x95, 0xEB, 0x1A, 0x82, 0xDE, 0xB3, -0x8A, 0x83, 0x8F, 0xF1, 0xA6, 0x57, 0x93, 0x72, 0x4A, 0xA2, 0xB5, 0x9, 0xBF, 0xAE, 0x3E, 0xD5, -0x28, 0xD0, 0x79, 0x1D, 0x74, 0x56, 0x3B, 0x72, 0x6A, 0xB5, 0x73, 0x33, 0x39, 0x29, 0x97, 0xE5, -0xE0, 0xC2, 0x15, 0xCB, 0xC, 0xA7, 0x88, 0x8B, 0x1B, 0x63, 0x4E, 0x84, 0x2F, 0x5E, 0x94, 0x2A, -0x46, 0xDB, 0xC, 0x45, 0x8B, 0x9C, 0x16, 0x64, 0x36, 0x1C, 0x1, 0xD8, 0x99, 0x4A, 0x8E, 0x8C, -0x44, 0xD7, 0x88, 0x16, 0xB2, 0x15, 0x81, 0xA4, 0x28, 0x1F, 0xE4, 0x92, 0xD8, 0x74, 0x1C, 0x56, -0xD9, 0x55, 0x9E, 0xEC, 0x20, 0xEC, 0x29, 0x1, 0x70, 0x34, 0x1E, 0xA5, 0x39, 0x87, 0x38, 0x0, -0x37, 0x2F, 0x75, 0x23, 0xAC, 0xCB, 0x41, 0xA8, 0xEC, 0x60, 0x15, 0x2C, 0xF1, 0x31, 0x7B, 0x53, -0x3D, 0x5C, 0x5B, 0xDE, 0x3, 0xDD, 0x5C, 0x6A, 0x22, 0x57, 0xC7, 0x11, 0x81, 0x1D, 0xC5, 0xEA, -0xCF, 0x10, 0x61, 0x91, 0x98, 0x35, 0xC9, 0xA7, 0x95, 0xB7, 0x53, 0xD0, 0x48, 0xBE, 0xB7, 0x67, -0x5A, 0x55, 0x1D, 0xA1, 0x81, 0xD6, 0x4F, 0xBD, 0x75, 0x62, 0xCC, 0x5C, 0x87, 0x76, 0xC4, 0xEB, -0xEA, 0x4, 0xBA, 0x82, 0xAA, 0x4F, 0x2D, 0xA7, 0xD2, 0x85, 0xCA, 0xA8, 0x9F, 0xAE, 0xCC, 0x53, -0xD3, 0xEA, 0xAD, 0x59, 0xA1, 0x63, 0x15, 0xD7, 0x40, 0x7B, 0xA1, 0x9F, 0x96, 0xDE, 0x43, 0xE6, -0xE6, 0xD2, 0x1E, 0x5A, 0x4C, 0xE0, 0x17, 0xE3, 0x13, 0x77, 0x62, 0x6D, 0x8D, 0xA5, 0x8F, 0xF7, -0xDB, 0xA4, 0xEE, 0x4A, 0xDD, 0x75, 0x96, 0xFA, 0x50, 0x77, 0xEA, 0xB7, 0x51, 0x3C, 0xE8, 0x3E, -0x7F, 0x2E, 0x75, 0xAE, 0x2A, 0xCC, 0xDF, 0xB4, 0x48, 0x21, 0xBA, 0x64, 0x75, 0x39, 0xA8, 0x67, -0xFE, 0x15, 0x22, 0x5C, 0x1C, 0x1A, 0x85, 0xD1, 0x78, 0xA6, 0xD6, 0x1F, 0xC8, 0xE2, 0x2D, 0x64, -0x91, 0x46, 0x59, 0x4, 0xA1, 0x6F, 0x33, 0xC0, 0x44, 0x5E, 0xD7, 0x48, 0xA, 0x76, 0xD4, 0x60, -0x4B, 0xD1, 0xD6, 0x8D, 0x8B, 0xA6, 0x2E, 0x12, 0x1C, 0x4C, 0x58, 0xF, 0xEB, 0x3A, 0xA9, 0x60, -0x7A, 0xBB, 0x19, 0x2C, 0xCE, 0x5E, 0xD7, 0xCF, 0x70, 0xBB, 0x53, 0xDD, 0xB7, 0x6F, 0x36, 0xFC, -0xAE, 0x4, 0xE, 0x8B, 0x64, 0xA1, 0xF8, 0xE8, 0x6D, 0xE5, 0x95, 0xEA, 0x32, 0x17, 0x75, 0xB9, -0xF2, 0xE1, 0xFA, 0x76, 0x79, 0x15, 0xF4, 0x39, 0xE7, 0x94, 0xB7, 0x5A, 0xB3, 0xC7, 0xA1, 0x16, -0x1F, 0xBE, 0xF9, 0xE8, 0xF4, 0x84, 0xD4, 0x4C, 0x22, 0x34, 0xE4, 0x28, 0x3, 0x8A, 0xB5, 0x33, -0x34, 0x64, 0x68, 0xAE, 0xAE, 0x18, 0x93, 0x11, 0xD4, 0x32, 0xE7, 0x10, 0x68, 0x6E, 0x6C, 0x61, -0xFA, 0x61, 0xD9, 0x9E, 0x77, 0x17, 0x5B, 0xDF, 0x85, 0xB7, 0x8F, 0x53, 0xBC, 0x99, 0x5A, 0xB6, -0x7, 0xF3, 0x8D, 0x7C, 0x24, 0x94, 0x23, 0x1, 0xF7, 0xB8, 0x55, 0xAB, 0xB9, 0x67, 0xA, 0x6B, -0x6A, 0xD5, 0x51, 0x6C, 0xD, 0x98, 0x65, 0x3, 0x9F, 0xCA, 0x59, 0x6D, 0x2C, 0xE3, 0x18, 0x3, -0xDB, 0x3E, 0x31, 0x32, 0xD5, 0x20, 0x2E, 0x75, 0xB6, 0x1A, 0xB0, 0x23, 0x55, 0xE2, 0xE0, 0x67, -0x38, 0x35, 0xF1, 0x42, 0x39, 0x26, 0xDA, 0xAB, 0xAB, 0xFB, 0x87, 0x81, 0x31, 0xA4, 0xC, 0xBD, -0x8A, 0xEF, 0xAE, 0xF9, 0x4B, 0x28, 0xF9, 0x8F, 0xAA, 0x60, 0xEB, 0x73, 0xE0, 0x4C, 0xA5, 0x3E, -0x60, 0xE9, 0xFB, 0x9D, 0xC8, 0xD0, 0xFF, 0xDA, 0xD0, 0xD7, 0xB1, 0xA9, 0x68, 0x6F, 0xBB, 0x19, -0xF5, 0x6A, 0x79, 0xC8, 0x30, 0xD1, 0x77, 0x46, 0x28, 0xE, 0x35, 0x94, 0x76, 0x22, 0x54, 0x2B, -0x99, 0xFE, 0x1 }; + 0xCD, 0x19, 0xC9, 0x6E, 0xE3, 0x36, 0xF4, 0x9E, 0xAF, 0x20, 0x12, 0xC, 0xA6, 0x1D, 0x44, 0x1E, +0x2D, 0xB6, 0x93, 0xD8, 0x40, 0x81, 0xAC, 0xC0, 0x9C, 0xBB, 0x9D, 0x65, 0x89, 0x72, 0xD8, 0xCA, +0xA2, 0x20, 0x51, 0x71, 0xA6, 0x83, 0xF9, 0xF7, 0x3E, 0xAE, 0x5A, 0x48, 0x2A, 0xCE, 0xF4, 0xD2, +0x18, 0x90, 0x28, 0x2E, 0x6F, 0xDF, 0xF8, 0xB2, 0xD8, 0xA5, 0xD9, 0xDF, 0xFB, 0x86, 0x76, 0x55, +0x8E, 0xBE, 0x9D, 0x21, 0xD4, 0x7F, 0x6, 0x19, 0x2D, 0x69, 0xB3, 0x41, 0xBB, 0x12, 0xA6, 0xB6, +0x67, 0xDF, 0xCF, 0xCE, 0x72, 0xF2, 0x22, 0xF6, 0x1C, 0xD2, 0x66, 0x4F, 0xAA, 0xD, 0x8A, 0xEA, +0xD7, 0x2D, 0x7C, 0xD6, 0x69, 0x9E, 0x93, 0x6A, 0xBF, 0x41, 0x21, 0xFF, 0x2A, 0x68, 0xC5, 0x82, +0x22, 0x3D, 0x90, 0xF2, 0xEB, 0x6, 0x7D, 0xFC, 0x15, 0xEF, 0x29, 0x46, 0xBF, 0x7F, 0xF9, 0x78, +0x89, 0xFE, 0xC0, 0x4D, 0x9E, 0x56, 0xE9, 0x25, 0x6A, 0xD3, 0xAA, 0xD, 0x5A, 0xDC, 0x90, 0x42, +0x40, 0xBD, 0xD8, 0x67, 0x2, 0x6A, 0x4E, 0xDA, 0xBA, 0x4C, 0xE1, 0xD0, 0xBE, 0x21, 0x39, 0x87, +0xC4, 0xDF, 0x1, 0xC3, 0x7, 0x98, 0x65, 0x98, 0x53, 0xD3, 0x1D, 0xAA, 0x76, 0x83, 0xAE, 0xC3, +0xFA, 0x15, 0xC5, 0xAB, 0xF, 0x28, 0xED, 0x18, 0x45, 0x9, 0x7C, 0xD9, 0x9B, 0x1B, 0x7A, 0x84, +0x9D, 0xF1, 0xA, 0x76, 0xF2, 0xD, 0xFD, 0x56, 0x14, 0x3B, 0xF7, 0xA7, 0xD, 0x4E, 0xE1, 0xC0, +0x39, 0x8D, 0x10, 0x8D, 0x11, 0x4D, 0x10, 0x5D, 0x9E, 0x9F, 0x1F, 0x22, 0x94, 0xF1, 0x1F, 0x8C, +0x62, 0x33, 0x4A, 0xF4, 0xA8, 0x8B, 0x50, 0x17, 0xA3, 0x2E, 0x41, 0xDD, 0xF2, 0x5C, 0xF2, 0x71, +0x4C, 0x9, 0x13, 0x9C, 0xD4, 0xB4, 0x25, 0x8C, 0x50, 0x90, 0x50, 0x83, 0x1, 0x3C, 0x79, 0xC1, +0x1C, 0x23, 0xA3, 0x35, 0x88, 0x4C, 0xA1, 0x2F, 0x71, 0xC1, 0xE0, 0x6B, 0x25, 0xBF, 0x5E, 0x48, +0x4B, 0x76, 0xA4, 0x24, 0xC, 0xB8, 0x7, 0x3E, 0xCB, 0xB4, 0x6E, 0xB1, 0x84, 0x99, 0x81, 0xBC, +0x2E, 0x98, 0x78, 0x10, 0x78, 0xD4, 0xFC, 0x51, 0x90, 0x91, 0x16, 0xC2, 0xA9, 0xE, 0xE4, 0x39, +0xF4, 0x8D, 0xBF, 0x99, 0xDC, 0x5B, 0x94, 0x34, 0x5, 0x7C, 0x1C, 0xAB, 0x5C, 0xE7, 0x30, 0xF8, +0x1B, 0xB, 0xA8, 0x2F, 0x63, 0x5, 0x54, 0xB4, 0x92, 0xE8, 0x17, 0x20, 0x8F, 0x6F, 0x5A, 0x58, +0x5C, 0x46, 0x1B, 0x44, 0xA3, 0xAD, 0xD3, 0x4A, 0x2E, 0x6E, 0xE0, 0xEF, 0xFE, 0x5E, 0x2C, 0xD2, +0x26, 0xC7, 0x4D, 0x0, 0xFC, 0x6, 0x1C, 0x61, 0xD0, 0xA4, 0x39, 0xE9, 0xB8, 0x3A, 0x14, 0xEF, +0x92, 0xF0, 0x60, 0x47, 0x19, 0xA3, 0x7, 0xA0, 0x98, 0xCF, 0xA, 0x64, 0xB1, 0x85, 0x2C, 0x9E, +0x41, 0xF6, 0xF4, 0xE4, 0x3, 0x86, 0xD0, 0xF1, 0x99, 0x80, 0x56, 0xDB, 0x3A, 0xCD, 0x30, 0x67, +0xE7, 0xD8, 0xA4, 0xF5, 0xD6, 0x32, 0x31, 0x64, 0x90, 0x81, 0x75, 0x28, 0x93, 0x89, 0x8A, 0xA6, +0x9F, 0xB7, 0x6D, 0xF, 0x96, 0x25, 0x1B, 0x62, 0x4F, 0xA, 0xA, 0xE5, 0x36, 0x25, 0x27, 0xB8, +0x38, 0x69, 0x4C, 0x24, 0x13, 0xE, 0x9A, 0xEF, 0xEE, 0xEE, 0xE2, 0x21, 0xCD, 0xE, 0xCD, 0x21, +0x94, 0x75, 0x4D, 0xCB, 0x77, 0xE7, 0xB8, 0x48, 0xBB, 0x92, 0x89, 0x29, 0x79, 0x5E, 0xB0, 0xB4, +0x35, 0x58, 0x36, 0xCF, 0xF4, 0x5, 0x37, 0x3E, 0x5C, 0xF, 0xC9, 0x7A, 0xBD, 0xBE, 0x19, 0x9C, +0xEE, 0x9D, 0x98, 0x8B, 0xB9, 0xC5, 0x25, 0xCE, 0xA4, 0xAD, 0x4A, 0x65, 0x19, 0xC1, 0x8D, 0x91, +0x29, 0x6F, 0x3E, 0x62, 0xB2, 0x7F, 0x6, 0xF3, 0xD9, 0xD1, 0x52, 0x38, 0xA6, 0x8D, 0x90, 0x35, +0xE0, 0xD3, 0x35, 0x28, 0xAD, 0x62, 0x6, 0x9, 0xAD, 0xB9, 0xF, 0xCC, 0x20, 0x51, 0x34, 0xB9, +0xE0, 0xF5, 0xCC, 0x72, 0x48, 0x65, 0xBA, 0xC3, 0xA5, 0x0, 0xE4, 0x58, 0x4E, 0x2C, 0xA3, 0x49, +0x3C, 0x46, 0x73, 0x7F, 0xAF, 0x2D, 0xF4, 0x1D, 0x46, 0x23, 0x70, 0x2C, 0x2D, 0x1C, 0x4B, 0x2F, +0xE, 0x90, 0xFB, 0xCD, 0xC0, 0xB, 0xB4, 0xF1, 0x87, 0xC2, 0xF5, 0xE5, 0x23, 0x9C, 0xF3, 0x2, +0x88, 0x3A, 0x13, 0x64, 0x87, 0x68, 0xB0, 0x5F, 0x44, 0x11, 0x45, 0xF0, 0xAC, 0x17, 0x9E, 0x1A, +0x4E, 0xD7, 0xFE, 0xA8, 0xA8, 0xA2, 0xE8, 0x6C, 0xC4, 0x6C, 0xA3, 0x8, 0xB5, 0x51, 0x2C, 0x43, +0xE0, 0x2, 0x46, 0xE3, 0xD8, 0xF4, 0x26, 0xA1, 0xF2, 0x54, 0xE2, 0x3C, 0xF5, 0x46, 0x1C, 0x79, +0x56, 0x66, 0x99, 0xF4, 0xB2, 0x93, 0xD8, 0xD, 0xEB, 0x45, 0x89, 0xC5, 0xCE, 0xBF, 0xBA, 0x96, +0x91, 0xE2, 0x2B, 0x20, 0xAF, 0x18, 0x98, 0x28, 0x4, 0x59, 0x78, 0xE2, 0x86, 0x2F, 0xA5, 0x25, +0xD9, 0x57, 0x1, 0x28, 0xFE, 0xD0, 0xE, 0xA7, 0x87, 0xE2, 0x8F, 0xDF, 0xD4, 0xF5, 0x91, 0xE4, +0xEC, 0x59, 0x8A, 0x52, 0x11, 0x62, 0x59, 0xE5, 0x21, 0xF1, 0x1B, 0xDE, 0xFF, 0x42, 0x8F, 0x9, +0xE8, 0x31, 0x31, 0x7A, 0x4C, 0x7E, 0x48, 0x8F, 0xC9, 0x9C, 0x1E, 0x25, 0xD3, 0xA7, 0xAA, 0x12, +0xD2, 0xEB, 0x44, 0x82, 0xDD, 0xC9, 0x99, 0x67, 0xE, 0x93, 0xE5, 0x46, 0x2, 0x99, 0x95, 0x79, +0xBA, 0x39, 0xA5, 0xAF, 0xD7, 0x1E, 0x87, 0x54, 0xB1, 0x5C, 0x60, 0xEE, 0x73, 0x3D, 0xC4, 0x69, +0x46, 0xB2, 0xB4, 0xC, 0x84, 0xAD, 0x81, 0x29, 0x90, 0x3C, 0x2F, 0xFB, 0xE8, 0xDA, 0x92, 0x7F, +0x20, 0xDE, 0x5C, 0x87, 0x1F, 0xC, 0x2D, 0xE0, 0x10, 0x97, 0x48, 0xE, 0x24, 0x61, 0x3A, 0x2B, +0xD4, 0x94, 0x68, 0x3, 0xD5, 0x12, 0x8B, 0x42, 0x7E, 0x70, 0x98, 0x46, 0x50, 0xCC, 0x43, 0xC, +0x7F, 0x8E, 0xCC, 0x87, 0x54, 0x25, 0xA9, 0x70, 0xB0, 0x2B, 0xA9, 0x4E, 0x4, 0x12, 0x93, 0x4C, +0x24, 0x6, 0xDF, 0x7C, 0x5E, 0xE9, 0xF3, 0xEE, 0x24, 0xBC, 0x29, 0x6C, 0x76, 0x7C, 0x86, 0x2, +0x69, 0x2A, 0xDA, 0xC4, 0x2F, 0x2A, 0x7, 0xCA, 0xA7, 0xA7, 0x9B, 0x1B, 0x29, 0xF0, 0xA9, 0xB4, +0x7C, 0xCA, 0xB4, 0xA2, 0x75, 0xB7, 0x9C, 0x81, 0x1D, 0x86, 0xEF, 0x88, 0xD6, 0x63, 0x4C, 0xD9, +0x14, 0x51, 0x66, 0x8A, 0xAB, 0x5D, 0x7, 0x26, 0xA8, 0x92, 0x9F, 0x85, 0xF7, 0xB7, 0x61, 0xB6, +0xEC, 0xB3, 0x23, 0x94, 0xD3, 0xA8, 0xA5, 0x25, 0xC9, 0x67, 0xE4, 0x6C, 0x95, 0xDC, 0x2A, 0x75, +0xC9, 0x0, 0xA4, 0x8B, 0x61, 0xCB, 0x5E, 0x46, 0x54, 0x9D, 0xAA, 0x62, 0x5B, 0x99, 0x50, 0xA9, +0xEB, 0x3B, 0x80, 0xA1, 0x20, 0x32, 0xD2, 0xC8, 0xC0, 0x86, 0x32, 0xF, 0xD8, 0x7D, 0x83, 0x71, +0xB5, 0x75, 0x17, 0x99, 0x59, 0xB6, 0xBF, 0x44, 0x59, 0xD6, 0x89, 0xA3, 0xC6, 0xAE, 0x17, 0x2B, +0x7C, 0x30, 0xEB, 0x3E, 0x62, 0x6F, 0x57, 0xB7, 0x2B, 0x4E, 0xAC, 0xDC, 0x26, 0x21, 0xB8, 0xF4, +0xFC, 0x78, 0x73, 0xCB, 0xF5, 0x2C, 0xB7, 0xC9, 0x52, 0x62, 0x22, 0x58, 0x7E, 0x55, 0x8, 0xE1, +0xB7, 0xF2, 0x4B, 0x90, 0x1F, 0x1D, 0xCA, 0x6E, 0x1E, 0xC0, 0xA4, 0x90, 0xF2, 0x0, 0x74, 0x82, +0x12, 0x40, 0x24, 0x40, 0xBD, 0x4F, 0x16, 0x6B, 0xC, 0xBF, 0x32, 0x1D, 0x45, 0x1A, 0x2E, 0x27, +0xA3, 0x96, 0xF7, 0x5C, 0xA0, 0x1A, 0x5C, 0xE3, 0x94, 0xFD, 0x94, 0x5C, 0x82, 0x55, 0xBF, 0xEA, +0x9C, 0xF8, 0xB3, 0x4, 0x55, 0x54, 0x38, 0x93, 0xD0, 0x94, 0x49, 0x1D, 0xC0, 0xEA, 0xD5, 0x96, +0x51, 0xE9, 0x3A, 0xB1, 0x44, 0xE9, 0x19, 0xD3, 0x98, 0x33, 0x22, 0x64, 0x52, 0x65, 0xCF, 0x17, +0xD9, 0x7A, 0xC7, 0xB0, 0xC4, 0xD6, 0x4, 0x2A, 0x76, 0x47, 0x55, 0xF4, 0x3B, 0x79, 0x8F, 0x3C, +0xBC, 0x4F, 0xAF, 0xB7, 0x2, 0xB7, 0x88, 0xA7, 0xBE, 0xF8, 0x34, 0xF0, 0xE, 0x49, 0x9A, 0xDF, +0x41, 0x60, 0xBD, 0x1D, 0x2F, 0x85, 0x5A, 0xCD, 0xF2, 0xED, 0xB4, 0x13, 0x97, 0xA1, 0xF5, 0xF0, +0x86, 0xB6, 0x3C, 0x8A, 0x20, 0x8F, 0xF, 0xF7, 0x49, 0xB4, 0xF2, 0xC4, 0xBD, 0x7E, 0xD1, 0xBE, +0x1E, 0x8, 0xA8, 0x96, 0x99, 0xFF, 0x7, 0xD8, 0x63, 0x9, 0xB5, 0xA9, 0xF, 0xEA, 0xD3, 0xF5, +0xD3, 0xDD, 0xC3, 0x9D, 0x2F, 0x52, 0x9B, 0x45, 0x3D, 0xD3, 0x83, 0xFD, 0xFC, 0x49, 0x9C, 0xD0, +0x31, 0xF7, 0xD3, 0x67, 0x81, 0x68, 0xA7, 0x10, 0xCD, 0x51, 0xA8, 0xA9, 0x48, 0x9C, 0xBC, 0x8D, +0xC5, 0xBE, 0xB4, 0x23, 0xEF, 0x54, 0x77, 0x23, 0x8B, 0x1C, 0x64, 0xAB, 0x70, 0x71, 0xC5, 0x63, +0x99, 0x27, 0x8, 0x8, 0x5A, 0x7, 0x2, 0x9F, 0x46, 0x8E, 0x13, 0xD2, 0xF0, 0x88, 0x3, 0x6F, +0xEE, 0x10, 0x1C, 0x70, 0x79, 0x7D, 0x46, 0x8F, 0x39, 0x61, 0xB4, 0xF9, 0x52, 0x41, 0x17, 0x86, +0xF1, 0x26, 0xC0, 0x30, 0x5F, 0xB9, 0xAE, 0x41, 0xE8, 0x2D, 0xAD, 0x38, 0xE8, 0x98, 0x2E, 0x7A, +0x25, 0x29, 0xBA, 0x34, 0x4A, 0x9A, 0xF0, 0x76, 0xD5, 0xC9, 0x5A, 0x80, 0xCE, 0xEB, 0xA8, 0x33, +0xDB, 0x19, 0x9E, 0x7E, 0xB0, 0xA0, 0x51, 0x44, 0xCE, 0xF2, 0x65, 0x19, 0x38, 0x37, 0xC5, 0xBA, +0x48, 0x73, 0xC4, 0xF8, 0x8D, 0xB5, 0xC4, 0xDC, 0x16, 0x2F, 0x6A, 0xE9, 0xA3, 0xD3, 0x42, 0x6C, +0xDC, 0x82, 0xB0, 0x23, 0x95, 0x68, 0x59, 0xF1, 0xAA, 0x15, 0x2D, 0x45, 0x29, 0x2, 0x41, 0x51, +0xC, 0xC4, 0x14, 0x5F, 0x74, 0x1C, 0x96, 0xD1, 0x55, 0x9C, 0xEC, 0x77, 0xD8, 0x5D, 0xA, 0xA0, +0x68, 0xDA, 0xCA, 0x73, 0x36, 0x91, 0x60, 0xDF, 0xA2, 0x56, 0x85, 0xB8, 0x4A, 0x7, 0x91, 0xD4, +0x83, 0x95, 0xB0, 0xF8, 0x4F, 0xAF, 0xCD, 0xD5, 0x70, 0xE3, 0xB2, 0xB5, 0x47, 0x72, 0x75, 0x1A, +0x12, 0x58, 0x91, 0xA4, 0xFE, 0x8, 0x12, 0x1A, 0xF3, 0x5E, 0x97, 0x18, 0xAD, 0xBD, 0x95, 0x82, +0x2, 0xF2, 0xDD, 0x9C, 0x31, 0xA2, 0x3A, 0x41, 0x2, 0xC6, 0x4E, 0xBD, 0x79, 0xC2, 0x2E, 0xDC, +0x35, 0xD8, 0x9, 0xAD, 0xEB, 0x77, 0xE0, 0xE5, 0x58, 0x7D, 0x62, 0x79, 0x2F, 0x5E, 0xC8, 0x8C, +0x6A, 0x74, 0xA5, 0x47, 0x9D, 0x91, 0x5B, 0xB7, 0x46, 0xA7, 0xA, 0xAE, 0x83, 0xF2, 0x42, 0x8D, +0x56, 0xDE, 0x43, 0xFA, 0x32, 0x65, 0xE, 0x2D, 0x67, 0xE0, 0xF3, 0xF6, 0x8D, 0x3B, 0xB0, 0x1A, +0x65, 0xA9, 0xE3, 0xC3, 0x32, 0xA9, 0xBF, 0xD2, 0xF7, 0x95, 0xA5, 0x3A, 0xD4, 0x9F, 0xFA, 0x65, +0xE2, 0xF, 0xAA, 0xCE, 0x5F, 0x8, 0x99, 0xCB, 0xC, 0xF3, 0x27, 0xA9, 0x72, 0xF0, 0x2E, 0x91, +0x5D, 0x8E, 0x72, 0xCC, 0xBE, 0x82, 0x87, 0xF3, 0x43, 0x13, 0x37, 0x9A, 0xF6, 0xF4, 0x86, 0xD, +0xE1, 0x74, 0x7, 0x51, 0xA4, 0x93, 0x1A, 0x41, 0xE8, 0x9F, 0x0, 0x20, 0xE1, 0xD7, 0xD, 0x12, +0x8C, 0x9D, 0xD4, 0x58, 0x93, 0xB8, 0x55, 0xE1, 0xA2, 0xB0, 0xF3, 0x0, 0x7, 0x1D, 0xDE, 0xE3, +0xA6, 0xCD, 0x1A, 0xE8, 0x1E, 0x6F, 0x47, 0x93, 0xC1, 0xEB, 0xE6, 0x19, 0x2E, 0x9C, 0xB2, 0xFA, +0xF6, 0xF5, 0xA6, 0xDF, 0xE4, 0xC0, 0xA1, 0x91, 0x22, 0xE2, 0x3F, 0xB5, 0x2C, 0xAD, 0x52, 0x5E, +0xE6, 0xE2, 0x3E, 0x56, 0x3E, 0x5C, 0xDF, 0xAE, 0xAE, 0xC2, 0x21, 0xE5, 0x8C, 0x30, 0x23, 0x35, +0xBB, 0x1D, 0x6B, 0xD1, 0xE1, 0xEB, 0xCF, 0xCE, 0x77, 0x68, 0x75, 0x27, 0x44, 0xED, 0x9C, 0x44, +0x40, 0x3E, 0x77, 0x86, 0xC6, 0x4, 0x2D, 0xE4, 0x15, 0x63, 0xD6, 0x83, 0xC, 0x71, 0xE, 0x86, +0x16, 0x5A, 0x17, 0xBA, 0x1E, 0x16, 0xE5, 0x79, 0x7F, 0xB1, 0xF5, 0x5D, 0x78, 0x87, 0x30, 0xF9, +0x97, 0xCE, 0x65, 0x7, 0x50, 0xDF, 0xC4, 0x46, 0x22, 0xD1, 0x92, 0x70, 0xB7, 0x7B, 0x95, 0x98, +0x7, 0xAA, 0xB0, 0xBA, 0x66, 0x3D, 0x46, 0xA3, 0xC0, 0xA2, 0x18, 0xD9, 0x54, 0x49, 0x5B, 0xAD, +0x19, 0x47, 0x1B, 0xDA, 0xB6, 0x89, 0x89, 0xAA, 0x46, 0x7E, 0xA9, 0xA2, 0xD5, 0x88, 0x1C, 0x21, +0x12, 0x7, 0x3D, 0xE3, 0xAE, 0x8D, 0x77, 0x97, 0xA3, 0xA3, 0xBE, 0xBE, 0xBA, 0x7F, 0x18, 0x29, +0x43, 0xF0, 0x30, 0xC8, 0xF8, 0xEE, 0x9C, 0xBF, 0x82, 0x94, 0xFF, 0x28, 0x13, 0xB6, 0x3A, 0x7, +0xC6, 0x54, 0xAB, 0x3, 0x96, 0xBC, 0xDF, 0xF0, 0xC, 0xF5, 0xAF, 0x15, 0x75, 0x1D, 0x9B, 0xF3, +0x76, 0x53, 0xCD, 0xC8, 0x4F, 0xCB, 0x42, 0xC6, 0x81, 0xBE, 0x57, 0x42, 0x75, 0x6C, 0x21, 0xB5, +0x63, 0x2E, 0x5A, 0x41, 0xF4, 0xBF }; #endif diff --git a/src/ESPFMfGKWpF2.h b/src/ESPFMfGKWpF2.h index 1852801..381ad96 100644 --- a/src/ESPFMfGKWpF2.h +++ b/src/ESPFMfGKWpF2.h @@ -1,4 +1,3 @@ -// inline guard. Still broken by design? #ifndef ESPFMfGKWpF2_h #define ESPFMfGKWpF2_h