diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..7dbf05f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,43 @@ +# Auto detect text files and perform LF normalization +* text eol=lf + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain + +*.png binary +*.jpeg binary +*.jpg binary +*.gif binary +*.dat binary +*.idx binary +*.zip binary +*.gz binary +*.odt binary +*.ods binary +*.odp binary +*.ttf binary +*.zim binary +*.zim* binary +*.eot binary +*.svg binary +*.woff binary +*.woff2 binary +*.deb binary +*.wasm binary diff --git a/KiwixWebApp.jsproj b/KiwixWebApp.jsproj index e8bb05c9..84cd9642 100644 --- a/KiwixWebApp.jsproj +++ b/KiwixWebApp.jsproj @@ -165,7 +165,12 @@ - + + + + + + @@ -316,7 +321,6 @@ - diff --git a/pwabuilder-sw.js b/pwabuilder-sw.js index 107c1c61..5bdc8b46 100644 --- a/pwabuilder-sw.js +++ b/pwabuilder-sw.js @@ -15,7 +15,7 @@ const regexpKiwixDownloadLinks = /download\.kiwix\.org/i; const regexpZIMUrlWithNamespace = /(?:^|\/)([^\/]+\/)([-ABCIJMUVWX])\/(.+)/; const CACHE = "kiwix-precache-" + appVersion; -const precacheFiles = [ +let precacheFiles = [ ".", "www", "www/", @@ -68,16 +68,14 @@ const precacheFiles = [ "www/js/lib/images.js", "www/js/lib/jquery-3.2.1.slim.js", "www/js/lib/kiwixServe.js", - "www/js/lib/promisPolyfill.js", + "www/js/lib/promisePolyfill.js", "www/js/lib/require.js", "www/js/lib/settingsStore.js", "www/js/lib/transformStyles.js", "www/js/lib/uiUtil.js", "www/js/lib/utf8.js", "www/js/lib/util.js", - "www/js/lib/xzdec.js", "www/js/lib/xzdec_wrapper.js", - "www/js/lib/zstddec.js", "www/js/lib/zstddec_wrapper.js", "www/js/lib/zimArchive.js", "www/js/lib/zimArchiveLoader.js", @@ -95,6 +93,20 @@ const precacheFiles = [ "www/js/katex/fonts/KaTeX_Size4-Regular.woff2" ]; +if ('WebAssembly' in self) { + precacheFiles.push( + "www/js/lib/xzdec-wasm.js", + "www/js/lib/xzdec-wasm.wasm", + "www/js/lib/zstddec-wasm.js", + "www/js/lib/zstddec-wasm.wasm" + ); +} else { + precacheFiles.push( + "www/js/lib/xzdec-asm.js", + "www/js/lib/zstddec-asm.js" + ); +} + // DEV: add any URL schemata that should be excluded from caching with the Cache API to the regex below // As of 08-2019 the chrome-extension: schema is incompatible with the Cache API // 'example-extension' is included to show how to add another schema if necessary diff --git a/www/js/init.js b/www/js/init.js index d2b79182..595356b6 100644 --- a/www/js/init.js +++ b/www/js/init.js @@ -433,13 +433,21 @@ require.config({ } }); -requirejs(['bootstrap', 'promisePolyfill', 'arrayFromPolyfill'], function () { +var req = ['bootstrap']; // Baseline Require array + +// Add polyfills to the Require array only if needed +if (!('Promise' in self)) req.push('promisePolyfill'); +if (!('from' in Array)) req.push('arrayFromPolyfill'); + +requirejs(req, function () { requirejs(['../app']); }); -// Load the WebP Polyfills only if needed +// Test if WebP is natively supported, and if not, set webpMachine to true. The value of webpMachine +// will determine whether the WebP Polyfills will be loaded (currently only used in uiUtil.js) var webpMachine = false; -// Using self-invoking function to avoid defining global functions and variables + +// We use a self-invoking function here to avoid defining unnecessary global functions and variables (function (callback) { // Tests for native WebP support var webP = new Image(); @@ -451,4 +459,4 @@ var webpMachine = false; if (!support) { webpMachine = true; } -}); +}); \ No newline at end of file diff --git a/www/js/lib/abstractFilesystemAccess.js b/www/js/lib/abstractFilesystemAccess.js index 4304fb8e..f361c1ef 100644 --- a/www/js/lib/abstractFilesystemAccess.js +++ b/www/js/lib/abstractFilesystemAccess.js @@ -1,105 +1,107 @@ -/** - * abstractFilesystemAccess.js: Abstraction layer for file access. - * This is currently only implemented for FirefoxOS, but could be extended to - * Cordova, Electron or other ways to directly browse and read files from the - * filesystem. - * It is unfortunately not possible to do that inside a standard browser - * (even inside an extension). - * - * Copyright 2014 Kiwix developers - * License GPL v3: - * - * This file is part of Kiwix. - * - * Kiwix is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Kiwix is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Kiwix (file LICENSE-GPLv3.txt). If not, see - */ -'use strict'; -define(['jquery'], function(jQuery) { - - /** - * Storage implemented by Firefox OS - * - * @typedef StorageFirefoxOS - * @property {DeviceStorage} _storage DeviceStorage - * @property {String} storageName Name of the storage - */ - - /** - * Creates an abstraction layer around the FirefoxOS storage. - * @param storage FirefoxOS DeviceStorage object - */ - function StorageFirefoxOS(storage) { - this._storage = storage; - this.storageName = storage.storageName; - }; - /** - * Access the given file. - * @param {String} path absolute path to the file - * @return {Promise} Promise which is resolved with a HTML5 file object and - * rejected with an error message. - */ - StorageFirefoxOS.prototype.get = function(path) { - var deferred = q.defer(); - var request = this._storage.get(path); - request.onsuccess = function() { deferred.resolve(this.result); }; - request.onerror = function() { deferred.reject(this.error.name); }; - return deferred.promise; - }; - - // We try to match both a standalone ZIM file (.zim) or - // the first file of a split ZIM files collection (.zimaa) - var regexpZIMFileName = /\.zim(aa)?$/i; - - /** - * Searches for archive files or directories. - * @return {Promise} Promise which is resolved with an array of - * paths and rejected with an error message. - */ - StorageFirefoxOS.prototype.scanForArchives = function() { - var deferred = jQuery.Deferred(); - var directories = []; - var cursor = this._storage.enumerate(); - cursor.onerror = function() { - deferred.reject(cursor.error); - }; - cursor.onsuccess = function() { - if (!cursor.result) { - deferred.resolve(directories); - return; - } - var file = cursor.result; - - if (regexpZIMFileName.test(file.name)) { - directories.push(file.name); - } - - cursor.continue(); - }; - return deferred.promise(); - }; - - /** - * Browse a path through DeviceStorage API - * @param path Path where to look for files - * @return {DOMCursor} Cursor of files found in given path - */ - StorageFirefoxOS.prototype.enumerate = function(path) { - return this._storage.enumerate(); - }; - - - return { - StorageFirefoxOS: StorageFirefoxOS - }; -}); +/** + * abstractFilesystemAccess.js: Abstraction layer for file access. + * This is currently only implemented for FirefoxOS, but could be extended to + * Cordova, Electron or other ways to directly browse and read files from the + * filesystem. + * It is unfortunately not possible to do that inside a standard browser + * (even inside an extension). + * + * Copyright 2014 Kiwix developers + * License GPL v3: + * + * This file is part of Kiwix. + * + * Kiwix is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Kiwix is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Kiwix (file LICENSE-GPLv3.txt). If not, see + */ +'use strict'; +define([], function() { + + /** + * Storage implemented by Firefox OS + * + * @typedef StorageFirefoxOS + * @property {DeviceStorage} _storage DeviceStorage + * @property {String} storageName Name of the storage + */ + + /** + * Creates an abstraction layer around the FirefoxOS storage. + * @param storage FirefoxOS DeviceStorage object + */ + function StorageFirefoxOS(storage) { + this._storage = storage; + this.storageName = storage.storageName; + }; + /** + * Access the given file. + * @param {String} path absolute path to the file + * @return {Promise} Promise which is resolved with a HTML5 file object and + * rejected with an error message. + */ + StorageFirefoxOS.prototype.get = function(path) { + var that = this; + return new Promise(function (resolve, reject){ + var request = that._storage.get(path); + request.onsuccess = function() { resolve(this.result); }; + request.onerror = function() { reject(this.error.name); }; + }); + }; + + // We try to match both a standalone ZIM file (.zim) or + // the first file of a split ZIM files collection (.zimaa) + var regexpZIMFileName = /\.zim(aa)?$/i; + + /** + * Searches for archive files or directories. + * @return {Promise} Promise which is resolved with an array of + * paths and rejected with an error message. + */ + StorageFirefoxOS.prototype.scanForArchives = function() { + var that = this; + return new Promise(function (resolve, reject){ + var directories = []; + var cursor = that._storage.enumerate(); + cursor.onerror = function() { + reject(cursor.error); + }; + cursor.onsuccess = function() { + if (!cursor.result) { + resolve(directories); + return; + } + var file = cursor.result; + + if (regexpZIMFileName.test(file.name)) { + directories.push(file.name); + } + + cursor.continue(); + }; + }); + }; + + /** + * Browse a path through DeviceStorage API + * @param path Path where to look for files + * @return {DOMCursor} Cursor of files found in given path + */ + StorageFirefoxOS.prototype.enumerate = function(path) { + return this._storage.enumerate(); + }; + + + return { + StorageFirefoxOS: StorageFirefoxOS + }; +}); diff --git a/www/js/lib/arrayFromPolyfill.js b/www/js/lib/arrayFromPolyfill.js index 170f1e8e..6e2c11e2 100644 --- a/www/js/lib/arrayFromPolyfill.js +++ b/www/js/lib/arrayFromPolyfill.js @@ -1,9 +1,7 @@ /** - * Simple Array.from polyfi8ll (with Set support) from https://stackoverflow.com/a/62682524/9727685 + * Simple Array.from polyfill (with Set support) from https://stackoverflow.com/a/62682524/9727685 */ (function () { - // Detection - if ('from' in Array) return; function arrayFrom(arr, callbackFn, thisArg) { //if you need you can uncomment the following line @@ -31,5 +29,5 @@ return arNew; } //You could also use it without the following line, but it is not recommended because native function is faster. - Array.from = arrayFrom; //We set it as polyfill + Array.from = Array.from || arrayFrom; //We set it as polyfill }()); \ No newline at end of file diff --git a/www/js/lib/filecache.js b/www/js/lib/filecache.js index 9e4e224c..4802f0b2 100644 --- a/www/js/lib/filecache.js +++ b/www/js/lib/filecache.js @@ -1,186 +1,186 @@ -/** - * filecache.js: Generic cache for small, frequently read file slices. - * It discards cached blocks according to a least-recently-used algorithm. - * It is used primarily for fast Directory Entry lookup, speeding up binary search. - * - * Copyright 2020 Mossroy, peter-x, jaifroid and contributors - * License GPL v3: - * - * This file is part of Kiwix. - * - * Kiwix JS is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Kiwix JS is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Kiwix JS (file LICENSE). If not, see - */ -'use strict'; -define([], function() { - /** - * Set maximum number of cache blocks of BLOCK_SIZE bytes each - * Maximum size of cache in bytes = MAX_CACHE_SIZE * BLOCK_SIZE - * @constant - * @type {Number} - */ - const MAX_CACHE_SIZE = 4000; - - /** - * The maximum blocksize to read or store via the block cache (bytes) - * @constant - * @type {Number} - */ - const BLOCK_SIZE = 4096; - - /** - * A Block Cache employing a Least Recently Used caching strategy - * @typedef {Object} BlockCache - * @property {Number} capacity The maximum number of entries in the cache - * @property {Map} cache A map to store the cache keys and data - */ - - /** - * Creates a new cache with max size limit of MAX_CACHE_SIZE blocks - * LRUCache implemnentation with Map adapted from https://markmurray.co/blog/lru-cache/ - */ - function LRUCache() { - /** CACHE TUNING **/ - // console.log('Creating cache of size ' + MAX_CACHE_SIZE + ' * ' + BLOCK_SIZE + ' bytes'); - // Initialize persistent Cache properties - this.capacity = MAX_CACHE_SIZE; - this.cache = new Map(); - } - - /** - * Tries to retrieve an element by its id. If it is not present in the cache, returns undefined; if it is present, - * then the value is returned and the entry is moved to the bottom of the cache - * @param {String} key The block cache entry key (file.id + ':' + byte offset) - * @returns {Uint8Array|undefined} The requested cache data or undefined - */ - LRUCache.prototype.get = function (key) { - var entry = this.cache.get(key); - // If the key does not exist, return - if (!entry) return entry; - // Remove the key and re-insert it (this moves the key to the bottom of the Map: bottom = most recent) - this.cache.delete(key); - this.cache.set(key, entry); - // Return the cached data - return entry; - }; - - /** - * Stores a value in the cache by id and prunes the least recently used entry if the cache is larger than MAX_CACHE_SIZE - * @param {String} key The key under which to store the value (file.id + ':' + byte offset from start of ZIM archive) - * @param {Uint8Array} value The value to store in the cache - */ - LRUCache.prototype.store = function (key, value) { - // We get the existing entry's object for memory-management purposes; if it exists, it will contain identical data - // to , but is strongly referenced by the Map. (It should be rare that two async Promises attempt to - // store the same data in the Cache, once the Cache is sufficiently populated.) - var entry = this.cache.get(key); - // If the key already exists, delete it and re-insert it, so that it will be added - // to the bottom of the Map (bottom = most recent) - if (entry) this.cache.delete(key); - else entry = value; - this.cache.set(key, entry); - // If we've exceeded the cache capacity, then delete the least recently accessed value, - // which will be the item at the top of the Map, i.e the first position - if (this.cache.size > this.capacity) { - if (this.cache.keys) { - var firstKey = this.cache.keys().next().value; - this.cache.delete(firstKey); - } else { - // IE11 doesn't support the keys iterator, so we have to do a forEach loop through all 4000 entries - // to get the oldest values. To prevent excessive iterations, we delete 25% at a time. - var q = Math.floor(0.25 * this.capacity); - var c = 0; - // console.log('Deleteing ' + q + ' cache entries'); - this.cache.forEach(function (v, k, map) { - if (c > q) return; - map.delete(k); - c++; - }); - } - } - }; - - /** - * A new Block Cache - * @type {BlockCache} - */ - var cache = new LRUCache(); - - /** CACHE TUNING **/ - - // DEV: Uncomment this block and blocks below marked 'CACHE TUNING' to measure Cache hit and miss rates for different Cache sizes - // var hits = 0; - // var misses = 0; - - /** - * Read a certain byte range in the given file, breaking the range into chunks that go through the cache - * If a read of more than BLOCK_SIZE * 2 (bytes) is requested, do not use the cache - * @param {Object} file The requested ZIM archive to read from - * @param {Number} begin The byte from which to start reading - * @param {Number} end The byte at which to stop reading (end will not be read) - * @return {Promise} A Promise that resolves to the correctly concatenated data from the cache - * or from the ZIM archive - */ - var read = function(file, begin, end) { - // Read large chunks bypassing the block cache because we would have to - // stitch together too many blocks and would clog the cache - if (end - begin > BLOCK_SIZE * 2) return file._readSplitSlice(begin, end); - var readRequests = []; - var blocks = {}; - // Look for the requested data in the blocks: we may need to stitch together data from two or more blocks - for (var id = Math.floor(begin / BLOCK_SIZE) * BLOCK_SIZE; id < end; id += BLOCK_SIZE) { - var block = cache.get(file.id + ':' + id); - if (block === undefined) { - // Data not in cache, so read from archive - /** CACHE TUNING **/ - // misses++; - // DEV: This is a self-calling function, i.e. the function is called with an argument of which then - // becomes the parameter - readRequests.push(function(offset) { - return file._readSplitSlice(offset, offset + BLOCK_SIZE).then(function(result) { - cache.store(file.id + ':' + offset, result); - blocks[offset] = result; - }); - }(id)); - } else { - /** CACHE TUNING **/ - // hits++; - blocks[id] = block; - } - } - /** CACHE TUNING **/ - // if (misses + hits > 2000) { - // console.log('** Block cache hit rate: ' + Math.round(hits / (hits + misses) * 1000) / 10 + '% [ hits:' + hits + - // ' / misses:' + misses + ' ] Size: ' + cache.cache.size); - // hits = 0; - // misses = 0; - // } - // Wait for all the blocks to be read either from the cache or from the archive - return Promise.all(readRequests).then(function() { - var result = new Uint8Array(end - begin); - var pos = 0; - // Stitch together the data parts in the right order - for (var i = Math.floor(begin / BLOCK_SIZE) * BLOCK_SIZE; i < end; i += BLOCK_SIZE) { - var b = Math.max(i, begin) - i; - var e = Math.min(end, i + BLOCK_SIZE) - i; - if (blocks[i].subarray) result.set(blocks[i].subarray(b, e), pos); - pos += e - b; - } - return result; - }); - }; - - return { - read: read - }; -}); \ No newline at end of file +/** + * filecache.js: Generic cache for small, frequently read file slices. + * It discards cached blocks according to a least-recently-used algorithm. + * It is used primarily for fast Directory Entry lookup, speeding up binary search. + * + * Copyright 2020 Mossroy, peter-x, jaifroid and contributors + * License GPL v3: + * + * This file is part of Kiwix. + * + * Kiwix JS is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Kiwix JS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Kiwix JS (file LICENSE). If not, see + */ +'use strict'; + +define([], function() { + /** + * Set maximum number of cache blocks of BLOCK_SIZE bytes each + * Maximum size of cache in bytes = MAX_CACHE_SIZE * BLOCK_SIZE + * @constant + * @type {Number} + */ + const MAX_CACHE_SIZE = 4000; + + /** + * The maximum blocksize to read or store via the block cache (bytes) + * @constant + * @type {Number} + */ + const BLOCK_SIZE = 4096; + + /** + * A Block Cache employing a Least Recently Used caching strategy + * @typedef {Object} BlockCache + * @property {Number} capacity The maximum number of entries in the cache + * @property {Map} cache A map to store the cache keys and data + */ + + /** + * Creates a new cache with max size limit of MAX_CACHE_SIZE blocks + * LRUCache implemnentation with Map adapted from https://markmurray.co/blog/lru-cache/ + */ + function LRUCache() { + /** CACHE TUNING **/ + // console.log('Creating cache of size ' + MAX_CACHE_SIZE + ' * ' + BLOCK_SIZE + ' bytes'); + // Initialize persistent Cache properties + this.capacity = MAX_CACHE_SIZE; + this.cache = new Map(); + } + + /** + * Tries to retrieve an element by its id. If it is not present in the cache, returns undefined; if it is present, + * then the value is returned and the entry is moved to the bottom of the cache + * @param {String} key The block cache entry key (file.id + ':' + byte offset) + * @returns {Uint8Array|undefined} The requested cache data or undefined + */ + LRUCache.prototype.get = function (key) { + var entry = this.cache.get(key); + // If the key does not exist, return + if (!entry) return entry; + // Remove the key and re-insert it (this moves the key to the bottom of the Map: bottom = most recent) + this.cache.delete(key); + this.cache.set(key, entry); + // Return the cached data + return entry; + }; + + /** + * Stores a value in the cache by id and prunes the least recently used entry if the cache is larger than MAX_CACHE_SIZE + * @param {String} key The key under which to store the value (file.id + ':' + byte offset from start of ZIM archive) + * @param {Uint8Array} value The value to store in the cache + */ + LRUCache.prototype.store = function (key, value) { + // We get the existing entry's object for memory-management purposes; if it exists, it will contain identical data + // to , but is strongly referenced by the Map. (It should be rare that two async Promises attempt to + // store the same data in the Cache, once the Cache is sufficiently populated.) + var entry = this.cache.get(key); + // If the key already exists, delete it and re-insert it, so that it will be added + // to the bottom of the Map (bottom = most recent) + if (entry) this.cache.delete(key); + else entry = value; + this.cache.set(key, entry); + // If we've exceeded the cache capacity, then delete the least recently accessed value, + // which will be the item at the top of the Map, i.e the first position + if (this.cache.size > this.capacity) { + if (this.cache.keys) { + var firstKey = this.cache.keys().next().value; + this.cache.delete(firstKey); + } else { + // IE11 doesn't support the keys iterator, so we have to do a forEach loop through all 4000 entries + // to get the oldest values. To prevent excessive iterations, we delete 25% at a time. + var q = Math.floor(0.25 * this.capacity); + var c = 0; + // console.log('Deleteing ' + q + ' cache entries'); + this.cache.forEach(function (v, k, map) { + if (c > q) return; + map.delete(k); + c++; + }); + } + } + }; + + /** + * A new Block Cache + * @type {BlockCache} + */ + var cache = new LRUCache(); + + /** CACHE TUNING **/ + // DEV: Uncomment this block and blocks below marked 'CACHE TUNING' to measure Cache hit and miss rates for different Cache sizes + // var hits = 0; + // var misses = 0; + + /** + * Read a certain byte range in the given file, breaking the range into chunks that go through the cache + * If a read of more than BLOCK_SIZE * 2 (bytes) is requested, do not use the cache + * @param {Object} file The requested ZIM archive to read from + * @param {Number} begin The byte from which to start reading + * @param {Number} end The byte at which to stop reading (end will not be read) + * @return {Promise} A Promise that resolves to the correctly concatenated data from the cache + * or from the ZIM archive + */ + var read = function(file, begin, end) { + // Read large chunks bypassing the block cache because we would have to + // stitch together too many blocks and would clog the cache + if (end - begin > BLOCK_SIZE * 2) return file._readSplitSlice(begin, end); + var readRequests = []; + var blocks = {}; + // Look for the requested data in the blocks: we may need to stitch together data from two or more blocks + for (var id = Math.floor(begin / BLOCK_SIZE) * BLOCK_SIZE; id < end; id += BLOCK_SIZE) { + var block = cache.get(file.id + ':' + id); + if (block === undefined) { + // Data not in cache, so read from archive + /** CACHE TUNING **/ + // misses++; + // DEV: This is a self-calling function, i.e. the function is called with an argument of which then + // becomes the parameter + readRequests.push(function(offset) { + return file._readSplitSlice(offset, offset + BLOCK_SIZE).then(function(result) { + cache.store(file.id + ':' + offset, result); + blocks[offset] = result; + }); + }(id)); + } else { + /** CACHE TUNING **/ + // hits++; + blocks[id] = block; + } + } + /** CACHE TUNING **/ + // if (misses + hits > 2000) { + // console.log('** Block cache hit rate: ' + Math.round(hits / (hits + misses) * 1000) / 10 + '% [ hits:' + hits + + // ' / misses:' + misses + ' ] Size: ' + cache.cache.size); + // hits = 0; + // misses = 0; + // } + // Wait for all the blocks to be read either from the cache or from the archive + return Promise.all(readRequests).then(function() { + var result = new Uint8Array(end - begin); + var pos = 0; + // Stitch together the data parts in the right order + for (var i = Math.floor(begin / BLOCK_SIZE) * BLOCK_SIZE; i < end; i += BLOCK_SIZE) { + var b = Math.max(i, begin) - i; + var e = Math.min(end, i + BLOCK_SIZE) - i; + if (blocks[i].subarray) result.set(blocks[i].subarray(b, e), pos); + pos += e - b; + } + return result; + }); + }; + + return { + read: read + }; +}); diff --git a/www/js/lib/promisePolyfill.js b/www/js/lib/promisePolyfill.js index 3924cc1b..734ff750 100644 --- a/www/js/lib/promisePolyfill.js +++ b/www/js/lib/promisePolyfill.js @@ -12,8 +12,6 @@ (function () { 'use strict'; - if ('Promise' in self) return; - var $undefined , $null = null , isBrowser = typeof self === 'object' diff --git a/www/js/lib/xzdec-asm.js b/www/js/lib/xzdec-asm.js new file mode 100644 index 00000000..7ff02ef5 --- /dev/null +++ b/www/js/lib/xzdec-asm.js @@ -0,0 +1,54 @@ + +var XZ = (function () { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( +function(XZ) { + XZ = XZ || {}; + + +var a;a||(a=typeof XZ !== 'undefined' ? XZ : {}); +var Promise=function(){function b(){}function e(c,f){return function(){c.apply(f,arguments)}}function d(c){if(!(this instanceof d))throw new TypeError("Promises must be constructed via new");if("function"!==typeof c)throw new TypeError("not a function");this.s=0;this.B=!1;this.u=void 0;this.v=[];P(c,this)}function m(c,f){for(;3===c.s;)c=c.u;0===c.s?c.v.push(f):(c.B=!0,d.C(function(){var g=1===c.s?f.F:f.G;if(null===g)(1===c.s?h:k)(f.promise,c.u);else{try{var l=g(c.u)}catch(n){k(f.promise,n);return}h(f.promise, +l)}}))}function h(c,f){try{if(f===c)throw new TypeError("A promise cannot be resolved with itself.");if(f&&("object"===typeof f||"function"===typeof f)){var g=f.then;if(f instanceof d){c.s=3;c.u=f;v(c);return}if("function"===typeof g){P(e(g,f),c);return}}c.s=1;c.u=f;v(c)}catch(l){k(c,l)}}function k(c,f){c.s=2;c.u=f;v(c)}function v(c){2===c.s&&0===c.v.length&&d.C(function(){c.B||d.D(c.u)});for(var f=0,g=c.v.length;f=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];a:{if(v[d+36>>2]){h=v[d>>2];break a}t[d+40|0]=0;v[d>>2]=0;v[d+4>>2]=0;v[d+24>>2]=0;v[d+28>>2]=0;_(d+72|0,100);v[d+172>>2]=12;h=0}z=v[a+20>>2];s=v[a+8>>2];v[d+16>>2]=s;x=d+96|0;p=d+176|0;n=d+168|0;while(1){b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{l:{m:{switch(h|0){case 2:b=v[a+8>>2];e=v[a+4>>2];h=v[d+172>>2];c=v[a+12>>2];g=v[d+168>>2];break l;case 0:h=v[a+8>>2];e=v[a+12>>2]-h|0;c=v[d+168>>2];b=v[d+172>>2]-c|0;b=b>>>0>e>>>0?e:b;W((c+n|0)+8|0,h+v[a+4>>2]|0,b);v[a+8>>2]=b+v[a+8>>2];c=0;e=b+v[d+168>>2]|0;b=v[d+172>>2];v[d+168>>2]=(b|0)==(e|0)?0:e;if((b|0)!=(e|0)){break b}v[d>>2]=1;if(fa(p,1024,6)){c=5;break b}c=6;if(w[d+182|0]){break b}b=w[d+183|0];v[d+32>>2]=b;if(!(1<>>0>4){break b}break;case 9:break h;case 8:break i;case 7:break j;case 6:break k;case 1:break m;case 5:break c;case 4:break d;case 3:break e;default:continue}}b=v[a+8>>2];c=v[a+12>>2];if((b|0)==(c|0)){c=0;break b}e=v[a+4>>2];h=w[e+b|0];if(!h){v[a+8>>2]=b+1;v[d+16>>2]=b;h=6;v[d>>2]=6;continue}v[d+168>>2]=0;v[d>>2]=2;h=(h<<2)+4|0;v[d+172>>2]=h;v[d+64>>2]=h;g=0}e=b+e|0;c=c-b|0;b=h-g|0;b=b>>>0>c>>>0?c:b;W((g+n|0)+8|0,e,b);v[a+8>>2]=b+v[a+8>>2];c=0;e=b+v[d+168>>2]|0;b=v[d+172>>2];v[d+168>>2]=(b|0)==(e|0)?0:e;if((b|0)!=(e|0)){break b}b=e-4|0;v[d+172>>2]=b;c=Y(p,b,0);q=v[d+172>>2];b=q+d|0;if((c|0)!=(w[b+176|0]|w[b+177|0]<<8|(w[b+178|0]<<16|w[b+179|0]<<24))){c=7;break b}v[d+168>>2]=2;m=t[d+177|0];if(m&63){c=6;break b}b=2;o=-1;l=-1;g=-1;f=-1;if(!(m&64)){break f}h=v[d+4>>2];if(!h){v[d+8>>2]=0;v[d+12>>2]=0}j=q>>>0>2?q:2;while(1){if((b|0)==(j|0)){c=7;break b}r=w[(b+n|0)+8|0];b=b+1|0;v[d+168>>2]=b;e=d;k=v[d+12>>2];g=r&127;c=h;i=c&31;if((c&63)>>>0>=32){f=g<>>32-i;c=g<>2];c=f|k;f=c;v[e+8>>2]=g;v[e+12>>2]=c;if(!(r&128)){if(!(!h|r)){c=7;break b}v[d+4>>2]=0;break f}c=7;h=h+7|0;v[d+4>>2]=h;if((h|0)!=63){continue}break}break b}n=d+144|0;n:{while(1){c=v[a+12>>2];l=v[a+4>>2];h=v[d+4>>2];if(!h){v[d+8>>2]=0;v[d+12>>2]=0}b=v[a+8>>2];j=b>>>0>c>>>0?b:c;o:{while(1){p:{if((b|0)==(j|0)){c=0;b=j;break p}m=w[b+l|0];b=b+1|0;v[a+8>>2]=b;k=d;f=v[d+12>>2];g=m&127;c=h;p=c&31;if((c&63)>>>0>=32){e=g<>>32-p;c=g<>2];c=e|f;f=c;v[k+8>>2]=g;v[k+12>>2]=c;if(!(m&128)){if(!h|m){break o}c=7;break p}c=7;h=h+7|0;v[d+4>>2]=h;if((h|0)!=63){continue}}break}e=v[d+132>>2];g=v[d+16>>2];f=b-g|0;b=f;k=b+v[d+128>>2]|0;v[d+128>>2]=k;v[d+132>>2]=b>>>0>k>>>0?e+1|0:e;v[d+24>>2]=Y(g+l|0,b,v[d+24>>2]);v[d+28>>2]=0;break n}v[d+4>>2]=0;q:{r:{switch(v[d+120>>2]){case 0:v[d+136>>2]=g;v[d+140>>2]=f;c=7;if((g|0)!=v[d+88>>2]|(f|0)!=v[d+92>>2]){break n}v[d+120>>2]=1;break q;case 2:f=f+v[d+156>>2]|0;c=g+v[d+152>>2]|0;f=c>>>0>>0?f+1|0:f;b=d;v[b+152>>2]=c;v[b+156>>2]=f;v[b+160>>2]=Y(n,24,v[b+160>>2]);v[b+120>>2]=1;b=v[b+136>>2];f=v[d+140>>2]-(b>>>0<1)|0;g=b-1|0;v[d+136>>2]=g;v[d+140>>2]=f;break q;case 1:v[d+120>>2]=2;f=f+v[d+148>>2]|0;c=g+v[d+144>>2]|0;f=c>>>0>>0?f+1|0:f;b=d;v[b+144>>2]=c;v[b+148>>2]=f;break;default:break r}}g=v[d+136>>2];f=v[d+140>>2]}if(g|f){continue}break}c=1}if((c|0)!=1){break b}v[d>>2]=7}n=v[d+128>>2];b=v[a+8>>2];j=v[d+16>>2];c=b-j|0;e=n+c|0;s:{if(!(e&3)){break s}i=v[a+4>>2];if(v[a+12>>2]==(b|0)){e=b;break g}e=b+1|0;v[a+8>>2]=e;c=7;if(w[b+i|0]){break b}g=e-j|0;k=g+n|0;t:{if(!(k&3)){break t}i=v[a+4>>2];if(v[a+12>>2]==(e|0)){break g}f=b+2|0;v[a+8>>2]=f;if(w[e+i|0]){break b}g=f-j|0;k=g+n|0;if(!(k&3)){b=f;break s}i=v[a+4>>2];if((f|0)==v[a+12>>2]){e=f;break g}e=b+3|0;v[a+8>>2]=e;if(w[f+i|0]){break b}g=e-j|0;k=g+n|0;if(!(k&3)){break t}if(v[a+12>>2]==(e|0)){i=v[a+4>>2];break g}v[a+8>>2]=b+4;break b}b=e}ba(d,v[a+4>>2],b);c=7;if(fa(x,d+144|0,24)){break b}v[d>>2]=8}b=v[a+8>>2];k=v[a+12>>2];u:{while(1){f=0;if((b|0)==(k|0)){break u}g=v[d+24>>2];e=v[d+28>>2];h=v[d+4>>2];c=b+1|0;v[a+8>>2]=c;l=w[v[a+4>>2]+b|0];b=h;j=b&31;f=7;if((l|0)!=(((b&63)>>>0>=32?e>>>j|0:((1<>>j)&255)){break u}e=h+8|0;v[d+4>>2]=e;b=c;if(e>>>0<32){continue}break}v[d+4>>2]=0;v[d+24>>2]=0;v[d+28>>2]=0;f=1}c=f;if((c|0)!=1){break b}v[d>>2]=9;v[d+172>>2]=12}c=0;f=v[a+8>>2];h=v[a+12>>2]-f|0;e=v[d+168>>2];b=v[d+172>>2]-e|0;b=b>>>0>h>>>0?h:b;W((d+e|0)+176|0,f+v[a+4>>2]|0,b);v[a+8>>2]=b+v[a+8>>2];b=b+v[d+168>>2]|0;e=(b|0)==v[d+172>>2];v[d+168>>2]=e?0:b;if(!e){break b}b=7;v:{if((w[d+186|0]|w[d+187|0]<<8)!=23129){break v}if((Y(d+180|0,6,0)|0)!=(w[d+176|0]|w[d+177|0]<<8|(w[d+178|0]<<16|w[d+179|0]<<24))){break v}e=v[d+132>>2];f=e>>>2|0;if(w[d+184|0]|((w[d+180|0]|w[d+181|0]<<8|(w[d+182|0]<<16|w[d+183|0]<<24))!=((e&3)<<30|v[d+128>>2]>>>2)|f)){break v}b=v[d+32>>2]==w[d+185|0]?1:7}c=b;break b}ba(d,i,e);c=0;break b}v[d+48>>2]=g;v[d+52>>2]=f;if((m|0)<=-1){h=v[d+4>>2];if(!h){v[d+8>>2]=0;v[d+12>>2]=0}k=b>>>0>q>>>0?b:q;while(1){if((b|0)==(k|0)){c=7;break b}m=w[(b+n|0)+8|0];b=b+1|0;v[d+168>>2]=b;f=d;g=v[d+12>>2];j=m&127;c=h;l=c&31;if((c&63)>>>0>=32){e=j<>>32-l;c=j<>2];c=e|g;l=c;v[f+8>>2]=o;v[f+12>>2]=c;w:{if(!(m&128)){if(!h|m){break w}c=7;break b}c=7;h=h+7|0;v[d+4>>2]=h;if((h|0)!=63){continue}break b}break}v[d+4>>2]=0}v[d+56>>2]=o;v[d+60>>2]=l;if(q-b>>>0<2){c=7;break b}c=b+1|0;v[d+168>>2]=c;if(w[(b+n|0)+8|0]!=33){c=6;break b}h=b+2|0;v[d+168>>2]=h;if(w[(c+n|0)+8|0]!=1){c=6;break b}c=7;if((h|0)==(q|0)){break b}v[d+168>>2]=b+3;f=v[d+1200>>2];e=6;b=w[(h+n|0)+8|0];x:{if(b>>>0>39){break x}h=(b&1|2)<<(b>>>1|0)+11;v[f+48>>2]=h;y:{z:{b=v[f+60>>2];if(!b){break z}e=4;if(h>>>0>y[f+52>>2]){break x}v[f+44>>2]=h;if((b|0)!=2){break z}c=f+56|0;if(h>>>0<=y[c>>2]){break z}X(v[f+24>>2]);b=Z(v[f+48>>2]);v[f+24>>2]=b;if(b){break z}e=3;break y}v[f+64>>2]=0;t[f+80|0]=1;v[f+104>>2]=0;c=f+28388|0;e=0}v[c>>2]=0}c=e;if(c){break b}b=v[d+168>>2];c=v[d+172>>2];h=b>>>0>c>>>0?b:c;A:{while(1){if((b|0)==(h|0)){break A}c=b+1|0;v[d+168>>2]=c;e=b+n|0;b=c;if(!w[e+8|0]){continue}break}c=6;break b}v[d+168>>2]=0;v[d+80>>2]=0;v[d+84>>2]=0;v[d+72>>2]=0;v[d+76>>2]=0;v[d>>2]=3}v[d+16>>2]=v[a+8>>2];v[d+20>>2]=v[a+20>>2];c=v[d+1200>>2];h=c+28392|0;o=c+120|0;r=c+28388|0;B:{while(1){f=v[c+64>>2];C:{D:{E:{F:{G:{H:{I:{J:{K:{L:{M:{N:{O:{P:{Q:{b=v[a+8>>2];e=v[a+12>>2];if(b>>>0>=e>>>0){if((f|0)==7){break Q}f=0;break B}switch(f|0){case 8:break H;case 6:break J;case 5:break K;case 4:break L;case 3:break M;case 2:break N;case 1:break O;case 0:break P;case 7:break Q;default:continue}}i=v[c+76>>2];break I}f=1;v[a+8>>2]=b+1;g=w[v[a+4>>2]+b|0];if(!g){break G}if(!((g|0)!=1?g>>>0<=223:0)){u[c+80>>1]=256;if(!v[c+60>>2]){b=v[a+20>>2];v[c+24>>2]=b+v[a+16>>2];v[c+44>>2]=v[a+24>>2]-b}v[c+28>>2]=0;v[c+32>>2]=0;v[c+36>>2]=0;v[c+40>>2]=0;break E}if(!w[c+80|0]){break E}f=7;break B}v[a+8>>2]=b+1;b=w[v[a+4>>2]+b|0];v[c+64>>2]=2;v[c+72>>2]=v[c+72>>2]+(b<<8);continue}v[a+8>>2]=b+1;b=w[v[a+4>>2]+b|0];v[c+64>>2]=3;v[c+72>>2]=(b+v[c+72>>2]|0)+1;continue}v[a+8>>2]=b+1;b=w[v[a+4>>2]+b|0];v[c+64>>2]=4;v[c+76>>2]=b<<8;continue}v[a+8>>2]=b+1;b=w[v[a+4>>2]+b|0];v[c+64>>2]=v[c+68>>2];v[c+76>>2]=(b+v[c+76>>2]|0)+1;continue}v[a+8>>2]=b+1;f=7;b=w[v[a+4>>2]+b|0];if(b>>>0>224){break G}i=0;e=c;if(b>>>0<45){j=0}else{b=b-45|0;g=((b&255)>>>0)/45|0;b=b-B(g,45)|0;j=g+1|0}v[e+116>>2]=-1<>>0>=9){b=b-9|0;e=((b&255)>>>0)/9|0;i=e+1|0;b=b-B(e,9)|0}v[c+112>>2]=i;b=b&255;v[c+108>>2]=b;if(b+i>>>0>4){break G}v[c+112>>2]=-1<>2]=0;v[c+92>>2]=0;v[c+96>>2]=0;v[c+84>>2]=0;v[c+88>>2]=0;while(1){e=b<<1;u[e+o>>1]=1024;u[(e|2)+o>>1]=1024;b=b+2|0;if((b|0)!=14134){continue}break}v[c+64>>2]=6;v[c+8>>2]=5;v[c>>2]=-1;v[c+4>>2]=0}k=v[c+76>>2];f=7;if(k>>>0<5){break B}i=v[c+8>>2];if(i){b=v[a+8>>2];g=v[a+12>>2];while(1){f=0;if((b|0)==(g|0)){break B}f=v[c+4>>2];e=b+1|0;v[a+8>>2]=e;b=w[v[a+4>>2]+b|0];i=i-1|0;v[c+8>>2]=i;v[c+4>>2]=b|f<<8;b=e;if(i){continue}break}}v[c+64>>2]=7;i=k-5|0;v[c+76>>2]=i}f=v[c+32>>2];e=v[a+24>>2]-v[a+20>>2]|0;b=v[c+72>>2];e=b>>>0>e>>>0?e:b;b=v[c+44>>2];v[c+40>>2]=e>>>0>>0?f+e|0:b;f=v[a+12>>2];e=v[a+8>>2];b=f-e|0;g=v[c+28388>>2];R:{S:{if(!g){if(i){break S}i=0}j=(g+r|0)+4|0;k=v[a+4>>2]+e|0;f=i-g|0;e=42-g|0;e=e>>>0>f>>>0?f:e;g=b>>>0>>0?b:e;W(j,k,g);b=v[c+28388>>2];e=b+g|0;T:{if((e|0)==v[c+76>>2]){_((g+(b+r|0)|0)+4|0,63-e|0);b=g+v[c+28388>>2]|0;break T}if(e>>>0<=20){v[c+28388>>2]=e;v[a+8>>2]=g+v[a+8>>2];break R}b=e-21|0}v[c+16>>2]=0;v[c+12>>2]=h;v[c+20>>2]=b;f=7;if(!da(c)){break G}b=v[c+28388>>2];e=b+g|0;g=v[c+16>>2];if(e>>>0>>0){break G}i=v[c+76>>2]-g|0;v[c+76>>2]=i;if(b>>>0>g>>>0){b=b-g|0;v[c+28388>>2]=b;e=h;i=(g+r|0)+4|0;U:{if((e|0)==(i|0)){break U}f=b+e|0;if(i-f>>>0<=0-(b<<1)>>>0){W(e,i,b);break U}g=(e^i)&3;V:{W:{if(e>>>0>>0){if(g){break V}if(!(e&3)){break W}while(1){if(!b){break U}t[e|0]=w[i|0];i=i+1|0;b=b-1|0;e=e+1|0;if(e&3){continue}break}break W}X:{if(g){break X}if(f&3){while(1){if(!b){break U}b=b-1|0;f=e+b|0;t[f|0]=w[b+i|0];if(f&3){continue}break}}if(b>>>0<=3){break X}while(1){b=b-4|0;v[e+b>>2]=v[b+i>>2];if(b>>>0>3){continue}break}}if(!b){break U}while(1){b=b-1|0;t[e+b|0]=w[b+i|0];if(b){continue}break}break U}if(b>>>0<=3){break V}while(1){v[e>>2]=v[i>>2];i=i+4|0;e=e+4|0;b=b-4|0;if(b>>>0>3){continue}break}}if(!b){break U}while(1){t[e|0]=w[i|0];e=e+1|0;i=i+1|0;b=b-1|0;if(b){continue}break}}break R}e=v[a+8>>2]+(g-b|0)|0;v[a+8>>2]=e;v[c+28388>>2]=0;f=v[a+12>>2];b=f-e|0}if(b>>>0>=21){g=v[a+4>>2];v[c+16>>2]=e;v[c+12>>2]=g;v[c+20>>2]=i+21>>>0>b>>>0?f-21|0:e+i|0;f=7;if(!da(c)){break G}g=v[c+76>>2];e=v[c+16>>2];b=e-v[a+8>>2]|0;if(g>>>0>>0){break G}i=g-b|0;v[c+76>>2]=i;v[a+8>>2]=e;b=v[a+12>>2]-e|0;if(b>>>0>20){break R}}b=b>>>0>i>>>0?i:b;W(h,v[a+4>>2]+e|0,b);v[c+28388>>2]=b;v[a+8>>2]=b+v[a+8>>2]}e=v[c+32>>2];f=v[c+28>>2];g=e-f|0;b=c;if(v[b+60>>2]){if((e|0)==v[c+44>>2]){v[c+32>>2]=0}W(v[a+16>>2]+v[a+20>>2]|0,f+v[c+24>>2]|0,g);e=v[c+32>>2]}v[b+28>>2]=e;e=g+v[a+20>>2]|0;v[a+20>>2]=e;b=v[c+72>>2]-g|0;v[c+72>>2]=b;if(!b){f=7;if(v[c+4>>2]|(v[c+76>>2]|v[c+104>>2])){break G}v[c+64>>2]=0;break D}f=0;if((e|0)==v[a+24>>2]){break G}if(v[a+8>>2]!=v[a+12>>2]|y[c+28388>>2]>=y[c+76>>2]){continue}break G}i=v[c+76>>2];if(!i){break F}f=0;if(b>>>0>=e>>>0){break G}while(1){m=v[a+24>>2];l=v[a+20>>2];if(m>>>0<=l>>>0){break G}j=v[c+32>>2];k=v[c+44>>2]-j|0;g=e-b|0;e=m-l|0;e=e>>>0>g>>>0?g:e;e=e>>>0>k>>>0?k:e;g=e>>>0>i>>>0?i:e;v[c+76>>2]=i-g;W(v[c+24>>2]+j|0,v[a+4>>2]+b|0,g);e=g+v[c+32>>2]|0;v[c+32>>2]=e;if(e>>>0>y[c+36>>2]){v[c+36>>2]=e}b=c;if(v[b+60>>2]){if((e|0)==v[c+44>>2]){v[c+32>>2]=0}W(v[a+16>>2]+v[a+20>>2]|0,v[a+4>>2]+v[a+8>>2]|0,g);e=v[c+32>>2]}v[b+28>>2]=e;v[a+20>>2]=g+v[a+20>>2];b=g+v[a+8>>2]|0;v[a+8>>2]=b;i=v[c+76>>2];if(!i){break F}e=v[a+12>>2];if(e>>>0>b>>>0){continue}break}}break B}v[c+64>>2]=0;continue}if(g<<24>>24>-1){break C}v[c+64>>2]=1;v[c+72>>2]=g<<16&2031616;if(g>>>0>=192){v[c+68>>2]=5;t[c+81|0]=0;continue}f=7;if(w[c+81|0]){break B}v[c+68>>2]=6;if(g>>>0<160){continue}v[c+84>>2]=0;v[c+88>>2]=0;b=0;v[c+100>>2]=0;v[c+92>>2]=0;v[c+96>>2]=0;while(1){e=b<<1;u[e+o>>1]=1024;u[(e|2)+o>>1]=1024;b=b+2|0;if((b|0)!=14134){continue}break}}v[c+8>>2]=5;v[c>>2]=-1;v[c+4>>2]=0;continue}if(g>>>0<=2){v[c+64>>2]=3;v[c+68>>2]=8;continue}break}f=7}c=f;b=d;e=v[b+76>>2];h=v[a+8>>2]-v[b+16>>2]|0;f=h+v[b+72>>2]|0;k=f;e=f>>>0>>0?e+1|0:e;h=e;v[b+72>>2]=f;v[b+76>>2]=e;l=v[b+20>>2];j=v[a+20>>2]-l|0;b=j;g=b+v[d+80>>2]|0;f=v[d+84>>2];f=b>>>0>g>>>0?f+1|0:f;v[d+80>>2]=g;b=f;v[d+84>>2]=b;e=v[d+52>>2];if((h|0)==(e|0)&k>>>0>y[d+48>>2]|e>>>0>>0){c=7;break b}e=v[d+60>>2];if((b|0)==(e|0)&g>>>0>y[d+56>>2]|b>>>0>e>>>0){c=7;break b}k=d;Y:{Z:{_:{switch(v[d+32>>2]-1|0){case 0:e=Y(l+v[a+16>>2]|0,j,v[d+24>>2]);b=0;break Z;case 3:break _;default:break Y}}h=l+v[a+16>>2]|0;g=v[d+24>>2]^-1;f=v[d+28>>2]^-1;$:{if(!j){break $}if(j&1){e=((w[h|0]^g&255)<<3)+2064|0;b=v[e>>2];l=v[e+4>>2];e=b;b=f;f=b>>>8|0;g=e^((b&255)<<24|g>>>8);f=f^l;h=h+1|0;e=j-1|0}else{e=j}if((j|0)==1){break $}while(1){j=((w[h|0]^g&255)<<3)+2064|0;b=v[j>>2];m=v[j+4>>2];j=b;b=f;f=b>>>8|0;l=j^((b&255)<<24|g>>>8);g=((w[h+1|0]^l&255)<<3)+2064|0;b=v[g>>2];j=v[g+4>>2];g=f^m;f=g>>>8|0;g=((g&255)<<24|l>>>8)^b;f=f^j;h=h+2|0;e=e-2|0;if(e){continue}break}}e=g^-1;b=f^-1}v[k+24>>2]=e;v[k+28>>2]=b}if((c|0)!=1){break b}e=v[d+52>>2];c=e;b=v[d+48>>2];if(!((b|0)==-1&(c|0)==-1|v[d+72>>2]==(b|0)&v[d+76>>2]==(c|0))){c=7;break b}c=v[d+60>>2];e=c;b=v[d+56>>2];if((b|0)!=-1|(c|0)!=-1){c=7;if(v[d+80>>2]!=(b|0)|v[d+84>>2]!=(e|0)){break b}}c=v[d+100>>2];b=v[d+64>>2];e=b+v[d+72>>2]|0;f=v[d+76>>2];f=b>>>0>e>>>0?f+1|0:f;b=e;g=b+v[d+96>>2]|0;e=c+f|0;c=g;e=b>>>0>c>>>0?e+1|0:e;b=e;v[d+96>>2]=c;v[d+100>>2]=b;g=4;aa:{switch(v[d+32>>2]-1|0){case 3:g=8;case 0:h=c+g|0;f=h>>>0>>0?b+1|0:b;e=x;v[e>>2]=h;v[e+4>>2]=f;break;default:break aa}}e=v[d+108>>2]+v[d+84>>2]|0;c=v[d+80>>2];h=c+v[d+104>>2]|0;v[d+104>>2]=h;v[d+108>>2]=c>>>0>h>>>0?e+1|0:e;v[d+112>>2]=Y(x,24,v[d+112>>2]);v[d>>2]=4;f=v[d+92>>2];c=v[d+88>>2]+1|0;f=c>>>0<1?f+1|0:f;b=d;v[b+88>>2]=c;v[b+92>>2]=f}b=v[d+76>>2];l=v[d+72>>2];ba:{if(!(l&3)){break ba}c=0;m=v[a+8>>2];j=v[a+12>>2];if((m|0)==(j|0)){break b}g=m+1|0;v[a+8>>2]=g;if(w[m+v[a+4>>2]|0]){c=7;break b}h=l+1|0;f=h>>>0<1?b+1|0:b;v[d+72>>2]=h;v[d+76>>2]=f;if(!(h&3)){break ba}if((g|0)==(j|0)){break b}k=m+2|0;v[a+8>>2]=k;if(w[g+v[a+4>>2]|0]){c=7;break b}f=l+2|0;e=f>>>0<2?b+1|0:b;h=d;v[d+72>>2]=f;v[d+76>>2]=e;if(!(f&3)){break ba}if((j|0)==(k|0)){break b}g=m+3|0;v[a+8>>2]=g;if(w[k+v[a+4>>2]|0]){c=7;break b}f=l+3|0;e=f>>>0<3?b+1|0:b;v[d+72>>2]=f;v[h+76>>2]=e;if(!(f&3)){break ba}if((g|0)==(j|0)){break b}v[a+8>>2]=m+4;c=7;if(w[g+v[a+4>>2]|0]){break b}f=b;b=l+4|0;f=b>>>0<4?f+1|0:f;v[d+72>>2]=b;v[d+76>>2]=f}v[d>>2]=5}h=1;ca:{da:{ea:{switch(v[d+32>>2]-1|0){case 0:b=v[a+8>>2];k=v[a+12>>2];while(1){if((b|0)==(k|0)){c=0;break b}g=v[d+24>>2];e=v[d+28>>2];f=v[d+4>>2];c=b+1|0;v[a+8>>2]=c;l=w[v[a+4>>2]+b|0];b=f;j=b&31;if((l|0)!=(((b&63)>>>0>=32?e>>>j|0:((1<>>j)&255)){c=7;break b}e=f+8|0;v[d+4>>2]=e;b=c;if(e>>>0<32){continue}break};break da;case 3:break ea;default:break ca}}b=v[a+8>>2];k=v[a+12>>2];while(1){if((b|0)==(k|0)){c=0;break b}g=v[d+24>>2];e=v[d+28>>2];f=v[d+4>>2];c=b+1|0;v[a+8>>2]=c;l=w[v[a+4>>2]+b|0];b=f;j=b&31;if((l|0)!=(((b&63)>>>0>=32?e>>>j|0:((1<>>j)&255)){c=7;break b}e=f+8|0;v[d+4>>2]=e;b=c;if(e>>>0<64){continue}break}}v[d+4>>2]=0;v[d+24>>2]=0;v[d+28>>2]=0}v[d>>2]=1;continue}break}fa:{if(!v[d+36>>2]){ga:{switch(c|0){case 0:c=v[a+8>>2]==v[a+12>>2]?7:8;break;case 1:break fa;default:break ga}}v[a+20>>2]=z;v[a+8>>2]=s;break fa}if(!(v[a+8>>2]!=(s|0)|c|v[a+20>>2]!=(z|0))){a=w[d+40|0];t[d+40|0]=1;c=a<<3;break fa}t[d+40|0]=0}return c|0}function da(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=v[a+32>>2];b=v[a+40>>2];a:{if(j>>>0>=b>>>0){break a}c=v[a+104>>2];if(!c){break a}d=v[a+84>>2];if(d>>>0>=y[a+36>>2]|d>>>0>=y[a+48>>2]){break a}b=b-j|0;g=b>>>0>>0?b:c;v[a+104>>2]=c-g;e=(d^-1)+j|0;e=d>>>0>=j>>>0?v[a+44>>2]+e|0:e;d=v[a+24>>2];b=w[e+d|0];v[a+32>>2]=j+1;t[d+j|0]=b;h=g-1|0;b:{if(!h){break b}if(h&1){b=e+1|0;e=(b|0)==v[a+44>>2]?0:b;c=v[a+24>>2];d=w[e+c|0];b=v[a+32>>2];v[a+32>>2]=b+1;t[b+c|0]=d;h=g-2|0}if((g|0)==2){break b}while(1){g=v[a+24>>2];b=e+1|0;c=(b|0)==v[a+44>>2]?0:b;d=w[g+c|0];b=v[a+32>>2];v[a+32>>2]=b+1;t[b+g|0]=d;b=c+1|0;e=(b|0)==v[a+44>>2]?0:b;c=v[a+24>>2];d=w[e+c|0];b=v[a+32>>2];v[a+32>>2]=b+1;t[b+c|0]=d;h=h-2|0;if(h){continue}break}}j=v[a+32>>2];if(j>>>0<=y[a+36>>2]){break a}v[a+36>>2]=j}c:{d:{if(y[a+40>>2]<=j>>>0){break d}n=a+1756|0;o=a+2784|0;p=a+84|0;while(1){d=v[a+16>>2];if(d>>>0>y[a+20>>2]){break d}m=v[a+100>>2];i=v[a+116>>2]&j;k=((m<<5)+a|0)+(i<<1)|0;g=k;f=v[a>>2];e:{if(f>>>0>=16777216){e=v[a+4>>2];break e}f=f<<8;v[a>>2]=f;b=d+1|0;v[a+16>>2]=b;e=w[v[a+12>>2]+d|0]|v[a+4>>2]<<8;v[a+4>>2]=e;d=b}b=x[g+120>>1];c=B(b,f>>>11|0);f:{if(e>>>0>>0){v[a>>2]=c;u[g+120>>1]=b+(2048-b>>>5|0);f=j-1|0;f=j?f:v[a+44>>2]+f|0;i=v[a+108>>2];g=v[a+36>>2];l=((v[a+112>>2]&j)<>2]+f|0]:0)>>>8-i|0)|0;f=1;g:{if(m>>>0<=6){while(1){f=f<<1;g=(f+(B(l,1536)+a|0)|0)+3812|0;h:{if(c>>>0>16777215){b=c;break h}b=c<<8;v[a>>2]=b;c=d+1|0;v[a+16>>2]=c;e=w[v[a+12>>2]+d|0]|e<<8;v[a+4>>2]=e;d=c}i=x[g>>1];c=B(i,b>>>11|0);i:{if(e>>>0>=c>>>0){e=e-c|0;v[a+4>>2]=e;c=b-c|0;v[a>>2]=c;u[g>>1]=i-(i>>>5|0);f=f|1;break i}v[a>>2]=c;u[g>>1]=i+(2048-i>>>5|0)}if(f>>>0<256){continue}break g}}b=v[a+84>>2];f=(b^-1)+j|0;f=b>>>0>=j>>>0?v[a+44>>2]+f|0:f;g=g?w[v[a+24>>2]+f|0]:0;f=1;h=256;while(1){g=g<<1;m=h&g;i=((B(l,1536)+a|0)+((m+h|0)+f<<1)|0)+3812|0;j:{if(c>>>0>16777215){k=c;break j}k=c<<8;v[a>>2]=k;b=d+1|0;v[a+16>>2]=b;e=w[v[a+12>>2]+d|0]|e<<8;v[a+4>>2]=e;d=b}b=i;q=b;b=x[b>>1];c=B(b,k>>>11|0);i=e>>>0>=c>>>0;k:{if(!i){v[a>>2]=c;b=b+(2048-b>>>5|0)|0;break k}e=e-c|0;v[a+4>>2]=e;c=k-c|0;v[a>>2]=c;h=0;b=b-(b>>>5|0)|0}u[q>>1]=b;h=h^m;f=i|f<<1;if(f>>>0<256){continue}break}}v[a+32>>2]=j+1;t[v[a+24>>2]+j|0]=f;j=v[a+32>>2];if(j>>>0>y[a+36>>2]){v[a+36>>2]=j}b=a;d=v[a+100>>2];if(d>>>0>=4){if(d>>>0<=9){v[a+100>>2]=d-3;break f}c=d-6|0}else{c=0}v[b+100>>2]=c;break f}e=e-c|0;v[a+4>>2]=e;c=f-c|0;v[a>>2]=c;u[g+120>>1]=b-(b>>>5|0);l=(m<<1)+a|0;g=l;l:{if(c>>>0>16777215){b=d;break l}c=c<<8;v[a>>2]=c;b=d+1|0;v[a+16>>2]=b;e=w[v[a+12>>2]+d|0]|e<<8;v[a+4>>2]=e}m=x[g+504>>1];d=B(m,c>>>11|0);m:{if(d>>>0<=e>>>0){e=e-d|0;v[a+4>>2]=e;c=c-d|0;v[a>>2]=c;u[g+504>>1]=m-(m>>>5|0);n:{if(c>>>0>16777215){g=b;break n}c=c<<8;v[a>>2]=c;g=b+1|0;v[a+16>>2]=g;e=w[v[a+12>>2]+b|0]|e<<8;v[a+4>>2]=e}b=x[l+528>>1];f=B(b,c>>>11|0);o:{if(f>>>0>e>>>0){u[l+528>>1]=b+(2048-b>>>5|0);if(f>>>0<=16777215){f=f<<8;v[a>>2]=f;v[a+16>>2]=g+1;e=w[v[a+12>>2]+g|0]|e<<8;v[a+4>>2]=e}d=x[k+600>>1];b=B(d,f>>>11|0);if(b>>>0<=e>>>0){v[a+4>>2]=e-b;v[a>>2]=f-b;u[k+600>>1]=d-(d>>>5|0);break o}v[a>>2]=b;u[k+600>>1]=d+(2048-d>>>5|0);v[a+104>>2]=1;v[a+100>>2]=y[a+100>>2]<7?9:11;break m}e=e-f|0;v[a+4>>2]=e;u[l+528>>1]=b-(b>>>5|0);c=c-f|0;p:{if(c>>>0>16777215){b=g;break p}c=c<<8;v[a>>2]=c;b=g+1|0;v[a+16>>2]=b;e=w[v[a+12>>2]+g|0]|e<<8;v[a+4>>2]=e}g=x[l+552>>1];d=B(g,c>>>11|0);q:{if(d>>>0>e>>>0){v[a>>2]=d;u[l+552>>1]=g+(2048-g>>>5|0);c=v[a+88>>2];break q}e=e-d|0;v[a+4>>2]=e;u[l+552>>1]=g-(g>>>5|0);c=c-d|0;if(c>>>0<=16777215){c=c<<8;v[a>>2]=c;v[a+16>>2]=b+1;e=w[v[a+12>>2]+b|0]|e<<8;v[a+4>>2]=e}d=x[l+576>>1];b=B(d,c>>>11|0);r:{if(b>>>0>e>>>0){v[a>>2]=b;u[l+576>>1]=d+(2048-d>>>5|0);c=v[a+92>>2];break r}v[a+4>>2]=e-b;v[a>>2]=c-b;u[l+576>>1]=d-(d>>>5|0);c=v[a+96>>2];v[a+96>>2]=v[a+92>>2]}v[a+92>>2]=v[a+88>>2]}v[a+88>>2]=v[a+84>>2];v[a+84>>2]=c}v[a+100>>2]=y[a+100>>2]<7?8:11;ca(a,o,i);break m}v[a>>2]=d;u[g+504>>1]=m+(2048-m>>>5|0);v[a+96>>2]=v[a+92>>2];b=v[a+88>>2];v[a+88>>2]=v[a+84>>2];v[a+92>>2]=b;v[a+100>>2]=y[a+100>>2]<7?7:10;ca(a,n,i);b=v[a+104>>2];d=b>>>0<6?b-2|0:3;c=v[a>>2];e=1;while(1){e=e<<1;g=e+((d<<7)+a|0)|0;s:{if(c>>>0>=16777216){f=v[a+4>>2];break s}c=c<<8;v[a>>2]=c;b=v[a+16>>2];v[a+16>>2]=b+1;f=w[b+v[a+12>>2]|0]|v[a+4>>2]<<8;v[a+4>>2]=f}i=x[g+984>>1];b=B(i,c>>>11|0);t:{if(b>>>0<=f>>>0){f=f-b|0;v[a+4>>2]=f;c=c-b|0;v[a>>2]=c;u[g+984>>1]=i-(i>>>5|0);e=e|1;break t}v[a>>2]=b;u[g+984>>1]=i+(2048-i>>>5|0);c=b}if(e>>>0<64){continue}break}d=e+-64|0;if(d>>>0<=3){v[a+84>>2]=d;break m}h=e&1|2;v[a+84>>2]=h;b=d>>>1|0;if(d>>>0<=13){i=b-1|0;k=h<>2]=k;h=1;g=(((k<<1)+p|0)+(0-e<<1)|0)+1538|0;l=0;while(1){h=h<<1;m=g+h|0;u:{if(c>>>0>16777215){b=c;break u}b=c<<8;v[a>>2]=b;d=v[a+16>>2];v[a+16>>2]=d+1;f=w[d+v[a+12>>2]|0]|f<<8;v[a+4>>2]=f}d=x[m>>1];c=B(d,b>>>11|0);v:{if(f>>>0>=c>>>0){f=f-c|0;v[a+4>>2]=f;c=b-c|0;v[a>>2]=c;u[m>>1]=d-(d>>>5|0);k=(1<>2]=k;h=h|1;break v}v[a>>2]=c;u[m>>1]=d+(2048-d>>>5|0)}l=l+1|0;if((i|0)!=(l|0)){continue}break}break m}e=b-5|0;while(1){w:{if(c>>>0>16777215){d=c;break w}d=c<<8;v[a>>2]=d;b=v[a+16>>2];v[a+16>>2]=b+1;f=w[b+v[a+12>>2]|0]|f<<8}c=d>>>1|0;v[a>>2]=c;g=f-c|0;b=g>>31;h=b+(h<<1|1)|0;v[a+84>>2]=h;f=g+(b&c)|0;v[a+4>>2]=f;e=e-1|0;if(e){continue}break}h=h<<4;v[a+84>>2]=h;if(d>>>0<=33554431){c=c<<8;v[a>>2]=c;b=v[a+16>>2];v[a+16>>2]=b+1;f=w[b+v[a+12>>2]|0]|f<<8;v[a+4>>2]=f}b=a;d=x[a+1726>>1];e=B(d,c>>>11|0);x:{if(f>>>0>=e>>>0){f=f-e|0;v[a+4>>2]=f;h=h|1;v[a+84>>2]=h;u[a+1726>>1]=d-(d>>>5|0);e=c-e|0;c=3;break x}u[a+1726>>1]=d+(2048-d>>>5|0);c=2}d=c<<1;g=(b+d|0)+1724|0;if(e>>>0<=16777215){e=e<<8;v[a>>2]=e;b=v[a+16>>2];v[a+16>>2]=b+1;f=w[b+v[a+12>>2]|0]|f<<8;v[a+4>>2]=f}b=x[g>>1];c=B(b,e>>>11|0);y:{if(f>>>0>=c>>>0){f=f-c|0;v[a+4>>2]=f;u[g>>1]=b-(b>>>5|0);h=h+2|0;v[a+84>>2]=h;c=e-c|0;d=d|1;break y}u[g>>1]=b+(2048-b>>>5|0)}d=d<<1;g=(d+a|0)+1724|0;if(c>>>0<=16777215){c=c<<8;v[a>>2]=c;b=v[a+16>>2];v[a+16>>2]=b+1;f=w[b+v[a+12>>2]|0]|f<<8;v[a+4>>2]=f}b=x[g>>1];e=B(b,c>>>11|0);z:{if(f>>>0>=e>>>0){f=f-e|0;v[a+4>>2]=f;u[g>>1]=b-(b>>>5|0);h=h+4|0;v[a+84>>2]=h;e=c-e|0;d=d|1;break z}u[g>>1]=b+(2048-b>>>5|0)}if(e>>>0<=16777215){e=e<<8;v[a>>2]=e;b=v[a+16>>2];v[a+16>>2]=b+1;f=w[b+v[a+12>>2]|0]|f<<8;v[a+4>>2]=f}b=((d<<1)+a|0)+1724|0;c=x[b>>1];d=B(c,e>>>11|0);if(d>>>0<=f>>>0){v[a+4>>2]=f-d;v[a>>2]=e-d;u[b>>1]=c-(c>>>5|0);v[a+84>>2]=h+8;break m}v[a>>2]=d;u[b>>1]=c+(2048-c>>>5|0)}c=0;g=v[a+84>>2];if(g>>>0>=y[a+36>>2]|g>>>0>=y[a+48>>2]){break c}k=v[a+32>>2];b=v[a+40>>2]-k|0;d=v[a+104>>2];i=b>>>0>>0?b:d;v[a+104>>2]=d-i;c=k+(g^-1)|0;c=g>>>0>=k>>>0?v[a+44>>2]+c|0:c;d=v[a+24>>2];b=w[c+d|0];v[a+32>>2]=k+1;t[d+k|0]=b;f=i-1|0;A:{if(!f){break A}if(f&1){b=c+1|0;c=(b|0)==v[a+44>>2]?0:b;g=v[a+24>>2];d=w[c+g|0];b=v[a+32>>2];v[a+32>>2]=b+1;t[b+g|0]=d;f=i-2|0}if((i|0)==2){break A}while(1){g=v[a+24>>2];b=c+1|0;c=(b|0)==v[a+44>>2]?0:b;d=w[g+c|0];b=v[a+32>>2];v[a+32>>2]=b+1;t[b+g|0]=d;b=c+1|0;c=(b|0)==v[a+44>>2]?0:b;g=v[a+24>>2];d=w[c+g|0];b=v[a+32>>2];v[a+32>>2]=b+1;t[b+g|0]=d;f=f-2|0;if(f){continue}break}}j=v[a+32>>2];if(j>>>0<=y[a+36>>2]){break f}v[a+36>>2]=j}if(y[a+40>>2]>j>>>0){continue}break}}c=1;b=v[a>>2];if(b>>>0>16777215){break c}v[a>>2]=b<<8;b=v[a+16>>2];v[a+16>>2]=b+1;v[a+4>>2]=w[b+v[a+12>>2]|0]|v[a+4>>2]<<8}return c}function Z(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=8;a:{b:{if(a>>>0>4294967239){break b}while(1){k=k>>>0>8?k:8;g=v[1291];f=g;c=v[1290];b=c;a=a>>>0>8?a+3&-4:8;c:{if(a>>>0<=127){i=(a>>>3|0)-1|0;break c}d=E(a);i=((a>>>29-d^4)-(d<<2)|0)+110|0;if(a>>>0<=4095){break c}d=((a>>>30-d^2)-(d<<1)|0)+71|0;i=d>>>0<63?d:63}d=i;j=d&31;if((d&63)>>>0>=32){e=0;b=g>>>j|0}else{e=g>>>j|0;b=((1<>>j}d=e;if(b|e){while(1){g=b;e=d;d:{if(e|b){c=e-1|0;j=b-1|0;c=(j|0)!=-1?c+1|0:c;e=E(c^e);b=(e|0)==32?E(b^j)+32|0:e;e=63-b|0;Q=0-(b>>>0>63)|0;break d}Q=0;e=64}b=e;c=b&31;if((b&63)>>>0>=32){e=0;d=d>>>c|0}else{e=d>>>c|0;d=((1<>>c}l=d;d=e;i=b+i|0;g=i<<4;c=v[g+4136>>2];b=g+4128|0;e:{if((c|0)!=(b|0)){f=$(c,k,a);if(f){break b}e=v[c+4>>2];v[e+8>>2]=v[c+8>>2];v[v[c+8>>2]+4>>2]=e;v[c+8>>2]=b;e=g+4132|0;v[c+4>>2]=v[e>>2];v[e>>2]=c;v[v[c+4>>2]+8>>2]=c;i=i+1|0;b=(d&1)<<31|l>>>1;d=d>>>1|0;break e}j=v[1291];b=i;c=b&63;f=c&31;if(c>>>0>=32){g=0;e=-1>>>f|0}else{g=-1>>>f|0;e=(1<>>f}e=e&-2;f=c&31;if(c>>>0>=32){g=e<>>32-f|g<>>0>=32){g=-1<>>32-h|-1<>>0>=32){f=0;b=g>>>h|0}else{f=g>>>h|0;b=((1<>>h}b=b|c;Q=e|f;v[1290]=v[1290]&b;v[1291]=Q&j;b=l^1}if(b|d){continue}break}f=v[1291];c=v[1290]}f:{if(c|f){d=E(f);d=63-((d|0)==32?E(c)+32|0:d)<<4;g=d+4128|0;b=v[d+4136>>2];g:{if(!f&c>>>0<1073741824){break g}d=98;if((b|0)==(g|0)){break g}while(1){f=$(b,k,a);if(f){break b}b=v[b+8>>2];if((g|0)==(b|0)){break g}e=d;d=d-1|0;if(e){continue}break}}if(aa(a+48|0)){break f}if(!b|(b|0)==(g|0)){break a}while(1){f=$(b,k,a);if(f){break b}b=v[b+8>>2];if((g|0)!=(b|0)){continue}break}break a}if(!aa(a+48|0)){break a}}f=0;if(k-1&k){break b}if(a>>>0<=4294967239){continue}break}}return f}return 0}function W(a,b,c){var d=0,e=0;if(c>>>0>=512){O(a|0,b|0,c|0)|0;return}d=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if((c|0)<1){c=a;break b}c=a;while(1){t[c|0]=w[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}a=d&-4;c:{if(a>>>0<64){break c}e=a+-64|0;if(e>>>0>>0){break c}while(1){v[c>>2]=v[b>>2];v[c+4>>2]=v[b+4>>2];v[c+8>>2]=v[b+8>>2];v[c+12>>2]=v[b+12>>2];v[c+16>>2]=v[b+16>>2];v[c+20>>2]=v[b+20>>2];v[c+24>>2]=v[b+24>>2];v[c+28>>2]=v[b+28>>2];v[c+32>>2]=v[b+32>>2];v[c+36>>2]=v[b+36>>2];v[c+40>>2]=v[b+40>>2];v[c+44>>2]=v[b+44>>2];v[c+48>>2]=v[b+48>>2];v[c+52>>2]=v[b+52>>2];v[c+56>>2]=v[b+56>>2];v[c+60>>2]=v[b+60>>2];b=b- -64|0;c=c- -64|0;if(e>>>0>=c>>>0){continue}break}}if(a>>>0<=c>>>0){break a}while(1){v[c>>2]=v[b>>2];b=b+4|0;c=c+4|0;if(a>>>0>c>>>0){continue}break}break a}if(d>>>0<4){c=a;break a}e=d-4|0;if(e>>>0>>0){c=a;break a}c=a;while(1){t[c|0]=w[b|0];t[c+1|0]=w[b+1|0];t[c+2|0]=w[b+2|0];t[c+3|0]=w[b+3|0];b=b+4|0;c=c+4|0;if(e>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){t[c|0]=w[b|0];b=b+1|0;c=c+1|0;if((d|0)!=(c|0)){continue}break}}}function ca(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=v[a>>2];a:{if(g>>>0>=16777216){f=v[a+4>>2];break a}g=g<<8;v[a>>2]=g;d=v[a+16>>2];v[a+16>>2]=d+1;f=w[d+v[a+12>>2]|0]|v[a+4>>2]<<8;v[a+4>>2]=f}d=x[b>>1];e=B(d,g>>>11|0);b:{if(f>>>0>>0){u[b>>1]=d+(2048-d>>>5|0);j=((c<<4)+b|0)+4|0;i=2;d=8;break b}f=f-e|0;v[a+4>>2]=f;u[b>>1]=d-(d>>>5|0);g=g-e|0;if(g>>>0<=16777215){g=g<<8;v[a>>2]=g;d=v[a+16>>2];v[a+16>>2]=d+1;f=w[d+v[a+12>>2]|0]|f<<8;v[a+4>>2]=f}d=x[b+2>>1];e=B(d,g>>>11|0);if(f>>>0>>0){u[b+2>>1]=d+(2048-d>>>5|0);j=((c<<4)+b|0)+260|0;i=10;d=8;break b}f=f-e|0;v[a+4>>2]=f;u[b+2>>1]=d-(d>>>5|0);j=b+516|0;e=g-e|0;i=18;d=256}v[a+104>>2]=i;b=1;while(1){b=b<<1;g=j+b|0;c:{if(e>>>0>16777215){c=e;break c}c=e<<8;v[a>>2]=c;e=v[a+16>>2];v[a+16>>2]=e+1;f=w[e+v[a+12>>2]|0]|f<<8;v[a+4>>2]=f}h=x[g>>1];e=B(h,c>>>11|0);d:{if(f>>>0>=e>>>0){f=f-e|0;v[a+4>>2]=f;e=c-e|0;v[a>>2]=e;u[g>>1]=h-(h>>>5|0);b=b|1;break d}v[a>>2]=e;u[g>>1]=(2048-h>>>5|0)+h}if(b>>>0>>0){continue}break}v[a+104>>2]=(b-d|0)+i}function aa(a){var b=0,c=0,d=0,e=0,f=0,g=0;d=v[258];c=a+3&-4;b=d+c|0;a:{b:{if(b>>>0<=d>>>0?c:0){break b}if(b>>>0>S()<<16>>>0){if(!(P(b|0)|0)){break b}}v[258]=b;break a}v[1292]=48;d=-1}if((d|0)!=-1){c=a+d|0;b=c-16|0;v[b+12>>2]=16;v[b>>2]=16;a=v[1288];if(a){g=v[a+8>>2]}else{g=0}c:{d:{if((g|0)==(d|0)){e=d-(v[d-4>>2]&-2)|0;f=v[e-4>>2];v[a+8>>2]=c;a=e-(f&-2)|0;c=-16;if(!(t[(a+v[a>>2]|0)-4|0]&1)){break d}c=v[a+4>>2];v[c+8>>2]=v[a+8>>2];v[v[a+8>>2]+4>>2]=c;b=b-a|0;v[a>>2]=b;break c}v[d+12>>2]=16;v[d>>2]=16;v[d+8>>2]=c;v[d+4>>2]=a;v[1288]=d;c=16}a=d+c|0;b=b-a|0;v[a>>2]=b}v[((b&-4)+a|0)-4>>2]=b|1;g=a;e=v[a>>2]-8|0;e:{if(e>>>0<=127){b=(e>>>3|0)-1|0;break e}f=E(e);b=((e>>>29-f^4)-(f<<2)|0)+110|0;if(e>>>0<=4095){break e}b=((e>>>30-f^2)-(f<<1)|0)+71|0;b=b>>>0<63?b:63}c=b<<4;v[g+4>>2]=c+4128;c=c+4136|0;v[a+8>>2]=v[c>>2];v[c>>2]=a;v[v[a+8>>2]+4>>2]=a;c=v[1291];a=b&31;if((b&63)>>>0>=32){b=1<>>32-a;a=1<>>1|0;a=(a&1)<<31|h>>>1;c=a&1;d=0-c&-679014590;f=h&1;e=0-f&-679014590;b=b^0-((f|0)!=0)&-915646571;f=a^e;a=b>>>1|0;b=(b&1)<<31|f>>>1;a=a^0-((c|0)!=0)&-915646571;c=b^d;d=a>>>1|0;a=(a&1)<<31|c>>>1;c=a&1;b=b&1;e=0-b&-679014590;b=d^0-((b|0)!=0)&-915646571;d=a^e;a=b>>>1|0;b=(b&1)<<31|d>>>1;d=0-c&-679014590^b;c=a^0-((c|0)!=0)&-915646571;a=c>>>1|0;c=(c&1)<<31|d>>>1;d=c&1;f=0-d&-679014590;b=b&1;e=0-b&-679014590;a=a^0-((b|0)!=0)&-915646571;b=c^e;b=(a&1)<<31|b>>>1;c=0-((d|0)!=0)&-915646571^a>>>1;d=b^f;a=c>>>1|0;e=(i<<3)+2064|0;c=(c&1)<<31|d>>>1;d=c&1;b=b&1;c=c^0-b&-679014590;a=a^0-((b|0)!=0)&-915646571;b=a>>>1|0;v[e>>2]=0-d&-679014590^((a&1)<<31|c>>>1);v[e+4>>2]=b^0-((d|0)!=0)&-915646571;i=i+1|0;a=g;g=h+1|0;a=g>>>0<1?a+1|0:a;h=g;g=a;if((h|0)!=256|a){continue}break}}function $(a,b,c){var d=0,e=0,f=0,g=0;d=a+4|0;e=(d+b|0)-1&0-b;b=v[a>>2];if(e+c>>>0<=(b+a|0)-4>>>0){f=v[a+4>>2];v[f+8>>2]=v[a+8>>2];v[v[a+8>>2]+4>>2]=f;if((d|0)!=(e|0)){e=e-d|0;f=a-(v[a-4>>2]&-2)|0;d=e+v[f>>2]|0;v[f>>2]=d;v[(f+(d&-4)|0)-4>>2]=d;a=a+e|0;b=b-e|0;v[a>>2]=b}a:{if(c+24>>>0<=b>>>0){d=(a+c|0)+8|0;b=(b-c|0)-8|0;v[d>>2]=b;v[(d+(b&-4)|0)-4>>2]=b|1;g=d;f=v[d>>2]-8|0;b:{if(f>>>0<=127){e=(f>>>3|0)-1|0;break b}b=E(f);e=((f>>>29-b^4)-(b<<2)|0)+110|0;if(f>>>0<=4095){break b}b=((f>>>30-b^2)-(b<<1)|0)+71|0;e=b>>>0<63?b:63}b=e;e=b<<4;v[g+4>>2]=e+4128;e=e+4136|0;v[d+8>>2]=v[e>>2];v[e>>2]=d;v[v[d+8>>2]+4>>2]=d;e=v[1291];d=b&31;if((b&63)>>>0>=32){b=1<>>32-d;g=1<>2]=b;v[((b&-4)+a|0)-4>>2]=b;break a}v[(a+b|0)-4>>2]=b}a=a+4|0}else{a=0}return a}function X(a){var b=0,c=0,d=0,e=0,f=0;if(a){c=a-4|0;e=v[c>>2];d=e;b=c;f=v[a-8>>2];a=f&-2;if((a|0)!=(f|0)){b=c-a|0;d=v[b+4>>2];v[d+8>>2]=v[b+8>>2];v[v[b+8>>2]+4>>2]=d;d=a+e|0}a=c+e|0;c=v[a>>2];if((c|0)!=v[(a+c|0)-4>>2]){e=v[a+4>>2];v[e+8>>2]=v[a+8>>2];v[v[a+8>>2]+4>>2]=e;d=d+c|0}v[b>>2]=d;v[((d&-4)+b|0)-4>>2]=d|1;f=b;d=v[b>>2]-8|0;a:{if(d>>>0<=127){a=(d>>>3|0)-1|0;break a}e=E(d);a=((d>>>29-e^4)-(e<<2)|0)+110|0;if(d>>>0<=4095){break a}a=((d>>>30-e^2)-(e<<1)|0)+71|0;a=a>>>0<63?a:63}c=a<<4;v[f+4>>2]=c+4128;c=c+4136|0;v[b+8>>2]=v[c>>2];v[c>>2]=b;v[v[b+8>>2]+4>>2]=b;c=v[1291];b=a&31;if((a&63)>>>0>=32){a=1<>>32-b;b=1<>>0<3){break a}t[c-2|0]=0;t[a+1|0]=0;t[c-3|0]=0;t[a+2|0]=0;if(b>>>0<7){break a}t[c-4|0]=0;t[a+3|0]=0;if(b>>>0<9){break a}c=0-a&3;a=c+a|0;v[a>>2]=0;c=b-c&-4;b=c+a|0;v[b-4>>2]=0;if(c>>>0<9){break a}v[a+8>>2]=0;v[a+4>>2]=0;v[b-8>>2]=0;v[b-12>>2]=0;if(c>>>0<25){break a}v[a+24>>2]=0;v[a+20>>2]=0;v[a+16>>2]=0;v[a+12>>2]=0;v[b-16>>2]=0;v[b-20>>2]=0;v[b-24>>2]=0;v[b-28>>2]=0;b=c;c=a&4|24;b=b-c|0;if(b>>>0<32){break a}a=a+c|0;while(1){v[a+24>>2]=0;v[a+28>>2]=0;v[a+16>>2]=0;v[a+20>>2]=0;v[a+8>>2]=0;v[a+12>>2]=0;v[a>>2]=0;v[a+4>>2]=0;a=a+32|0;b=b-32|0;if(b>>>0>31){continue}break}}}function ja(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;if(!w[4112]){ga();ea();t[4112]=1}c=Z(28);e=c;b=Z(1208);a:{if(b){v[b+36>>2]=2;f=b;d=Z(28456);if(d){v[d+52>>2]=104857600;v[d+60>>2]=2;v[d+24>>2]=0;v[d+56>>2]=0}else{d=0}v[f+1200>>2]=d;if(d){t[b+40|0]=0;v[b>>2]=0;v[b+4>>2]=0;v[b+24>>2]=0;v[b+28>>2]=0;_(b+72|0,100);v[b+172>>2]=12;break a}X(b)}b=0}v[e>>2]=b;b=Z(a);v[c+8>>2]=0;v[c+12>>2]=0;v[c+4>>2]=b;b=Z(a);v[c+24>>2]=a;v[c+20>>2]=0;v[c+16>>2]=b;return c|0}function ga(){var a=0,b=0,c=0,d=0;while(1){b=c>>>1|0;a=(b^0-(c&1)&-306674912)>>>1|0;b=(a^0-(b&1)&-306674912)>>>1|0;a=(0-(a&1)&-306674912^b)>>>1|0;d=0-(a&1)&-306674912;a=(a^0-(b&1)&-306674912)>>>1|0;b=(d^a)>>>1|0;a=(b^0-(a&1)&-306674912)>>>1|0;v[(c<<2)+1040>>2]=0-(a&1)&-306674912^(a^0-(b&1)&-306674912)>>>1;c=c+1|0;if((c|0)!=256){continue}break}}function Y(a,b,c){var d=0;c=c^-1;a:{if(!b){break a}if(b&1){c=v[((w[a|0]^c&255)<<2)+1040>>2]^c>>>8;a=a+1|0;d=b-1|0}else{d=b}if((b|0)==1){break a}while(1){b=v[((w[a|0]^c&255)<<2)+1040>>2]^c>>>8;c=v[((w[a+1|0]^b&255)<<2)+1040>>2]^b>>>8;a=a+2|0;d=d-2|0;if(d){continue}break}}return c^-1}function ba(a,b,c){var d=0,e=0,f=0;e=v[a+16>>2];d=c-e|0;f=d+v[a+128>>2]|0;c=v[a+132>>2];v[a+128>>2]=f;v[a+132>>2]=f>>>0>>0?c+1|0:c;v[a+24>>2]=Y(b+e|0,d,v[a+24>>2]);v[a+28>>2]=0}function fa(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}while(1){d=w[a|0];e=w[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}f=d-e|0}return f}function la(a){a=a|0;var b=0,c=0;b=v[a>>2];if(b){c=v[b+1200>>2];if(v[c+60>>2]){X(v[c+24>>2])}X(c);X(b)}X(v[a+4>>2]);X(v[a+16>>2]);X(a)}function ha(){var a=0,b=0,c=0;while(1){b=a<<4;c=b+4128|0;v[b+4132>>2]=c;v[b+4136>>2]=c;a=a+1|0;if((a|0)!=64){continue}break}aa(48)}function qa(a,b){a=a|0;b=b|0;v[a+12>>2]=b;v[a+8>>2]=0}function ia(a){a=a|0;return y[a+8>>2]>=y[a+12>>2]|0}function ka(){if(!w[4112]){ga();ea();t[4112]=1}}function ra(a){a=a|0;return v[a+4>>2]} +function oa(a){a=a|0;return v[a+20>>2]}function na(a){a=a|0;return v[a+16>>2]}function ma(a){a=a|0;v[a+20>>2]=0} +// EMSCRIPTEN_END_FUNCS +e=w;p(U);var R=c([]);function S(){return s.byteLength/65536|0}return{"d":ha,"e":ka,"f":ja,"g":ia,"h":ra,"i":qa,"j":pa,"k":oa,"l":na,"m":ma,"n":la,"o":R}}return T(V)} +// EMSCRIPTEN_END_ASM + + + + +)(A)}function da(){return{then:function(b){b({instance:new ba})}}}var ea=Error,WebAssembly={};y=[];"object"!==typeof WebAssembly&&B("no native wasm support detected"); +var D,E=!1,F,G,z=a.INITIAL_MEMORY||83886080;a.wasmMemory?D=a.wasmMemory:D=new aa;D&&(F=D.buffer);z=F.byteLength;var J=F;F=J;a.HEAP8=new Int8Array(J);a.HEAP16=new Int16Array(J);a.HEAP32=new Int32Array(J);a.HEAPU8=G=new Uint8Array(J);a.HEAPU16=new Uint16Array(J);a.HEAPU32=new Uint32Array(J);a.HEAPF32=new Float32Array(J);a.HEAPF64=new Float64Array(J);var K,L=[],M=[],N=[];function fa(){var b=a.preRun.shift();L.unshift(b)} +Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(b,e){var d=b&65535,m=e&65535;return d*m+((b>>>16)*m+d*(e>>>16)<<16)|0});if(!Math.fround){var O=new Float32Array(1);Math.fround=function(b){O[0]=b;return O[0]}}Math.clz32||(Math.clz32=function(b){var e=32,d=b>>16;d&&(e-=16,b=d);if(d=b>>8)e-=8,b=d;if(d=b>>4)e-=4,b=d;if(d=b>>2)e-=2,b=d;return b>>1?e-2:e-b});Math.trunc||(Math.trunc=function(b){return 0>b?Math.ceil(b):Math.floor(b)});var S=0,T=null,U=null;a.preloadedImages={}; +a.preloadedAudios={};function B(b){if(a.onAbort)a.onAbort(b);x(b);E=!0;b=new ea("abort("+b+"). Build with -s ASSERTIONS=1 for more info.");q(b);throw b;}function V(b){return b.startsWith("data:application/octet-stream;base64,")}var W;W="xzdec-asm.wasm";if(!V(W)){var ha=W;W=a.locateFile?a.locateFile(ha,u):u+ha} +function ia(){var b=W;try{if(b==W&&y)return new Uint8Array(y);if(V(b))try{var e=ja(b.slice(37)),d=new Uint8Array(e.length);for(b=0;b>4; +h=(h&15)<<4|k>>2;var H=(k&3)<<6|v;e+=String.fromCharCode(m);64!==k&&(e+=String.fromCharCode(h));64!==v&&(e+=String.fromCharCode(H))}while(d1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",(function(reason,p){process["exit"](1)}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=(function(title){document.title=title})}else{throw new Error("not compiled for this environment")}Module["print"]=typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null;Module["printErr"]=typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||Module["print"];Module.print=Module["print"];Module.printErr=Module["printErr"];for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){assert(!staticSealed);var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function dynamicAlloc(size){assert(DYNAMICTOP_PTR);var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;Module.printErr(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var GLOBAL_BASE=8;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}var JSfuncs={"stackSave":(function(){stackSave()}),"stackRestore":(function(){stackRestore()}),"arrayToC":(function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};function ccall(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ALLOC_STATIC=2;var ALLOC_NONE=4;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||83886080;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_max=Math.max;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}STATIC_BASE=GLOBAL_BASE;STATICTOP=STATIC_BASE+3248;__ATINIT__.push();memoryInitializer="data:application/octet-stream;base64,/Td6WFoAWVo=";var tempDoublePtr=STATICTOP;STATICTOP+=16;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;var ASSERTIONS=false;function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:(function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i>>1;d=(0-(a&1)&-306674912^b)>>>1;e=(0-(d&1)&-306674912^(0-(b&1)&-306674912^d)>>>1)>>>1;d=(0-((0-(b&1)&-306674912^d)>>>1&1)&-306674912^e)>>>1;b=(0-(d&1)&-306674912^(0-(e&1)&-306674912^d)>>>1)>>>1;c[2072+(a<<2)>>2]=0-(b&1)&-306674912^(0-((0-(e&1)&-306674912^d)>>>1&1)&-306674912^b)>>>1;a=a+1|0}while((a|0)!=256);return}function fa(a,b,e){a=a|0;b=b|0;e=e|0;if(!b){b=~e;b=~b;return b|0}e=~e;while(1){e=c[2072+((e&255^(d[a>>0]|0))<<2)>>2]^e>>>8;b=b+-1|0;if(!b)break;else a=a+1|0}b=~e;return b|0}function ga(){var a=0,b=0,d=0,e=0,f=0;a=0;do{f=Ja(a|0,0,1)|0;e=y;d=Ma(0,0,a&1|0,0)|0;e=Ja(d&-679014590^f|0,y&-915646571^e|0,1)|0;d=y;f=Ma(0,0,f&1|0,0)|0;d=Ja(f&-679014590^e|0,y&-915646571^d|0,1)|0;f=y;e=Ma(0,0,e&1|0,0)|0;f=Ja(e&-679014590^d|0,y&-915646571^f|0,1)|0;e=y;d=Ma(0,0,d&1|0,0)|0;e=Ja(d&-679014590^f|0,y&-915646571^e|0,1)|0;d=y;f=Ma(0,0,f&1|0,0)|0;d=Ja(f&-679014590^e|0,y&-915646571^d|0,1)|0;f=y;e=Ma(0,0,e&1|0,0)|0;f=Ja(e&-679014590^d|0,y&-915646571^f|0,1)|0;e=y;d=Ma(0,0,d&1|0,0)|0;e=Ja(d&-679014590^f|0,y&-915646571^e|0,1)|0;d=y;f=Ma(0,0,f&1|0,0)|0;b=24+(a<<3)|0;c[b>>2]=f&-679014590^e;c[b+4>>2]=y&-915646571^d;a=a+1|0}while((a|0)!=256);return}function ha(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0;if(!b){g=~e;f=~f;g=~g;f=~f;y=f;return g|0}g=b;e=~e;b=~f;while(1){h=24+((e&255^(d[a>>0]|0))<<3)|0;f=c[h>>2]|0;h=c[h+4>>2]|0;e=Ja(e|0,b|0,8)|0;b=h^y;g=g+-1|0;if(!g){a=f^e;break}else{a=a+1|0;e=f^e}}h=~a;g=~b;y=g;return h|0}function ia(){if(c[774]|0)return;ea();ga();c[774]=1;return}function ja(a){a=a|0;var b=0;if(!(c[774]|0)){ea();ga();c[774]=1}b=Ba(28)|0;c[b>>2]=za(2,104857600)|0;c[b+4>>2]=Ba(a)|0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=Ba(a)|0;c[b+20>>2]=0;c[b+24>>2]=a;return b|0}function ka(a){a=a|0;return (c[a+8>>2]|0)>>>0>=(c[a+12>>2]|0)>>>0|0}function la(a){a=a|0;return c[a+4>>2]|0}function ma(a,b){a=a|0;b=b|0;c[a+8>>2]=0;c[a+12>>2]=b;return}function na(a){a=a|0;return ya(c[a>>2]|0,a+4|0)|0}function oa(a){a=a|0;return c[a+20>>2]|0}function pa(a){a=a|0;return c[a+16>>2]|0}function qa(a){a=a|0;c[a+20>>2]=0;return}function ra(a){a=a|0;Aa(c[a>>2]|0);Ga(c[a+4>>2]|0);Ga(c[a+16>>2]|0);Ga(a);return}function sa(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:while(1){h=c[f+4>>2]|0;j=c[f+8>>2]|0;g=c[e+64>>2]|0;b:do if(h>>>0>=j>>>0)if((g|0)==7)l=5;else{g=0;l=86;break a}else{switch(g|0){case 7:{l=5;break b}case 0:{g=c[f>>2]|0;c[f+4>>2]=h+1;g=a[g+h>>0]|0;if(!(g<<24>>24)){g=1;l=86;break a}if(!((g&255)>223|g<<24>>24==1)){if(a[e+80>>0]|0){g=7;l=86;break a}}else{a[e+81>>0]=1;a[e+80>>0]=0;if(!(c[e+60>>2]|0)){k=c[f+16>>2]|0;c[e+24>>2]=(c[f+12>>2]|0)+k;c[e+44>>2]=(c[f+20>>2]|0)-k};c[e+28>>2]=0;c[e+28+4>>2]=0;c[e+28+8>>2]=0;c[e+28+12>>2]=0}if(g<<24>>24>=0){if((g&255)>2){g=7;l=86;break a}c[e+64>>2]=3;c[e+68>>2]=8;break b}c[e+72>>2]=(g&255)<<16&2031616;c[e+64>>2]=1;if((g&255)>191){a[e+81>>0]=0;c[e+68>>2]=5;break b}if(a[e+81>>0]|0){g=7;l=86;break a}c[e+68>>2]=6;if((g&255)<=159)break b;c[e+84>>2]=0;c[e+84+4>>2]=0;c[e+84+8>>2]=0;c[e+84+12>>2]=0;c[e+84+16>>2]=0;g=0;do{b[e+120+(g<<1)>>1]=1024;g=g+1|0}while((g|0)!=14134);c[e>>2]=-1;c[e+4>>2]=0;c[e+8>>2]=5;break b}case 1:{k=c[f>>2]|0;c[f+4>>2]=h+1;c[e+72>>2]=(d[k+h>>0]<<8)+(c[e+72>>2]|0);c[e+64>>2]=2;break b}case 2:{k=c[f>>2]|0;c[f+4>>2]=h+1;c[e+72>>2]=(d[k+h>>0]|0)+1+(c[e+72>>2]|0);c[e+64>>2]=3;break b}case 3:{k=c[f>>2]|0;c[f+4>>2]=h+1;c[e+76>>2]=d[k+h>>0]<<8;c[e+64>>2]=4;break b}case 4:{k=c[f>>2]|0;c[f+4>>2]=h+1;c[e+76>>2]=(d[k+h>>0]|0)+1+(c[e+76>>2]|0);c[e+64>>2]=c[e+68>>2];break b}case 5:{g=c[f>>2]|0;c[f+4>>2]=h+1;g=a[g+h>>0]|0;if((g&255)>224){g=7;l=86;break a}if((g&255)>44){h=(((g+-45&255)/45|0)*211|0)+(g+-45<<24>>24)<<24>>24;g=((g+-45&255)/45|0)+1&255}else{h=g;g=0}c[e+116>>2]=(1<>2]=0;g=h&255;if((h&255)>8){h=0;do{l=g+247|0;h=h+1|0;g=l&255}while((l&255)>8);c[e+112>>2]=h}else h=0;c[e+108>>2]=g;if((g+h|0)>>>0>4){g=7;l=86;break a}c[e+112>>2]=(1<>2]=0;c[e+84+4>>2]=0;c[e+84+8>>2]=0;c[e+84+12>>2]=0;c[e+84+16>>2]=0;g=0;do{b[e+120+(g<<1)>>1]=1024;g=g+1|0}while((g|0)!=14134);c[e>>2]=-1;c[e+4>>2]=0;c[e+8>>2]=5;c[e+64>>2]=6;break}case 6:break;case 8:{g=c[e+76>>2]|0;c:do if(g|0){if(j>>>0<=h>>>0){g=0;l=86;break a}k=h;while(1){h=c[f+16>>2]|0;i=c[f+20>>2]|0;if(i>>>0<=h>>>0){g=0;l=86;break a}k=j-k|0;h=k>>>0<(i-h|0)>>>0?k:i-h|0;k=c[e+32>>2]|0;j=(c[e+44>>2]|0)-k|0;h=h>>>0>j>>>0?j:h;h=h>>>0>g>>>0?g:h;c[e+76>>2]=g-h;Oa((c[e+24>>2]|0)+k|0,(c[f>>2]|0)+(c[f+4>>2]|0)|0,h|0)|0;g=(c[e+32>>2]|0)+h|0;c[e+32>>2]=g;if((c[e+36>>2]|0)>>>0>>0)c[e+36>>2]=g;if(c[e+60>>2]|0){if((g|0)==(c[e+44>>2]|0))c[e+32>>2]=0;Oa((c[f+12>>2]|0)+(c[f+16>>2]|0)|0,(c[f>>2]|0)+(c[f+4>>2]|0)|0,h|0)|0;g=c[e+32>>2]|0}c[e+28>>2]=g;c[f+16>>2]=(c[f+16>>2]|0)+h;k=(c[f+4>>2]|0)+h|0;c[f+4>>2]=k;g=c[e+76>>2]|0;if(!g)break c;j=c[f+8>>2]|0;if(j>>>0<=k>>>0){g=0;l=86;break a}}}while(0);c[e+64>>2]=0;break b}default:break b}i=c[e+76>>2]|0;if(i>>>0<5){g=7;l=86;break a}g=c[e+8>>2]|0;if(g|0){h=c[f+8>>2]|0;j=c[f+4>>2]|0;do{if((j|0)==(h|0)){g=0;l=86;break a}m=c[e+4>>2]<<8;k=c[f>>2]|0;l=j;j=j+1|0;c[f+4>>2]=j;c[e+4>>2]=m|d[k+l>>0];g=g+-1|0;c[e+8>>2]=g}while((g|0)!=0)}c[e+76>>2]=i+-5;c[e+64>>2]=7;k=i+-5|0;l=43}while(0);if((l|0)==5){k=c[e+76>>2]|0;l=43}do if((l|0)==43){i=(c[f+20>>2]|0)-(c[f+16>>2]|0)|0;g=c[e+72>>2]|0;g=i>>>0>>0?i:g;i=c[e+44>>2]|0;j=c[e+32>>2]|0;c[e+40>>2]=(i-j|0)>>>0>g>>>0?j+g|0:i;i=c[f+8>>2]|0;g=c[f+4>>2]|0;j=c[e+28388>>2]|0;if(!j)if(!k){h=0;l=45}else{h=i-g|0;l=55}else{h=k;l=45}d:do if((l|0)==45){l=0;m=h-j|0;m=(42-j|0)>>>0>m>>>0?m:42-j|0;i=m>>>0>(i-g|0)>>>0?i-g|0:m;Oa(e+28392+j|0,(c[f>>2]|0)+g|0,i|0)|0;g=c[e+28388>>2]|0;do if((i+g|0)!=(c[e+76>>2]|0))if((i+g|0)>>>0<21){c[e+28388>>2]=i+g;c[f+4>>2]=(c[f+4>>2]|0)+i;break d}else{g=i+g+-21|0;break}else{Qa(e+28392+g+i|0,0,63-g-i|0)|0;g=(c[e+28388>>2]|0)+i|0}while(0);c[e+20>>2]=g;c[e+12>>2]=e+28392;c[e+16>>2]=0;if(!(ta(e)|0)){g=7;l=86;break a}g=c[e+16>>2]|0;h=c[e+28388>>2]|0;if(g>>>0>(h+i|0)>>>0){g=7;l=86;break a}i=(c[e+76>>2]|0)-g|0;c[e+76>>2]=i;if(h>>>0>g>>>0){c[e+28388>>2]=h-g;Pa(e+28392|0,e+28392+g|0,h-g|0)|0;break}else{g=(c[f+4>>2]|0)+(g-h)|0;c[f+4>>2]=g;c[e+28388>>2]=0;l=c[f+8>>2]|0;h=l-g|0;k=i;i=l;l=55;break}}while(0);do if((l|0)==55){l=0;if(h>>>0>20){c[e+12>>2]=c[f>>2];c[e+16>>2]=g;c[e+20>>2]=h>>>0<(k+21|0)>>>0?i+-21|0:g+k|0;if(!(ta(e)|0)){g=7;l=86;break a}g=c[e+16>>2]|0;i=g-(c[f+4>>2]|0)|0;j=c[e+76>>2]|0;if(j>>>0>>0){g=7;l=86;break a}c[e+76>>2]=j-i;c[f+4>>2]=g;h=(c[f+8>>2]|0)-g|0;if(h>>>0<21)i=j-i|0;else break}else i=k;m=h>>>0>i>>>0?i:h;Oa(e+28392|0,(c[f>>2]|0)+g|0,m|0)|0;c[e+28388>>2]=m;c[f+4>>2]=(c[f+4>>2]|0)+m}while(0);h=c[e+32>>2]|0;i=c[e+28>>2]|0;if(!(c[e+60>>2]|0))g=h;else{if((h|0)==(c[e+44>>2]|0))c[e+32>>2]=0;Oa((c[f+12>>2]|0)+(c[f+16>>2]|0)|0,(c[e+24>>2]|0)+i|0,h-i|0)|0;g=c[e+32>>2]|0}c[e+28>>2]=g;g=(c[f+16>>2]|0)+(h-i)|0;c[f+16>>2]=g;m=(c[e+72>>2]|0)-(h-i)|0;c[e+72>>2]=m;if(m|0){if((g|0)==(c[f+20>>2]|0)){g=0;l=86;break a}if((c[f+4>>2]|0)!=(c[f+8>>2]|0))break;if((c[e+28388>>2]|0)>>>0<(c[e+76>>2]|0)>>>0){g=0;l=86;break a}else break}if(c[e+76>>2]|0){g=7;l=86;break a}if(c[e+104>>2]|0){g=7;l=86;break a}if(c[e+4>>2]|0){g=7;l=86;break a}c[e>>2]=-1;c[e+4>>2]=0;c[e+8>>2]=5;c[e+64>>2]=0}while(0)}if((l|0)==86)return g|0;return 0}function ta(f){f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=c[f+32>>2]|0;h=c[f+40>>2]|0;if(((h>>>0>g>>>0?(i=c[f+104>>2]|0,(i|0)!=0):0)?(j=c[f+84>>2]|0,(c[f+36>>2]|0)>>>0>j>>>0):0)?(c[f+48>>2]|0)>>>0>j>>>0:0){k=(h-g|0)>>>0>>0?h-g|0:i;c[f+104>>2]=i-k;if(g>>>0>j>>>0)h=g-j+-1|0;else h=(c[f+44>>2]|0)+(g-j+-1)|0;s=c[f+24>>2]|0;r=a[s+h>>0]|0;c[f+32>>2]=g+1;a[s+g>>0]=r;if(k+-1|0){g=k+-1|0;do{s=h+1|0;h=(s|0)==(c[f+44>>2]|0)?0:s;s=c[f+32>>2]|0;r=c[f+24>>2]|0;q=a[r+h>>0]|0;c[f+32>>2]=s+1;a[r+s>>0]=q;g=g+-1|0}while((g|0)!=0)}g=c[f+32>>2]|0;if((c[f+36>>2]|0)>>>0>>0)c[f+36>>2]=g}a:do if(g>>>0<(c[f+40>>2]|0)>>>0){b:while(1){h=c[f+16>>2]|0;if(h>>>0>(c[f+20>>2]|0)>>>0){h=f;break a}n=c[f+116>>2]&g;o=c[f+100>>2]|0;i=c[f>>2]|0;if(i>>>0<16777216){c[f>>2]=i<<8;k=c[f+4>>2]<<8;j=c[f+12>>2]|0;c[f+16>>2]=h+1;j=k|(d[j+h>>0]|0);c[f+4>>2]=j;k=h+1|0;i=i<<8}else{k=h;j=c[f+4>>2]|0}l=e[f+120+(o<<5)+(n<<1)>>1]|0;m=N(i>>>11,l)|0;do if(j>>>0>>0){c[f>>2]=m;b[f+120+(o<<5)+(n<<1)>>1]=(2048-l>>5)+l;h=g+-1|0;if(!g)h=(c[f+44>>2]|0)+h|0;i=(c[f+36>>2]|0)==0;if(i)h=0;else h=d[(c[f+24>>2]|0)+h>>0]|0;s=c[f+108>>2]|0;s=((c[f+112>>2]&g)<>>(8-s|0))|0;if(o>>>0<7){h=1;i=m;do{n=f+3812+(s*1536|0)+(h<<1)|0;if(i>>>0<16777216){i=i<<8;c[f>>2]=i;q=c[f+12>>2]|0;r=k+1|0;c[f+16>>2]=r;j=j<<8|(d[q+k>>0]|0);c[f+4>>2]=j;k=r}l=e[n>>1]|0;m=N(i>>>11,l)|0;if(j>>>0>>0){c[f>>2]=m;b[n>>1]=(2048-l>>5)+l;h=h<<1;i=m}else{i=i-m|0;c[f>>2]=i;j=j-m|0;c[f+4>>2]=j;b[n>>1]=l-(l>>>5);h=h<<1|1}}while(h>>>0<256)}else{r=c[f+84>>2]|0;h=g-r+-1|0;if(g>>>0<=r>>>0)h=(c[f+44>>2]|0)+h|0;if(i)i=0;else i=d[(c[f+24>>2]|0)+h>>0]|0;h=1;n=256;l=m;while(1){i=i<<1;r=i&n;q=f+3812+(s*1536|0)+(r+n+h<<1)|0;if(l>>>0<16777216){l=l<<8;c[f>>2]=l;o=c[f+12>>2]|0;p=k+1|0;c[f+16>>2]=p;j=j<<8|(d[o+k>>0]|0);c[f+4>>2]=j;k=p}p=e[q>>1]|0;m=N(l>>>11,p)|0;if(j>>>0>>0){c[f>>2]=m;o=0;l=(2048-p>>5)+p|0}else{l=l-m|0;c[f>>2]=l;j=j-m|0;c[f+4>>2]=j;o=1;n=0;m=l;l=p-(p>>>5)|0}b[q>>1]=l;h=o|h<<1;if(h>>>0>=256)break;else{n=n^r;l=m}}}s=c[f+24>>2]|0;c[f+32>>2]=g+1;a[s+g>>0]=h;g=c[f+32>>2]|0;if((c[f+36>>2]|0)>>>0>>0)c[f+36>>2]=g;h=c[f+100>>2]|0;if(h>>>0<4){c[f+100>>2]=0;break}if(h>>>0<10){c[f+100>>2]=h+-3;break}else{c[f+100>>2]=h+-6;break}}else{h=i-m|0;c[f>>2]=h;g=j-m|0;c[f+4>>2]=g;b[f+120+(o<<5)+(n<<1)>>1]=l-(l>>>5);if(h>>>0<16777216){c[f>>2]=h<<8;r=c[f+12>>2]|0;s=k+1|0;c[f+16>>2]=s;g=g<<8|(d[r+k>>0]|0);c[f+4>>2]=g;h=h<<8;k=s}j=e[f+504+(o<<1)>>1]|0;i=N(h>>>11,j)|0;c:do if(g>>>0>>0){c[f>>2]=i;b[f+504+(o<<1)>>1]=(2048-j>>5)+j;c[f+100>>2]=(c[f+100>>2]|0)>>>0<7?7:10;c[f+96>>2]=c[f+92>>2];c[f+92>>2]=c[f+88>>2];c[f+88>>2]=c[f+84>>2];ua(f,f+1756|0,n);m=c[f+104>>2]|0;m=m>>>0<6?m+-2|0:3;i=1;g=c[f>>2]|0;do{k=f+984+(m<<7)+(i<<1)|0;if(g>>>0<16777216){g=g<<8;c[f>>2]=g;r=c[f+4>>2]<<8;s=c[f+12>>2]|0;h=c[f+16>>2]|0;c[f+16>>2]=h+1;h=r|(d[s+h>>0]|0);c[f+4>>2]=h}else h=c[f+4>>2]|0;j=e[k>>1]|0;l=N(g>>>11,j)|0;if(h>>>0>>0){c[f>>2]=l;b[k>>1]=(2048-j>>5)+j;i=i<<1;g=l}else{g=g-l|0;c[f>>2]=g;h=h-l|0;c[f+4>>2]=h;b[k>>1]=j-(j>>>5);i=i<<1|1}}while(i>>>0<64);p=i+-64|0;if(p>>>0<4){c[f+84>>2]=p;break}c[f+84>>2]=p&1|2;if(p>>>0<14){m=(p&1|2)<<(p>>>1)+-1;c[f+84>>2]=m;o=f+1496+(m<<1)+(64-i<<1)+-2|0;n=0;i=1;while(1){k=o+(i<<1)|0;if(g>>>0<16777216){g=g<<8;c[f>>2]=g;r=c[f+12>>2]|0;s=c[f+16>>2]|0;c[f+16>>2]=s+1;h=h<<8|(d[r+s>>0]|0);c[f+4>>2]=h}j=e[k>>1]|0;l=N(g>>>11,j)|0;if(h>>>0>>0){c[f>>2]=l;b[k>>1]=(2048-j>>5)+j;i=i<<1;j=m;g=l}else{g=g-l|0;c[f>>2]=g;h=h-l|0;c[f+4>>2]=h;b[k>>1]=j-(j>>>5);j=(1<>2]=j;i=i<<1|1}n=n+1|0;if(n>>>0>=((p>>>1)+-1|0)>>>0)break c;else m=j}}k=(p>>>1)+-5|0;i=p&1|2;do{if(g>>>0<16777216){j=g<<8;c[f>>2]=j;r=c[f+12>>2]|0;s=c[f+16>>2]|0;c[f+16>>2]=s+1;h=h<<8|(d[r+s>>0]|0);c[f+4>>2]=h}else j=g;g=j>>>1;c[f>>2]=g;s=h-g|0;h=(s>>31&g)+s|0;c[f+4>>2]=h;i=(i<<1|1)+(s>>31)|0;c[f+84>>2]=i;k=k+-1|0}while((k|0)!=0);l=i<<4;c[f+84>>2]=l;if(j>>>0<33554432){g=g<<8;c[f>>2]=g;r=c[f+12>>2]|0;s=c[f+16>>2]|0;c[f+16>>2]=s+1;h=h<<8|(d[r+s>>0]|0);c[f+4>>2]=h}i=e[f+1726>>1]|0;j=N(g>>>11,i)|0;if(h>>>0>>0){c[f>>2]=j;b[f+1726>>1]=(2048-i>>5)+i;m=2}else{s=g-j|0;c[f>>2]=s;h=h-j|0;c[f+4>>2]=h;b[f+1726>>1]=i-(i>>>5);c[f+84>>2]=l|1;m=3;j=s;l=l|1}k=f+1724+(m<<1)|0;if(j>>>0<16777216){j=j<<8;c[f>>2]=j;r=c[f+12>>2]|0;s=c[f+16>>2]|0;c[f+16>>2]=s+1;h=h<<8|(d[r+s>>0]|0);c[f+4>>2]=h}g=e[k>>1]|0;i=N(j>>>11,g)|0;if(h>>>0>>0){c[f>>2]=i;b[k>>1]=(2048-g>>5)+g;m=m<<1;g=i}else{s=j-i|0;c[f>>2]=s;h=h-i|0;c[f+4>>2]=h;b[k>>1]=g-(g>>>5);l=l+2|0;c[f+84>>2]=l;m=m<<1|1;g=s}k=f+1724+(m<<1)|0;if(g>>>0<16777216){g=g<<8;c[f>>2]=g;r=c[f+12>>2]|0;s=c[f+16>>2]|0;c[f+16>>2]=s+1;h=h<<8|(d[r+s>>0]|0);c[f+4>>2]=h}i=e[k>>1]|0;j=N(g>>>11,i)|0;if(h>>>0>>0){c[f>>2]=j;b[k>>1]=(2048-i>>5)+i;g=m<<1;i=j}else{s=g-j|0;c[f>>2]=s;h=h-j|0;c[f+4>>2]=h;b[k>>1]=i-(i>>>5);l=l+4|0;c[f+84>>2]=l;g=m<<1|1;i=s}k=f+1724+(g<<1)|0;if(i>>>0<16777216){j=i<<8;c[f>>2]=j;r=c[f+12>>2]|0;s=c[f+16>>2]|0;c[f+16>>2]=s+1;h=h<<8|(d[r+s>>0]|0);c[f+4>>2]=h}else j=i;g=e[k>>1]|0;i=N(j>>>11,g)|0;if(h>>>0>>0){c[f>>2]=i;b[k>>1]=(2048-g>>5)+g;break}else{c[f>>2]=j-i;c[f+4>>2]=h-i;b[k>>1]=g-(g>>>5);c[f+84>>2]=l+8;break}}else{h=h-i|0;c[f>>2]=h;i=g-i|0;c[f+4>>2]=i;b[f+504+(o<<1)>>1]=j-(j>>>5);if(h>>>0<16777216){c[f>>2]=h<<8;r=c[f+12>>2]|0;s=k+1|0;c[f+16>>2]=s;i=i<<8|(d[r+k>>0]|0);c[f+4>>2]=i;h=h<<8;k=s}l=e[f+528+(o<<1)>>1]|0;j=N(h>>>11,l)|0;do if(i>>>0>>0){c[f>>2]=j;b[f+528+(o<<1)>>1]=(2048-l>>5)+l;if(j>>>0<16777216){c[f>>2]=j<<8;s=c[f+12>>2]|0;c[f+16>>2]=k+1;i=i<<8|(d[s+k>>0]|0);c[f+4>>2]=i;j=j<<8}g=e[f+600+(o<<5)+(n<<1)>>1]|0;h=N(j>>>11,g)|0;if(i>>>0>>0){c[f>>2]=h;b[f+600+(o<<5)+(n<<1)>>1]=(2048-g>>5)+g;c[f+100>>2]=(c[f+100>>2]|0)>>>0<7?9:11;c[f+104>>2]=1;break c}else{c[f>>2]=j-h;c[f+4>>2]=i-h;b[f+600+(o<<5)+(n<<1)>>1]=g-(g>>>5);break}}else{h=h-j|0;c[f>>2]=h;g=i-j|0;c[f+4>>2]=g;b[f+528+(o<<1)>>1]=l-(l>>>5);if(h>>>0<16777216){c[f>>2]=h<<8;r=c[f+12>>2]|0;s=k+1|0;c[f+16>>2]=s;g=g<<8|(d[r+k>>0]|0);c[f+4>>2]=g;h=h<<8;k=s}l=e[f+552+(o<<1)>>1]|0;i=N(h>>>11,l)|0;if(g>>>0>>0){c[f>>2]=i;b[f+552+(o<<1)>>1]=(2048-l>>5)+l;g=c[f+88>>2]|0}else{j=h-i|0;c[f>>2]=j;i=g-i|0;c[f+4>>2]=i;b[f+552+(o<<1)>>1]=l-(l>>>5);if(j>>>0<16777216){c[f>>2]=j<<8;s=c[f+12>>2]|0;c[f+16>>2]=k+1;i=i<<8|(d[s+k>>0]|0);c[f+4>>2]=i;j=j<<8}g=e[f+576+(o<<1)>>1]|0;h=N(j>>>11,g)|0;if(i>>>0>>0){c[f>>2]=h;b[f+576+(o<<1)>>1]=(2048-g>>5)+g;g=c[f+92>>2]|0}else{c[f>>2]=j-h;c[f+4>>2]=i-h;b[f+576+(o<<1)>>1]=g-(g>>>5);g=c[f+96>>2]|0;c[f+96>>2]=c[f+92>>2]}c[f+92>>2]=c[f+88>>2]}c[f+88>>2]=c[f+84>>2];c[f+84>>2]=g}while(0);c[f+100>>2]=(c[f+100>>2]|0)>>>0<7?8:11;ua(f,f+2784|0,n)}while(0);g=c[f+84>>2]|0;if((c[f+36>>2]|0)>>>0<=g>>>0){g=0;i=127;break b}if((c[f+48>>2]|0)>>>0<=g>>>0){g=0;i=127;break b}h=c[f+32>>2]|0;i=(c[f+40>>2]|0)-h|0;s=c[f+104>>2]|0;i=i>>>0>>0?i:s;c[f+104>>2]=s-i;if(h>>>0>g>>>0)g=h-g+-1|0;else g=(c[f+44>>2]|0)+(h-g+-1)|0;s=c[f+24>>2]|0;r=a[s+g>>0]|0;c[f+32>>2]=h+1;a[s+h>>0]=r;if(i+-1|0){h=g;g=i+-1|0;do{s=h+1|0;h=(s|0)==(c[f+44>>2]|0)?0:s;s=c[f+32>>2]|0;r=c[f+24>>2]|0;q=a[r+h>>0]|0;c[f+32>>2]=s+1;a[r+s>>0]=q;g=g+-1|0}while((g|0)!=0)}g=c[f+32>>2]|0;if((c[f+36>>2]|0)>>>0>>0)c[f+36>>2]=g}while(0);if(g>>>0>=(c[f+40>>2]|0)>>>0){h=f;break a}}if((i|0)==127)return g|0}else h=f;while(0);g=c[h>>2]|0;if(g>>>0>=16777216){f=1;return f|0}c[h>>2]=g<<8;q=c[f+4>>2]<<8;r=c[f+12>>2]|0;s=c[f+16>>2]|0;c[f+16>>2]=s+1;c[f+4>>2]=q|(d[r+s>>0]|0);f=1;return f|0}function ua(a,f,g){a=a|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=c[a>>2]|0;if(h>>>0<16777216){c[a>>2]=h<<8;n=c[a+4>>2]<<8;k=c[a+12>>2]|0;l=c[a+16>>2]|0;c[a+16>>2]=l+1;l=n|(d[k+l>>0]|0);c[a+4>>2]=l;k=a+4|0;h=h<<8}else{k=a+4|0;l=c[a+4>>2]|0}i=e[f>>1]|0;m=N(h>>>11,i)|0;do if(l>>>0>=m>>>0){j=h-m|0;c[a>>2]=j;h=l-m|0;c[k>>2]=h;b[f>>1]=i-(i>>>5);if(j>>>0<16777216){c[a>>2]=j<<8;k=c[a+12>>2]|0;l=c[a+16>>2]|0;c[a+16>>2]=l+1;l=h<<8|(d[k+l>>0]|0);c[a+4>>2]=l;k=a+4|0;j=j<<8}else{k=a+4|0;l=h}i=e[f+2>>1]|0;h=N(j>>>11,i)|0;if(l>>>0>>0){c[a>>2]=h;b[f+2>>1]=(2048-i>>5)+i;n=8;g=f+260+(g<<4)|0;j=l;f=10;break}else{m=j-h|0;c[a>>2]=m;j=l-h|0;c[k>>2]=j;b[f+2>>1]=i-(i>>>5);n=256;g=f+516|0;h=m;f=18;break}}else{c[a>>2]=m;b[f>>1]=(2048-i>>5)+i;n=8;g=f+4+(g<<4)|0;j=l;h=m;f=2}while(0);c[a+104>>2]=f;i=1;do{m=g+(i<<1)|0;if(h>>>0<16777216){l=h<<8;c[a>>2]=l;h=c[a+12>>2]|0;k=c[a+16>>2]|0;c[a+16>>2]=k+1;j=j<<8|(d[h+k>>0]|0);c[a+4>>2]=j}else l=h;k=e[m>>1]|0;h=N(l>>>11,k)|0;if(j>>>0>>0){c[a>>2]=h;b[m>>1]=(2048-k>>5)+k;i=i<<1}else{l=l-h|0;c[a>>2]=l;j=j-h|0;c[a+4>>2]=j;b[m>>1]=k-(k>>>5);h=l;i=i<<1|1}}while(i>>>0>>0);c[a+104>>2]=i-n+f;return}function va(a,b){a=a|0;b=b|0;var d=0;d=Ba(28456)|0;a:do if(d){c[d+60>>2]=a;c[d+52>>2]=b;switch(a|0){case 1:break;case 2:{c[d+24>>2]=0;c[d+56>>2]=0;break a}default:break a}b=Ba(b)|0;c[d+24>>2]=b;if(!b){Ga(d);d=0}}else d=0;while(0);return d|0}function wa(b,d){b=b|0;d=d|0;var e=0;if((d&255)>39){e=6;return e|0}c[b+48>>2]=(d&1|2)<<((d&255)>>>1)+11;e=c[b+60>>2]|0;if(e|0){if((d&1|2)<<((d&255)>>>1)+11>>>0>(c[b+52>>2]|0)>>>0){e=4;return e|0}c[b+44>>2]=(d&1|2)<<((d&255)>>>1)+11;if(((e|0)==2?(c[b+56>>2]|0)>>>0<(d&1|2)<<((d&255)>>>1)+11>>>0:0)?(Ga(c[b+24>>2]|0),e=Ba(c[b+48>>2]|0)|0,c[b+24>>2]=e,(e|0)==0):0){c[b+56>>2]=0;e=3;return e|0}}c[b+104>>2]=0;c[b+64>>2]=0;a[b+80>>0]=1;c[b+28388>>2]=0;e=0;return e|0}function xa(a){a=a|0;if(!(c[a+60>>2]|0)){Ga(a);return}Ga(c[a+24>>2]|0);Ga(a);return}function ya(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;if(!(c[b+36>>2]|0)){c[b>>2]=0;a[b+40>>0]=0;c[b+4>>2]=0;c[b+24>>2]=0;c[b+24+4>>2]=0;f=b+72|0;g=f+100|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[b+172>>2]=12;f=0;p=b+172|0;o=b+24|0;n=b+4|0}else{f=c[b>>2]|0;p=b+172|0;o=b+24|0;n=b+4|0}r=c[e+4>>2]|0;s=c[e+16>>2]|0;c[b+16>>2]=r;a:while(1){b:while(1)switch(f|0){case 6:{q=78;break a}case 7:{q=96;break a}case 8:{q=105;break a}case 9:{q=110;break a}case 0:{q=8;break b}case 1:{q=12;break b}case 2:{q=7;break b}case 3:{q=47;break b}case 4:{q=62;break b}case 5:{q=68;break b}default:{}}if((q|0)==7){i=c[b+168>>2]|0;j=b+176+i|0;g=c[e+8>>2]|0;h=c[p>>2]|0;f=c[e>>2]|0;q=16}else if((q|0)==8){q=0;m=c[e+4>>2]|0;j=(c[e+8>>2]|0)-m|0;k=c[b+168>>2]|0;l=(c[p>>2]|0)-k|0;l=j>>>0>>0?j:l;Oa(b+176+k|0,(c[e>>2]|0)+m|0,l|0)|0;c[e+4>>2]=(c[e+4>>2]|0)+l;l=(c[b+168>>2]|0)+l|0;m=(l|0)==(c[p>>2]|0);c[b+168>>2]=m?0:l;if(!m){f=0;break}c[b>>2]=1;if(Ha(b+176|0,8,6)|0){f=5;break}if(a[b+182>>0]|0){f=6;break}m=a[b+183>>0]|0;c[b+32>>2]=m&255;switch(m<<24>>24){case 0:case 1:case 4:{q=12;break}default:{f=6;break a}}}do if((q|0)==12){q=0;f=c[e+4>>2]|0;g=c[e+8>>2]|0;if((f|0)==(g|0)){f=0;break a}k=c[e>>2]|0;h=a[k+f>>0]|0;if(!(h<<24>>24)){c[e+4>>2]=f+1;c[b+16>>2]=f;f=6;break}else{c[b+64>>2]=((h&255)<<2)+4;c[p>>2]=((h&255)<<2)+4;c[b+168>>2]=0;c[b>>2]=2;j=b+176|0;i=0;h=((h&255)<<2)+4|0;f=k;q=16;break}}while(0);if((q|0)==16){q=0;l=c[e+4>>2]|0;k=g-l|0;m=h-i|0;m=k>>>0>>0?k:m;Oa(j|0,f+l|0,m|0)|0;c[e+4>>2]=m+(c[e+4>>2]|0);f=(c[b+168>>2]|0)+m|0;m=(f|0)==(c[p>>2]|0);c[b+168>>2]=m?0:f;if(!m){f=0;break}c[p>>2]=f+-4;m=fa(b+176|0,f+-4|0,0)|0;l=c[p>>2]|0;if((m|0)!=(d[b+176+l+1>>0]<<8|d[b+176+l>>0]|d[b+176+l+2>>0]<<16|d[b+176+l+3>>0]<<24|0)){f=7;break}c[b+168>>2]=2;k=a[b+177>>0]|0;if(k&63|0){f=6;break}if(!(k&64)){g=-1;f=-1;h=2}else{f=c[n>>2]|0;if(!f){c[b+8>>2]=0;c[b+8+4>>2]=0}if(l>>>0<=2){f=7;break}h=2;i=c[b+8>>2]|0;j=c[b+8+4>>2]|0;while(1){g=a[b+176+h>>0]|0;h=h+1|0;c[b+168>>2]=h;m=Ka(g&127|0,0,f|0)|0;i=m|i;j=y|j;c[b+8>>2]=i;c[b+8+4>>2]=j;if(!(g&128))break;f=f+7|0;c[n>>2]=f;if(!((f|0)!=63&h>>>0>>0)){f=7;break a}}if(!((f|0)==0|g<<24>>24!=0)){f=7;break}c[n>>2]=0;g=i;f=j}c[b+48>>2]=g;c[b+48+4>>2]=f;if(k<<24>>24<0){f=c[n>>2]|0;if(!f){c[b+8>>2]=0;c[b+8+4>>2]=0}if(h>>>0>=l>>>0){f=7;break}i=c[b+8>>2]|0;j=c[b+8+4>>2]|0;while(1){g=a[b+176+h>>0]|0;h=h+1|0;c[b+168>>2]=h;m=Ka(g&127|0,0,f|0)|0;i=m|i;j=y|j;c[b+8>>2]=i;c[b+8+4>>2]=j;if(!(g&128))break;f=f+7|0;c[n>>2]=f;if(!((f|0)!=63&h>>>0>>0)){f=7;break a}}if(!((f|0)==0|g<<24>>24!=0)){f=7;break}c[n>>2]=0;f=j}else{i=-1;f=-1}c[b+56>>2]=i;c[b+56+4>>2]=f;if((l-h|0)>>>0<2){f=7;break}f=h+1|0;c[b+168>>2]=f;if((a[b+176+h>>0]|0)!=33){f=6;break}g=h+2|0;c[b+168>>2]=g;if((a[b+176+f>>0]|0)!=1){f=6;break}if((l|0)==(g|0)){f=7;break}f=c[b+1200>>2]|0;c[b+168>>2]=h+3;f=wa(f,a[b+176+g>>0]|0)|0;if(f|0)break;f=c[b+168>>2]|0;g=c[p>>2]|0;if(f>>>0>>0)do{m=f;f=f+1|0;c[b+168>>2]=f;if(a[b+176+m>>0]|0){f=6;break a}}while(f>>>0>>0);c[b+168>>2]=0;c[b+72>>2]=0;c[b+72+4>>2]=0;c[b+72+8>>2]=0;c[b+72+12>>2]=0;c[b>>2]=3;q=47}if((q|0)==47){q=0;c[b+16>>2]=c[e+4>>2];c[b+20>>2]=c[e+16>>2];f=sa(c[b+1200>>2]|0,e)|0;m=La(c[b+72>>2]|0,c[b+72+4>>2]|0,(c[e+4>>2]|0)-(c[b+16>>2]|0)|0,0)|0;k=y;c[b+72>>2]=m;c[b+72+4>>2]=k;g=c[b+20>>2]|0;h=(c[e+16>>2]|0)-g|0;i=La(c[b+80>>2]|0,c[b+80+4>>2]|0,h|0,0)|0;j=y;c[b+80>>2]=i;c[b+80+4>>2]=j;l=c[b+48+4>>2]|0;if(k>>>0>l>>>0|((k|0)==(l|0)?m>>>0>(c[b+48>>2]|0)>>>0:0)){f=7;break}m=c[b+56+4>>2]|0;if(j>>>0>m>>>0|((j|0)==(m|0)?i>>>0>(c[b+56>>2]|0)>>>0:0)){f=7;break}switch(c[b+32>>2]|0){case 1:{g=fa((c[e+12>>2]|0)+g|0,h,c[o>>2]|0)|0;h=0;q=52;break}case 4:{q=o;g=ha((c[e+12>>2]|0)+g|0,h,c[q>>2]|0,c[q+4>>2]|0)|0;h=y;q=52;break}default:{}}if((q|0)==52){q=0;m=o;c[m>>2]=g;c[m+4>>2]=h}if((f|0)!=1)break;l=c[b+48>>2]|0;m=c[b+48+4>>2]|0;if(!((l|0)==-1&(m|0)==-1)?!((l|0)==(c[b+72>>2]|0)?(m|0)==(c[b+72+4>>2]|0):0):0){f=7;break}l=c[b+56>>2]|0;m=c[b+56+4>>2]|0;if(!((l|0)==-1&(m|0)==-1)?!((l|0)==(c[b+80>>2]|0)?(m|0)==(c[b+80+4>>2]|0):0):0){f=7;break}f=La(c[b+72>>2]|0,c[b+72+4>>2]|0,c[b+64>>2]|0,0)|0;f=La(f|0,y|0,c[b+96>>2]|0,c[b+96+4>>2]|0)|0;g=y;c[b+96>>2]=f;c[b+96+4>>2]=g;switch(c[b+32>>2]|0){case 1:{h=4;i=0;q=60;break}case 4:{h=8;i=0;q=60;break}default:{}}if((q|0)==60){q=La(f|0,g|0,h|0,i|0)|0;c[b+96>>2]=q;c[b+96+4>>2]=y}q=La(c[b+104>>2]|0,c[b+104+4>>2]|0,c[b+80>>2]|0,c[b+80+4>>2]|0)|0;c[b+104>>2]=q;c[b+104+4>>2]=y;c[b+112>>2]=fa(b+96|0,24,c[b+112>>2]|0)|0;q=La(c[b+88>>2]|0,c[b+88+4>>2]|0,1,0)|0;c[b+88>>2]=q;c[b+88+4>>2]=y;c[b>>2]=4;q=62}if((q|0)==62){q=0;f=c[b+72>>2]|0;if(!((f&3|0)==0&0==0)){h=c[e+8>>2]|0;i=c[e+4>>2]|0;g=c[b+72+4>>2]|0;do{if((i|0)==(h|0)){f=0;break a}l=c[e>>2]|0;m=i;i=i+1|0;c[e+4>>2]=i;if(a[l+m>>0]|0){f=7;break a}f=La(f|0,g|0,1,0)|0;g=y;c[b+72>>2]=f;c[b+72+4>>2]=g}while(!((f&3|0)==0&0==0))}c[b>>2]=5;q=68}c:do if((q|0)==68){q=0;switch(c[b+32>>2]|0){case 1:{f=c[e+8>>2]|0;g=c[e+4>>2]|0;do{if((g|0)==(f|0)){f=0;break a}m=o;h=c[n>>2]|0;m=Ja(c[m>>2]|0,c[m+4>>2]|0,h|0)|0;k=c[e>>2]|0;l=g;g=g+1|0;c[e+4>>2]=g;if((a[k+l>>0]|0)!=(m&255)<<24>>24){f=7;break a}c[n>>2]=h+8}while((h+8|0)>>>0<32);break}case 4:{f=c[e+8>>2]|0;g=c[e+4>>2]|0;do{if((g|0)==(f|0)){f=0;break a}m=o;h=c[n>>2]|0;m=Ja(c[m>>2]|0,c[m+4>>2]|0,h|0)|0;k=c[e>>2]|0;l=g;g=g+1|0;c[e+4>>2]=g;if((a[k+l>>0]|0)!=(m&255)<<24>>24){f=7;break a}c[n>>2]=h+8}while((h+8|0)>>>0<64);break}default:{f=1;break c}}f=o;c[f>>2]=0;c[f+4>>2]=0;c[n>>2]=0;f=1}while(0);c[b>>2]=f}d:do if((q|0)==78){e:while(1){l=c[e>>2]|0;k=c[e+8>>2]|0;if(!(c[n>>2]|0)){c[b+8>>2]=0;c[b+8+4>>2]=0}g=c[e+4>>2]|0;if(g>>>0>=k>>>0){f=0;q=87;break}j=c[b+8>>2]|0;f=c[b+8+4>>2]|0;while(1){i=a[l+g>>0]|0;g=g+1|0;c[e+4>>2]=g;h=c[n>>2]|0;m=Ka(i&127|0,0,h|0)|0;j=m|j;f=y|f;c[b+8>>2]=j;c[b+8+4>>2]=f;if(!(i&128))break;c[n>>2]=h+7;if((h+7|0)==63){f=7;q=87;break e}g=c[e+4>>2]|0;if(g>>>0>=k>>>0){f=0;q=87;break e}}if(!(i<<24>>24!=0|(h|0)==0)){f=7;q=87;break}c[n>>2]=0;switch(c[b+120>>2]|0){case 0:{c[b+136>>2]=j;c[b+136+4>>2]=f;if(!((j|0)==(c[b+88>>2]|0)?(f|0)==(c[b+88+4>>2]|0):0)){f=7;break d}c[b+120>>2]=1;g=j;break}case 1:{c[b+144>>2]=La(c[b+144>>2]|0,c[b+144+4>>2]|0,j|0,f|0)|0;c[b+144+4>>2]=y;c[b+120>>2]=2;q=93;break}case 2:{c[b+152>>2]=La(c[b+152>>2]|0,c[b+152+4>>2]|0,j|0,f|0)|0;c[b+152+4>>2]=y;c[b+160>>2]=fa(b+144|0,24,c[b+160>>2]|0)|0;g=La(c[b+136>>2]|0,c[b+136+4>>2]|0,-1,-1)|0;f=y;c[b+136>>2]=g;c[b+136+4>>2]=f;c[b+120>>2]=1;break}default:q=93}if((q|0)==93){q=0;g=c[b+136>>2]|0;f=c[b+136+4>>2]|0}if((g|0)==0&(f|0)==0){q=95;break}}if((q|0)==87){m=c[b+16>>2]|0;n=g-m|0;p=La(c[b+128>>2]|0,c[b+128+4>>2]|0,n|0,0)|0;c[b+128>>2]=p;c[b+128+4>>2]=y;p=o;c[p>>2]=fa(l+m|0,n,c[o>>2]|0)|0;c[p+4>>2]=0;break}else if((q|0)==95){c[b>>2]=7;q=96;break}}else if((q|0)==110){i=c[e+4>>2]|0;g=c[e+8>>2]|0;h=c[p>>2]|0;f=c[e>>2]|0;q=111}while(0);f:do if((q|0)==96){k=c[b+128>>2]|0;l=c[b+128+4>>2]|0;g=c[e+4>>2]|0;m=c[b+16>>2]|0;f=La(k|0,l|0,g-m|0,0)|0;g:do if((f&3|0)==0&0==0){i=c[e>>2]|0;h=g-m|0;g=y}else{j=c[e+8>>2]|0;i=c[e>>2]|0;while(1){if((g|0)==(j|0))break;h=g;g=g+1|0;c[e+4>>2]=g;if(a[i+h>>0]|0){f=7;break f}h=g-m|0;f=La(k|0,l|0,h|0,0)|0;if((f&3|0)==0&0==0){g=y;break g}}f=La(k|0,l|0,j-m|0,0)|0;c[b+128>>2]=f;c[b+128+4>>2]=y;f=o;c[f>>2]=fa(i+m|0,j-m|0,c[o>>2]|0)|0;c[f+4>>2]=0;f=0;break f}while(0);c[b+128>>2]=f;c[b+128+4>>2]=g;l=o;c[l>>2]=fa(i+m|0,h,c[o>>2]|0)|0;c[l+4>>2]=0;if(!(Ha(b+96|0,b+144|0,24)|0)){c[b>>2]=8;q=105}else f=7}while(0);h:do if((q|0)==105){g=c[e+8>>2]|0;h=c[e+4>>2]|0;do{if((h|0)==(g|0)){f=0;break h}m=o;i=c[n>>2]|0;m=Ja(c[m>>2]|0,c[m+4>>2]|0,i|0)|0;f=c[e>>2]|0;l=h;h=h+1|0;c[e+4>>2]=h;if((a[f+l>>0]|0)!=(m&255)<<24>>24){f=7;break h}c[n>>2]=i+8}while((i+8|0)>>>0<32);i=o;c[i>>2]=0;c[i+4>>2]=0;c[n>>2]=0;c[p>>2]=12;c[b>>2]=9;i=h;h=12;q=111}while(0);if((q|0)==111){n=g-i|0;q=c[b+168>>2]|0;o=h-q|0;o=n>>>0>>0?n:o;Oa(b+176+q|0,f+i|0,o|0)|0;c[e+4>>2]=o+(c[e+4>>2]|0);o=(c[b+168>>2]|0)+o|0;q=(o|0)==(c[p>>2]|0);c[b+168>>2]=q?0:o;if(q)if((((Ha(b+186|0,14,2)|0)==0?(q=fa(b+180|0,6,0)|0,(q|0)==(d[b+177>>0]<<8|d[b+176>>0]|d[b+178>>0]<<16|d[b+179>>0]<<24|0)):0)?(q=Ja(c[b+128>>2]|0,c[b+128+4>>2]|0,2)|0,(y|0)==0?(q|0)==(d[b+181>>0]<<8|d[b+180>>0]|d[b+182>>0]<<16|d[b+183>>0]<<24|0):0):0)?(a[b+184>>0]|0)==0:0)f=(c[b+32>>2]|0)==(d[b+185>>0]|0)?1:7;else f=7;else f=0}g=(f|0)==0;if(!(c[b+36>>2]|0)){if(!g){if((f|0)==1){e=1;return e|0}}else f=(c[e+4>>2]|0)==(c[e+8>>2]|0)?7:8;c[e+4>>2]=r;c[e+16>>2]=s;e=f;return e|0}if((g?(r|0)==(c[e+4>>2]|0):0)?(s|0)==(c[e+16>>2]|0):0){e=(a[b+40>>0]|0)==0?0:8;a[b+40>>0]=1;return e|0}a[b+40>>0]=0;e=f;return e|0}function za(b,d){b=b|0;d=d|0;var e=0;e=Ba(1208)|0;if(!e){e=0;return e|0}c[e+36>>2]=b;d=va(b,d)|0;c[e+1200>>2]=d;if(!d){Ga(e);e=0;return e|0}else{c[e>>2]=0;a[e+40>>0]=0;c[e+4>>2]=0;c[e+24>>2]=0;c[e+24+4>>2]=0;b=e+72|0;d=b+100|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));c[e+172>>2]=12;return e|0}return 0}function Aa(a){a=a|0;if(!a)return;xa(c[a+1200>>2]|0);Ga(a);return}function Ba(a){a=a|0;var b=0,d=0,e=0;if(!a){a=0;return a|0}e=a>>>0>8?a:8;d=31-(Q(e|0)|0)|0;d=((e|0)==0?1:d)+((Na(a|0)|0)!=1&1)|0;a:do if(d>>>0>3&1<>>0>a>>>0?(b=c[3100+(d+-1<<2)>>2]|0,(b|0)!=0):0){e=0;while(1){if((((c[b+-8>>2]|0)>>>1)+-8|0)>>>0>=a>>>0){e=12;break a}e=e+1|0;b=c[b+4>>2]|0;if(!(e>>>0<32&(b|0)!=0)){e=7;break}}}else e=7;while(0);b:do if((e|0)==7){if(d>>>0<32)do{b=c[3100+(d<<2)>>2]|0;d=d+1|0;if(b|0){e=12;break b}}while(d>>>0<32);b=Ca(a)|0;if(!b){a=0;return a|0}}while(0);if((e|0)==12)b=Da(b,a)|0;a=b+8|0;return a|0}function Ca(a){a=a|0;var b=0,d=0,e=0;d=c[808]|0;if(d|0?(b=c[d>>2]|0,(b&1|0)==0):0){c[d>>2]=b|1;e=((b>>>1)+-8|0)>>>0>8?(b>>>1)+-8|0:8;b=31-(Q(e|0)|0)|0;b=3100+(((e|0)==0?1:b)<<2)|0;if((c[b>>2]|0)==(d+8|0))c[b>>2]=c[d+12>>2];b=c[d+8>>2]|0;if(b|0)c[b+4>>2]=c[d+12>>2];b=c[d+12>>2]|0;if(b|0)c[b>>2]=c[d+8>>2];a=(Ea(a)|0)==0;b=c[808]|0;if(!a){a=b;return a|0}c[b>>2]=c[b>>2]&-2;a=0;return a|0}b=Ra(a+15&-8|0)|0;if((b|0)==(-1|0)){a=0;return a|0}e=b+7&-8;if((b|0)!=(e|0)?(Ra((b+7&-8)-b|0)|0)==(-1|0):0){a=0;return a|0}b=b+7&-8;d=c[808]|0;if(!d)c[807]=e;else c[b+4>>2]=d;c[808]=e;c[b>>2]=(a+15&-8)<<1|1;a=b;return a|0}function Da(a,b){a=a|0;b=b|0;var d=0,e=0;e=((c[a+-8>>2]|0)>>>1)+-8|0;e=e>>>0>8?e:8;d=31-(Q(e|0)|0)|0;d=3100+(((e|0)==0?1:d)<<2)|0;if((c[d>>2]|0)==(a|0))c[d>>2]=c[a+4>>2];d=c[a>>2]|0;if(d|0)c[d+4>>2]=c[a+4>>2];d=c[a+4>>2]|0;if(d|0)c[d>>2]=c[a>>2];d=c[a+-8>>2]|0;c[a+-8>>2]=d|1;do if((c[808]|0)==(a+-8|0)?((d>>>1)+(-8-b)&-8|0)==8:0)if(!(Ea(d>>>1)|0))return a+-8|0;else{d=(d>>>1)+(-8-b)+8|0;break}else d=(d>>>1)+(-8-b)|0;while(0);if(d>>>0<=15)return a+-8|0;d=c[a+-8>>2]|0;e=a+b+7&-8;c[a+-8>>2]=d&1|(a+b+7&-8)-(a+-8)<<1;d=a+-8+(d>>>1)-(a+b+7&-8)|0;c[e>>2]=d<<1|c[e>>2]&1;c[e+4>>2]=a+-8;c[((c[808]|0)==(a+-8|0)?3232:(a+b+7&-8)+(d&2147483647)+4|0)>>2]=a+b+7&-8;Fa(e);return a+-8|0}function Ea(a){a=a|0;var b=0,d=0,e=0;b=(a+15&-8)-((c[c[808]>>2]|0)>>>1)|0;if((Ra(b|0)|0)==(-1|0)){d=0;return d|0}d=c[808]|0;a=c[d>>2]|0;if(!(a&1)){e=((a>>>1)+-8|0)>>>0>8?(a>>>1)+-8|0:8;a=31-(Q(e|0)|0)|0;a=3100+(((e|0)==0?1:a)<<2)|0;if((c[a>>2]|0)==(d+8|0))c[a>>2]=c[d+12>>2];a=c[d+8>>2]|0;if(a|0)c[a+4>>2]=c[d+12>>2];a=c[d+12>>2]|0;if(a|0)c[a>>2]=c[d+8>>2]}a=(c[d>>2]|0)+(b<<1)|0;c[d>>2]=a;if(a&1|0){e=1;return e|0}a=((a>>>1)+-8|0)>>>0>8?(a>>>1)+-8|0:8;e=31-(Q(a|0)|0)|0;e=3100+(((a|0)==0?1:e)<<2)|0;a=c[e>>2]|0;c[e>>2]=d+8;c[d+8>>2]=0;c[d+12>>2]=a;if(!a){e=1;return e|0}c[a>>2]=d+8;e=1;return e|0}function Fa(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[a>>2]|0;c[a>>2]=d&-2;h=c[a+4>>2]|0;b=c[808]|0;i=(b|0)==(a|0)?0:a+(d>>>1)|0;j=(b|0)==(a|0)?0:a+(d>>>1)|0;if(h|0?(e=c[h>>2]|0,(e&1|0)==0):0){f=((e>>>1)+-8|0)>>>0>8?(e>>>1)+-8|0:8;d=31-(Q(f|0)|0)|0;d=3100+(((f|0)==0?1:d)<<2)|0;if((c[d>>2]|0)==(h+8|0))c[d>>2]=c[h+12>>2];d=c[h+8>>2]|0;if(d|0)c[d+4>>2]=c[h+12>>2];d=c[h+12>>2]|0;if(d|0)c[d>>2]=c[h+8>>2];c[h>>2]=(c[h>>2]|0)+(c[a>>2]&-2);if(j){c[j+4>>2]=h;d=c[j>>2]|0;if(!(d&1)){a=((d>>>1)+-8|0)>>>0>8?(d>>>1)+-8|0:8;d=31-(Q(a|0)|0)|0;d=3100+(((a|0)==0?1:d)<<2)|0;if((c[d>>2]|0)==(j+8|0))c[d>>2]=c[j+12>>2];d=c[j+8>>2]|0;if(d|0)c[d+4>>2]=c[j+12>>2];d=c[j+12>>2]|0;if(d){c[d>>2]=c[j+8>>2];b=c[808]|0}c[h>>2]=(c[h>>2]|0)+(c[j>>2]&-2);if((j|0)==(b|0)){b=3232;g=19}else{b=i+((c[j>>2]|0)>>>1)+4|0;g=19}}}else{b=3232;g=19}if((g|0)==19)c[b>>2]=h;b=((c[h>>2]|0)>>>1)+-8|0;b=b>>>0>8?b:8;j=31-(Q(b|0)|0)|0;j=3100+(((b|0)==0?1:j)<<2)|0;b=c[j>>2]|0;c[j>>2]=h+8;c[h+8>>2]=0;c[h+12>>2]=b;if(!b)return;c[b>>2]=h+8;return}if(j|0?(f=c[j>>2]|0,(f&1|0)==0):0){h=((f>>>1)+-8|0)>>>0>8?(f>>>1)+-8|0:8;d=31-(Q(h|0)|0)|0;d=3100+(((h|0)==0?1:d)<<2)|0;if((c[d>>2]|0)==(j+8|0))c[d>>2]=c[j+12>>2];d=c[j+8>>2]|0;if(d|0)c[d+4>>2]=c[j+12>>2];d=c[j+12>>2]|0;if(!d)d=b;else{c[d>>2]=c[j+8>>2];d=c[808]|0}b=(c[a>>2]|0)+(c[j>>2]&-2)|0;c[a>>2]=b;if((j|0)==(d|0))c[808]=a;else{c[i+((c[j>>2]|0)>>>1)+4>>2]=a;b=c[a>>2]|0}b=(b>>>1)+-8|0;b=b>>>0>8?b:8;j=31-(Q(b|0)|0)|0;j=3100+(((b|0)==0?1:j)<<2)|0;b=c[j>>2]|0;c[j>>2]=a+8;c[a+8>>2]=0;c[a+12>>2]=b;if(!b)return;c[b>>2]=a+8;return}b=((d>>>1)+-8|0)>>>0>8?(d>>>1)+-8|0:8;j=31-(Q(b|0)|0)|0;j=3100+(((b|0)==0?1:j)<<2)|0;b=c[j>>2]|0;c[j>>2]=a+8;c[a+8>>2]=0;c[a+12>>2]=b;if(!b)return;c[b>>2]=a+8;return}function Ga(a){a=a|0;if(!a)return;Fa(a+-8|0);return}function Ha(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function Ia(){}function Ja(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){y=b>>>c;return a>>>c|(b&(1<>>c-32|0}function Ka(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){y=b<>>32-c;return a<>>0>>>0>>0|0)>>>0,a+c>>>0|0)|0}function Ma(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (y=d,a-c>>>0|0)|0}function Na(a){a=a|0;a=a-(a>>>1&1431655765)|0;a=(a&858993459)+(a>>>2&858993459)|0;return N(a+(a>>>4)&252645135,16843009)>>>24|0}function Oa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return X(b|0,d|0,e|0)|0;h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function Pa(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else Oa(b,c,d)|0;return b|0}function Qa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=d|d<<8|d<<16|d<<24;while((b|0)<=((f&-4)-64|0)){c[b>>2]=g;c[b+4>>2]=g;c[b+8>>2]=g;c[b+12>>2]=g;c[b+16>>2]=g;c[b+20>>2]=g;c[b+24>>2]=g;c[b+28>>2]=g;c[b+32>>2]=g;c[b+36>>2]=g;c[b+40>>2]=g;c[b+44>>2]=g;c[b+48>>2]=g;c[b+52>>2]=g;c[b+56>>2]=g;c[b+60>>2]=g;b=b+64|0}while((b|0)<(f&-4|0)){c[b>>2]=g;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function Ra(a){a=a|0;var b=0;b=c[i>>2]|0;if((a|0)>0&(b+a|0)<(b|0)|(b+a|0)<0){V()|0;W(12);return -1}c[i>>2]=b+a;if((b+a|0)>(U()|0)?(T()|0)==0:0){c[i>>2]=b;W(12);return -1}return b|0} - -// EMSCRIPTEN_END_FUNCS -return{_bitshift64Lshr:Ja,_bitshift64Shl:Ka,_decompress:na,_free:Ga,_get_in_buffer:la,_get_out_buffer:pa,_get_out_pos:oa,_i64Add:La,_i64Subtract:Ma,_init:ia,_init_decompression:ja,_input_empty:ka,_llvm_ctpop_i32:Na,_malloc:Ba,_memcpy:Oa,_memmove:Pa,_memset:Qa,_out_buffer_cleared:qa,_release:ra,_sbrk:Ra,_set_new_input:ma,establishStackSpace:aa,getTempRet0:da,runPostSets:Ia,setTempRet0:ca,setThrew:ba,stackAlloc:Z,stackRestore:$,stackSave:_}}) - - -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _decompress=Module["_decompress"]=asm["_decompress"];var _free=Module["_free"]=asm["_free"];var _get_in_buffer=Module["_get_in_buffer"]=asm["_get_in_buffer"];var _get_out_buffer=Module["_get_out_buffer"]=asm["_get_out_buffer"];var _get_out_pos=Module["_get_out_pos"]=asm["_get_out_pos"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _init=Module["_init"]=asm["_init"];var _init_decompression=Module["_init_decompression"]=asm["_init_decompression"];var _input_empty=Module["_input_empty"]=asm["_input_empty"];var _llvm_ctpop_i32=Module["_llvm_ctpop_i32"]=asm["_llvm_ctpop_i32"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _out_buffer_cleared=Module["_out_buffer_cleared"]=asm["_out_buffer_cleared"];var _release=Module["_release"]=asm["_release"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _set_new_input=Module["_set_new_input"]=asm["_set_new_input"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var setThrew=Module["setThrew"]=asm["setThrew"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];Module["asm"]=asm;if(memoryInitializer){if(!isDataURI(memoryInitializer)){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=exit;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run() - - - - diff --git a/www/js/lib/xzdec_wrapper.js b/www/js/lib/xzdec_wrapper.js index 23e5dfc1..3b258649 100644 --- a/www/js/lib/xzdec_wrapper.js +++ b/www/js/lib/xzdec_wrapper.js @@ -1,7 +1,7 @@ /** * xzdec_wrapper.js: Javascript wrapper around compiled xz decompressor. * - * Copyright 2015 Mossroy and contributors + * Copyright 2021 Mossroy and contributors * License GPL v3: * * This file is part of Kiwix. @@ -20,10 +20,55 @@ * along with Kiwix (file LICENSE-GPLv3.txt). If not, see */ 'use strict'; -define(['xzdec'], function() { - // DEV: xzdec.js emits a global Module variable, which cannot be set in requireJS function line above, though it can be loaded in definition - var xzdec = Module; - xzdec._init(); + +// DEV: Put your RequireJS definition in the rqDefXZ array below, and any function exports in the function parenthesis of the define statement +// We need to do it this way in order to load the wasm or asm versions of xzdec conditionally. Older browsers can only use the asm version +// because they cannot interpret WebAssembly. +var rqDefXZ = []; + +// Select asm or wasm conditionally +if ('WebAssembly' in self) { + console.debug('Using WASM xz decoder'); + rqDefXZ.push('xzdec-wasm'); +} else { + console.debug('Using ASM xz decoder'); + rqDefXZ.push('xzdec-asm'); +} + +define(rqDefXZ, function() { + // DEV: xzdec.js has been compiled with `-s EXPORT_NAME="XZ" -s MODULARIZE=1` to avoid a clash with zstddec.js + // Note that we include xzdec-asm or xzdec-wasm above in requireJS definition, but we cannot change the name in the function list + // There is no longer any need to load it in index.html + // For explanation of loading method below to avoid conflicts, see https://github.com/emscripten-core/emscripten/blob/master/src/settings.js + + /** + * @typedef EMSInstance An object type representing an Emscripten instance + */ + + /** + * The XZ Decoder instance + * @type EMSInstance + */ + var xzdec; + + var instantiateDecoder = function (instance) { + xzdec = instance; + }; + + XZ().then(instantiateDecoder) + .catch(function (err) { + console.debug(err); + if (/CompileError.+?WASM/i.test(err.message)) { + console.log("WASM failed to load, falling back to ASM...", err); + XZ = null; + require(['xzdec-asm'], function() { + XZ().then(instantiateDecoder) + .catch(function (err) { + console.error('Could not instantiate any decoder!', err); + }); + }); + } + }); /** * Number of milliseconds to wait for the decompressor to be available for another chunk @@ -86,6 +131,7 @@ define(['xzdec'], function() { * @returns {Promise} A Promise for the read data */ Decompressor.prototype.readSliceSingleThread = function(offset, length) { + // Tests whether the decompressor is ready (initiated) and not busy if (xzdec && !busy) { return this.readSlice(offset, length); } else { @@ -94,7 +140,6 @@ define(['xzdec'], function() { // before using it for another decompression var that = this; return new Promise(function (resolve, reject) { - setTimeout(function(){ that.readSliceSingleThread(offset, length).then(resolve, reject); }, DELAY_WAITING_IDLE_DECOMPRESSOR); @@ -149,7 +194,6 @@ define(['xzdec'], function() { */ Decompressor.prototype._fillInBufferIfNeeded = function() { if (!xzdec._input_empty(this._decHandle)) { - // DEV: When converting to Promise/A+, use Promise.resolve(0) here return Promise.resolve(0); } var that = this; diff --git a/www/js/lib/zimfile.js b/www/js/lib/zimfile.js index b6998c33..810a0fe8 100644 --- a/www/js/lib/zimfile.js +++ b/www/js/lib/zimfile.js @@ -20,6 +20,21 @@ * along with Kiwix (file LICENSE-GPLv3.txt). If not, see */ 'use strict'; + +/** + * Add Polyfill currently required by IE11 to run zstddec-asm and xzdec-asm + * See https://github.com/emscripten-core/emscripten/issues/14700 + * If this is resolved upstream, remove this polyfill + */ + if (!String.prototype.startsWith) { + Object.defineProperty(String.prototype, 'startsWith', { + value: function(search, rawPos) { + var pos = rawPos > 0 ? rawPos|0 : 0; + return this.substring(pos, pos + search.length) === search; + } + }); +} + define(['xzdec_wrapper', 'zstddec_wrapper', 'util', 'utf8', 'zimDirEntry', 'filecache'], function(xz, zstd, util, utf8, zimDirEntry, FileCache) { /** diff --git a/www/js/lib/zstddec-asm.js b/www/js/lib/zstddec-asm.js new file mode 100644 index 00000000..462727b9 --- /dev/null +++ b/www/js/lib/zstddec-asm.js @@ -0,0 +1,58 @@ + +var ZD = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( +function(ZD) { + ZD = ZD || {}; + + +var a;a||(a=typeof ZD !== 'undefined' ? ZD : {}); +var Promise=function(){function c(){}function f(b,e){return function(){b.apply(e,arguments)}}function d(b){if(!(this instanceof d))throw new TypeError("Promises must be constructed via new");if("function"!==typeof b)throw new TypeError("not a function");this.s=0;this.B=!1;this.u=void 0;this.v=[];C(b,this)}function m(b,e){for(;3===b.s;)b=b.u;0===b.s?b.v.push(e):(b.B=!0,d.C(function(){var g=1===b.s?e.F:e.G;if(null===g)(1===b.s?l:p)(e.promise,b.u);else{try{var h=g(b.u)}catch(k){p(e.promise,k);return}l(e.promise, +h)}}))}function l(b,e){try{if(e===b)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"===typeof e||"function"===typeof e)){var g=e.then;if(e instanceof d){b.s=3;b.u=e;r(b);return}if("function"===typeof g){C(f(g,e),b);return}}b.s=1;b.u=e;r(b)}catch(h){p(b,h)}}function p(b,e){b.s=2;b.u=e;r(b)}function r(b){2===b.s&&0===b.v.length&&d.C(function(){b.B||d.D(b.u)});for(var e=0,g=b.v.length;e=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];h=v[h>>2];T=!f&h>>>0>33554432|(f|0)!=0;m=-72;a:{if(e>>>0>131071){break a}p=-20;b:{c:{if(e>>>0<3){break c}d:{e:{f:{g:{h:{k=w[d|0];G=k&3;switch(G-1|0){case 0:break f;case 1:break g;case 2:break h;default:break e}}if(v[a+28808>>2]){break g}m=-30;break b}if(e>>>0<5){break c}h=3;i=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24);i:{j:{k:{l:{m:{k=k>>>2&3;switch(k-2|0){case 1:break k;case 0:break l;default:break m}}f=i>>>14&1023;i=i>>>4&1023;k=!k;break i}f=i>>>18|0;i=i>>>4&16383;h=4;break j}f=w[d+4|0]<<10|i>>>22;i=i>>>4&262143;h=5}k=0}if(i>>>0>131072){break c}q=f+h|0;if(q>>>0>e>>>0){break c}if(!v[a+28956>>2]|i>>>0<769){break d}m=0;while(1){if(m>>>0>=16324){break d}m=m+512|0;continue}}f=2;n:{o:{switch((k>>>2&3)-1|0){default:f=1;h=k>>>3|0;break n;case 0:h=(w[d|0]|w[d+1|0]<<8)>>>4|0;break n;case 2:break o}}if(e>>>0<4){break c}h=w[d|0]|w[d+1|0]<<8|w[d+2|0]<<16;if(h>>>0>2097167){break c}f=3;h=h>>>4|0}i=_(a+29040|0,w[d+f|0],h+32|0);v[a+28928>>2]=h;v[a+28912>>2]=i;p=f+1|0;break c}f=2;i=e;p:{q:{switch((k>>>2&3)-1|0){default:f=1;h=k>>>3|0;break p;case 0:h=(w[d|0]|w[d+1|0]<<8)>>>4|0;break p;case 2:break q}}f=3;h=(w[d|0]|w[d+1|0]<<8|w[d+2|0]<<16)>>>4|0}m=f+h|0;if(m+32>>>0>i>>>0){if(e>>>0>>0){break c}f=X(a+29040|0,d+f|0,h);v[a+28928>>2]=h;v[a+28912>>2]=f;f=f+h|0;t[f+24|0]=0;t[f+25|0]=0;t[f+26|0]=0;t[f+27|0]=0;t[f+28|0]=0;t[f+29|0]=0;t[f+30|0]=0;t[f+31|0]=0;t[f+16|0]=0;t[f+17|0]=0;t[f+18|0]=0;t[f+19|0]=0;t[f+20|0]=0;t[f+21|0]=0;t[f+22|0]=0;t[f+23|0]=0;t[f+8|0]=0;t[f+9|0]=0;t[f+10|0]=0;t[f+11|0]=0;t[f+12|0]=0;t[f+13|0]=0;t[f+14|0]=0;t[f+15|0]=0;t[f|0]=0;t[f+1|0]=0;t[f+2|0]=0;t[f+3|0]=0;t[f+4|0]=0;t[f+5|0]=0;t[f+6|0]=0;t[f+7|0]=0;break b}v[a+28928>>2]=h;v[a+28912>>2]=d+f;break b}r:{if((G|0)==3){g=d+h|0;h=a+29040|0;m=v[a+12>>2];if(k){s:{if(w[m+1|0]){k=-72;t:{if(!f){break t}u:{v:{w:{if(f>>>0>=4){r=w[(f+g|0)-1|0];k=-1;if(!r){break u}if(f>>>0<=4294967176){break w}k=f;break t}s=w[g|0];x:{switch(f-2|0){case 1:s=w[g+2|0]<<16|s;case 0:s=(w[g+1|0]<<8)+s|0;break;default:break x}}r=w[(f+g|0)-1|0];k=-20;if(!r){break t}f=(E(r)-(f<<3)|0)+9|0;break v}l=f-4|0;f=g+l|0;s=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);f=E(r)-23|0}r=m+4|0;u=h+i|0;z=0-x[m+2>>1]&31;y:{z:{if(f>>>0<=32){H=u-3|0;A:{while(1){B:{if((l|0)>=4){s=f>>>3|0;k=0;f=f&7;break B}if(!l){D=u-2|0;l=0;m=g;break z}m=f>>>3|0;k=g>>>0>(g+l|0)-m>>>0;s=k?l:m;f=f-(s<<3)|0}l=l-s|0;m=g+l|0;s=w[m|0]|w[m+1|0]<<8|(w[m+2|0]<<16|w[m+3|0]<<24);if(k|h>>>0>=H>>>0){break A}k=r+(s<>>z<<2)|0;A=x[k>>1];t[h|0]=A;t[h+1|0]=A>>>8;h=w[k+3|0]+h|0;k=w[k+2|0]+f|0;f=r+(s<>>z<<2)|0;A=x[f>>1];t[h|0]=A;t[h+1|0]=A>>>8;h=h+w[f+3|0]|0;f=k+w[f+2|0]|0;if(f>>>0<33){continue}break}D=u-2|0;break y}}m=g+l|0;D=u-2|0;if(f>>>0>32){break y}}while(1){C:{if((l|0)>=4){k=f&7;s=f>>>3|0;f=0;break C}if(!l){break y}k=f;A=m;m=f>>>3|0;f=g>>>0>A-m>>>0;s=f?l:m;k=k-(s<<3)|0}l=l-s|0;m=g+l|0;s=w[m|0]|w[m+1|0]<<8|(w[m+2|0]<<16|w[m+3|0]<<24);if(!(f?0:h>>>0<=D>>>0)){f=k;break y}f=r+(s<>>z<<2)|0;H=x[f>>1];t[h|0]=H;t[h+1|0]=H>>>8;h=w[f+3|0]+h|0;f=w[f+2|0]+k|0;if(f>>>0<=32){continue}break}}if(h>>>0<=D>>>0){while(1){k=r+(s<>>z<<2)|0;l=x[k>>1];t[h|0]=l;t[h+1|0]=l>>>8;f=w[k+2|0]+f|0;h=w[k+3|0]+h|0;if(D>>>0>=h>>>0){continue}break}}D:{if(h>>>0>=u>>>0){break D}l=h;k=s<>>z|0;h=r+(k<<2)|0;t[l|0]=w[h|0];if(w[h+3|0]==1){f=w[h+2|0]+f|0;break D}if(f>>>0>31){break D}f=w[(r+(k<<2)|0)+2|0]+f|0;f=f>>>0<32?f:32}k=(g|0)!=(m|0)?-20:(f|0)!=32?-20:i}}h=k;break s}h=la(h,i,g,f,m)}break r}E:{if(w[m+1|0]){h=ra(h,i,g,f,m);break E}h=ka(h,i,g,f,m)}break r}l=a+26680|0;g=d+h|0;s=a+29040|0;m=a+10280|0;if(k){h=ma(m,g,f,l);if(h>>>0>4294967176){break r}if(f>>>0>h>>>0){h=la(s,i,g+h|0,f-h|0,m)}else{h=-72}break r}h=-70;F:{if(!i){break F}h=-20;if(!f){break F}k=i>>>8|0;h=B(f>>>0>>0?(f<<4>>>0)/(i>>>0)|0:15,24);r=B(k,v[h+1884>>2])+v[h+1880>>2]|0;G:{if((r>>>3|0)+r>>>0>2]+B(k,v[h+1876>>2])>>>0){h=ia(m,g,f,l,2048);if(h>>>0>4294967176){break F}k=-72;if(f>>>0<=h>>>0){break G}h=ra(s,i,g+h|0,f-h|0,m);break F}h=ma(m,g,f,l);if(h>>>0>4294967176){break F}k=-72;if(f>>>0<=h>>>0){break G}k=ka(s,i,g+h|0,f-h|0,m)}h=k}}if(h>>>0>4294967176){break c}v[a+28928>>2]=i;v[a+28808>>2]=1;v[a+28912>>2]=a+29040;if((G|0)==2){v[a+12>>2]=a+10280}h=a+i|0;f=h+29064|0;t[f|0]=0;t[f+1|0]=0;t[f+2|0]=0;t[f+3|0]=0;t[f+4|0]=0;t[f+5|0]=0;t[f+6|0]=0;t[f+7|0]=0;f=h+29056|0;t[f|0]=0;t[f+1|0]=0;t[f+2|0]=0;t[f+3|0]=0;t[f+4|0]=0;t[f+5|0]=0;t[f+6|0]=0;t[f+7|0]=0;f=h+29048|0;t[f|0]=0;t[f+1|0]=0;t[f+2|0]=0;t[f+3|0]=0;t[f+4|0]=0;t[f+5|0]=0;t[f+6|0]=0;t[f+7|0]=0;f=h+29040|0;t[f|0]=0;t[f+1|0]=0;t[f+2|0]=0;t[f+3|0]=0;t[f+4|0]=0;t[f+5|0]=0;t[f+6|0]=0;t[f+7|0]=0;m=q;break b}m=p}if(m>>>0>4294967176){break a}p=v[a+28956>>2];h=d+m|0;f=d;d=m>>>0<4294967177;q=d?h:f;f=q;h=-72;l=e-(d?m:0)|0;i=l;H:{I:{if(!i){break I}e=w[f|0];if(!e){v[j+36>>2]=0;d=(i|0)==1?1:-72;break H}k=e<<24>>24;d=f+1|0;J:{if((k|0)>-1){break J}if((k|0)==-1){if((i|0)<3){break I}e=(w[f+1|0]|w[f+2|0]<<8)+32512|0;d=f+3|0;break J}if((i|0)<2){break I}e=(w[f+1|0]|e<<8)-32768|0;d=f+2|0}v[j+36>>2]=e;k=d+1|0;i=f+i|0;if(k>>>0>i>>>0){break I}h=-20;g=w[d|0];d=ga(a+16|0,a,g>>>6|0,35,9,k,i-k|0,2960,3104,3264,v[a+28812>>2],v[a+28956>>2],e);if(d>>>0>4294967176){break I}d=d>>>0<4294967177?d+k|0:k;k=ga(a+4120|0,a+8|0,g>>>4&3,31,8,d,i-d|0,2256,2384,3792,v[a+28812>>2],v[a+28956>>2],e);if(k>>>0>4294967176){break I}d=k>>>0<4294967177?d+k|0:d;e=ga(a+6176|0,a+4|0,g>>>2&3,52,9,d,i-d|0,2512,2736,4064,v[a+28812>>2],v[a+28956>>2],e);if(e>>>0>4294967176){break I}h=(d+e|0)-f|0}d=h}if(d>>>0>4294967176){m=d;break a}D=v[j+36>>2];if(!b){m=-70;if((D|0)>0){break a}}f=l-d|0;o=d+q|0;K:{L:{M:{if(p){v[a+28956>>2]=0;break M}d=a+28760|0;e=v[d>>2];if(!v[d+4>>2]&e>>>0<16777217|(D|0)<=4){break L}d=v[a+8>>2];h=d+8|0;d=v[d+4>>2];m=0;e=0;while(1){m=(w[(h+(e<<3)|0)+2|0]>22)+m|0;e=e+1|0;if(!(e>>>d|0)){continue}break}v[a+28956>>2]=0;if(m<<8-d>>>0<20){break K}}e=v[a+28912>>2];v[j+188>>2]=e;I=b+c|0;K=v[a+28928>>2]+e|0;N:{if(!D){d=b;break N}J=v[a+28740>>2];M=v[a+28736>>2];s=v[a+28732>>2];v[a+28812>>2]=1;v[j+92>>2]=v[a+26676>>2];H=a+26668|0;c=H;d=v[c+4>>2];v[j+84>>2]=v[c>>2];v[j+88>>2]=d;v[j+100>>2]=J;v[j+96>>2]=s;R=b-s|0;v[j+104>>2]=R;m=-20;if(!f){break a}v[j+52>>2]=o;v[j+56>>2]=o+4;O:{if(f>>>0>=4){e=f-4|0;c=o+e|0;v[j+48>>2]=c;l=w[c|0]|w[c+1|0]<<8|(w[c+2|0]<<16|w[c+3|0]<<24);v[j+40>>2]=l;if(l>>>0<16777216|f>>>0>4294967176){break a}c=E(l>>>24|0)-23|0;break O}v[j+48>>2]=o;l=w[o|0];v[j+40>>2]=l;P:{switch(f-2|0){case 1:l=w[o+2|0]<<16|l;case 0:l=(w[o+1|0]<<8)+l|0;v[j+40>>2]=l;break;default:break P}}c=w[(f+o|0)-1|0];if(!c){break a}c=(E(c)-(f<<3)|0)+9|0;v[j+44>>2]=c;e=0}f=v[a>>2];d=v[f+4>>2];c=d+c|0;q=l>>>0-c&v[(d<<2)+4592>>2];v[j+60>>2]=q;Q:{if(c>>>0>32){break Q}R:{if((e|0)>=4){e=e-(c>>>3|0)|0;v[j+48>>2]=o+e;c=c&7;break R}if(!e){e=0;break Q}d=c>>>3|0;d=o>>>0>(e+o|0)-d>>>0?e:d;e=e-d|0;v[j+48>>2]=o+e;c=c-(d<<3)|0}d=e+o|0;l=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24);v[j+40>>2]=l}U=f+8|0;v[j- -64>>2]=U;f=v[a+8>>2];d=v[f+4>>2];c=d+c|0;C=l>>>0-c&v[(d<<2)+4592>>2];v[j+68>>2]=C;S:{if(c>>>0>32){break S}T:{if((e|0)>=4){e=e-(c>>>3|0)|0;v[j+48>>2]=o+e;c=c&7;break T}if(!e){e=0;break S}d=c>>>3|0;d=o>>>0>(e+o|0)-d>>>0?e:d;e=e-d|0;v[j+48>>2]=o+e;c=c-(d<<3)|0}d=e+o|0;l=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24);v[j+40>>2]=l}d=(D|0)<4;V=f+8|0;v[j+72>>2]=V;f=v[a+4>>2];a=v[f+4>>2];c=a+c|0;v[j+44>>2]=c;u=v[(a<<2)+4592>>2]&l>>>0-c;v[j+76>>2]=u;U:{if(c>>>0>32){break U}a=j;V:{if((e|0)>=4){e=e-(c>>>3|0)|0;v[j+48>>2]=o+e;c=c&7;break V}if(!e){e=0;break U}h=c>>>3|0;h=o>>>0>(e+o|0)-h>>>0?e:h;e=e-h|0;v[j+48>>2]=o+e;c=c-(h<<3)|0}v[a+44>>2]=c;a=e+o|0;l=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);v[j+40>>2]=l}S=d?D:4;W=f+8|0;v[j+80>>2]=W;W:{if(c>>>0<=32){G=(S|0)>0?S:0;i=e;h=e;g=e;d=e;k=e;while(1){p=j;X:{Y:{if((k|0)>=4){f=c&7;v[j+44>>2]=f;e=k-(c>>>3|0)|0;c=o+e|0;v[j+48>>2]=c;l=w[c|0]|w[c+1|0]<<8|(w[c+2|0]<<16|w[c+3|0]<<24);break Y}if(!k){f=c;k=0;break X}a=c;c=c>>>3|0;c=o>>>0>(k+o|0)-c>>>0?k:c;f=a-(c<<3)|0;v[j+44>>2]=f;e=k-c|0;c=o+e|0;v[j+48>>2]=c;l=w[c|0]|w[c+1|0]<<8|(w[c+2|0]<<16|w[c+3|0]<<24)}v[p+40>>2]=l;i=e;h=e;g=e;d=e;k=e}if((n|0)==(G|0)){c=f;n=G;break W}c=(q<<3)+U|0;a=v[c+4>>2];r=v[c>>2];p=a;Y=(a&65535)<<16|r>>>16;P=Y&255;c=(u<<3)+W|0;a=v[c+4>>2];u=v[c>>2];q=a;$=(a&65535)<<16|u>>>16;N=$&255;a=(C<<3)+V|0;c=v[a+4>>2];z=v[a>>2];a=c;O=a;A=q;C=p;c=(a&65535)<<16|z>>>16;a=c&255;Z:{if(a>>>0>=2){_:{if(!(!T|a>>>0<25)){L=a;c=32-f|0;a=a>>>0>>0?a:c;F=L-a|0;L=l<>>0-a<>>0>32){break $}aa:{if((g|0)>=4){e=g-(a>>>3|0)|0;v[j+48>>2]=o+e;a=a&7;break aa}if(!g){g=0;d=0;k=0;break $}c=a>>>3|0;c=o>>>0>(g+o|0)-c>>>0?g:c;e=g-c|0;v[j+48>>2]=o+e;a=a-(c<<3)|0}c=e+o|0;l=w[c|0]|w[c+1|0]<<8|(w[c+2|0]<<16|w[c+3|0]<<24);v[j+40>>2]=l;i=e;h=e;g=e;d=e;k=e}c=O+L|0;if(!F){break _}c=(l<>>0-F|0)+c|0;a=a+F|0;break _}c=O+(l<>>0-c|0)|0;f=a+f|0;if(f>>>0>32){a=f;break _}k=j;ba:{if((d|0)>=4){a=f&7;v[j+44>>2]=a;e=d-(f>>>3|0)|0;d=o+e|0;v[j+48>>2]=d;l=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24);break ba}if(!d){d=0;a=f;k=0;break _}a=f>>>3|0;e=o>>>0>(d+o|0)-a>>>0?d:a;a=f-(e<<3)|0;v[j+44>>2]=a;e=d-e|0;d=o+e|0;v[j+48>>2]=d;l=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24)}v[k+40>>2]=l;i=e;h=e;g=e;d=e;k=e}f=v[j+88>>2];F=v[j+84>>2];v[j+84>>2]=c;v[j+88>>2]=F;v[j+92>>2]=f;break Z}if(!a){if(C){c=v[j+84>>2];a=f;break Z}c=v[j+88>>2];v[j+88>>2]=v[j+84>>2];v[j+84>>2]=c;a=f;break Z}a=f+1|0;v[j+44>>2]=a;f=O+(!C+(l<>>31|0)|0)|0;ca:{da:{if((f|0)==3){c=v[j+84>>2]-1|0;c=!c+c|0;break da}c=v[((f<<2)+j|0)+84>>2];c=!c+c|0;if((f|0)==1){break ca}}v[j+92>>2]=v[j+88>>2]}v[j+88>>2]=v[j+84>>2];v[j+84>>2]=c}f=A;if(N){f=(l<>>0-$|0)+f|0;a=a+N|0}ea:{if(P+N>>>0<20|a>>>0>32){break ea}d=j;fa:{if((h|0)>=4){e=h-(a>>>3|0)|0;v[j+48>>2]=o+e;a=a&7;break fa}if(!h){h=0;g=0;d=0;k=0;break ea}k=h;e=a>>>3|0;h=o>>>0>(h+o|0)-e>>>0?h:e;e=k-h|0;v[j+48>>2]=o+e;a=a-(h<<3)|0}v[d+44>>2]=a;d=e+o|0;l=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24);v[j+40>>2]=l;i=e;h=e;g=e;d=e;k=e}A=u;F=r;u=(q&16777215)<<8|u>>>24;q=(p&16777215)<<8|r>>>24;if(P){C=(l<>>0-Y|0)+C|0;a=a+P|0}ga:{if(a>>>0>32){break ga}ha:{if((i|0)>=4){e=i-(a>>>3|0)|0;v[j+48>>2]=o+e;a=a&7;break ha}if(!i){i=0;h=0;g=0;d=0;k=0;break ga}d=a>>>3|0;d=o>>>0>(i+o|0)-d>>>0?i:d;e=i-d|0;v[j+48>>2]=o+e;a=a-(d<<3)|0}d=e+o|0;l=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24);v[j+40>>2]=l;i=e;h=e;g=e;d=e;k=e}p=C+R|0;R=p+f|0;v[j+104>>2]=R;r=a;a=q&255;r=r+a|0;q=(l>>>0-r&v[(a<<2)+4592>>2])+(F&65535)|0;v[j+60>>2]=q;a=r;r=u&255;a=a+r|0;u=(v[(r<<2)+4592>>2]&l>>>0-a)+(A&65535)|0;v[j+76>>2]=u;r=(p+(c>>>0>p>>>0?J:s)|0)-c|0;ia:{if(a>>>0>32){break ia}ja:{if((e|0)>=4){e=e-(a>>>3|0)|0;v[j+48>>2]=o+e;a=a&7;break ja}if(!e){e=0;i=0;h=0;g=0;d=0;k=0;break ia}d=a>>>3|0;d=o>>>0>(e+o|0)-d>>>0?e:d;e=e-d|0;v[j+48>>2]=o+e;a=a-(d<<3)|0}d=e+o|0;l=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24);v[j+40>>2]=l;i=e;h=e;g=e;d=e;k=e}p=(j+112|0)+(n<<4)|0;v[p+12>>2]=r;v[p+8>>2]=c;v[p+4>>2]=f;v[p>>2]=C;c=a;a=z>>>24|0;c=c+a|0;v[j+44>>2]=c;C=(v[(a<<2)+4592>>2]&l>>>0-c)+(z&65535)|0;v[j+68>>2]=C;n=n+1|0;if(c>>>0<=32){continue}break}}if((n|0)<(S|0)){break a}}F=I-32|0;o=j+96|0;P=j+100|0;d=b;ka:{while(1){if(c>>>0>=33){if((n|0)<(D|0)){break a}break ka}a=v[j+48>>2];u=v[j+56>>2];la:{if(a>>>0>=u>>>0){f=c&7;v[j+44>>2]=f;a=a-(c>>>3|0)|0;v[j+48>>2]=a;v[j+40>>2]=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);break la}e=v[j+52>>2];if((e|0)==(a|0)){f=c;break la}f=c>>>3|0;e=e>>>0>a-f>>>0?a-e|0:f;a=a-e|0;v[j+48>>2]=a;f=c-(e<<3)|0;v[j+44>>2]=f;v[j+40>>2]=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24)}if((n|0)>=(D|0)){break ka}c=v[j+64>>2]+(v[j+60>>2]<<3)|0;e=v[c+4>>2];i=v[c>>2];c=e;N=(e&65535)<<16|i>>>16;z=N&255;h=v[j+80>>2]+(v[j+76>>2]<<3)|0;e=v[h+4>>2];p=v[h>>2];h=e;O=(e&65535)<<16|p>>>16;G=O&255;e=v[j+72>>2]+(v[j+68>>2]<<3)|0;k=v[e+4>>2];q=v[e>>2];e=k;A=e;l=h;C=c;k=(e&65535)<<16|q>>>16;e=k&255;ma:{if(e>>>0>=2){na:{if(!(!T|e>>>0<25)){g=e;k=32-f|0;e=e>>>0>>0?e:k;r=g-e|0;g=v[j+40>>2];k=g<>>0-e<>>0>32){break oa}pa:{if(a>>>0>=u>>>0){a=a-(e>>>3|0)|0;v[j+48>>2]=a;e=e&7;break pa}f=v[j+52>>2];if((f|0)==(a|0)){break oa}g=e>>>3|0;f=f>>>0>a-g>>>0?a-f|0:g;a=a-f|0;v[j+48>>2]=a;e=e-(f<<3)|0}g=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);v[j+40>>2]=g}k=k+A|0;if(!r){break na}k=(g<>>0-r|0)+k|0;e=e+r|0;break na}k=A+(v[j+40>>2]<>>0-k|0)|0;f=e+f|0;if(f>>>0>32){e=f;break na}if(a>>>0>=u>>>0){e=f&7;v[j+44>>2]=e;a=a-(f>>>3|0)|0;v[j+48>>2]=a;v[j+40>>2]=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);break na}e=v[j+52>>2];if((e|0)==(a|0)){e=f;break na}g=f>>>3|0;e=e>>>0>a-g>>>0?a-e|0:g;a=a-e|0;v[j+48>>2]=a;e=f-(e<<3)|0;v[j+44>>2]=e;v[j+40>>2]=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24)}f=v[j+88>>2];g=v[j+84>>2];v[j+84>>2]=k;v[j+88>>2]=g;v[j+92>>2]=f;break ma}if(!e){if(C){k=v[j+84>>2];e=f;break ma}k=v[j+88>>2];v[j+88>>2]=v[j+84>>2];v[j+84>>2]=k;e=f;break ma}e=f+1|0;v[j+44>>2]=e;f=A+!C+(v[j+40>>2]<>>31)|0;qa:{ra:{if((f|0)==3){f=v[j+84>>2]-1|0;k=!f+f|0;break ra}k=v[((f<<2)+j|0)+84>>2];k=!k+k|0;if((f|0)==1){break qa}}v[j+92>>2]=v[j+88>>2]}v[j+88>>2]=v[j+84>>2];v[j+84>>2]=k}f=l;if(G){f=(v[j+40>>2]<>>0-O|0)+f|0;e=e+G|0}sa:{if(z+G>>>0<20|e>>>0>32){break sa}g=j;ta:{if(a>>>0>=u>>>0){a=a-(e>>>3|0)|0;v[j+48>>2]=a;e=e&7;break ta}l=v[j+52>>2];if((l|0)==(a|0)){break sa}r=e>>>3|0;l=l>>>0>a-r>>>0?a-l|0:r;a=a-l|0;v[j+48>>2]=a;e=e-(l<<3)|0}v[g+44>>2]=e;v[j+40>>2]=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24)}r=i;g=p;h=(h&16777215)<<8|g>>>24;i=(c&16777215)<<8|i>>>24;if(z){C=(v[j+40>>2]<>>0-N|0)+C|0;e=e+z|0}ua:{if(e>>>0>32){break ua}va:{if(a>>>0>=u>>>0){a=a-(e>>>3|0)|0;v[j+48>>2]=a;e=e&7;break va}c=v[j+52>>2];if((c|0)==(a|0)){break ua}p=e>>>3|0;c=c>>>0>a-p>>>0?a-c|0:p;a=a-c|0;v[j+48>>2]=a;e=e-(c<<3)|0}v[j+40>>2]=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24)}z=v[j+104>>2]+C|0;v[j+104>>2]=z+f;l=v[j+40>>2];c=i&255;e=c+e|0;v[j+60>>2]=(l>>>0-e&v[(c<<2)+4592>>2])+(r&65535);c=h&255;e=c+e|0;v[j+76>>2]=(v[(c<<2)+4592>>2]&l>>>0-e)+(g&65535);r=v[(k>>>0>z>>>0?P:o)>>2];wa:{if(e>>>0>32){break wa}xa:{if(a>>>0>=u>>>0){a=a-(e>>>3|0)|0;v[j+48>>2]=a;e=e&7;break xa}c=v[j+52>>2];if((c|0)==(a|0)){break wa}h=e>>>3|0;c=c>>>0>a-h>>>0?a-c|0:h;a=a-c|0;v[j+48>>2]=a;e=e-(c<<3)|0}l=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);v[j+40>>2]=l}a=q>>>24|0;c=a+e|0;v[j+44>>2]=c;v[j+68>>2]=(v[(a<<2)+4592>>2]&l>>>0-c)+(q&65535);ya:{za:{l=v[j+188>>2];c=(j+112|0)+((n&3)<<4)|0;p=v[c>>2];u=l+p|0;Aa:{if(u>>>0>K>>>0){break Aa}i=v[c+4>>2];h=p+i|0;if(F>>>0>>0){break Aa}if(h+32>>>0<=I-d>>>0){break za}}a=v[c+12>>2];v[j+24>>2]=v[c+8>>2];v[j+28>>2]=a;a=v[c+4>>2];v[j+16>>2]=v[c>>2];v[j+20>>2]=a;h=ha(d,I,j+16|0,j+188|0,K,s,M,J);break ya}a=d+p|0;g=v[c+8>>2];e=w[l+4|0]|w[l+5|0]<<8|(w[l+6|0]<<16|w[l+7|0]<<24);q=w[l|0]|w[l+1|0]<<8|(w[l+2|0]<<16|w[l+3|0]<<24);t[d|0]=q;t[d+1|0]=q>>>8;t[d+2|0]=q>>>16;t[d+3|0]=q>>>24;t[d+4|0]=e;t[d+5|0]=e>>>8;t[d+6|0]=e>>>16;t[d+7|0]=e>>>24;e=w[l+12|0]|w[l+13|0]<<8|(w[l+14|0]<<16|w[l+15|0]<<24);q=w[l+8|0]|w[l+9|0]<<8|(w[l+10|0]<<16|w[l+11|0]<<24);t[d+8|0]=q;t[d+9|0]=q>>>8;t[d+10|0]=q>>>16;t[d+11|0]=q>>>24;t[d+12|0]=e;t[d+13|0]=e>>>8;t[d+14|0]=e>>>16;t[d+15|0]=e>>>24;if(p>>>0>=17){e=d+16|0;while(1){p=w[l+20|0]|w[l+21|0]<<8|(w[l+22|0]<<16|w[l+23|0]<<24);q=w[l+16|0]|w[l+17|0]<<8|(w[l+18|0]<<16|w[l+19|0]<<24);t[e|0]=q;t[e+1|0]=q>>>8;t[e+2|0]=q>>>16;t[e+3|0]=q>>>24;t[e+4|0]=p;t[e+5|0]=p>>>8;t[e+6|0]=p>>>16;t[e+7|0]=p>>>24;p=w[l+28|0]|w[l+29|0]<<8|(w[l+30|0]<<16|w[l+31|0]<<24);q=w[l+24|0]|w[l+25|0]<<8|(w[l+26|0]<<16|w[l+27|0]<<24);t[e+8|0]=q;t[e+9|0]=q>>>8;t[e+10|0]=q>>>16;t[e+11|0]=q>>>24;t[e+12|0]=p;t[e+13|0]=p>>>8;t[e+14|0]=p>>>16;t[e+15|0]=p>>>24;l=l+16|0;e=e+16|0;if(e>>>0>>0){continue}break}}e=a-g|0;v[j+188>>2]=u;if(g>>>0>a-s>>>0){if(g>>>0>a-M>>>0){break a}e=e-s|0;p=e+J|0;if(J>>>0>=p+i>>>0){Z(a,p,i);break ya}i=e+i|0;a=Z(a,p,0-e|0)-e|0;e=s}if(g>>>0>=16){p=a+i|0;while(1){i=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);g=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=g;t[a+1|0]=g>>>8;t[a+2|0]=g>>>16;t[a+3|0]=g>>>24;t[a+4|0]=i;t[a+5|0]=i>>>8;t[a+6|0]=i>>>16;t[a+7|0]=i>>>24;i=w[e+12|0]|w[e+13|0]<<8|(w[e+14|0]<<16|w[e+15|0]<<24);g=w[e+8|0]|w[e+9|0]<<8|(w[e+10|0]<<16|w[e+11|0]<<24);t[a+8|0]=g;t[a+9|0]=g>>>8;t[a+10|0]=g>>>16;t[a+11|0]=g>>>24;t[a+12|0]=i;t[a+13|0]=i>>>8;t[a+14|0]=i>>>16;t[a+15|0]=i>>>24;e=e+16|0;a=a+16|0;if(p>>>0>a>>>0){continue}break}break ya}Ba:{if(g>>>0<=7){t[a|0]=w[e|0];t[a+1|0]=w[e+1|0];t[a+2|0]=w[e+2|0];t[a+3|0]=w[e+3|0];p=g<<2;e=v[p+4752>>2]+e|0;g=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a+4|0]=g;t[a+5|0]=g>>>8;t[a+6|0]=g>>>16;t[a+7|0]=g>>>24;e=e-v[p+4784>>2]|0;break Ba}g=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);p=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=p;t[a+1|0]=p>>>8;t[a+2|0]=p>>>16;t[a+3|0]=p>>>24;t[a+4|0]=g;t[a+5|0]=g>>>8;t[a+6|0]=g>>>16;t[a+7|0]=g>>>24}if(i>>>0<9){break ya}p=a+i|0;a=a+8|0;e=e+8|0;if((a-e|0)<=15){while(1){i=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);g=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=g;t[a+1|0]=g>>>8;t[a+2|0]=g>>>16;t[a+3|0]=g>>>24;t[a+4|0]=i;t[a+5|0]=i>>>8;t[a+6|0]=i>>>16;t[a+7|0]=i>>>24;e=e+8|0;a=a+8|0;if(p>>>0>a>>>0){continue}break ya}}while(1){i=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);g=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=g;t[a+1|0]=g>>>8;t[a+2|0]=g>>>16;t[a+3|0]=g>>>24;t[a+4|0]=i;t[a+5|0]=i>>>8;t[a+6|0]=i>>>16;t[a+7|0]=i>>>24;i=w[e+12|0]|w[e+13|0]<<8|(w[e+14|0]<<16|w[e+15|0]<<24);g=w[e+8|0]|w[e+9|0]<<8|(w[e+10|0]<<16|w[e+11|0]<<24);t[a+8|0]=g;t[a+9|0]=g>>>8;t[a+10|0]=g>>>16;t[a+11|0]=g>>>24;t[a+12|0]=i;t[a+13|0]=i>>>8;t[a+14|0]=i>>>16;t[a+15|0]=i>>>24;e=e+16|0;a=a+16|0;if(p>>>0>a>>>0){continue}break}}if(h>>>0<=4294967176){v[c>>2]=C;v[(c|4)>>2]=f;v[(c|8)>>2]=k;v[c+12>>2]=(r+z|0)-k;n=n+1|0;d=d+h|0;c=v[j+44>>2];continue}break}m=h;break a}n=n-S|0;if((D|0)>(n|0)){p=I-32|0;while(1){Ca:{Da:{c=v[j+188>>2];e=(j+112|0)+((n&3)<<4)|0;i=v[e>>2];q=c+i|0;Ea:{if(q>>>0>K>>>0){break Ea}k=v[e+4>>2];f=i+k|0;if(p>>>0>>0){break Ea}if(f+32>>>0<=I-d>>>0){break Da}}a=v[e+12>>2];v[j+8>>2]=v[e+8>>2];v[j+12>>2]=a;a=v[e+4>>2];v[j>>2]=v[e>>2];v[j+4>>2]=a;f=ha(d,I,j,j+188|0,K,s,M,J);break Ca}a=d+i|0;h=v[e+8>>2];e=w[c+4|0]|w[c+5|0]<<8|(w[c+6|0]<<16|w[c+7|0]<<24);g=w[c|0]|w[c+1|0]<<8|(w[c+2|0]<<16|w[c+3|0]<<24);t[d|0]=g;t[d+1|0]=g>>>8;t[d+2|0]=g>>>16;t[d+3|0]=g>>>24;t[d+4|0]=e;t[d+5|0]=e>>>8;t[d+6|0]=e>>>16;t[d+7|0]=e>>>24;e=w[c+12|0]|w[c+13|0]<<8|(w[c+14|0]<<16|w[c+15|0]<<24);g=w[c+8|0]|w[c+9|0]<<8|(w[c+10|0]<<16|w[c+11|0]<<24);t[d+8|0]=g;t[d+9|0]=g>>>8;t[d+10|0]=g>>>16;t[d+11|0]=g>>>24;t[d+12|0]=e;t[d+13|0]=e>>>8;t[d+14|0]=e>>>16;t[d+15|0]=e>>>24;if(i>>>0>=17){e=d+16|0;while(1){i=w[c+20|0]|w[c+21|0]<<8|(w[c+22|0]<<16|w[c+23|0]<<24);g=w[c+16|0]|w[c+17|0]<<8|(w[c+18|0]<<16|w[c+19|0]<<24);t[e|0]=g;t[e+1|0]=g>>>8;t[e+2|0]=g>>>16;t[e+3|0]=g>>>24;t[e+4|0]=i;t[e+5|0]=i>>>8;t[e+6|0]=i>>>16;t[e+7|0]=i>>>24;i=w[c+28|0]|w[c+29|0]<<8|(w[c+30|0]<<16|w[c+31|0]<<24);g=w[c+24|0]|w[c+25|0]<<8|(w[c+26|0]<<16|w[c+27|0]<<24);t[e+8|0]=g;t[e+9|0]=g>>>8;t[e+10|0]=g>>>16;t[e+11|0]=g>>>24;t[e+12|0]=i;t[e+13|0]=i>>>8;t[e+14|0]=i>>>16;t[e+15|0]=i>>>24;c=c+16|0;e=e+16|0;if(e>>>0>>0){continue}break}}e=a-h|0;v[j+188>>2]=q;if(h>>>0>a-s>>>0){if(h>>>0>a-M>>>0){break a}c=e-s|0;e=c+J|0;if(J>>>0>=e+k>>>0){Z(a,e,k);break Ca}k=c+k|0;a=Z(a,e,0-c|0)-c|0;e=s}if(h>>>0>=16){i=a+k|0;while(1){c=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);h=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=h;t[a+1|0]=h>>>8;t[a+2|0]=h>>>16;t[a+3|0]=h>>>24;t[a+4|0]=c;t[a+5|0]=c>>>8;t[a+6|0]=c>>>16;t[a+7|0]=c>>>24;c=w[e+12|0]|w[e+13|0]<<8|(w[e+14|0]<<16|w[e+15|0]<<24);h=w[e+8|0]|w[e+9|0]<<8|(w[e+10|0]<<16|w[e+11|0]<<24);t[a+8|0]=h;t[a+9|0]=h>>>8;t[a+10|0]=h>>>16;t[a+11|0]=h>>>24;t[a+12|0]=c;t[a+13|0]=c>>>8;t[a+14|0]=c>>>16;t[a+15|0]=c>>>24;e=e+16|0;a=a+16|0;if(i>>>0>a>>>0){continue}break}break Ca}Fa:{if(h>>>0<=7){t[a|0]=w[e|0];t[a+1|0]=w[e+1|0];t[a+2|0]=w[e+2|0];t[a+3|0]=w[e+3|0];h=h<<2;c=v[h+4752>>2]+e|0;e=w[c|0]|w[c+1|0]<<8|(w[c+2|0]<<16|w[c+3|0]<<24);t[a+4|0]=e;t[a+5|0]=e>>>8;t[a+6|0]=e>>>16;t[a+7|0]=e>>>24;e=c-v[h+4784>>2]|0;break Fa}c=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);h=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=h;t[a+1|0]=h>>>8;t[a+2|0]=h>>>16;t[a+3|0]=h>>>24;t[a+4|0]=c;t[a+5|0]=c>>>8;t[a+6|0]=c>>>16;t[a+7|0]=c>>>24}if(k>>>0<9){break Ca}i=a+k|0;a=a+8|0;e=e+8|0;if((a-e|0)<=15){while(1){c=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);h=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=h;t[a+1|0]=h>>>8;t[a+2|0]=h>>>16;t[a+3|0]=h>>>24;t[a+4|0]=c;t[a+5|0]=c>>>8;t[a+6|0]=c>>>16;t[a+7|0]=c>>>24;e=e+8|0;a=a+8|0;if(i>>>0>a>>>0){continue}break Ca}}while(1){c=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);h=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=h;t[a+1|0]=h>>>8;t[a+2|0]=h>>>16;t[a+3|0]=h>>>24;t[a+4|0]=c;t[a+5|0]=c>>>8;t[a+6|0]=c>>>16;t[a+7|0]=c>>>24;c=w[e+12|0]|w[e+13|0]<<8|(w[e+14|0]<<16|w[e+15|0]<<24);h=w[e+8|0]|w[e+9|0]<<8|(w[e+10|0]<<16|w[e+11|0]<<24);t[a+8|0]=h;t[a+9|0]=h>>>8;t[a+10|0]=h>>>16;t[a+11|0]=h>>>24;t[a+12|0]=c;t[a+13|0]=c>>>8;t[a+14|0]=c>>>16;t[a+15|0]=c>>>24;e=e+16|0;a=a+16|0;if(i>>>0>a>>>0){continue}break}}if(f>>>0>4294967176){m=f;break a}d=d+f|0;n=n+1|0;if((D|0)!=(n|0)){continue}break}}c=v[j+88>>2];a=H;v[a>>2]=v[j+84>>2];v[a+4>>2]=c;v[a+8>>2]=v[j+92>>2];e=v[j+188>>2]}m=-70;a=K-e|0;if(a>>>0>I-d>>>0){break a}if(d){a=X(d,e,a)+a|0}else{a=0}m=a-b|0;break a}v[a+28956>>2]=0}i=f;h=0;g=Q-112|0;Q=g;f=a;e=v[a+28912>>2];v[g+92>>2]=e;d=b;z=d+c|0;G=v[a+28928>>2]+e|0;Ga:{Ha:{if(!D){c=d;break Ha}H=v[f+28740>>2];C=v[f+28736>>2];r=v[f+28732>>2];v[f+28812>>2]=1;v[g+76>>2]=v[f+26676>>2];u=f+26668|0;a=u;b=v[a+4>>2];v[g+68>>2]=v[a>>2];v[g+72>>2]=b;if(!i){h=-20;break Ga}v[g+36>>2]=o;v[g+40>>2]=o+4;Ia:{Ja:{if(i>>>0>=4){h=i-4|0;a=o+h|0;v[g+32>>2]=a;n=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);v[g+24>>2]=n;if(n>>>0>=16777216){break Ja}h=-20;break Ga}v[g+32>>2]=o;n=w[o|0];v[g+24>>2]=n;Ka:{switch(i-2|0){case 1:n=w[o+2|0]<<16|n;case 0:n=(w[o+1|0]<<8)+n|0;v[g+24>>2]=n;break;default:break Ka}}a=w[(i+o|0)-1|0];if(!a){h=-20;break Ga}i=(E(a)-(i<<3)|0)+9|0;v[g+28>>2]=i;break Ia}if(i>>>0>4294967176){h=-20;break Ga}i=E(n>>>24|0)-23|0}c=v[f>>2];a=v[c+4>>2];i=a+i|0;a=n>>>0-i&v[(a<<2)+4592>>2];v[g+44>>2]=a;La:{if(i>>>0>32){break La}Ma:{if((h|0)>=4){h=h-(i>>>3|0)|0;v[g+32>>2]=o+h;i=i&7;break Ma}if(!h){h=0;break La}b=i>>>3|0;b=o>>>0>(h+o|0)-b>>>0?h:b;h=h-b|0;v[g+32>>2]=o+h;i=i-(b<<3)|0}b=h+o|0;n=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24);v[g+24>>2]=n}e=c+8|0;v[g+48>>2]=e;c=v[f+8>>2];b=v[c+4>>2];m=b+i|0;i=n>>>0-m&v[(b<<2)+4592>>2];v[g+52>>2]=i;Na:{if(m>>>0>32){break Na}Oa:{if((h|0)>=4){h=h-(m>>>3|0)|0;v[g+32>>2]=o+h;m=m&7;break Oa}if(!h){h=0;break Na}b=m>>>3|0;b=o>>>0>(h+o|0)-b>>>0?h:b;h=h-b|0;v[g+32>>2]=o+h;m=m-(b<<3)|0}b=h+o|0;n=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24);v[g+24>>2]=n}l=c+8|0;v[g+56>>2]=l;k=v[f+4>>2];c=v[k+4>>2];b=c+m|0;v[g+28>>2]=b;m=v[(c<<2)+4592>>2]&n>>>0-b;v[g+60>>2]=m;Pa:{if(b>>>0>32){break Pa}c=h+o|0;q=g;Qa:{if((h|0)>=4){c=c-(b>>>3|0)|0;v[g+32>>2]=c;b=b&7;break Qa}if(!h){break Pa}f=h;h=b>>>3|0;h=o>>>0>c-h>>>0?f:h;c=c-h|0;v[g+32>>2]=c;b=b-(h<<3)|0}v[q+28>>2]=b;v[g+24>>2]=w[c|0]|w[c+1|0]<<8|(w[c+2|0]<<16|w[c+3|0]<<24)}n=k+8|0;v[g- -64>>2]=n;J=z-32|0;c=d;h=0;while(1){e=(a<<3)+e|0;a=v[e+4>>2];p=v[e>>2];f=a;I=(a&65535)<<16|p>>>16;A=I&255;e=(m<<3)+n|0;a=v[e+4>>2];q=v[e>>2];k=a;K=(a&65535)<<16|q>>>16;F=K&255;a=(i<<3)+l|0;e=v[a+4>>2];s=v[a>>2];a=e;i=a;m=k;e=f;l=(a&65535)<<16|s>>>16;a=l&255;Ra:{if(a>>>0>=2){Sa:{if(!(!T|a>>>0<25)){L=a;l=32-b|0;a=a>>>0>>0?a:l;n=L-a|0;l=v[g+24>>2];M=l<>>0-a<>>0>32){break Ta}b=v[g+32>>2];Ua:{if(b>>>0>=y[g+40>>2]){b=b-(a>>>3|0)|0;v[g+32>>2]=b;a=a&7;break Ua}o=v[g+36>>2];if((o|0)==(b|0)){break Ta}l=a>>>3|0;l=o>>>0>b-l>>>0?b-o|0:l;b=b-l|0;v[g+32>>2]=b;a=a-(l<<3)|0}l=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24);v[g+24>>2]=l}i=i+M|0;if(!n){break Sa}i=(l<>>0-n|0)+i|0;a=a+n|0;break Sa}i=i+(v[g+24>>2]<>>0-l|0)|0;b=a+b|0;if(b>>>0>32){a=b;break Sa}l=v[g+32>>2];if(l>>>0>=y[g+40>>2]){a=b&7;v[g+28>>2]=a;b=l-(b>>>3|0)|0;v[g+32>>2]=b;v[g+24>>2]=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24);break Sa}a=v[g+36>>2];if((a|0)==(l|0)){a=b;break Sa}L=b;b=b>>>3|0;b=a>>>0>l-b>>>0?l-a|0:b;a=L-(b<<3)|0;v[g+28>>2]=a;b=l-b|0;v[g+32>>2]=b;v[g+24>>2]=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24)}b=v[g+72>>2];l=v[g+68>>2];v[g+68>>2]=i;v[g+72>>2]=l;v[g+76>>2]=b;break Ra}if(!a){if(e){i=v[g+68>>2];a=b;break Ra}i=v[g+72>>2];v[g+72>>2]=v[g+68>>2];v[g+68>>2]=i;a=b;break Ra}a=b+1|0;v[g+28>>2]=a;b=i+!e+(v[g+24>>2]<>>31)|0;Va:{Wa:{if((b|0)==3){b=v[g+68>>2]-1|0;i=!b+b|0;break Wa}i=v[(g+(b<<2)|0)+68>>2];i=!i+i|0;if((b|0)==1){break Va}}v[g+76>>2]=v[g+72>>2]}v[g+72>>2]=v[g+68>>2];v[g+68>>2]=i}b=m;if(F){b=(v[g+24>>2]<>>0-K|0)+b|0;a=a+F|0}Xa:{if(F+A>>>0<20|a>>>0>32){break Xa}l=g;m=v[g+32>>2];Ya:{if(m>>>0>=y[g+40>>2]){m=m-(a>>>3|0)|0;v[g+32>>2]=m;a=a&7;break Ya}n=v[g+36>>2];if((n|0)==(m|0)){break Xa}F=a>>>3|0;n=n>>>0>m-F>>>0?m-n|0:F;m=m-n|0;v[g+32>>2]=m;a=a-(n<<3)|0}v[l+28>>2]=a;v[g+24>>2]=w[m|0]|w[m+1|0]<<8|(w[m+2|0]<<16|w[m+3|0]<<24)}m=q;q=(k&16777215)<<8|m>>>24;l=p;p=(f&16777215)<<8|l>>>24;if(A){e=(v[g+24>>2]<>>0-I|0)+e|0;a=a+A|0}Za:{if(a>>>0>32){break Za}f=v[g+32>>2];_a:{if(f>>>0>=y[g+40>>2]){n=f-(a>>>3|0)|0;v[g+32>>2]=n;a=a&7;break _a}k=v[g+36>>2];if((k|0)==(f|0)){break Za}A=f;n=a>>>3|0;f=k>>>0>f-n>>>0?f-k|0:n;n=A-f|0;v[g+32>>2]=n;a=a-(f<<3)|0}v[g+24>>2]=w[n|0]|w[n+1|0]<<8|(w[n+2|0]<<16|w[n+3|0]<<24)}n=v[g+24>>2];f=a;a=p&255;f=f+a|0;v[g+44>>2]=(n>>>0-f&v[(a<<2)+4592>>2])+(l&65535);a=f;f=q&255;a=a+f|0;v[g+60>>2]=(n>>>0-a&v[(f<<2)+4592>>2])+(m&65535);$a:{if(a>>>0>32){break $a}f=v[g+32>>2];ab:{if(f>>>0>=y[g+40>>2]){n=f-(a>>>3|0)|0;v[g+32>>2]=n;a=a&7;break ab}k=v[g+36>>2];if((k|0)==(f|0)){break $a}l=f;m=a>>>3|0;f=k>>>0>f-m>>>0?f-k|0:m;n=l-f|0;v[g+32>>2]=n;a=a-(f<<3)|0}n=w[n|0]|w[n+1|0]<<8|(w[n+2|0]<<16|w[n+3|0]<<24);v[g+24>>2]=n}f=a;a=s>>>24|0;f=f+a|0;v[g+28>>2]=f;v[g+52>>2]=(v[(a<<2)+4592>>2]&n>>>0-f)+(s&65535);v[g+96>>2]=e;v[g+100>>2]=b;v[g+104>>2]=i;bb:{cb:{m=v[g+92>>2];p=m+e|0;db:{if(p>>>0>G>>>0){break db}n=b+e|0;if(J>>>0>>0){break db}if(n+32>>>0<=z-c>>>0){break cb}}a=v[g+108>>2];v[g+16>>2]=v[g+104>>2];v[g+20>>2]=a;a=v[g+100>>2];v[g+8>>2]=v[g+96>>2];v[g+12>>2]=a;n=ha(c,z,g+8|0,g+92|0,G,r,C,H);break bb}a=c+e|0;f=w[m+4|0]|w[m+5|0]<<8|(w[m+6|0]<<16|w[m+7|0]<<24);k=w[m|0]|w[m+1|0]<<8|(w[m+2|0]<<16|w[m+3|0]<<24);t[c|0]=k;t[c+1|0]=k>>>8;t[c+2|0]=k>>>16;t[c+3|0]=k>>>24;t[c+4|0]=f;t[c+5|0]=f>>>8;t[c+6|0]=f>>>16;t[c+7|0]=f>>>24;f=w[m+12|0]|w[m+13|0]<<8|(w[m+14|0]<<16|w[m+15|0]<<24);k=w[m+8|0]|w[m+9|0]<<8|(w[m+10|0]<<16|w[m+11|0]<<24);t[c+8|0]=k;t[c+9|0]=k>>>8;t[c+10|0]=k>>>16;t[c+11|0]=k>>>24;t[c+12|0]=f;t[c+13|0]=f>>>8;t[c+14|0]=f>>>16;t[c+15|0]=f>>>24;if(e>>>0>=17){e=c+16|0;while(1){f=w[m+20|0]|w[m+21|0]<<8|(w[m+22|0]<<16|w[m+23|0]<<24);k=w[m+16|0]|w[m+17|0]<<8|(w[m+18|0]<<16|w[m+19|0]<<24);t[e|0]=k;t[e+1|0]=k>>>8;t[e+2|0]=k>>>16;t[e+3|0]=k>>>24;t[e+4|0]=f;t[e+5|0]=f>>>8;t[e+6|0]=f>>>16;t[e+7|0]=f>>>24;f=w[m+28|0]|w[m+29|0]<<8|(w[m+30|0]<<16|w[m+31|0]<<24);k=w[m+24|0]|w[m+25|0]<<8|(w[m+26|0]<<16|w[m+27|0]<<24);t[e+8|0]=k;t[e+9|0]=k>>>8;t[e+10|0]=k>>>16;t[e+11|0]=k>>>24;t[e+12|0]=f;t[e+13|0]=f>>>8;t[e+14|0]=f>>>16;t[e+15|0]=f>>>24;m=m+16|0;e=e+16|0;if(e>>>0>>0){continue}break}}e=a-i|0;v[g+92>>2]=p;if(a-r>>>0>>0){if(a-C>>>0>>0){n=-20;break bb}e=e-r|0;f=e+H|0;if(H>>>0>=f+b>>>0){Z(a,f,b);break bb}a=Z(a,f,0-e|0);b=b+e|0;v[g+100>>2]=b;a=a-e|0;e=r}if(i>>>0>=16){i=a+b|0;while(1){b=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);f=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=f;t[a+1|0]=f>>>8;t[a+2|0]=f>>>16;t[a+3|0]=f>>>24;t[a+4|0]=b;t[a+5|0]=b>>>8;t[a+6|0]=b>>>16;t[a+7|0]=b>>>24;b=w[e+12|0]|w[e+13|0]<<8|(w[e+14|0]<<16|w[e+15|0]<<24);f=w[e+8|0]|w[e+9|0]<<8|(w[e+10|0]<<16|w[e+11|0]<<24);t[a+8|0]=f;t[a+9|0]=f>>>8;t[a+10|0]=f>>>16;t[a+11|0]=f>>>24;t[a+12|0]=b;t[a+13|0]=b>>>8;t[a+14|0]=b>>>16;t[a+15|0]=b>>>24;e=e+16|0;a=a+16|0;if(i>>>0>a>>>0){continue}break}break bb}eb:{if(i>>>0<=7){t[a|0]=w[e|0];t[a+1|0]=w[e+1|0];t[a+2|0]=w[e+2|0];t[a+3|0]=w[e+3|0];i=i<<2;e=v[i+4752>>2]+e|0;f=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a+4|0]=f;t[a+5|0]=f>>>8;t[a+6|0]=f>>>16;t[a+7|0]=f>>>24;e=e-v[i+4784>>2]|0;break eb}f=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);i=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=i;t[a+1|0]=i>>>8;t[a+2|0]=i>>>16;t[a+3|0]=i>>>24;t[a+4|0]=f;t[a+5|0]=f>>>8;t[a+6|0]=f>>>16;t[a+7|0]=f>>>24}if(b>>>0<9){break bb}i=a+b|0;a=a+8|0;e=e+8|0;if((a-e|0)<=15){while(1){b=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);f=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=f;t[a+1|0]=f>>>8;t[a+2|0]=f>>>16;t[a+3|0]=f>>>24;t[a+4|0]=b;t[a+5|0]=b>>>8;t[a+6|0]=b>>>16;t[a+7|0]=b>>>24;e=e+8|0;a=a+8|0;if(i>>>0>a>>>0){continue}break bb}}while(1){b=w[e+4|0]|w[e+5|0]<<8|(w[e+6|0]<<16|w[e+7|0]<<24);f=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);t[a|0]=f;t[a+1|0]=f>>>8;t[a+2|0]=f>>>16;t[a+3|0]=f>>>24;t[a+4|0]=b;t[a+5|0]=b>>>8;t[a+6|0]=b>>>16;t[a+7|0]=b>>>24;b=w[e+12|0]|w[e+13|0]<<8|(w[e+14|0]<<16|w[e+15|0]<<24);f=w[e+8|0]|w[e+9|0]<<8|(w[e+10|0]<<16|w[e+11|0]<<24);t[a+8|0]=f;t[a+9|0]=f>>>8;t[a+10|0]=f>>>16;t[a+11|0]=f>>>24;t[a+12|0]=b;t[a+13|0]=b>>>8;t[a+14|0]=b>>>16;t[a+15|0]=b>>>24;e=e+16|0;a=a+16|0;if(i>>>0>a>>>0){continue}break}}a=v[g+28>>2];fb:{if(a>>>0>32){b=a;break fb}e=v[g+32>>2];if(e>>>0>=y[g+40>>2]){b=a&7;v[g+28>>2]=b;a=e-(a>>>3|0)|0;v[g+32>>2]=a;v[g+24>>2]=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);break fb}b=v[g+36>>2];if((b|0)==(e|0)){b=a;break fb}f=a;a=a>>>3|0;a=b>>>0>e-a>>>0?e-b|0:a;b=f-(a<<3)|0;v[g+28>>2]=b;a=e-a|0;v[g+32>>2]=a;v[g+24>>2]=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24)}a=n>>>0<4294967177;c=a?c+n|0:c;h=a?h:n;D=D-1|0;if(D){i=v[g+52>>2];l=v[g+56>>2];m=v[g+60>>2];n=v[g+64>>2];a=v[g+44>>2];e=v[g+48>>2];continue}break}if(h>>>0>4294967176){break Ga}if(b>>>0<=32){a=v[g+32>>2];if(a>>>0>=y[g+40>>2]){h=-20;break Ga}if((a|0)!=v[g+36>>2]){h=-20;break Ga}h=-20;if((b|0)!=32){break Ga}}b=v[g+72>>2];a=u;v[a>>2]=v[g+68>>2];v[a+4>>2]=b;v[a+8>>2]=v[g+76>>2];e=v[g+92>>2]}h=-70;a=G-e|0;if(a>>>0>z-c>>>0){break Ga}if(c){a=X(c,e,a)+a|0}else{a=0}h=a-d|0}Q=g+112|0;m=h}Q=j+192|0;return m}function Aa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,x=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,R=0,T=0,U=0,V=0,W=0,Z=0,da=0;x=Q-16|0;Q=x;i=v[c+8>>2];g=v[c+4>>2];a:{if(i>>>0>g>>>0){e=-72;break a}h=v[b+8>>2];f=v[b+4>>2];if(h>>>0>f>>>0){e=-70;break a}d=v[b>>2];r=v[c>>2];if(!(!v[a+28964>>2]|v[a+29024>>2]!=1)){e=-104;if((d|0)!=v[a+29028>>2]|(h|0)!=v[a+29036>>2]|(f|0)!=v[a+29032>>2]){break a}}H=d+f|0;l=a+4120|0;L=a+6176|0;M=a+16|0;p=a+26668|0;N=a+10280|0;o=a+28728|0;E=g+r|0;r=i+r|0;n=E-r|0;j=a+160144|0;i=a+28752|0;I=a+29028|0;z=a+28804|0;t=a+28972|0;A=a+28988|0;J=a+160164|0;q=a+28856|0;K=q;f=r;O=d+h|0;s=O;b:{while(1){c:{e=-1;d=i;h=j;d:{e:{f:{g:{h:{switch(v[a+28964>>2]){case 3:d=v[z>>2];e=v[a+28744>>2];break e;case 1:e=v[a+29e3>>2];break g;case 2:break f;case 0:break h;case 4:break d;default:break a}}v[a+28964>>2]=1;v[a+28992>>2]=0;v[a+28996>>2]=0;v[a+29012>>2]=0;v[a+29016>>2]=0;v[a+29e3>>2]=0;v[a+28976>>2]=0;e=v[b+4>>2];v[I>>2]=v[b>>2];v[I+4>>2]=e;v[I+8>>2]=v[b+8>>2];e=0}e=aa(d,h,e,v[a+28908>>2]);if(e>>>0>4294967176){break a}if(e){d=v[a+29e3>>2];g=e-d|0;h=E-f|0;if(g>>>0>h>>>0){if(h){X((a+d|0)+160144|0,f,h);d=h+v[a+29e3>>2]|0;v[a+29e3>>2]=d}v[c+8>>2]=v[c+4>>2];a=v[a+28908>>2]?2:6;e=((a>>>0>e>>>0?a:e)-d|0)+3|0;break a}X((a+d|0)+160144|0,f,g);v[a+29e3>>2]=e;f=f+g|0;continue}i:{d=v[i>>2];e=v[i+4>>2];if((d|0)==-1&(e|0)==-1|v[a+28772>>2]==1){break i}G=H-s|0;if(!e&G>>>0>>0|e){break i}m=0;k=Q-48|0;Q=k;j:{if(!(((w[r|0]|w[r+1|0]<<8|(w[r+2|0]<<16|w[r+3|0]<<24))&-16)!=407710288|n>>>0<8)){e=w[r+4|0]|w[r+5|0]<<8|(w[r+6|0]<<16|w[r+7|0]<<24);v[x+8>>2]=0;v[x+12>>2]=0;v[x+4>>2]=0;d=e+8|0;v[x>>2]=e>>>0>4294967287?-14:d>>>0>n>>>0?-72:d;break j}g=x;e=aa(k+8|0,r,n,0);k:{if(e>>>0>=4294967177){v[x>>2]=e;e=-2;d=-1;break k}if(e){v[x>>2]=-72;e=-2;d=-1;break k}e=v[k+32>>2];d=n-e|0;e=e+r|0;l:{while(1){if(d>>>0<3){C=-72;break l}C=-20;m:{n:{D=w[e|0]|w[e+1|0]<<8;h=D>>>1&3;switch(h-1|0){case 2:break l;case 0:break m;default:break n}}h=(D|w[e+2|0]<<16)>>>3|0}h=h+3|0;if(h>>>0>d>>>0){v[x>>2]=-72;e=-2;d=-1;break k}m=m+1|0;d=d-h|0;e=e+h|0;if(!(D&1)){continue}break}if(v[k+40>>2]){if(d>>>0<=3){v[x>>2]=-72;e=-2;d=-1;break k}e=e+4|0}C=v[k+24>>2];d=v[k+8>>2];h=v[k+12>>2];v[x+4>>2]=0;v[x>>2]=e-r;e=d;d=(d|0)==-1&(h|0)==-1;e=d?B(m,C):e;d=d?0:h;break k}v[x>>2]=C;e=-2;d=-1}v[g+8>>2]=e;v[g+12>>2]=d}Q=k+48|0;m=v[x>>2];if(m>>>0>n>>>0){break i}h=s;j=r;o=m;n=0;z=0;C=0;o:{p:{switch(v[a+28960>>2]+1|0){default:f=v[a+28944>>2];q:{if(!f){break q}d=v[f+26692>>2];e=v[f+26688>>2];r:{s:{i=v[f>>2];if(i){if(!e){break s}S[e|0](d,i);S[e|0](d,f);break q}if(!e){break r}S[e|0](d,f);break q}Y(i)}Y(f)}v[a+28960>>2]=0;v[a+28944>>2]=0;v[a+28948>>2]=0;q=0;break o;case 2:v[a+28960>>2]=0;break;case 0:break p}}q=v[a+28948>>2]}if(q){z=v[q+8>>2];n=v[q+4>>2]}d=v[a+28908>>2]?1:5;t:{u:{if(o>>>0>>0){e=h;break u}K=a+28816|0;L=a+28752|0;M=q+10276|0;N=q+4116|0;R=q+6172|0;T=q+12|0;U=a+4120|0;V=a+6176|0;W=a+16|0;J=a+26668|0;Z=a+10280|0;A=a+28728|0;k=a+28856|0;D=k;e=h;while(1){if(((w[j|0]|w[j+1|0]<<8|(w[j+2|0]<<16|w[j+3|0]<<24))&-16)==407710288){f=-72;if(o>>>0<8){break t}f=-14;i=w[j+4|0]|w[j+5|0]<<8|(w[j+6|0]<<16|w[j+7|0]<<24);if(i>>>0>4294967287){break t}f=i+8|0;f=f>>>0>o>>>0?-72:f;if(f>>>0>4294967176){break t}j=f+j|0;o=o-f|0;if(o>>>0>=d>>>0){continue}break u}v:{if(q){f=v[q+8>>2];i=v[q+4>>2];v[a+28804>>2]=0;v[a+28744>>2]=d;v[a+28792>>2]=0;v[a+28796>>2]=0;v[a+28956>>2]=v[a+28740>>2]!=(f+i|0);f=A;v[f+8>>2]=0;v[f+12>>2]=0;v[f>>2]=0;v[f+4>>2]=0;v[a+10280>>2]=201326604;v[a+28808>>2]=0;v[a+28812>>2]=0;v[a+28800>>2]=3;v[J+8>>2]=v[814];f=v[813];v[J>>2]=v[812];v[J+4>>2]=f;v[a+12>>2]=Z;v[a+8>>2]=U;v[a+4>>2]=V;v[a>>2]=W;v[a+28952>>2]=v[q+26676>>2];f=v[q+4>>2];v[a+28736>>2]=f;v[a+28732>>2]=f;f=f+v[q+8>>2]|0;v[a+28728>>2]=f;v[a+28740>>2]=f;if(v[q+26680>>2]){v[a+28808>>2]=1;v[a+28812>>2]=1;v[a+12>>2]=M;v[a+8>>2]=N;v[a+4>>2]=R;v[a>>2]=T;v[a+26668>>2]=v[q+26664>>2];v[a+26672>>2]=v[q+26668>>2];v[a+26676>>2]=v[q+26672>>2];break v}v[a+28808>>2]=0;v[a+28812>>2]=0;break v}f=0;v[a+28792>>2]=0;v[a+28796>>2]=0;v[a+28728>>2]=0;v[a+28732>>2]=0;v[a+28952>>2]=0;v[a+28808>>2]=0;v[a+28812>>2]=0;v[a+28800>>2]=3;v[a+28804>>2]=0;d=a+28736|0;v[d>>2]=0;v[d+4>>2]=0;d=a+10280|0;v[d>>2]=201326604;v[a+28744>>2]=v[a+28908>>2]?1:5;v[a+12>>2]=d;v[a+8>>2]=a+4120;v[a+4>>2]=a+6176;v[a>>2]=a+16;i=v[813];d=a+26668|0;v[d>>2]=v[812];v[d+4>>2]=i;v[a+26676>>2]=v[814];w:{if(!n|!z){break w}da=a+28728|0;x:{if(!((w[n|0]|w[n+1|0]<<8|(w[n+2|0]<<16|w[n+3|0]<<24))!=-332356553|z>>>0<=7)){v[a+28952>>2]=w[n+4|0]|w[n+5|0]<<8|(w[n+6|0]<<16|w[n+7|0]<<24);f=-30;t=a+16|0;i=Q-128|0;Q=i;d=-30;y:{if(z>>>0<9){break y}g=n+8|0;p=ia(t+10264|0,g,z-8|0,t,10264);if(p>>>0>4294967176){break y}v[i+124>>2]=31;g=p>>>0<4294967177?g+p|0:g;p=n+z|0;l=$(i,i+124|0,i+120|0,g,p-g|0);if(l>>>0>4294967176){break y}u=v[i+124>>2];if(u>>>0>31){break y}F=v[i+120>>2];if(F>>>0>=9){break y}ba(t+4104|0,i,u,2256,2384,F);v[i+124>>2]=52;g=g+l|0;l=$(i,i+124|0,i+120|0,g,p-g|0);if(l>>>0>4294967176){break y}u=v[i+124>>2];if(u>>>0>52){break y}F=v[i+120>>2];if(F>>>0>=10){break y}ba(t+6160|0,i,u,2512,2736,F);v[i+124>>2]=35;g=g+l|0;l=$(i,i+124|0,i+120|0,g,p-g|0);u=v[i+124>>2];F=v[i+120>>2];P=l>>>0>4294967176|u>>>0>35|F>>>0>9;if(!P){ba(t,i,u,2960,3104,F);g=g+l|0}u=g+12|0;if(u>>>0>p>>>0|P){break y}l=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);if(!l){break y}p=p-u|0;if(p>>>0>>0){break y}v[t+26652>>2]=l;l=w[g+4|0]|w[g+5|0]<<8|(w[g+6|0]<<16|w[g+7|0]<<24);if(!l|l>>>0>p>>>0){break y}v[t+26656>>2]=l;l=w[g+8|0]|w[g+9|0]<<8|(w[g+10|0]<<16|w[g+11|0]<<24);if(!l|l>>>0>p>>>0){break y}v[t+26660>>2]=l;d=(g-n|0)+12|0}Q=i+128|0;if(d>>>0>4294967176){break w}v[a+28808>>2]=1;v[a+28812>>2]=1;i=v[a+28728>>2];v[a+28740>>2]=i;g=v[a+28732>>2];f=d>>>0<4294967177?d+n|0:n;v[a+28732>>2]=f;v[a+28736>>2]=f+(g-i|0);d=f+(z-d|0)|0;break x}v[a+28736>>2]=n;v[a+28740>>2]=0;v[a+28732>>2]=n;d=n+z|0}v[da>>2]=d;f=0}if(f>>>0>4294967176){break t}f=v[A>>2]}if((e|0)!=(f|0)){v[a+28740>>2]=f;v[a+28728>>2]=e;d=v[a+28732>>2];v[a+28732>>2]=e;v[a+28736>>2]=(d-f|0)+e}z:{d=v[a+28908>>2];A:{if((d?5:9)>>>0>o>>>0){f=-72;break A}g=d?1:5;f=w[(g+j|0)-1|0];i=f&32;f=(!i+(v[(f>>>4&12)+4736>>2]+(g+v[((f&3)<<2)+4720>>2]|0)|0)|0)+(i>>>5&f>>>0<64)|0;if(f>>>0>4294967176){break A}if(f+3>>>0>o>>>0){f=-72;break A}d=aa(L,j,f,d);if(d>>>0>4294967176){f=d;break A}if(d){f=-72;break A}d=v[a+28780>>2];if(!(!d|(d|0)==v[a+28952>>2])){f=-32;break A}if(v[a+28784>>2]){v[a+28848>>2]=2048144761;v[a+28852>>2]=1640531534;v[a+28840>>2]=0;v[a+28844>>2]=0;v[a+28832>>2]=668265295;v[a+28836>>2]=-1028477379;v[a+28824>>2]=-1379879466;v[a+28828>>2]=1625958382;v[a+28816>>2]=0;v[a+28820>>2]=0;v[k+32>>2]=0;v[k+36>>2]=0;v[D+24>>2]=0;v[D+28>>2]=0;d=k;v[d+16>>2]=0;v[d+20>>2]=0;v[d+8>>2]=0;v[d+12>>2]=0;v[d>>2]=0;v[d+4>>2]=0}t=e+G|0;o=o-f|0;j=f+j|0;g=e;while(1){if(o>>>0<3){f=-72;break A}p=w[j|0]|w[j+1|0]<<8;l=p|w[j+2|0]<<16;i=l>>>3|0;f=-20;B:{C:{u=p>>>1&3;d=u;switch(d-1|0){case 2:break A;case 0:break B;default:break C}}d=i}o=o-3|0;if(o>>>0>>0){f=-72;break A}j=j+3|0;D:{E:{switch(u|0){case 0:if(!g){f=0;if(!d){break D}f=-74;break A}if(t-g>>>0>>0){f=-70;break A}X(g,j,d);f=d;break D;case 1:if(!g){f=0;if(l>>>0<8){break D}f=-74;break A}if(i>>>0>t-g>>>0){f=-70;break A}_(g,w[j|0],i);f=i;break D;case 2:break E;default:break A}}f=qa(a,g,t-g|0,j,d);if(f>>>0>4294967176){break A}}if(v[a+28784>>2]){pa(K,g,f)}o=o-d|0;j=d+j|0;g=f+g|0;if(!(p&1)){continue}break}f=v[a+28756>>2];d=f;i=v[a+28752>>2];if((i|0)!=-1|(d|0)!=-1){f=-20;u=i;i=g-e|0;if((u|0)!=(i|0)|i>>31!=(d|0)){break A}}if(v[a+28784>>2]){f=-22;if(o>>>0<4){break A}if((w[j|0]|w[j+1|0]<<8|(w[j+2|0]<<16|w[j+3|0]<<24))!=(oa(K)|0)){break A}o=o-4|0;j=j+4|0}f=g-e|0;if(f>>>0<4294967177){break z}}f=(f|0)==-10?C?-72:f:f;break t}C=1;G=G-f|0;e=e+f|0;d=v[a+28908>>2]?1:5;if(o>>>0>=d>>>0){continue}break}}f=-72;if(o){break t}f=e-h|0}e=f;if(e>>>0>4294967176){break a}v[a+28744>>2]=0;s=e+s|0;f=r+m|0;break c}F:{if(v[a+28772>>2]==1|v[a+29024>>2]!=1){break F}e=v[i>>2];d=v[i+4>>2];if((e|0)==-1&(d|0)==-1|!d&H-s>>>0>=e>>>0){break F}e=-70;break a}G:{H:{switch(v[a+28960>>2]+1|0){default:e=v[a+28944>>2];I:{if(!e){break I}h=v[e+26692>>2];d=v[e+26688>>2];J:{K:{g=v[e>>2];if(g){if(!d){break K}S[d|0](h,g);S[d|0](h,e);break I}if(!d){break J}S[d|0](h,e);break I}Y(g)}Y(e)}e=0;v[a+28960>>2]=0;v[a+28944>>2]=0;v[a+28948>>2]=0;h=1;break G;case 2:v[a+28960>>2]=0;break;case 0:break H}}e=v[a+28948>>2];if(!e){e=0;h=1;break G}v[a+28956>>2]=v[a+28740>>2]!=(v[e+4>>2]+v[e+8>>2]|0);h=0}v[a+28792>>2]=0;v[a+28796>>2]=0;v[z>>2]=0;g=v[a+28908>>2];v[a+28744>>2]=g?1:5;d=o;v[d+8>>2]=0;v[d+12>>2]=0;v[d>>2]=0;v[d+4>>2]=0;v[a+10280>>2]=201326604;v[a+28952>>2]=0;v[a+28808>>2]=0;v[a+28812>>2]=0;v[a+28800>>2]=3;v[p+8>>2]=v[814];d=v[813];v[p>>2]=v[812];v[p+4>>2]=d;v[a+12>>2]=N;v[a+8>>2]=l;v[a+4>>2]=L;v[a>>2]=M;L:{if(h){break L}v[a+28952>>2]=v[e+26676>>2];d=v[e+4>>2];v[a+28736>>2]=d;v[a+28732>>2]=d;d=d+v[e+8>>2]|0;v[a+28728>>2]=d;v[a+28740>>2]=d;if(v[e+26680>>2]){v[a+28808>>2]=1;v[a+28812>>2]=1;v[a+12>>2]=e+10276;v[a+8>>2]=e+4116;v[a+4>>2]=e+6172;v[a>>2]=e+12;v[a+26668>>2]=v[e+26664>>2];v[a+26672>>2]=v[e+26668>>2];v[a+26676>>2]=v[e+26672>>2];break L}v[a+28808>>2]=0;v[a+28812>>2]=0}M:{if(((w[j|0]|w[j+1|0]<<8|(w[j+2|0]<<16|w[j+3|0]<<24))&-16)==407710288){e=w[a+160148|0]|w[a+160149|0]<<8|(w[a+160150|0]<<16|w[a+160151|0]<<24);h=7;break M}e=aa(i,j,v[a+29e3>>2],g);if(e>>>0>4294967176){break a}if(e){e=-72;break a}e=v[a+28780>>2];if(!(!e|(e|0)==v[a+28952>>2])){e=-32;break a}h=2;e=3;if(!v[a+28784>>2]){break M}v[a+28848>>2]=2048144761;v[a+28852>>2]=1640531534;v[a+28840>>2]=0;v[a+28844>>2]=0;v[a+28832>>2]=668265295;v[a+28836>>2]=-1028477379;v[a+28824>>2]=-1379879466;v[a+28828>>2]=1625958382;v[a+28816>>2]=0;v[a+28820>>2]=0;v[K+32>>2]=0;v[K+36>>2]=0;d=q;v[d+24>>2]=0;v[d+28>>2]=0;v[d+16>>2]=0;v[d+20>>2]=0;v[d+8>>2]=0;v[d+12>>2]=0;v[d>>2]=0;v[d+4>>2]=0}v[a+28744>>2]=e;v[z>>2]=h;e=v[a+28760>>2];d=v[a+28764>>2];h=!d&e>>>0>1024|(d|0)!=0;e=h?e:1024;d=h?d:0;g=d;v[a+28760>>2]=e;v[a+28764>>2]=d;if(!d&e>>>0>y[a+28980>>2]|d){e=-16;break a}d=v[a+28768>>2];k=d>>>0>4?d:4;d=0;h=0;if(!v[a+29024>>2]){h=v[i+4>>2];C=h;G=v[i>>2];m=e;e=!g&e>>>0<131072;D=e?m:131072;m=m+D|0;e=(e?g:0)+g|0;e=m>>>0>>0?e+1|0:e;g=m;m=g- -64|0;e=e-((g>>>0<4294967232)-1|0)|0;h=(h|0)==(e|0)&m>>>0>G>>>0|e>>>0>h>>>0;h=(h?C:e)>>>0<1?h?G:m:-16}e=v[A>>2];m=v[t>>2];g=h+k|0;d=e+m>>>0>=B(g,3)>>>0?v[J>>2]+1|0:d;v[J>>2]=d;if(d>>>0<128?e>>>0>>0|k>>>0>m>>>0:1){N:{O:{e=v[a+28936>>2];if(e){if(g>>>0<=e-160168>>>0){break O}e=-64;break a}e=v[a+28968>>2];P:{if(!e){break P}d=w[a+28920|0]|w[a+28921|0]<<8|(w[a+28922|0]<<16|w[a+28923|0]<<24);if(d){S[d|0](w[a+28924|0]|w[a+28925|0]<<8|(w[a+28926|0]<<16|w[a+28927|0]<<24),e);break P}Y(e)}v[A>>2]=0;v[t>>2]=0;e=a;d=w[a+28916|0]|w[a+28917|0]<<8|(w[a+28918|0]<<16|w[a+28919|0]<<24);Q:{if(d){d=S[d|0](w[a+28924|0]|w[a+28925|0]<<8|(w[a+28926|0]<<16|w[a+28927|0]<<24),g)|0;break Q}d=ea(g)}v[e+28968>>2]=d;if(d){break N}e=-64;break a}d=v[a+28968>>2]}v[A>>2]=h;v[a+28984>>2]=d+k;v[t>>2]=k}v[a+28964>>2]=2}g=E-f|0;d=v[z>>2];R:{S:{if(!(v[a+28800>>2]|d-3>>>0>1)){e=v[a+28744>>2];h=g>>>0>1?g:1;if(e>>>0<=h>>>0){break S}break R}e=v[a+28744>>2]}h=e;if(!e){break c}}if(g>>>0>=h>>>0){g=a;T:{if(!v[a+29024>>2]){k=(d|0)!=7;U:{if(!k){e=v[a+28992>>2];d=0;break U}e=v[a+28992>>2];d=v[A>>2]-e|0}e=ca(a,v[a+28984>>2]+e|0,d,f,h);if(e>>>0>4294967176){break a}if(!e){d=2;if(k){break T}}v[a+28996>>2]=v[a+28992>>2]+e;d=4;break T}e=ca(a,s,(d|0)==7?0:H-s|0,f,h);if(e>>>0>4294967176){break a}s=e+s|0;d=2}v[g+28964>>2]=d;f=f+h|0;continue}if((f|0)==(E|0)){f=E;break b}v[a+28964>>2]=3}g=v[a+28976>>2];h=e-g|0;V:{if((d|0)==7){d=E-f|0;d=d>>>0>h>>>0?h:d;break V}if(h>>>0>v[t>>2]-g>>>0){e=-20;break a}d=E-f|0;d=d>>>0>h>>>0?h:d;if(!d){d=0;break V}X(v[a+28968>>2]+g|0,f,d);g=v[a+28976>>2]}v[a+28976>>2]=d+g;f=d+f|0;if(d>>>0>>0){break b}v[a+28976>>2]=0;h=v[z>>2];g=v[a+28968>>2];d=a;W:{if(!v[a+29024>>2]){m=(h|0)!=7;X:{if(!m){h=v[a+28992>>2];k=0;break X}h=v[a+28992>>2];k=v[A>>2]-h|0}e=ca(a,v[a+28984>>2]+h|0,k,g,e);if(e>>>0>4294967176){break a}if(!e){h=2;if(m){break W}}v[a+28996>>2]=v[a+28992>>2]+e;h=4;break W}e=ca(a,s,(h|0)==7?0:H-s|0,g,e);if(e>>>0>4294967176){break a}s=e+s|0;h=2}v[d+28964>>2]=h;continue}d=a;g=H-s|0;e=v[a+28992>>2];k=v[a+28996>>2]-e|0;m=g>>>0>>0;h=m?g:k;if(h){X(s,e+v[a+28984>>2]|0,h);e=v[a+28992>>2]}e=e+h|0;v[d+28992>>2]=e;Y:{if(m){break Y}v[a+28964>>2]=2;d=v[A>>2];if(!v[a+28756>>2]&d>>>0>=y[a+28752>>2]|d>>>0>=e+v[a+28768>>2]>>>0){break Y}v[a+28992>>2]=0;v[a+28996>>2]=0}s=h+s|0;if(g>>>0>=k>>>0){continue}break b}break}v[a+28964>>2]=0}v[c+8>>2]=f-v[c>>2];e=s-v[b>>2]|0;v[b+8>>2]=e;v[I+8>>2]=e;e=v[b+4>>2];v[I>>2]=v[b>>2];v[I+4>>2]=e;Z:{if(!((f|0)!=(r|0)|(s|0)!=(O|0))){b=v[a+29020>>2];v[a+29020>>2]=b+1;if((b|0)<15){break Z}e=-70;if((H|0)==(O|0)){break a}e=-72;if((r|0)!=(E|0)){break Z}break a}v[a+29020>>2]=0}b=v[a+28744>>2];if(!b){b=v[a+29016>>2];if(v[a+28996>>2]==v[a+28992>>2]){e=0;if(!b){break a}b=v[c+8>>2];if(b>>>0>=y[c+4>>2]){v[a+28964>>2]=2;e=1;break a}v[c+8>>2]=b+1;break a}e=1;if(b){break a}v[c+8>>2]=v[c+8>>2]-1;v[a+29016>>2]=1;break a}e=(b-v[a+28976>>2]|0)+(v[a+28804>>2]==3?3:0)|0}Q=x+16|0;return e|0}function na(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,y=0,z=0,A=0,B=0,C=0;q=Q-784|0;Q=q;j=-72;a:{if(!f){break a}g=t[e|0];A=g&255;b:{c:{if((g|0)<=-1){g=A-126>>>1|0;if(g>>>0>=f>>>0){break a}j=-20;i=A-127|0;if(i>>>0>=256){break a}if(!i){break b}n=e+1|0;j=A-128|0;e=(j>>>1|0)+1|0;k=e&1;f=0;if(j>>>0>=2){e=e&-2;while(1){j=n+(f>>>1|0)|0;t[a+f|0]=w[j|0]>>>4;t[(f|1)+a|0]=w[j|0]&15;j=f|2;l=n+(j>>>1|0)|0;t[a+j|0]=w[l|0]>>>4;t[(f|3)+a|0]=w[l|0]&15;f=f+4|0;e=e-2|0;if(e){continue}break}}if(k){e=n+(f>>>1|0)|0;t[a+f|0]=w[e|0]>>>4;t[(f|1)+a|0]=w[e|0]&15}j=i;A=g;break c}if(f>>>0<=A>>>0){break a}v[q+264>>2]=255;p=e+1|0;g=$(q+272|0,q+264|0,q+268|0,p,A);d:{if(g>>>0>4294967176){j=g;break d}j=-44;m=v[q+268>>2];if(m>>>0>6){break d}z=q+272|0;o=Q-512|0;Q=o;j=-46;r=v[q+264>>2];e:{if(r>>>0>255){break e}j=-44;if(m>>>0>12){break e}B=q+4|0;s=1<>16;f:{if(!r){e=f;break f}j=e&-2;e=f;while(1){i=k<<1;n=x[i+z>>1];g:{if((n|0)==65535){t[(B+(e<<2)|0)+2|0]=k;e=e-1|0;n=1;break g}h=(y|0)>n<<16>>16?h:0}u[i+o>>1]=n;l=k|1;i=l<<1;n=x[z+i>>1];h:{if((n|0)!=65535){h=(y|0)>n<<16>>16?h:0;break h}t[(B+(e<<2)|0)+2|0]=l;e=e-1|0;n=1}u[i+o>>1]=n;k=k+2|0;j=j-2|0;if(j){continue}break}}if(C){n=x[z+(k<<1)>>1];i:{if((n|0)!=65535){h=(y|0)>n<<16>>16?h:0;break i}t[(B+(e<<2)|0)+2|0]=k;e=e-1|0;n=1}u[o+(k<<1)>>1]=n}u[q+2>>1]=h;u[q>>1]=m;n=((s>>>3)+(s>>>1)|0)+3|0;k=0;j=0;while(1){i=j;l=u[z+(i<<1)>>1];j:{if((l|0)<1){break j}if((l|0)!=1){j=l&-2;while(1){t[(B+(k<<2)|0)+2|0]=i;while(1){k=f&k+n;if(k>>>0>e>>>0){continue}break}t[(B+(k<<2)|0)+2|0]=i;while(1){k=f&k+n;if(k>>>0>e>>>0){continue}break}j=j-2|0;if(j){continue}break}}if(!(l&1)){break j}t[(B+(k<<2)|0)+2|0]=i;while(1){k=f&k+n;if(k>>>0>e>>>0){continue}break}}j=i+1|0;if((i|0)!=(r|0)){continue}break}j=-1;if(k){break e}f=m+1|0;j=0;k=0;while(1){i=B+(k<<2)|0;e=o+(w[i+2|0]<<1)|0;l=x[e>>1];u[e>>1]=l+1;e=f+(E(l)^-32)|0;t[i+3|0]=e;u[i>>1]=(l<>>0>4294967176){break d}m=g+p|0;e=A-g|0;C=a;r=a+255|0;y=r-3|0;k:{l:{m:{n:{o:{if(x[q+2>>1]){j=-72;if(!e){break k}p:{q:{if(e>>>0>=4){p=-1;f=w[(e+m|0)-1|0];if(!f){break m}if(e>>>0<=4294967176){break q}j=e;break k}g=w[m|0];r:{switch(e-2|0){case 1:g=w[m+2|0]<<16|g;case 0:g=(w[m+1|0]<<8)+g|0;break;default:break r}}f=w[(e+m|0)-1|0];j=-20;if(!f){break k}h=0;e=(E(f)-(e<<3)|0)+9|0;break p}h=e-4|0;e=m+h|0;g=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);e=E(f)-23|0}l=x[q>>1];i=l+e|0;f=g>>>0-i|0;k=v[(l<<2)+4592>>2];s:{if(i>>>0>32){break s}t:{if((h|0)>=4){g=i>>>3|0;i=i&7;break t}if(!h){h=0;break s}e=i>>>3|0;g=m>>>0>(h+m|0)-e>>>0?h:e;i=i-(g<<3)|0}h=h-g|0;e=m+h|0;g=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24)}j=f&k;o=q+4|0;f=i+l|0;l=k&g>>>0-f;if(f>>>0>32){e=f;f=a;break n}if((h|0)>=4){e=f&7;h=h-(f>>>3|0)|0;f=m+h|0;g=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);break o}if(!h){h=0;e=f;break o}e=f>>>3|0;e=m>>>0>(h+m|0)-e>>>0?h:e;h=h-e|0;g=m+h|0;g=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);e=f-(e<<3)|0;if(e>>>0<=32){break o}f=a;break n}j=-72;if(!e){break k}u:{v:{if(e>>>0>=4){p=-1;f=w[(e+m|0)-1|0];if(!f){break m}if(e>>>0<=4294967176){break v}j=e;break k}g=w[m|0];w:{switch(e-2|0){case 1:g=w[m+2|0]<<16|g;case 0:g=(w[m+1|0]<<8)+g|0;break;default:break w}}f=w[(e+m|0)-1|0];j=-20;if(!f){break k}h=0;e=(E(f)-(e<<3)|0)+9|0;break u}h=e-4|0;e=m+h|0;g=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24);e=E(f)-23|0}l=x[q>>1];i=l+e|0;f=g>>>0-i|0;k=v[(l<<2)+4592>>2];x:{if(i>>>0>32){break x}y:{if((h|0)>=4){g=i>>>3|0;i=i&7;break y}if(!h){h=0;break x}e=i>>>3|0;g=m>>>0>(h+m|0)-e>>>0?h:e;i=i-(g<<3)|0}h=h-g|0;e=m+h|0;g=w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24)}j=f&k;o=q+4|0;f=i+l|0;l=k&g>>>0-f;z:{if(f>>>0>32){e=f;f=a;break z}A:{if((h|0)>=4){e=f&7;h=h-(f>>>3|0)|0;f=m+h|0;g=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);break A}if(!h){h=0;e=f;break A}e=f>>>3|0;e=m>>>0>(h+m|0)-e>>>0?h:e;h=h-e|0;g=m+h|0;g=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);e=f-(e<<3)|0;if(e>>>0<=32){break A}f=a;break z}f=a;while(1){B:{if((h|0)>=4){g=e>>>3|0;i=0;e=e&7;break B}if(!h){h=0;break z}g=e>>>3|0;i=m>>>0>(h+m|0)-g>>>0;g=i?h:g;e=e-(g<<3)|0}h=h-g|0;p=m+h|0;g=w[p|0]|w[p+1|0]<<8|(w[p+2|0]<<16|w[p+3|0]<<24);if(i|f>>>0>=y>>>0){break z}i=(j<<2)+o|0;j=x[i>>1];n=w[i+3|0];t[f|0]=w[i+2|0];l=(l<<2)+o|0;k=x[l>>1];i=w[l+3|0];t[f+1|0]=w[l+2|0];e=e+n|0;j=j+(v[(n<<2)+4592>>2]&g>>>0-e)|0;l=v[(i<<2)+4592>>2];i=e+i|0;l=k+(l&g>>>0-i)|0;C:{D:{if(i>>>0>32){e=i;break D}if((h|0)>=4){e=i&7;h=h-(i>>>3|0)|0;g=m+h|0;g=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);break C}if(!h){h=0;e=i;break D}e=i>>>3|0;k=p-e|0;g=k>>>0>>0?h:e;e=i-(g<<3)|0;h=h-g|0;g=m+h|0;g=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);if(k>>>0>=m>>>0){break C}}f=f+2|0;break z}i=(j<<2)+o|0;j=x[i>>1];n=w[i+3|0];t[f+2|0]=w[i+2|0];l=(l<<2)+o|0;i=x[l>>1];k=w[l+3|0];t[f+3|0]=w[l+2|0];e=e+n|0;j=j+(v[(n<<2)+4592>>2]&g>>>0-e)|0;e=e+k|0;l=i+(v[(k<<2)+4592>>2]&g>>>0-e)|0;f=f+4|0;if(e>>>0<33){continue}break}}p=-70;s=r-2|0;if(s>>>0>>0){break m}z=2;while(1){j=(j<<2)+o|0;y=x[j>>1];r=w[j+3|0];t[f|0]=w[j+2|0];n=f+1|0;e=e+r|0;if(e>>>0>32){j=l;break l}E:{F:{if((h|0)>=4){j=e>>>3|0;k=e&7;break F}if(!h){h=0;k=e;i=g;break E}j=e>>>3|0;j=m>>>0>(h+m|0)-j>>>0?h:j;k=e-(j<<3)|0}h=h-j|0;j=m+h|0;i=w[j|0]|w[j+1|0]<<8|(w[j+2|0]<<16|w[j+3|0]<<24)}if(n>>>0>s>>>0){break m}j=y+(v[(r<<2)+4592>>2]&g>>>0-e)|0;e=(l<<2)+o|0;l=x[e>>1];g=w[e+3|0];t[f+1|0]=w[e+2|0];n=f+2|0;e=g+k|0;if(e>>>0>32){z=3;break l}f=v[(g<<2)+4592>>2]&i>>>0-e;G:{H:{if((h|0)>=4){k=e>>>3|0;e=e&7;break H}if(!h){h=0;break G}i=e;e=e>>>3|0;k=m>>>0>(h+m|0)-e>>>0?h:e;e=i-(k<<3)|0}h=h-k|0;g=m+h|0;i=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24)}g=i;l=f+l|0;f=n;if(s>>>0>=f>>>0){continue}break}break m}f=a;while(1){I:{if((h|0)>=4){g=e>>>3|0;i=0;e=e&7;break I}if(!h){h=0;break n}g=e>>>3|0;i=m>>>0>(h+m|0)-g>>>0;g=i?h:g;e=e-(g<<3)|0}h=h-g|0;p=m+h|0;g=w[p|0]|w[p+1|0]<<8|(w[p+2|0]<<16|w[p+3|0]<<24);if(i|f>>>0>=y>>>0){break n}i=(j<<2)+o|0;j=x[i>>1];n=w[i+3|0];t[f|0]=w[i+2|0];l=(l<<2)+o|0;i=x[l>>1];k=w[l+3|0];t[f+1|0]=w[l+2|0];j=j+(g<>>0-n|0)|0;e=e+n|0;l=i+(g<>>0-k|0)|0;J:{i=e+k|0;K:{if(i>>>0>32){e=i;break K}if((h|0)>=4){e=i&7;h=h-(i>>>3|0)|0;g=m+h|0;g=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);break J}if(!h){h=0;e=i;break K}e=i>>>3|0;k=p-e|0;g=k>>>0>>0?h:e;e=i-(g<<3)|0;h=h-g|0;g=m+h|0;g=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);if(k>>>0>=m>>>0){break J}}f=f+2|0;break n}i=(j<<2)+o|0;j=x[i>>1];n=w[i+3|0];t[f+2|0]=w[i+2|0];l=(l<<2)+o|0;i=x[l>>1];k=w[l+3|0];t[f+3|0]=w[l+2|0];j=j+(g<>>0-n|0)|0;e=e+n|0;l=i+(g<>>0-k|0)|0;f=f+4|0;e=e+k|0;if(e>>>0<33){continue}break}}p=-70;s=r-2|0;if(s>>>0>>0){break m}z=2;while(1){j=(j<<2)+o|0;y=x[j>>1];r=w[j+3|0];t[f|0]=w[j+2|0];n=f+1|0;i=e+r|0;if(i>>>0>32){j=l;break l}L:{M:{if((h|0)>=4){k=i>>>3|0;i=i&7;break M}if(!h){h=0;k=g;break L}j=i>>>3|0;k=m>>>0>(h+m|0)-j>>>0?h:j;i=i-(k<<3)|0}h=h-k|0;j=m+h|0;k=w[j|0]|w[j+1|0]<<8|(w[j+2|0]<<16|w[j+3|0]<<24)}if(n>>>0>s>>>0){break m}j=y+(g<>>0-r|0)|0;e=(l<<2)+o|0;l=x[e>>1];g=w[e+3|0];t[f+1|0]=w[e+2|0];n=f+2|0;e=g+i|0;if(e>>>0>32){z=3;break l}f=k<>>0-g|0;N:{O:{if((h|0)>=4){k=e>>>3|0;e=e&7;break O}if(!h){h=0;g=k;break N}i=e;e=e>>>3|0;k=m>>>0>(h+m|0)-e>>>0?h:e;e=i-(k<<3)|0}h=h-k|0;g=m+h|0;g=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24)}l=f+l|0;f=n;if(s>>>0>=f>>>0){continue}break}}j=p;break k}t[n|0]=w[((j<<2)+o|0)+2|0];j=(f+z|0)-C|0}}if(j>>>0>=4294967177){break a}}g=j;f=b;v[f>>2]=0;v[f+4>>2]=0;e=0;v[f+48>>2]=0;v[f+40>>2]=0;v[f+44>>2]=0;v[f+32>>2]=0;v[f+36>>2]=0;v[f+24>>2]=0;v[f+28>>2]=0;v[f+16>>2]=0;v[f+20>>2]=0;v[f+8>>2]=0;v[f+12>>2]=0;j=-20;if(!g){break a}f=0;while(1){k=a+f|0;i=w[k|0];if(i>>>0>11){break a}i=(i<<2)+b|0;v[i>>2]=v[i>>2]+1;e=(1<>1)+e|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}if(!e|e>>>0>4095){break a}f=d;d=32-E(e)|0;v[f>>2]=d;e=(1<>2]=v[a>>2]+1;a=v[b+4>>2];if(a>>>0<2|a&1){break a}v[c>>2]=g+1;j=A+1|0;break a}v[b>>2]=0;v[b+4>>2]=0;v[b+48>>2]=0;v[b+40>>2]=0;v[b+44>>2]=0;v[b+32>>2]=0;v[b+36>>2]=0;v[b+24>>2]=0;v[b+28>>2]=0;v[b+16>>2]=0;v[b+20>>2]=0;v[b+8>>2]=0;v[b+12>>2]=0}Q=q+784|0;return j}function ra(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,R=0,S=0,T=0;n=Q-32|0;Q=n;f=-20;a:{if(d>>>0<10){break a}j=w[c+4|0]|w[c+5|0]<<8;h=w[c|0]|w[c+1|0]<<8;m=h+6|0;i=w[c+2|0]|w[c+3|0]<<8;C=j+(m+i|0)|0;if(C>>>0>d>>>0){break a}if(!h){f=-72;break a}g=c+6|0;z=x[e+2>>1];b:{if(h>>>0>=4){f=-1;g=w[(h+g|0)-1|0];if(!g){break a}r=h+2|0;h=r+c|0;k=w[h|0]|w[h+1|0]<<8|(w[h+2|0]<<16|w[h+3|0]<<24);h=E(g)-23|0;break b}k=w[g|0];c:{switch(h-2|0){case 1:k=w[c+8|0]<<16|k;case 0:k=(w[c+7|0]<<8)+k|0;break;default:break c}}g=w[(h+g|0)-1|0];if(!g){break a}r=6;h=(E(g)-(h<<3)|0)+9|0}if(!i){f=-72;break a}B=c+m|0;d:{if(i>>>0>=4){f=-1;m=w[(i+B|0)-1|0];if(!m){break a}s=i-4|0;g=B+s|0;o=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);g=E(m)-23|0;break d}o=w[B|0];e:{switch(i-2|0){case 1:o=w[B+2|0]<<16|o;case 0:o=(w[B+1|0]<<8)+o|0;break;default:break e}}g=w[(i+B|0)-1|0];if(!g){f=-20;break a}g=(E(g)-(i<<3)|0)+9|0}f=-72;if(!j){break a}F=i+B|0;m=F+j|0;f:{if(j>>>0>=4){f=-1;l=w[m-1|0];if(!l){break a}u=j-4|0;i=F+u|0;D=w[i|0]|w[i+1|0]<<8|(w[i+2|0]<<16|w[i+3|0]<<24);i=E(l)-23|0;break f}D=w[F|0];g:{switch(j-2|0){case 1:D=w[F+2|0]<<16|D;case 0:D=(w[F+1|0]<<8)+D|0;break;default:break g}}i=w[m-1|0];if(!i){f=-20;break a}i=(E(i)-(j<<3)|0)+9|0}f=ja(n+8|0,m,d-C|0);if(f>>>0>4294967176){break a}l=e+4|0;p=0-z&31;A=v[n+16>>2];f=v[n+12>>2];q=v[n+8>>2];d=b+3>>>2|0;m=d+a|0;M=a+b|0;N=M-3|0;C=d+m|0;z=C+d|0;h:{if(N>>>0<=z>>>0){e=z;j=C;d=m;break h}P=v[n+24>>2];d=m;j=C;e=z;while(1){y=(k<>>p<<2)+l|0;G=x[y>>1];t[a|0]=G;t[a+1|0]=G>>>8;G=w[y+2|0];I=w[y+3|0];y=(o<>>p<<2)+l|0;H=x[y>>1];t[d|0]=H;t[d+1|0]=H>>>8;H=w[y+2|0];J=w[y+3|0];y=(D<>>p<<2)+l|0;K=x[y>>1];t[j|0]=K;t[j+1|0]=K>>>8;K=w[y+2|0];O=w[y+3|0];y=(q<>>p<<2)+l|0;L=x[y>>1];t[e|0]=L;t[e+1|0]=L>>>8;L=w[y+2|0];R=w[y+3|0];y=a+I|0;h=h+G|0;a=(k<>>p<<2)+l|0;G=x[a>>1];t[y|0]=G;t[y+1|0]=G>>>8;G=w[a+2|0];S=w[a+3|0];d=d+J|0;I=g+H|0;a=(o<>>p<<2)+l|0;g=x[a>>1];t[d|0]=g;t[d+1|0]=g>>>8;H=w[a+2|0];T=w[a+3|0];j=j+O|0;i=i+K|0;a=(D<>>p<<2)+l|0;g=x[a>>1];t[j|0]=g;t[j+1|0]=g>>>8;J=w[a+2|0];K=w[a+3|0];e=e+R|0;f=f+L|0;g=(q<>>p<<2)+l|0;a=x[g>>1];t[e|0]=a;t[e+1|0]=a>>>8;h=h+G|0;if((r|0)<10){G=3}else{r=r-(h>>>3|0)|0;a=r+c|0;k=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);h=h&7;G=0}O=w[g+3|0];L=w[g+2|0];g=H+I|0;I=3;if((s|0)<4){H=3}else{s=s-(g>>>3|0)|0;a=B+s|0;o=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);g=g&7;H=0}i=i+J|0;if((u|0)>=4){u=u-(i>>>3|0)|0;a=F+u|0;D=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);I=0;i=i&7}e=e+O|0;f=f+L|0;if(A>>>0

>>0){J=3}else{A=A-(f>>>3|0)|0;q=w[A|0]|w[A+1|0]<<8|(w[A+2|0]<<16|w[A+3|0]<<24);f=f&7;J=0}a=y+S|0;d=d+T|0;j=j+K|0;if(e>>>0>=N>>>0){break h}if(!(J|(G|H|I))){continue}break}}v[n+16>>2]=A;v[n+12>>2]=f;v[n+8>>2]=q;if(a>>>0>m>>>0){f=-20;break a}if(d>>>0>C>>>0){f=-20;break a}f=-20;if(j>>>0>z>>>0){break a}i:{j:{k:{if(h>>>0<=32){A=m-3|0;while(1){l:{if((r|0)>=10){k=h>>>3|0;q=0;f=h&7;break l}if((r|0)==6){q=m-2|0;r=6;f=h;break j}f=h>>>3|0;q=(r-f|0)<6;k=q?r-6|0:f;f=h-(k<<3)|0}r=r-k|0;h=r+c|0;k=w[h|0]|w[h+1|0]<<8|(w[h+2|0]<<16|w[h+3|0]<<24);if(q|a>>>0>=A>>>0){break k}h=(k<>>p<<2)+l|0;q=x[h>>1];t[a|0]=q;t[a+1|0]=q>>>8;a=w[h+3|0]+a|0;f=w[h+2|0]+f|0;h=(k<>>p<<2)+l|0;q=x[h>>1];t[a|0]=q;t[a+1|0]=q>>>8;a=a+w[h+3|0]|0;h=f+w[h+2|0]|0;if(h>>>0<33){continue}break}}q=m-2|0;break i}q=m-2|0;if(f>>>0<=32){break j}h=f;break i}while(1){m:{if((r|0)>=10){k=f>>>3|0;A=0;h=f&7;break m}if((r|0)==6){r=6;h=f;break i}h=f>>>3|0;A=(r-h|0)<6;k=A?r-6|0:h;h=f-(k<<3)|0}r=r-k|0;f=r+c|0;k=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);if(A|a>>>0>q>>>0){break i}f=(k<>>p<<2)+l|0;A=x[f>>1];t[a|0]=A;t[a+1|0]=A>>>8;a=w[f+3|0]+a|0;f=w[f+2|0]+h|0;if(f>>>0<=32){continue}break}h=f}if(a>>>0<=q>>>0){while(1){c=(k<>>p<<2)+l|0;f=x[c>>1];t[a|0]=f;t[a+1|0]=f>>>8;h=w[c+2|0]+h|0;a=w[c+3|0]+a|0;if(q>>>0>=a>>>0){continue}break}}n:{if(a>>>0>=m>>>0){break n}f=a;c=k<>>p|0;a=(c<<2)+l|0;t[f|0]=w[a|0];if(w[a+3|0]==1){h=w[a+2|0]+h|0;break n}if(h>>>0>31){break n}a=w[((c<<2)+l|0)+2|0]+h|0;h=a>>>0<32?a:32}o:{p:{q:{if(g>>>0<=32){m=C-3|0;while(1){r:{if((s|0)>=4){f=g>>>3|0;a=0;c=g&7;break r}if(!s){f=C-2|0;s=0;k=B;c=g;break p}c=g>>>3|0;a=(B+s|0)-c>>>0>>0;f=a?s:c;c=g-(f<<3)|0}s=s-f|0;k=B+s|0;o=w[k|0]|w[k+1|0]<<8|(w[k+2|0]<<16|w[k+3|0]<<24);if(a|d>>>0>=m>>>0){break q}a=(o<>>p<<2)+l|0;g=x[a>>1];t[d|0]=g;t[d+1|0]=g>>>8;d=w[a+3|0]+d|0;c=w[a+2|0]+c|0;a=(o<>>p<<2)+l|0;g=x[a>>1];t[d|0]=g;t[d+1|0]=g>>>8;d=d+w[a+3|0]|0;g=c+w[a+2|0]|0;if(g>>>0<33){continue}break}}k=B+s|0;f=C-2|0;break o}f=C-2|0;if(c>>>0<=32){break p}g=c;break o}while(1){s:{if((s|0)>=4){a=c>>>3|0;q=0;g=c&7;break s}if(!s){g=c;break o}a=c>>>3|0;q=k-a>>>0>>0;a=q?s:a;g=c-(a<<3)|0}s=s-a|0;k=B+s|0;o=w[k|0]|w[k+1|0]<<8|(w[k+2|0]<<16|w[k+3|0]<<24);if(q|d>>>0>f>>>0){break o}a=(o<>>p<<2)+l|0;c=x[a>>1];t[d|0]=c;t[d+1|0]=c>>>8;d=w[a+3|0]+d|0;c=w[a+2|0]+g|0;if(c>>>0<=32){continue}break}g=c}if(d>>>0<=f>>>0){while(1){a=(o<>>p<<2)+l|0;c=x[a>>1];t[d|0]=c;t[d+1|0]=c>>>8;g=w[a+2|0]+g|0;d=w[a+3|0]+d|0;if(d>>>0<=f>>>0){continue}break}}t:{if(d>>>0>=C>>>0){break t}c=o<>>p|0;a=(c<<2)+l|0;t[d|0]=w[a|0];if(w[a+3|0]==1){g=w[a+2|0]+g|0;break t}if(g>>>0>31){break t}a=w[((c<<2)+l|0)+2|0]+g|0;g=a>>>0<32?a:32}u:{v:{w:{if(i>>>0<=32){m=z-3|0;while(1){x:{if((u|0)>=4){f=i>>>3|0;a=0;c=i&7;break x}if(!u){f=z-2|0;u=0;o=F;c=i;break v}c=i>>>3|0;a=F>>>0>(u+F|0)-c>>>0;f=a?u:c;c=i-(f<<3)|0}u=u-f|0;o=F+u|0;D=w[o|0]|w[o+1|0]<<8|(w[o+2|0]<<16|w[o+3|0]<<24);if(a|j>>>0>=m>>>0){break w}a=(D<>>p<<2)+l|0;d=x[a>>1];t[j|0]=d;t[j+1|0]=d>>>8;d=w[a+3|0]+j|0;c=w[a+2|0]+c|0;a=(D<>>p<<2)+l|0;i=x[a>>1];t[d|0]=i;t[d+1|0]=i>>>8;j=d+w[a+3|0]|0;i=c+w[a+2|0]|0;if(i>>>0<33){continue}break}}o=u+F|0;f=z-2|0;break u}f=z-2|0;if(c>>>0<=32){break v}i=c;break u}while(1){y:{if((u|0)>=4){a=c>>>3|0;d=0;i=c&7;break y}if(!u){i=c;break u}a=c>>>3|0;d=F>>>0>o-a>>>0;a=d?u:a;i=c-(a<<3)|0}u=u-a|0;o=F+u|0;D=w[o|0]|w[o+1|0]<<8|(w[o+2|0]<<16|w[o+3|0]<<24);if(d|f>>>0>>0){break u}a=(D<>>p<<2)+l|0;c=x[a>>1];t[j|0]=c;t[j+1|0]=c>>>8;j=w[a+3|0]+j|0;c=w[a+2|0]+i|0;if(c>>>0<=32){continue}break}i=c}if(f>>>0>=j>>>0){while(1){a=(D<>>p<<2)+l|0;c=x[a>>1];t[j|0]=c;t[j+1|0]=c>>>8;i=w[a+2|0]+i|0;j=w[a+3|0]+j|0;if(j>>>0<=f>>>0){continue}break}}z:{if(j>>>0>=z>>>0){break z}c=D<>>p|0;a=(c<<2)+l|0;t[j|0]=w[a|0];if(w[a+3|0]==1){i=w[a+2|0]+i|0;break z}if(i>>>0>31){break z}a=w[((c<<2)+l|0)+2|0]+i|0;i=a>>>0<32?a:32}A:{B:{C:{c=v[n+12>>2];if(c>>>0<=32){while(1){a=n;f=v[a+16>>2];C=v[a+24>>2];D:{if(f>>>0>=C>>>0){f=f-(c>>>3|0)|0;v[n+16>>2]=f;d=0;c=c&7;break D}j=v[n+20>>2];if((j|0)==(f|0)){a=M-2|0;j=f;break B}m=c>>>3|0;d=j>>>0>f-m>>>0;j=d?f-j|0:m;f=f-j|0;v[n+16>>2]=f;c=c-(j<<3)|0}v[a+12>>2]=c;a=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);v[n+8>>2]=a;if(d|e>>>0>=N>>>0){break C}d=(a<>>p<<2)+l|0;f=x[d>>1];t[e|0]=f;t[e+1|0]=f>>>8;e=w[d+3|0]+e|0;c=w[d+2|0]+c|0;a=(a<>>p<<2)+l|0;d=x[a>>1];t[e|0]=d;t[e+1|0]=d>>>8;c=c+w[a+2|0]|0;v[n+12>>2]=c;e=e+w[a+3|0]|0;if(c>>>0<33){continue}break}}a=M-2|0;break A}a=M-2|0;if(c>>>0>32){break A}j=v[n+20>>2]}while(1){m=n;E:{if(f>>>0>=C>>>0){f=f-(c>>>3|0)|0;v[n+16>>2]=f;d=0;c=c&7;break E}if((f|0)==(j|0)){break A}z=c>>>3|0;d=j>>>0>f-z>>>0;z=d?f-j|0:z;f=f-z|0;v[n+16>>2]=f;c=c-(z<<3)|0}v[m+12>>2]=c;m=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);v[n+8>>2]=m;if(d|a>>>0>>0){break A}d=(m<>>p<<2)+l|0;m=x[d>>1];t[e|0]=m;t[e+1|0]=m>>>8;c=w[d+2|0]+c|0;v[n+12>>2]=c;e=w[d+3|0]+e|0;if(c>>>0<=32){continue}break}}if(a>>>0>=e>>>0){while(1){d=(v[n+8>>2]<>>p<<2)+l|0;c=x[d>>1];t[e|0]=c;t[e+1|0]=c>>>8;c=v[n+12>>2]+w[d+2|0]|0;v[n+12>>2]=c;e=w[d+3|0]+e|0;if(e>>>0<=a>>>0){continue}break}}F:{if(e>>>0>=M>>>0){break F}d=v[n+8>>2]<>>p|0;a=(d<<2)+l|0;t[e|0]=w[a|0];if(w[a+3|0]==1){c=v[n+12>>2]+w[a+2|0]|0;break F}c=v[n+12>>2];if(c>>>0>31){break F}a=w[((d<<2)+l|0)+2|0]+c|0;c=a>>>0<32?a:32}f=(r|0)==6?(h|0)==32?(k|0)==(B|0)?(g|0)==32?(o|0)==(F|0)?(i|0)==32?v[n+16>>2]==v[n+20>>2]?(c|0)==32?b:-20:-20:-20:-20:-20:-20:-20:-20}Q=n+32|0;return f}function ka(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,y=0,z=0,A=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,R=0,S=0,T=0,U=0;n=Q-32|0;Q=n;f=-20;a:{if(d>>>0<10){break a}k=w[c+4|0]|w[c+5|0]<<8;h=w[c|0]|w[c+1|0]<<8;j=h+6|0;g=w[c+2|0]|w[c+3|0]<<8;q=k+(j+g|0)|0;if(q>>>0>d>>>0){break a}if(!h){f=-72;break a}i=c+6|0;l=x[e+2>>1];b:{if(h>>>0>=4){f=-1;i=w[(h+i|0)-1|0];if(!i){break a}r=h+2|0;f=r+c|0;m=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);h=E(i)-23|0;break b}m=w[i|0];c:{switch(h-2|0){case 1:m=w[c+8|0]<<16|m;case 0:m=(w[c+7|0]<<8)+m|0;break;default:break c}}f=w[(h+i|0)-1|0];if(!f){f=-20;break a}r=6;h=(E(f)-(h<<3)|0)+9|0}if(!g){f=-72;break a}y=c+j|0;d:{if(g>>>0>=4){f=-1;i=w[(g+y|0)-1|0];if(!i){break a}J=g-4|0;f=J+y|0;z=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);i=E(i)-23|0;break d}z=w[y|0];e:{switch(g-2|0){case 1:z=w[y+2|0]<<16|z;case 0:z=(w[y+1|0]<<8)+z|0;break;default:break e}}f=w[(g+y|0)-1|0];if(!f){f=-20;break a}i=(E(f)-(g<<3)|0)+9|0}f=-72;if(!k){break a}C=g+y|0;j=k+C|0;f:{if(k>>>0>=4){f=-1;g=w[j-1|0];if(!g){break a}G=k-4|0;f=G+C|0;A=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);g=E(g)-23|0;break f}A=w[C|0];g:{switch(k-2|0){case 1:A=w[C+2|0]<<16|A;case 0:A=(w[C+1|0]<<8)+A|0;break;default:break g}}f=w[j-1|0];if(!f){f=-20;break a}g=(E(f)-(k<<3)|0)+9|0}f=ja(n+8|0,j,d-q|0);if(f>>>0>4294967176){break a}o=e+4|0;p=0-l&31;f=v[n+16>>2];D=v[n+12>>2];N=v[n+8>>2];L=b+3>>>2|0;F=L+a|0;H=F+L|0;I=H+L|0;K=a+b|0;O=K-3|0;h:{if(I>>>0>=O>>>0){u=f;q=J;l=G;j=r;s=I;k=H;d=F;e=a;break h}P=1;S=v[n+24>>2];e=a;d=F;k=H;s=I;while(1){j=(m<>>p<<1)+o|0;q=w[j+1|0];t[e|0]=w[j|0];j=(z<>>p<<1)+o|0;l=w[j+1|0];t[d|0]=w[j|0];j=(A<>>p<<1)+o|0;u=w[j+1|0];t[k|0]=w[j|0];j=(N<>>p<<1)+o|0;M=w[j+1|0];t[s|0]=w[j|0];h=h+q|0;j=(m<>>p<<1)+o|0;q=w[j+1|0];t[e+1|0]=w[j|0];i=i+l|0;j=(z<>>p<<1)+o|0;l=w[j+1|0];t[d+1|0]=w[j|0];u=g+u|0;g=(A<>>p<<1)+o|0;R=w[g+1|0];t[k+1|0]=w[g|0];D=D+M|0;g=(N<>>p<<1)+o|0;M=w[g+1|0];t[s+1|0]=w[g|0];h=h+q|0;i:{if((r|0)<10){j=r;break i}j=r-(h>>>3|0)|0;g=j+c|0;m=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);h=h&7}i=i+l|0;j:{if((J|0)<4){q=J;break j}q=J-(i>>>3|0)|0;g=y+q|0;z=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);i=i&7}l=u+R|0;k:{if((G|0)<4){g=l;l=G;break k}g=l&7;l=G-(l>>>3|0)|0;u=C+l|0;A=w[u|0]|w[u+1|0]<<8|(w[u+2|0]<<16|w[u+3|0]<<24)}D=D+M|0;s=s+2|0;l:{if(f>>>0>>0){u=f;break l}u=f-(D>>>3|0)|0;N=w[u|0]|w[u+1|0]<<8|(w[u+2|0]<<16|w[u+3|0]<<24);D=D&7}k=k+2|0;d=d+2|0;e=e+2|0;M=(J|0)>3;R=(G|0)>3;T=(r|0)>9;U=f>>>0>=S>>>0;r=j;G=l;J=q;f=u;P=T&(M&R)&P&U;if(P&s>>>0>>0){continue}break}}v[n+16>>2]=u;v[n+12>>2]=D;v[n+8>>2]=N;if(e>>>0>F>>>0){f=-20;break a}if(d>>>0>H>>>0){f=-20;break a}f=-20;if(k>>>0>I>>>0){break a}m:{n:{o:{p:{if(h>>>0>32){break p}u=F-3|0;q:{while(1){r:{if((j|0)>=10){m=h>>>3|0;r=0;f=h&7;break r}if((j|0)==6){f=h;j=6;break q}f=h>>>3|0;r=(j-f|0)<6;m=r?j-6|0:f;f=h-(m<<3)|0}j=j-m|0;h=j+c|0;m=w[h|0]|w[h+1|0]<<8|(w[h+2|0]<<16|w[h+3|0]<<24);if(!(r|e>>>0>=u>>>0)){h=(m<>>p<<1)+o|0;r=w[h+1|0];t[e|0]=w[h|0];f=f+r|0;h=(m<>>p<<1)+o|0;r=w[h+1|0];t[e+1|0]=w[h|0];e=e+2|0;h=f+r|0;if(h>>>0<=32){continue}break p}break}if(f>>>0<=32){break q}h=f;break p}h=f;while(1){s:{if((j|0)>=10){m=h>>>3|0;r=0;h=h&7;break s}if((j|0)==6){j=6;break p}f=h>>>3|0;r=(j-f|0)<6;m=r?j-6|0:f;h=h-(m<<3)|0}j=j-m|0;f=j+c|0;m=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);f=e>>>0>=F>>>0;if(r|f){break o}f=(m<>>p<<1)+o|0;r=w[f+1|0];t[e|0]=w[f|0];e=e+1|0;h=h+r|0;if(h>>>0<=32){continue}break}}if(e>>>0>>0){break n}break m}if(f){break m}}c=e+1|0;if(F-e&1){f=(m<>>p<<1)+o|0;r=w[f+1|0];t[e|0]=w[f|0];h=h+r|0;e=c}if((c|0)==(F|0)){break m}while(1){c=(m<>>p<<1)+o|0;f=w[c+1|0];t[e|0]=w[c|0];c=f+h|0;f=(m<>>p<<1)+o|0;h=w[f+1|0];t[e+1|0]=w[f|0];h=c+h|0;e=e+2|0;if((F|0)!=(e|0)){continue}break}}t:{u:{v:{w:{x:{if(i>>>0<=32){r=H-3|0;while(1){y:{if((q|0)>=4){f=i>>>3|0;e=0;c=i&7;break y}if(!q){q=0;m=y;c=i;break w}c=i>>>3|0;e=(q+y|0)-c>>>0>>0;f=e?q:c;c=i-(f<<3)|0}q=q-f|0;m=y+q|0;z=w[m|0]|w[m+1|0]<<8|(w[m+2|0]<<16|w[m+3|0]<<24);if(e|d>>>0>=r>>>0){break x}e=(z<>>p<<1)+o|0;f=w[e+1|0];t[d|0]=w[e|0];c=c+f|0;e=(z<>>p<<1)+o|0;f=w[e+1|0];t[d+1|0]=w[e|0];d=d+2|0;i=c+f|0;if(i>>>0<33){continue}break}}m=q+y|0;break v}if(c>>>0<=32){break w}i=c;break v}i=c;while(1){z:{if((q|0)>=4){f=i>>>3|0;e=0;i=i&7;break z}if(!q){break v}c=i>>>3|0;e=m-c>>>0>>0;f=e?q:c;i=i-(f<<3)|0}q=q-f|0;m=y+q|0;z=w[m|0]|w[m+1|0]<<8|(w[m+2|0]<<16|w[m+3|0]<<24);c=d>>>0>=H>>>0;if(e?1:c){if(c){break t}break u}c=(z<>>p<<1)+o|0;e=w[c+1|0];t[d|0]=w[c|0];d=d+1|0;i=e+i|0;if(i>>>0<=32){continue}break}}if(d>>>0>=H>>>0){break t}}c=d+1|0;if(H-d&1){e=(z<>>p<<1)+o|0;f=w[e+1|0];t[d|0]=w[e|0];i=f+i|0;d=c}if((c|0)==((L<<1)+a|0)){break t}while(1){c=(z<>>p<<1)+o|0;e=w[c+1|0];t[d|0]=w[c|0];c=e+i|0;e=(z<>>p<<1)+o|0;f=w[e+1|0];t[d+1|0]=w[e|0];i=c+f|0;d=d+2|0;if((H|0)!=(d|0)){continue}break}}A:{B:{C:{D:{E:{if(g>>>0<=32){q=I-3|0;while(1){F:{if((l|0)>=4){f=g>>>3|0;e=0;c=g&7;break F}if(!l){l=0;d=C;c=g;break D}c=g>>>3|0;e=(l+C|0)-c>>>0>>0;f=e?l:c;c=g-(f<<3)|0}l=l-f|0;d=C+l|0;A=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24);if(e|k>>>0>=q>>>0){break E}d=(A<>>p<<1)+o|0;e=w[d+1|0];t[k|0]=w[d|0];c=c+e|0;d=(A<>>p<<1)+o|0;e=w[d+1|0];t[k+1|0]=w[d|0];k=k+2|0;g=c+e|0;if(g>>>0<33){continue}break}}d=l+C|0;break C}if(c>>>0<=32){break D}g=c;break C}g=c;while(1){G:{if((l|0)>=4){f=g>>>3|0;e=0;g=g&7;break G}if(!l){break C}c=g>>>3|0;e=d-c>>>0>>0;f=e?l:c;g=g-(f<<3)|0}l=l-f|0;d=C+l|0;A=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24);c=k>>>0>=I>>>0;if(e?1:c){if(c){break A}break B}c=(A<>>p<<1)+o|0;e=w[c+1|0];t[k|0]=w[c|0];k=k+1|0;g=e+g|0;if(g>>>0<=32){continue}break}}if(k>>>0>=I>>>0){break A}}c=k+1|0;if(I-k&1){e=(A<>>p<<1)+o|0;f=w[e+1|0];t[k|0]=w[e|0];k=c;g=f+g|0}if((c|0)==(B(L,3)+a|0)){break A}while(1){a=(A<>>p<<1)+o|0;c=w[a+1|0];t[k|0]=w[a|0];a=c+g|0;c=(A<>>p<<1)+o|0;e=w[c+1|0];t[k+1|0]=w[c|0];g=a+e|0;k=k+2|0;if((I|0)!=(k|0)){continue}break}}c=v[n+12>>2];H:{I:{J:{if(c>>>0>32){break J}K:{while(1){e=n;G=e;f=v[e+16>>2];q=v[e+24>>2];L:{if(f>>>0>=q>>>0){f=f-(c>>>3|0)|0;v[n+16>>2]=f;a=0;c=c&7;break L}k=v[n+20>>2];a=f;if((k|0)==(f|0)){break K}l=c>>>3|0;a=k>>>0>f-l>>>0;k=a?f-k|0:l;f=f-k|0;v[n+16>>2]=f;c=c-(k<<3)|0}v[G+12>>2]=c;e=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);v[n+8>>2]=e;if(!(a|s>>>0>=O>>>0)){a=(e<>>p<<1)+o|0;f=w[a+1|0];t[s|0]=w[a|0];a=c+f|0;c=(e<>>p<<1)+o|0;e=w[c|0];c=a+w[c+1|0]|0;v[n+12>>2]=c;t[s+1|0]=e;s=s+2|0;if(c>>>0<=32){continue}break J}break}if(c>>>0>32){break J}a=v[n+20>>2]}k=a;while(1){e=n;M:{if(f>>>0>=q>>>0){f=f-(c>>>3|0)|0;v[n+16>>2]=f;a=0;c=c&7;break M}if((f|0)==(k|0)){break J}l=c>>>3|0;a=k>>>0>f-l>>>0;l=a?f-k|0:l;f=f-l|0;v[n+16>>2]=f;c=c-(l<<3)|0}v[e+12>>2]=c;e=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);v[n+8>>2]=e;l=s>>>0>=K>>>0;if(a?1:l){if(l){break H}break I}a=(e<>>p<<1)+o|0;e=w[a|0];c=w[a+1|0]+c|0;v[n+12>>2]=c;t[s|0]=e;s=s+1|0;if(c>>>0<=32){continue}break}}if(s>>>0>=K>>>0){break H}e=v[n+8>>2]}a=(e<>>p<<1)+o|0;e=w[a|0];v[n+12>>2]=w[a+1|0]+c;t[s|0]=e;if((K-s|0)==1){break H}a=K-2|0;if((s^-1)+K&1){c=v[n+12>>2];e=(v[n+8>>2]<>>p<<1)+o|0;f=w[e|0];v[n+12>>2]=c+w[e+1|0];t[s+1|0]=f;c=s+2|0}else{c=s+1|0}if((a|0)==(s|0)){break H}while(1){a=v[n+12>>2];e=(v[n+8>>2]<>>p<<1)+o|0;f=w[e|0];v[n+12>>2]=a+w[e+1|0];t[c|0]=f;a=v[n+12>>2];e=(v[n+8>>2]<>>p<<1)+o|0;f=w[e|0];v[n+12>>2]=a+w[e+1|0];t[c+1|0]=f;c=c+2|0;if((K|0)!=(c|0)){continue}break}}f=(j|0)==6?(h|0)==32?(m|0)==(y|0)?(i|0)==32?(d|0)==(C|0)?(g|0)==32?v[n+16>>2]==v[n+20>>2]?v[n+12>>2]==32?b:-20:-20:-20:-20:-20:-20:-20:-20}Q=n+32|0;return f}function ia(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0;h=Q-144|0;Q=h;f=-44;a:{if(e>>>0<1500){break a}e=v[a>>2];m=_(d+624|0,0,108);s=e&255;if(s>>>0>12){break a}k=d+1244|0;C=na(k,m,h+8|0,h+12|0,b,c);if(C>>>0<=4294967176){q=v[h+12>>2];if(q>>>0>s>>>0){break a}y=d+732|0;F=d+676|0;z=a+4|0;G=e&-16777216;c=d+680|0;b=q;while(1){e=b;b=b-1|0;if(!v[m+(e<<2)>>2]){continue}break}b=1;o=e+1|0;b:{if(o>>>0<2){break b}i=e&3;if(e-1>>>0>=3){f=e&-4;while(1){g=b<<2;l=v[g+m>>2];v[c+g>>2]=p;n=g+4|0;r=v[n+m>>2];p=l+p|0;v[c+n>>2]=p;l=g+8|0;n=v[l+m>>2];p=p+r|0;v[c+l>>2]=p;g=g+12|0;l=v[g+m>>2];j=c+g|0;g=p+n|0;v[j>>2]=g;p=g+l|0;b=b+4|0;f=f-4|0;if(f){continue}break}}if(!i){break b}while(1){f=b<<2;g=v[f+m>>2];v[c+f>>2]=p;b=b+1|0;p=g+p|0;i=i-1|0;if(i){continue}break}}v[c>>2]=p;f=v[h+8>>2];c:{if(!f){break c}b=0;if((f|0)!=1){g=f&-2;while(1){l=w[b+k|0];n=c+(l<<2)|0;i=v[n>>2];v[n>>2]=i+1;i=(i<<1)+y|0;t[i+1|0]=l;t[i|0]=b;l=b|1;n=w[l+k|0];r=c+(n<<2)|0;i=v[r>>2];v[r>>2]=i+1;i=(i<<1)+y|0;t[i+1|0]=n;t[i|0]=l;b=b+2|0;g=g-2|0;if(g){continue}break}}if(!(f&1)){break c}f=w[b+k|0];g=c+(f<<2)|0;c=v[g>>2];v[g>>2]=c+1;c=(c<<1)+y|0;t[c+1|0]=f;t[c|0]=b}c=0;v[d+680>>2]=0;d:{if(o>>>0>=2){b=1;n=e-1|0;if(n){f=(q^-1)+s|0;k=e&-2;while(1){g=b<<2;i=v[g+m>>2];v[d+g>>2]=c;g=b+1|0;l=g<<2;r=v[l+m>>2];c=(i<>2]=c;c=c+(r<>2]=c}l=q+1|0;q=l-e|0;i=(s-q|0)+1|0;if(o>>>0<2|i>>>0<=q>>>0){break d}c=e&-4;k=e&3;e=q;while(1){f=1;g=c;if(n>>>0>=3){while(1){m=B(e,52)+d|0;b=f<<2;v[m+b>>2]=v[b+d>>2]>>>e;o=b+4|0;v[o+m>>2]=v[d+o>>2]>>>e;o=b+8|0;v[o+m>>2]=v[d+o>>2]>>>e;b=b+12|0;v[b+m>>2]=v[b+d>>2]>>>e;f=f+4|0;g=g-4|0;if(g){continue}break}}b=k;if(b){while(1){g=f<<2;v[g+(B(e,52)+d|0)>>2]=v[d+g>>2]>>>e;f=f+1|0;b=b-1|0;if(b){continue}break}}e=e+1|0;if(i>>>0>e>>>0){continue}break}break d}l=q+1|0;q=l-e|0}v[h- -64>>2]=v[d+48>>2];b=v[d+44>>2];v[h+56>>2]=v[d+40>>2];v[h+60>>2]=b;b=v[d+36>>2];v[h+48>>2]=v[d+32>>2];v[h+52>>2]=b;b=v[d+28>>2];v[h+40>>2]=v[d+24>>2];v[h+44>>2]=b;b=v[d+20>>2];v[h+32>>2]=v[d+16>>2];v[h+36>>2]=b;b=v[d+4>>2];v[h+16>>2]=v[d>>2];v[h+20>>2]=b;b=v[d+12>>2];v[h+24>>2]=v[d+8>>2];v[h+28>>2]=b;if(p){H=l-s|0;n=0;while(1){b=(n<<1)+y|0;c=w[b+1|0];m=l-c|0;o=s-m|0;r=1<>2];e:{if(o>>>0>=q>>>0){c=m+H|0;e=((c|0)>1?c:1)<<2;x=v[e+F>>2];b=B(m,52)+d|0;v[h+128>>2]=v[b+48>>2];f=v[b+44>>2];v[h+120>>2]=v[b+40>>2];v[h+124>>2]=f;f=v[b+36>>2];v[h+112>>2]=v[b+32>>2];v[h+116>>2]=f;f=v[b+28>>2];v[h+104>>2]=v[b+24>>2];v[h+108>>2]=f;f=v[b+20>>2];v[h+96>>2]=v[b+16>>2];v[h+100>>2]=f;f=v[b+12>>2];v[h+88>>2]=v[b+8>>2];v[h+92>>2]=f;f=v[b+4>>2];v[h+80>>2]=v[b>>2];v[h+84>>2]=f;E=p-x|0;f=(k<<2)+z|0;f:{if((c|0)<2){break f}e=v[e+(h+80|0)>>2];if(!e){break f}b=m<<16&16711680|A|16777216;g=e&7;c=0;if(e-1>>>0>=7){i=e&-8;while(1){e=c<<2;j=e+f|0;u[j>>1]=b;u[j+2>>1]=b>>>16;j=f+(e|4)|0;u[j>>1]=b;u[j+2>>1]=b>>>16;j=f+(e|8)|0;u[j>>1]=b;u[j+2>>1]=b>>>16;j=f+(e|12)|0;u[j>>1]=b;u[j+2>>1]=b>>>16;j=f+(e|16)|0;u[j>>1]=b;u[j+2>>1]=b>>>16;j=f+(e|20)|0;u[j>>1]=b;u[j+2>>1]=b>>>16;j=f+(e|24)|0;u[j>>1]=b;u[j+2>>1]=b>>>16;e=f+(e|28)|0;u[e>>1]=b;u[e+2>>1]=b>>>16;c=c+8|0;i=i-8|0;if(i){continue}break}}if(!g){break f}while(1){e=f+(c<<2)|0;u[e>>1]=b;u[e+2>>1]=b>>>16;c=c+1|0;g=g-1|0;if(g){continue}break}}if(E){i=(x<<1)+y|0;g=0;while(1){x=i+(g<<1)|0;c=w[x+1|0];b=l-c|0;j=(h+80|0)+(c<<2)|0;e=v[j>>2];c=e+(1<>1]=b;u[x+2>>1]=b>>>16;e=e+1|0;if(c>>>0>e>>>0){continue}break}v[j>>2]=c;g=g+1|0;if((E|0)!=(g|0)){continue}break}}b=k+r|0;break e}b=k+r|0;if(k>>>0>=b>>>0){break e}c=m<<16&16711680|A|16777216;if(o>>>0<=2){f=r&7;while(1){e=(k<<2)+z|0;u[e>>1]=c;u[e+2>>1]=c>>>16;k=k+1|0;f=f-1|0;if(f){continue}break}}if(o>>>0<3){break e}while(1){e=(k<<2)+z|0;u[e>>1]=c;u[e+2>>1]=c>>>16;u[e+28>>1]=c;u[e+30>>1]=c>>>16;u[e+24>>1]=c;u[e+26>>1]=c>>>16;u[e+20>>1]=c;u[e+22>>1]=c>>>16;u[e+16>>1]=c;u[e+18>>1]=c>>>16;u[e+12>>1]=c;u[e+14>>1]=c>>>16;u[e+8>>1]=c;u[e+10>>1]=c>>>16;u[e+4>>1]=c;u[e+6>>1]=c>>>16;k=k+8|0;if((k|0)!=(b|0)){continue}break}}v[D>>2]=b;n=n+1|0;if((p|0)!=(n|0)){continue}break}}v[a>>2]=s<<16|G|s|256}f=C}Q=h+144|0;return f}function ha(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;n=-70;l=v[c+4>>2];j=v[c>>2];p=l+j|0;a:{if(p>>>0>b-a>>>0){break a}n=-20;i=v[d>>2];if(j>>>0>e-i>>>0){break a}e=b-32|0;q=i+j|0;b=a+j|0;o=v[c+8>>2];b:{if((j|0)<=7){if((j|0)<1){break b}while(1){t[a|0]=w[i|0];i=i+1|0;a=a+1|0;if(b>>>0>a>>>0){continue}break}break b}if(b>>>0<=e>>>0){while(1){j=w[i+4|0]|w[i+5|0]<<8|(w[i+6|0]<<16|w[i+7|0]<<24);k=w[i|0]|w[i+1|0]<<8|(w[i+2|0]<<16|w[i+3|0]<<24);t[a|0]=k;t[a+1|0]=k>>>8;t[a+2|0]=k>>>16;t[a+3|0]=k>>>24;t[a+4|0]=j;t[a+5|0]=j>>>8;t[a+6|0]=j>>>16;t[a+7|0]=j>>>24;j=w[i+12|0]|w[i+13|0]<<8|(w[i+14|0]<<16|w[i+15|0]<<24);k=w[i+8|0]|w[i+9|0]<<8|(w[i+10|0]<<16|w[i+11|0]<<24);t[a+8|0]=k;t[a+9|0]=k>>>8;t[a+10|0]=k>>>16;t[a+11|0]=k>>>24;t[a+12|0]=j;t[a+13|0]=j>>>8;t[a+14|0]=j>>>16;t[a+15|0]=j>>>24;i=i+16|0;a=a+16|0;if(b>>>0>a>>>0){continue}break b}}if(a>>>0<=e>>>0){r=e-a|0;j=i;while(1){k=w[j+4|0]|w[j+5|0]<<8|(w[j+6|0]<<16|w[j+7|0]<<24);m=w[j|0]|w[j+1|0]<<8|(w[j+2|0]<<16|w[j+3|0]<<24);t[a|0]=m;t[a+1|0]=m>>>8;t[a+2|0]=m>>>16;t[a+3|0]=m>>>24;t[a+4|0]=k;t[a+5|0]=k>>>8;t[a+6|0]=k>>>16;t[a+7|0]=k>>>24;k=w[j+12|0]|w[j+13|0]<<8|(w[j+14|0]<<16|w[j+15|0]<<24);m=w[j+8|0]|w[j+9|0]<<8|(w[j+10|0]<<16|w[j+11|0]<<24);t[a+8|0]=m;t[a+9|0]=m>>>8;t[a+10|0]=m>>>16;t[a+11|0]=m>>>24;t[a+12|0]=k;t[a+13|0]=k>>>8;t[a+14|0]=k>>>16;t[a+15|0]=k>>>24;j=j+16|0;a=a+16|0;if(e>>>0>a>>>0){continue}break}i=i+r|0;a=e}if(a>>>0>=b>>>0){break b}while(1){t[a|0]=w[i|0];i=i+1|0;a=a+1|0;if(b>>>0>a>>>0){continue}break}}a=b-o|0;v[d>>2]=q;c:{d:{if(b-f>>>0>>0){if(b-g>>>0>>0){break a}a=a-f|0;d=a+h|0;if(d+l>>>0<=h>>>0){Z(b,d,l);break c}b=Z(b,d,0-a|0);l=a+l|0;v[c+4>>2]=l;b=b-a|0;break d}f=a}c=b+l|0;if((l|0)<=7){if((l|0)<1){break c}while(1){t[b|0]=w[f|0];f=f+1|0;b=b+1|0;if(c>>>0>b>>>0){continue}break}break c}a=b-f|0;e:{if(a>>>0<=7){t[b|0]=w[f|0];t[b+1|0]=w[f+1|0];t[b+2|0]=w[f+2|0];t[b+3|0]=w[f+3|0];d=f;f=a<<2;a=d+v[f+4752>>2]|0;d=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);t[b+4|0]=d;t[b+5|0]=d>>>8;t[b+6|0]=d>>>16;t[b+7|0]=d>>>24;f=a-v[f+4784>>2]|0;break e}a=w[f+4|0]|w[f+5|0]<<8|(w[f+6|0]<<16|w[f+7|0]<<24);d=w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24);t[b|0]=d;t[b+1|0]=d>>>8;t[b+2|0]=d>>>16;t[b+3|0]=d>>>24;t[b+4|0]=a;t[b+5|0]=a>>>8;t[b+6|0]=a>>>16;t[b+7|0]=a>>>24}a=b+8|0;i=f+8|0;if(c>>>0<=e>>>0){d=a+l|0;if((a-i|0)<=15){while(1){b=w[i+4|0]|w[i+5|0]<<8|(w[i+6|0]<<16|w[i+7|0]<<24);c=w[i|0]|w[i+1|0]<<8|(w[i+2|0]<<16|w[i+3|0]<<24);t[a|0]=c;t[a+1|0]=c>>>8;t[a+2|0]=c>>>16;t[a+3|0]=c>>>24;t[a+4|0]=b;t[a+5|0]=b>>>8;t[a+6|0]=b>>>16;t[a+7|0]=b>>>24;i=i+8|0;a=a+8|0;if(d>>>0>a>>>0){continue}break c}}while(1){b=w[i+4|0]|w[i+5|0]<<8|(w[i+6|0]<<16|w[i+7|0]<<24);c=w[i|0]|w[i+1|0]<<8|(w[i+2|0]<<16|w[i+3|0]<<24);t[a|0]=c;t[a+1|0]=c>>>8;t[a+2|0]=c>>>16;t[a+3|0]=c>>>24;t[a+4|0]=b;t[a+5|0]=b>>>8;t[a+6|0]=b>>>16;t[a+7|0]=b>>>24;b=w[i+12|0]|w[i+13|0]<<8|(w[i+14|0]<<16|w[i+15|0]<<24);c=w[i+8|0]|w[i+9|0]<<8|(w[i+10|0]<<16|w[i+11|0]<<24);t[a+8|0]=c;t[a+9|0]=c>>>8;t[a+10|0]=c>>>16;t[a+11|0]=c>>>24;t[a+12|0]=b;t[a+13|0]=b>>>8;t[a+14|0]=b>>>16;t[a+15|0]=b>>>24;i=i+16|0;a=a+16|0;if(d>>>0>a>>>0){continue}break}break c}f:{if(a>>>0>e>>>0){e=a;break f}g=e-a|0;g:{if((a-i|0)<=15){b=i;while(1){d=w[b+4|0]|w[b+5|0]<<8|(w[b+6|0]<<16|w[b+7|0]<<24);f=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24);t[a|0]=f;t[a+1|0]=f>>>8;t[a+2|0]=f>>>16;t[a+3|0]=f>>>24;t[a+4|0]=d;t[a+5|0]=d>>>8;t[a+6|0]=d>>>16;t[a+7|0]=d>>>24;b=b+8|0;a=a+8|0;if(e>>>0>a>>>0){continue}break}break g}b=i;while(1){d=w[b+4|0]|w[b+5|0]<<8|(w[b+6|0]<<16|w[b+7|0]<<24);f=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24);t[a|0]=f;t[a+1|0]=f>>>8;t[a+2|0]=f>>>16;t[a+3|0]=f>>>24;t[a+4|0]=d;t[a+5|0]=d>>>8;t[a+6|0]=d>>>16;t[a+7|0]=d>>>24;d=w[b+12|0]|w[b+13|0]<<8|(w[b+14|0]<<16|w[b+15|0]<<24);f=w[b+8|0]|w[b+9|0]<<8|(w[b+10|0]<<16|w[b+11|0]<<24);t[a+8|0]=f;t[a+9|0]=f>>>8;t[a+10|0]=f>>>16;t[a+11|0]=f>>>24;t[a+12|0]=d;t[a+13|0]=d>>>8;t[a+14|0]=d>>>16;t[a+15|0]=d>>>24;b=b+16|0;a=a+16|0;if(e>>>0>a>>>0){continue}break}}i=g+i|0}if(c>>>0<=e>>>0){break c}while(1){t[e|0]=w[i|0];i=i+1|0;e=e+1|0;if(c>>>0>e>>>0){continue}break}}n=p}return n}function ca(a,b,c,d,e){var f=0,g=0,h=0;h=v[a+28804>>2];g=v[a+28744>>2];a:{if(h-3>>>0>=2){break a}g=v[a+28744>>2];if(v[a+28800>>2]){break a}f=e>>>0>1?e:1;g=v[a+28744>>2];g=f>>>0>>0?f:g}f=-72;b:{c:{d:{if((e|0)!=(g|0)){break d}e:{if(!c){break e}f=v[a+28728>>2];if((f|0)==(b|0)){break e}v[a+28740>>2]=f;v[a+28728>>2]=b;g=v[a+28732>>2];v[a+28732>>2]=b;v[a+28736>>2]=(g-f|0)+b}f=-1;f:{g:{h:{i:{j:{switch(h|0){case 0:f=1;k:{if(v[a+28908>>2]){break k}f=5;if(((w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24))&-16)!=407710288){break k}X(a+160144|0,d,e);v[a+28804>>2]=6;v[a+28744>>2]=8-e;break b}if(e>>>0>>0){v[a+28904>>2]=-72;return-72}b=w[(d+f|0)-1|0];c=b&32;f=(!c+(v[(b>>>4&12)+4736>>2]+(v[((b&3)<<2)+4720>>2]+f|0)|0)|0)+(c>>>5&b>>>0<64)|0;v[a+28904>>2]=f;if(f>>>0>4294967176){break d}X(a+160144|0,d,e);v[a+28804>>2]=1;v[a+28744>>2]=f-e;break b;case 1:b=a+160144|0;X(b+(v[a+28904>>2]-e|0)|0,d,e);b=aa(a+28752|0,b,v[a+28904>>2],v[a+28908>>2]);if(b>>>0>4294967176){return b}f=-72;if(b){break d}b=v[a+28780>>2];if(b){f=-32;if((b|0)!=v[a+28952>>2]){break d}}if(v[a+28784>>2]){v[a+28816>>2]=0;v[a+28820>>2]=0;b=a+28856|0;v[b>>2]=0;v[b+4>>2]=0;b=a+28848|0;v[b>>2]=2048144761;v[b+4>>2]=1640531534;b=a+28840|0;v[b>>2]=0;v[b+4>>2]=0;b=a+28832|0;v[b>>2]=668265295;v[b+4>>2]=-1028477379;b=a+28824|0;v[b>>2]=-1379879466;v[b+4>>2]=1625958382;b=a+28864|0;v[b>>2]=0;v[b+4>>2]=0;b=a+28872|0;v[b>>2]=0;v[b+4>>2]=0;b=a+28880|0;v[b>>2]=0;v[b+4>>2]=0;b=a+28888|0;v[b>>2]=0;v[b+4>>2]=0}break c;case 2:c=w[d|0]|w[d+1|0]<<8;b=(c|w[d+2|0]<<16)>>>3|0;f=-20;l:{m:{d=c>>>1&3;e=d;switch(e-1|0){case 0:break l;case 2:break d;default:break m}}e=b}if(y[a+28768>>2]>>0){break d}c=c&1;v[a+28932>>2]=b;v[a+28800>>2]=d;v[a+28744>>2]=e;if(e){v[a+28804>>2]=c?4:3;break b}if(c){if(!v[a+28784>>2]){break i}v[a+28804>>2]=5;v[a+28744>>2]=4;break b}break c;case 3:case 4:f=-20;n:{o:{switch(v[a+28800>>2]){case 2:f=qa(a,b,c,d,e);break n;case 0:if(!b){f=-74;if(e){break d}break g}f=-70;if(c>>>0>>0){break d}X(b,d,e);if(e>>>0<=4294967176){break g}return e;case 1:break o;default:break d}}e=v[a+28932>>2];f=e?-74:0;if(!b){break n}f=-70;if(c>>>0>>0){break n}_(b,w[d|0],e);f=e}g=0;v[a+28744>>2]=0;if(f>>>0>4294967176){break d}break f;case 6:break h;case 7:break i;case 5:break j;default:break d}}f=-22;if((w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24))!=(oa(a+28816|0)|0)){break d}}f=0;v[a+28804>>2]=0;v[a+28744>>2]=0;break d}X((a-e|0)+160152|0,d,e);v[a+28804>>2]=7;b=a;a=a+160148|0;v[b+28744>>2]=w[a|0]|w[a+1|0]<<8|(w[a+2|0]<<16|w[a+3|0]<<24);break b}g=v[a+28744>>2]-e|0;v[a+28744>>2]=g;f=e}c=f;if(c>>>0>y[a+28768>>2]){return-20}f=v[a+28796>>2];e=c;h=e+v[a+28792>>2]|0;f=h>>>0>>0?f+1|0:f;v[a+28792>>2]=h;v[a+28796>>2]=f;if(v[a+28784>>2]){pa(a+28816|0,b,c);g=v[a+28744>>2]}v[a+28728>>2]=b+c;if(g){return c}if(v[a+28804>>2]==4){b=v[a+28756>>2];d=b;e=v[a+28752>>2];if((e|0)!=-1|(b|0)!=-1){f=-20;if((e|0)!=v[a+28792>>2]|(d|0)!=v[a+28796>>2]){break d}}if(v[a+28784>>2]){v[a+28804>>2]=5;v[a+28744>>2]=4;return c}v[a+28804>>2]=0;v[a+28744>>2]=0;return c}v[a+28744>>2]=3;v[a+28804>>2]=2;return c}return f}v[a+28804>>2]=2;v[a+28744>>2]=3}return 0}function oa(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=a+40|0;k=v[a+72>>2];h=e+k|0;b=v[a+4>>2];o=b;d=v[a>>2];a:{if(!b&d>>>0>=32|b){b=v[a+20>>2];p=b;l=v[a+16>>2];c=Ha(l,b,7);g=R;b=v[a+12>>2];q=b;f=c;m=v[a+8>>2];c=Ha(m,b,1);f=f+c|0;b=R+g|0;b=c>>>0>f>>>0?b+1|0:b;c=v[a+28>>2];r=c;n=v[a+24>>2];c=Ha(n,c,12);g=c+f|0;i=R+b|0;i=c>>>0>g>>>0?i+1|0:i;c=g;b=v[a+36>>2];f=b;j=c;g=v[a+32>>2];c=Ha(g,b,18);j=j+c|0;b=R+i|0;b=Ga(Ga(Ha(Ga(m,q,668265295,-1028477379),R,31),R,-2048144761,-1640531535)^j,R^(c>>>0>j>>>0?b+1|0:b),-2048144761,-1640531535);c=b-1028477341|0;b=R-((b>>>0<1028477341)+2048144776|0)|0;b=Ga(Ga(Ha(Ga(l,p,668265295,-1028477379),R,31),R,-2048144761,-1640531535)^c,R^b,-2048144761,-1640531535);c=b-1028477341|0;b=R-((b>>>0<1028477341)+2048144776|0)|0;b=Ga(Ga(Ha(Ga(n,r,668265295,-1028477379),R,31),R,-2048144761,-1640531535)^c,R^b,-2048144761,-1640531535);c=b-1028477341|0;b=R-((b>>>0<1028477341)+2048144776|0)|0;b=Ga(Ga(Ha(Ga(g,f,668265295,-1028477379),R,31),R,-2048144761,-1640531535)^c,R^b,-2048144761,-1640531535);c=b-1028477341|0;b=R-((b>>>0<1028477341)+2048144776|0)|0;break a}b=v[a+28>>2]+668265263|0;c=v[a+24>>2]+374761413|0;b=c>>>0<374761413?b+1|0:b}b=b+o|0;c=c+d|0;b=c>>>0>>0?b+1|0:b;f=c;c=b;b=a+48|0;b:{if(h>>>0>>0){b=e;break b}g=k-8|0;if(g&8){d=b}else{e=Ga(Ha(Ga(Ha(Ga(w[a+40|0]|w[a+41|0]<<8|(w[a+42|0]<<16|w[a+43|0]<<24),w[a+44|0]|w[a+45|0]<<8|(w[a+46|0]<<16|w[a+47|0]<<24),668265295,-1028477379),R,31),R,-2048144761,-1640531535)^f,c^R,27),R,-2048144761,-1640531535);f=e-1028477341|0;c=R-((e>>>0<1028477341)+2048144776|0)|0;e=b;d=a+56|0}if(g>>>0<8){break b}b=e;while(1){e=Ga(Ha(Ga(Ha(Ga(w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24),w[b+4|0]|w[b+5|0]<<8|(w[b+6|0]<<16|w[b+7|0]<<24),668265295,-1028477379),R,31),R,-2048144761,-1640531535)^f,c^R,27),R,-2048144761,-1640531535);b=e-1028477341|0;e=R-((e>>>0<1028477341)+2048144776|0)|0;e=Ga(Ha(Ga(Ha(Ga(w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24),w[d+4|0]|w[d+5|0]<<8|(w[d+6|0]<<16|w[d+7|0]<<24),668265295,-1028477379),R,31),R,-2048144761,-1640531535)^b,R^e,27),R,-2048144761,-1640531535);f=e-1028477341|0;c=R-((e>>>0<1028477341)+2048144776|0)|0;b=d+8|0;d=d+16|0;if(h>>>0>=d>>>0){continue}break}}e=b+4|0;c:{if(h>>>0>>0){e=b;break c}d=Ga(Ha(Ga(w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24),0,-2048144761,-1640531535)^f,c^R,23),R,668265295,-1028477379)-1640531463|0;b=R+374761393|0;f=d;c=d>>>0<2654435833?b+1|0:b}d:{if(e>>>0>=h>>>0){break d}b=a+k|0;a=b+39|0;b=b+40|0;if(b-e&1){f=Ga(Ha(Ga(w[e|0],0,374761413,668265263)^f,c^R,11),R,-2048144761,-1640531535);c=R;d=e+1|0}else{d=e}if((a|0)==(e|0)){break d}while(1){e=Ga(w[d+1|0],0,374761413,668265263);a=R;f=Ga(Ha(Ga(Ha(Ga(w[d|0],0,374761413,668265263)^f,c^R,11),R,-2048144761,-1640531535)^e,R^a,11),R,-2048144761,-1640531535);c=R;d=d+2|0;if((b|0)!=(d|0)){continue}break}}a=c;e=Ga(f^a>>>1,a,668265295,-1028477379);c=R;a=e;a=Ga(((c&536870911)<<3|a>>>29)^a,c^c>>>29,-1640531463,374761393);d=R;R=d;return a^d}function pa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=v[a+4>>2];h=c+v[a>>2]|0;v[a>>2]=h;v[a+4>>2]=c>>>0>h>>>0?e+1|0:e;d=v[a+72>>2];f=d+c|0;a:{b:{if(f>>>0<=31){if(!b){break b}X((a+d|0)+40|0,b,c);f=v[a+72>>2]+c|0;break b}j=b+c|0;if(d){X(d+(a+40|0)|0,b,32-d|0);h=v[a+72>>2];v[a+72>>2]=0;f=v[a+12>>2];c=v[a+8>>2];i=Ga(w[a+40|0]|w[a+41|0]<<8|(w[a+42|0]<<16|w[a+43|0]<<24),w[a+44|0]|w[a+45|0]<<8|(w[a+46|0]<<16|w[a+47|0]<<24),668265295,-1028477379);d=c+i|0;e=R+f|0;v[a+8>>2]=Ga(Ha(d,d>>>0>>0?e+1|0:e,31),R,-2048144761,-1640531535);v[a+12>>2]=R;d=v[a+20>>2];c=v[a+16>>2];e=Ga(w[a+48|0]|w[a+49|0]<<8|(w[a+50|0]<<16|w[a+51|0]<<24),w[a+52|0]|w[a+53|0]<<8|(w[a+54|0]<<16|w[a+55|0]<<24),668265295,-1028477379);f=c+e|0;d=R+d|0;v[a+16>>2]=Ga(Ha(f,e>>>0>f>>>0?d+1|0:d,31),R,-2048144761,-1640531535);v[a+20>>2]=R;d=v[a+28>>2];c=v[a+24>>2];e=Ga(w[a+56|0]|w[a+57|0]<<8|(w[a+58|0]<<16|w[a+59|0]<<24),w[a+60|0]|w[a+61|0]<<8|(w[a+62|0]<<16|w[a+63|0]<<24),668265295,-1028477379);f=c+e|0;d=R+d|0;v[a+24>>2]=Ga(Ha(f,e>>>0>f>>>0?d+1|0:d,31),R,-2048144761,-1640531535);v[a+28>>2]=R;f=v[a+36>>2];c=v[a+32>>2];d=a- -64|0;i=Ga(w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24),w[d+4|0]|w[d+5|0]<<8|(w[d+6|0]<<16|w[d+7|0]<<24),668265295,-1028477379);d=c+i|0;e=R+f|0;v[a+32>>2]=Ga(Ha(d,d>>>0>>0?e+1|0:e,31),R,-2048144761,-1640531535);v[a+36>>2]=R;b=(b-h|0)+32|0}if(j>>>0>=b+32>>>0){n=j-32|0;c=v[a+32>>2];i=v[a+36>>2];d=v[a+24>>2];k=v[a+28>>2];f=v[a+16>>2];l=v[a+20>>2];h=v[a+8>>2];m=v[a+12>>2];while(1){g=Ga(w[b+24|0]|w[b+25|0]<<8|(w[b+26|0]<<16|w[b+27|0]<<24),w[b+28|0]|w[b+29|0]<<8|(w[b+30|0]<<16|w[b+31|0]<<24),668265295,-1028477379)+c|0;e=i+R|0;c=Ga(Ha(g,c>>>0>g>>>0?e+1|0:e,31),R,-2048144761,-1640531535);i=R;g=Ga(w[b+16|0]|w[b+17|0]<<8|(w[b+18|0]<<16|w[b+19|0]<<24),w[b+20|0]|w[b+21|0]<<8|(w[b+22|0]<<16|w[b+23|0]<<24),668265295,-1028477379)+d|0;e=k+R|0;d=Ga(Ha(g,d>>>0>g>>>0?e+1|0:e,31),R,-2048144761,-1640531535);k=R;g=Ga(w[b+8|0]|w[b+9|0]<<8|(w[b+10|0]<<16|w[b+11|0]<<24),w[b+12|0]|w[b+13|0]<<8|(w[b+14|0]<<16|w[b+15|0]<<24),668265295,-1028477379)+f|0;e=l+R|0;f=Ga(Ha(g,f>>>0>g>>>0?e+1|0:e,31),R,-2048144761,-1640531535);l=R;g=Ga(w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24),w[b+4|0]|w[b+5|0]<<8|(w[b+6|0]<<16|w[b+7|0]<<24),668265295,-1028477379)+h|0;e=m+R|0;h=Ga(Ha(g,g>>>0>>0?e+1|0:e,31),R,-2048144761,-1640531535);m=R;b=b+32|0;if(n>>>0>=b>>>0){continue}break}v[a+32>>2]=c;v[a+36>>2]=i;v[a+24>>2]=d;v[a+28>>2]=k;v[a+16>>2]=f;v[a+20>>2]=l;v[a+8>>2]=h;v[a+12>>2]=m}if(b>>>0>=j>>>0){break a}f=j-b|0;X(a+40|0,b,f)}v[a+72>>2]=f}}function aa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;v[a>>2]=0;v[a+4>>2]=0;v[a+32>>2]=0;v[a+36>>2]=0;v[a+24>>2]=0;v[a+28>>2]=0;v[a+16>>2]=0;v[a+20>>2]=0;v[a+8>>2]=0;v[a+12>>2]=0;f=d?1:5;if(f>>>0>c>>>0){return f}if(!b){return-1}e=1;a:{b:{c:{d:{e:{f:{g:{h:{if((d|0)==1){d=b;if(c){break h}d=-72;break g}e=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24);if((e|0)!=-47205080){break f}e=f;d=(b+f|0)-1|0}g=w[d|0];d=g&32;d=(!d+(v[(g>>>4&12)+4736>>2]+(v[((g&3)<<2)+4720>>2]+e|0)|0)|0)+(d>>>5&g>>>0<64)|0}if(d>>>0>c>>>0){break a}v[a+24>>2]=d;d=-14;c=b+f|0;g=w[c-1|0];if(g&8){break a}i=g&32;if(!i){d=-16;c=w[c|0];if(c>>>0>167){break a}d=c&7;c=(c>>>3|0)+10|0;h=c&31;if((c&63)>>>0>=32){e=1<>>32-h;c=1<>>3,e>>>3|0)+c|0;h=e+R|0;h=c>>>0>d>>>0?h+1|0:h;j=d;f=f+1|0}k=g>>>6|0;e=g>>>2|0;d=0;switch((g&3)-1|0){case 2:break c;case 1:break d;case 0:break e;default:break b}}d=-10;if((e&-16)!=407710288){break a}d=8;if(c>>>0<8){break a}v[a>>2]=0;v[a+4>>2]=0;v[a+32>>2]=0;v[a+36>>2]=0;v[a+24>>2]=0;v[a+28>>2]=0;v[a+16>>2]=0;v[a+20>>2]=0;v[a+8>>2]=0;v[a+12>>2]=0;b=w[b+4|0]|w[b+5|0]<<8|(w[b+6|0]<<16|w[b+7|0]<<24);v[a+20>>2]=1;v[a>>2]=b;v[a+4>>2]=0;return 0}d=w[b+f|0];f=f+1|0;break b}c=b+f|0;d=w[c|0]|w[c+1|0]<<8;f=f+2|0;break b}c=b+f|0;d=w[c|0]|w[c+1|0]<<8|(w[c+2|0]<<16|w[c+3|0]<<24);f=f+4|0}g=e&1;i:{j:{switch(k-1|0){default:e=-1;c=-1;if(!i){break i}e=w[b+f|0];c=0;break i;case 0:c=0;b=b+f|0;b=(w[b|0]|w[b+1|0]<<8)+256|0;c=b>>>0<256?1:c;e=b;break i;case 1:b=b+f|0;e=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24);c=0;break i;case 2:break j}}b=b+f|0;e=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24);c=w[b+4|0]|w[b+5|0]<<8|(w[b+6|0]<<16|w[b+7|0]<<24)}v[a+32>>2]=g;v[a+28>>2]=d;b=e;v[a>>2]=b;v[a+4>>2]=c;d=0;v[a+20>>2]=0;e=i?b:j;v[a+8>>2]=e;b=i?c:h;v[a+12>>2]=b;v[a+16>>2]=!b&e>>>0<131072?e:131072}return d}function la(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!d){return-72}i=x[e+2>>1];a:{b:{c:{if(d>>>0>=4){g=w[(c+d|0)-1|0];f=-1;if(!g){break a}if(d>>>0<=4294967176){break c}return d}h=w[c|0];d:{switch(d-2|0){case 1:h=w[c+2|0]<<16|h;case 0:h=(w[c+1|0]<<8)+h|0;break;default:break d}}f=w[(c+d|0)-1|0];if(!f){return-20}f=(E(f)-(d<<3)|0)+9|0;d=0;break b}f=E(g)-23|0;d=d-4|0;g=d+c|0;h=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24)}k=e+4|0;l=a+b|0;i=0-i&31;e:{f:{g:{h:{i:{if(f>>>0>32){break i}j=l-3|0;while(1){j:{if((d|0)>=4){e=f&7;h=f>>>3|0;f=0;break j}if(!d){d=0;g=c;break h}e=f;g=f>>>3|0;f=(c+d|0)-g>>>0>>0;h=f?d:g;e=e-(h<<3)|0}d=d-h|0;g=d+c|0;h=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);if(!(f?0:a>>>0>>0)){f=e;break i}f=(h<>>i<<1)+k|0;m=w[f+1|0];t[a|0]=w[f|0];e=e+m|0;f=(h<>>i<<1)+k|0;m=w[f+1|0];t[a+1|0]=w[f|0];a=a+2|0;f=e+m|0;if(f>>>0<=32){continue}break}break g}g=c+d|0;if(f>>>0>32){break g}}while(1){k:{if((d|0)>=4){e=f&7;h=f>>>3|0;f=0;break k}if(!d){break g}e=f;h=g;g=f>>>3|0;f=h-g>>>0>>0;h=f?d:g;e=e-(h<<3)|0}d=d-h|0;g=d+c|0;h=w[g|0]|w[g+1|0]<<8|(w[g+2|0]<<16|w[g+3|0]<<24);j=a>>>0>=l>>>0;if(f?1:j){f=e;if(!j){break f}break e}f=(h<>>i<<1)+k|0;j=w[f+1|0];t[a|0]=w[f|0];a=a+1|0;f=e+j|0;if(f>>>0<=32){continue}break}}if(a>>>0>=l>>>0){break e}}d=a+1|0;if(l-a&1){e=(h<>>i<<1)+k|0;j=w[e+1|0];t[a|0]=w[e|0];f=f+j|0;a=d}if((d|0)==(l|0)){break e}while(1){d=(h<>>i<<1)+k|0;e=w[d+1|0];t[a|0]=w[d|0];d=e+f|0;e=(h<>>i<<1)+k|0;f=w[e+1|0];t[a+1|0]=w[e|0];f=d+f|0;a=a+2|0;if((l|0)!=(a|0)){continue}break}}f=(c|0)!=(g|0)?-20:(f|0)!=32?-20:b}return f}function ea(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=8;a:{b:{if(a>>>0>4294967239){break b}while(1){j=j>>>0>8?j:8;g=v[1467];h=g;e=v[1466];b=e;a=a>>>0>8?a+3&-4:8;c:{if(a>>>0<=127){i=(a>>>3|0)-1|0;break c}c=E(a);i=((a>>>29-c^4)-(c<<2)|0)+110|0;if(a>>>0<=4095){break c}c=((a>>>30-c^2)-(c<<1)|0)+71|0;i=c>>>0<63?c:63}c=i;f=c&31;if((c&63)>>>0>=32){d=0;b=g>>>f|0}else{d=g>>>f|0;b=((1<>>f}c=d;if(b|c){while(1){g=b;d=c;d:{if(c|b){e=d-1|0;f=b-1|0;e=(f|0)!=-1?e+1|0:e;d=E(d^e);b=(d|0)==32?E(b^f)+32|0:d;d=63-b|0;R=0-(b>>>0>63)|0;break d}R=0;d=64}b=d;e=b&31;if((b&63)>>>0>=32){d=0;e=c>>>e|0}else{d=c>>>e|0;e=((1<>>e}c=d;i=b+i|0;g=i<<4;f=v[g+4840>>2];b=g+4832|0;e:{if((f|0)!=(b|0)){h=da(f,j,a);if(h){break b}d=v[f+4>>2];v[d+8>>2]=v[f+8>>2];v[v[f+8>>2]+4>>2]=d;v[f+8>>2]=b;d=g+4836|0;v[f+4>>2]=v[d>>2];v[d>>2]=f;v[v[f+4>>2]+8>>2]=f;i=i+1|0;b=(c&1)<<31|e>>>1;c=c>>>1|0;break e}d=v[1467];v[1466]=v[1466]&Ha(-2,-1,i);v[1467]=R&d;b=e^1}if(b|c){continue}break}h=v[1467];e=v[1466]}f:{if(e|h){c=E(h);c=63-((c|0)==32?E(e)+32|0:c)<<4;g=c+4832|0;b=v[c+4840>>2];g:{if(!h&e>>>0<1073741824){break g}c=98;if((b|0)==(g|0)){break g}while(1){h=da(b,j,a);if(h){break b}b=v[b+8>>2];if((g|0)==(b|0)){break g}d=c;c=c-1|0;if(d){continue}break}}if(fa(a+48|0)){break f}if(!b|(b|0)==(g|0)){break a}while(1){h=da(b,j,a);if(h){break b}b=v[b+8>>2];if((g|0)!=(b|0)){continue}break}break a}if(!fa(a+48|0)){break a}}h=0;if(j-1&j){break b}if(a>>>0<=4294967239){continue}break}}return h}return 0}function $(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=Q-16|0;Q=l;a:{if(e>>>0<=3){v[l+12>>2]=0;X(l+12|0,d,e);a=$(a,b,c,l+12|0,4);i=a>>>0<4294967177?a>>>0>e>>>0?-20:a:a;break a}o=_(a,0,(v[b>>2]<<1)+2|0);g=w[d|0]|w[d+1|0]<<8|(w[d+2|0]<<16|w[d+3|0]<<24);f=g&15;i=-44;if(f>>>0>10){break a}v[c>>2]=f+5;c=4;a=g>>>4|0;m=f+6|0;e=d+e|0;n=e-4|0;p=e-7|0;r=e-5|0;j=32<>2];f=d;e=0;g=0;while(1){b:{c:{if(!e){h=g;break c}e=g;if((a&65535)==65535){while(1){d:{if(f>>>0>>0){a=(w[f+2|0]|w[f+3|0]<<8|(w[f+4|0]<<16|w[f+5|0]<<24))>>>c|0;f=f+2|0;break d}c=c+16|0;a=a>>>16|0}e=e+24|0;if((a&65535)==65535){continue}break}}h=a&3;if((h|0)==3){while(1){c=c+2|0;e=e+3|0;a=a>>>2|0;h=a&3;if((h|0)==3){continue}break}}h=e+h|0;i=-48;if(q>>>0>>0){break a}c=c+2|0;e:{if(g>>>0>=h>>>0){h=g;break e}_((g<<1)+o|0,0,h-g<<1)}e=(c>>3)+f|0;if(!(n>>>0>>0?f>>>0>p>>>0:0)){c=c&7;a=(w[e|0]|w[e+1|0]<<8|(w[e+2|0]<<16|w[e+3|0]<<24))>>>c|0;break b}a=a>>>2|0}e=f}f=j-1&a;g=(j<<1)-1|0;i=g-k|0;if(f>>>0>>0){a=m-1|0}else{a=a&g;f=a-((a|0)<(j|0)?0:i)|0;a=m}g=f-1|0;u[(h<<1)+o>>1]=g;k=k-((f|0)<1?1-f|0:g)|0;if((k|0)<(j|0)){while(1){m=m-1|0;j=j>>1;if((k|0)<(j|0)){continue}break}}a=a+c|0;f=(a>>3)+e|0;f:{if(!(n>>>0>>0?e>>>0>p>>>0:0)){c=a&7;break f}f=n;c=a+(e-f<<3)|0}if((k|0)>=2){e=!g;a=(w[f|0]|w[f+1|0]<<8|(w[f+2|0]<<16|w[f+3|0]<<24))>>>c|0;g=h+1|0;if(q>>>0>=g>>>0){continue}}break}i=-20;if((k|0)!=1|(c|0)>32){break a}v[b>>2]=h;i=((c+7>>3)+f|0)-d|0}a=i;Q=l+16|0;return a}function ba(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,w=0;q=Q-112|0;m=a+8|0;n=1;p=1<>16;g=c+1|0;w=g&1;b:{if(!c){g=j;break b}k=g&-2;g=j;while(1){l=h<<1;i=x[l+b>>1];c:{if((i|0)==65535){v[((g<<3)+m|0)+4>>2]=h;g=g-1|0;i=1;break c}n=i<<16>>16<(r|0)?n:0}u[l+q>>1]=i;o=h|1;l=o<<1;i=x[l+b>>1];d:{if((i|0)!=65535){n=i<<16>>16<(r|0)?n:0;break d}v[((g<<3)+m|0)+4>>2]=o;g=g-1|0;i=1}u[l+q>>1]=i;h=h+2|0;k=k-2|0;if(k){continue}break}}if(!w){break a}i=x[(h<<1)+b>>1];e:{if((i|0)!=65535){n=i<<16>>16<(r|0)?n:0;break e}v[((g<<3)+m|0)+4>>2]=h;g=g-1|0;i=1}u[(h<<1)+q>>1]=i}v[a+4>>2]=f;v[a>>2]=n;if(!s){o=((p>>>3)+(p>>>1)|0)+3|0;h=0;k=0;while(1){a=k;l=u[(a<<1)+b>>1];f:{if((l|0)<1){break f}if((l|0)!=1){k=l&-2;while(1){v[((h<<3)+m|0)+4>>2]=a;while(1){h=j&h+o;if(h>>>0>g>>>0){continue}break}v[((h<<3)+m|0)+4>>2]=a;while(1){h=j&h+o;if(h>>>0>g>>>0){continue}break}k=k-2|0;if(k){continue}break}}if(!(l&1)){break f}v[((h<<3)+m|0)+4>>2]=a;while(1){h=j&h+o;if(h>>>0>g>>>0){continue}break}}k=a+1|0;if((a|0)!=(c|0)){continue}break}}c=f+1|0;g=0;while(1){j=(g<<3)+m|0;b=v[j+4>>2];a=(b<<1)+q|0;f=x[a>>1];u[a>>1]=f+1;a=c+(E(f)^-32)|0;t[j+3|0]=a;u[j>>1]=(f<>2];v[j+4>>2]=v[a+d>>2];g=g+1|0;if((p|0)!=(g|0)){continue}break}}function ma(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=Q-16|0;Q=j;v[j+12>>2]=0;v[j+8>>2]=0;e=-44;n=d- -64|0;b=na(n,d,j+8|0,j+12|0,b,c);a:{b:{if(b>>>0>4294967176){break b}g=v[j+12>>2];c=v[a>>2];if(g>>>0>(c&255)+1>>>0){break a}v[a>>2]=c&-16776961|g<<16&16711680;c:{if(g+1>>>0<2){break c}c=g&3;d:{if(g-1>>>0<3){e=1;break d}i=g&-4;e=1;while(1){h=(e<<2)+d|0;k=v[h>>2];v[h>>2]=f;m=e+1|0;l=(m<<2)+d|0;o=v[l>>2];f=(k<>2]=f;k=e+2|0;l=(k<<2)+d|0;p=v[l>>2];f=f+(o<>2]=f;l=v[h+12>>2];f=f+(p<>2]=f;f=f+(l<>2];v[h>>2]=f;f=(i<>2];if(!k){break b}h=a+4|0;m=g+1|0;f=0;while(1){g=w[f+n|0];a=(g<<2)+d|0;c=v[a>>2];e=1<>1;i=c+e|0;v[a>>2]=i;a=m-g|0;e:{if(e>>>0>=4){if(c>>>0>=i>>>0){break e}while(1){e=h+(c<<1)|0;t[e+1|0]=a;t[e|0]=f;t[e+3|0]=a;t[e+2|0]=f;t[e+5|0]=a;t[e+4|0]=f;t[e+7|0]=a;t[e+6|0]=f;c=c+4|0;if(i>>>0>c>>>0){continue}break}break e}if(!g){break e}c=h+(c<<1)|0;t[c+1|0]=a;t[c|0]=f;if(e>>>0<2){break e}t[c+3|0]=a;t[c+2|0]=f;if(((e>>>0>1?e:1)|0)==2){break e}t[c+5|0]=a;t[c+4|0]=f}f=f+1|0;if((k|0)!=(f|0)){continue}break}}e=b}Q=j+16|0;return e}function X(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){O(a|0,b|0,c|0)|0;return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if((c|0)<1){c=a;break b}c=a;while(1){t[c|0]=w[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){v[c>>2]=v[b>>2];v[c+4>>2]=v[b+4>>2];v[c+8>>2]=v[b+8>>2];v[c+12>>2]=v[b+12>>2];v[c+16>>2]=v[b+16>>2];v[c+20>>2]=v[b+20>>2];v[c+24>>2]=v[b+24>>2];v[c+28>>2]=v[b+28>>2];v[c+32>>2]=v[b+32>>2];v[c+36>>2]=v[b+36>>2];v[c+40>>2]=v[b+40>>2];v[c+44>>2]=v[b+44>>2];v[c+48>>2]=v[b+48>>2];v[c+52>>2]=v[b+52>>2];v[c+56>>2]=v[b+56>>2];v[c+60>>2]=v[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){v[c>>2]=v[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){t[c|0]=w[b|0];t[c+1|0]=w[b+1|0];t[c+2|0]=w[b+2|0];t[c+3|0]=w[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){t[c|0]=w[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function fa(a){var b=0,c=0,d=0,e=0,f=0,g=0;d=v[1204];c=a+3&-4;b=d+c|0;a:{b:{if(b>>>0<=d>>>0?c:0){break b}if(b>>>0>T()<<16>>>0){if(!(P(b|0)|0)){break b}}v[1204]=b;break a}v[1468]=48;d=-1}if((d|0)!=-1){c=a+d|0;b=c-16|0;v[b+12>>2]=16;v[b>>2]=16;a=v[1464];if(a){g=v[a+8>>2]}else{g=0}c:{d:{if((g|0)==(d|0)){e=d-(v[d-4>>2]&-2)|0;f=v[e-4>>2];v[a+8>>2]=c;a=e-(f&-2)|0;c=-16;if(!(t[(a+v[a>>2]|0)-4|0]&1)){break d}c=v[a+4>>2];v[c+8>>2]=v[a+8>>2];v[v[a+8>>2]+4>>2]=c;b=b-a|0;v[a>>2]=b;break c}v[d+12>>2]=16;v[d>>2]=16;v[d+8>>2]=c;v[d+4>>2]=a;v[1464]=d;c=16}a=d+c|0;b=b-a|0;v[a>>2]=b}v[((b&-4)+a|0)-4>>2]=b|1;g=a;e=v[a>>2]-8|0;e:{if(e>>>0<=127){b=(e>>>3|0)-1|0;break e}f=E(e);b=((e>>>29-f^4)-(f<<2)|0)+110|0;if(e>>>0<=4095){break e}b=((e>>>30-f^2)-(f<<1)|0)+71|0;b=b>>>0<63?b:63}c=b<<4;v[g+4>>2]=c+4832;c=c+4840|0;v[a+8>>2]=v[c>>2];v[c>>2]=a;v[v[a+8>>2]+4>>2]=a;c=v[1467];a=b&31;if((b&63)>>>0>=32){b=1<>>32-a;a=1<>2];if(e+c>>>0<=(b+a|0)-4>>>0){f=v[a+4>>2];v[f+8>>2]=v[a+8>>2];v[v[a+8>>2]+4>>2]=f;if((d|0)!=(e|0)){e=e-d|0;f=a-(v[a-4>>2]&-2)|0;d=e+v[f>>2]|0;v[f>>2]=d;v[(f+(d&-4)|0)-4>>2]=d;a=a+e|0;b=b-e|0;v[a>>2]=b}a:{if(c+24>>>0<=b>>>0){d=(a+c|0)+8|0;b=(b-c|0)-8|0;v[d>>2]=b;v[(d+(b&-4)|0)-4>>2]=b|1;g=d;f=v[d>>2]-8|0;b:{if(f>>>0<=127){e=(f>>>3|0)-1|0;break b}b=E(f);e=((f>>>29-b^4)-(b<<2)|0)+110|0;if(f>>>0<=4095){break b}b=((f>>>30-b^2)-(b<<1)|0)+71|0;e=b>>>0<63?b:63}b=e;e=b<<4;v[g+4>>2]=e+4832;e=e+4840|0;v[d+8>>2]=v[e>>2];v[e>>2]=d;v[v[d+8>>2]+4>>2]=d;e=v[1467];d=b&31;if((b&63)>>>0>=32){b=1<>>32-d;g=1<>2]=b;v[((b&-4)+a|0)-4>>2]=b;break a}v[(a+b|0)-4>>2]=b}a=a+4|0}else{a=0}return a}function Z(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return X(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}t[d|0]=w[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;t[d|0]=w[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;v[c+a>>2]=v[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;t[c+a|0]=w[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){v[d>>2]=v[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){t[d|0]=w[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function _(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}f=a+c|0;t[f-1|0]=b;t[a|0]=b;if(c>>>0<3){break a}t[f-2|0]=b;t[a+1|0]=b;t[f-3|0]=b;t[a+2|0]=b;if(c>>>0<7){break a}t[f-4|0]=b;t[a+3|0]=b;if(c>>>0<9){break a}f=0-a&3;e=f+a|0;d=B(b&255,16843009);v[e>>2]=d;b=c-f&-4;c=b+e|0;v[c-4>>2]=d;if(b>>>0<9){break a}v[e+8>>2]=d;v[e+4>>2]=d;v[c-8>>2]=d;v[c-12>>2]=d;if(b>>>0<25){break a}v[e+24>>2]=d;v[e+20>>2]=d;v[e+16>>2]=d;v[e+12>>2]=d;v[c-16>>2]=d;v[c-20>>2]=d;v[c-24>>2]=d;v[c-28>>2]=d;c=b;b=e&4|24;c=c-b|0;if(c>>>0<32){break a}d=Ga(d,0,1,1);f=R;b=b+e|0;while(1){v[b+24>>2]=d;e=f;v[b+28>>2]=e;v[b+16>>2]=d;v[b+20>>2]=e;v[b+8>>2]=d;v[b+12>>2]=e;v[b>>2]=d;v[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ta(a){a=a|0;var b=0;b=1812;a:{b:{switch((a>>>0<4294967177?0:0-a|0)|0){case 1:b=1855;break a;case 10:b=1159;break a;case 12:b=1766;break a;case 14:b=1184;break a;case 16:b=1506;break a;case 20:b=1830;break a;case 22:b=1271;break a;case 40:b=1212;break a;case 42:b=1692;break a;case 62:b=1061;break a;case 64:b=1024;break a;case 66:b=1378;break a;case 60:b=1616;break a;case 44:b=1718;break a;case 46:b=1575;break a;case 48:b=1340;break a;case 30:b=1788;break a;case 32:b=1415;break a;case 34:b=1112;break a;case 70:b=1308;break a;case 72:b=1090;break a;case 74:b=1234;break a;case 100:b=1550;break a;case 102:b=1463;break a;case 104:b=1435;break a;case 0:break a;default:break b}}b=1669}return b|0}function Y(a){var b=0,c=0,d=0,e=0,f=0;if(a){c=a-4|0;e=v[c>>2];d=e;b=c;f=v[a-8>>2];a=f&-2;if((a|0)!=(f|0)){b=c-a|0;d=v[b+4>>2];v[d+8>>2]=v[b+8>>2];v[v[b+8>>2]+4>>2]=d;d=a+e|0}a=c+e|0;c=v[a>>2];if((c|0)!=v[(a+c|0)-4>>2]){e=v[a+4>>2];v[e+8>>2]=v[a+8>>2];v[v[a+8>>2]+4>>2]=e;d=d+c|0}v[b>>2]=d;v[((d&-4)+b|0)-4>>2]=d|1;f=b;d=v[b>>2]-8|0;a:{if(d>>>0<=127){a=(d>>>3|0)-1|0;break a}e=E(d);a=((d>>>29-e^4)-(e<<2)|0)+110|0;if(d>>>0<=4095){break a}a=((d>>>30-e^2)-(e<<1)|0)+71|0;a=a>>>0<63?a:63}c=a<<4;v[f+4>>2]=c+4832;c=c+4840|0;v[b+8>>2]=v[c>>2];v[c>>2]=b;v[v[b+8>>2]+4>>2]=b;c=v[1467];b=a&31;if((a&63)>>>0>=32){a=1<>>32-b;b=1<>2]=d;o=-1;a:{b:{switch(c|0){case 1:if(!g){o=-72;break a}o=-20;c=w[f|0];if(c>>>0>d>>>0){break a}c=c<<2;d=v[c+i>>2];c=v[c+h>>2];t[a+11|0]=0;v[a>>2]=0;v[a+4>>2]=0;v[a+12>>2]=c;t[a+10|0]=d;u[a+8>>1]=0;v[b>>2]=a;o=1;break a;case 0:v[b>>2]=j;o=0;break a;case 3:if(!k){o=-20;break a}o=0;if(!l|(m|0)<25){break a}a=(8<>>0>d>>>0){continue}break};break a;case 2:break b;default:break a}}o=-20;c=$(n,n+124|0,n+120|0,f,g);if(c>>>0>4294967176){break a}d=v[n+120>>2];if(d>>>0>e>>>0){break a}ba(a,n,v[n+124>>2],h,i,d);v[b>>2]=a;o=c}Q=n+128|0;return o}function Ea(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;a:{b:{if(!a){break b}b=-64;if(v[a+28936>>2]){break a}e=v[a+28924>>2];c=v[a+28920>>2];b=v[a+28944>>2];c:{if(!b){break c}f=v[b+26692>>2];d=v[b+26688>>2];d:{e:{g=v[b>>2];if(g){if(!d){break e}S[d|0](f,g);S[d|0](f,b);break c}if(!d){break d}S[d|0](f,b);break c}Y(g)}Y(b)}v[a+28960>>2]=0;v[a+28944>>2]=0;v[a+28948>>2]=0;f:{g:{b=v[a+28968>>2];if(b){if(!c){break g}S[c|0](e,b);v[a+28968>>2]=0;S[c|0](e,a);break b}v[a+28968>>2]=0;if(!c){break f}S[c|0](e,a);break b}Y(b)}Y(a)}b=0}return b|0}function ja(a,b,c){var d=0;if(!c){v[a>>2]=0;v[a+4>>2]=0;v[a+16>>2]=0;v[a+8>>2]=0;v[a+12>>2]=0;return-72}v[a+12>>2]=b;v[a+16>>2]=b+4;if(c>>>0>=4){d=b+c|0;b=d-4|0;v[a+8>>2]=b;v[a>>2]=w[b|0]|w[b+1|0]<<8|(w[b+2|0]<<16|w[b+3|0]<<24);b=w[d-1|0];if(!b){v[a+4>>2]=0;return-1}v[a+4>>2]=E(b)-23;return c}v[a+8>>2]=b;d=w[b|0];v[a>>2]=d;a:{switch(c-2|0){case 1:d=w[b+2|0]<<16|d;v[a>>2]=d;case 0:v[a>>2]=(w[b+1|0]<<8)+d;break;default:break a}}b=w[(b+c|0)-1|0];if(!b){v[a+4>>2]=0;return-20}v[a+4>>2]=(E(b)-(c<<3)|0)+9;return c}function Fa(){var a=0,b=0;a=ea(160168);if(!a){return 0}v[a+28924>>2]=0;v[a+28916>>2]=0;v[a+28920>>2]=0;v[a+28980>>2]=134217729;v[a+28936>>2]=0;v[a+28908>>2]=0;v[a+28948>>2]=0;v[a+160164>>2]=0;v[a+29004>>2]=0;v[a+29008>>2]=0;v[a+28988>>2]=0;v[a+28740>>2]=0;v[a+29020>>2]=0;v[a+29024>>2]=0;v[a+28940>>2]=0;v[a+28944>>2]=0;v[a+28956>>2]=0;v[a+28960>>2]=0;b=a+28964|0;v[b>>2]=0;v[b+4>>2]=0;v[a+28972>>2]=0;return a|0}function Ha(a,b,c){var d=0,e=0,f=0,g=0;g=c&63;f=g;d=f&31;if(f>>>0>=32){d=-1>>>d|0}else{e=-1>>>d|0;d=(1<>>d}f=d&a;d=b&e;e=g&31;if(g>>>0>=32){d=f<>>32-e|d<>>0>=32){d=-1<>>32-c|-1<>>0>=32){c=0;a=d>>>b|0}else{c=d>>>b|0;a=((1<>>b}a=a|g;R=c|f;return a} +function Ba(a){a=a|0;var b=0,c=0,d=0,e=0;v[a+29020>>2]=0;v[a+28964>>2]=0;b=v[a+28944>>2];a:{if(!b){break a}d=v[b+26692>>2];c=v[b+26688>>2];b:{c:{e=v[b>>2];if(e){if(!c){break c}S[c|0](d,e);S[c|0](d,b);break a}if(!c){break b}S[c|0](d,b);break a}Y(e)}Y(b)}v[a+28960>>2]=0;v[a+28944>>2]=0;v[a+28948>>2]=0;return(v[a+28908>>2]?1:5)|0}function Ga(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=B(e,f);g=c&65535;h=a&65535;i=B(g,h);f=(i>>>16|0)+B(f,g)|0;e=(f&65535)+B(e,h)|0;R=(B(b,c)+j|0)+B(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function sa(){var a=0,b=0,c=0;while(1){b=a<<4;c=b+4832|0;v[b+4836>>2]=c;v[b+4840>>2]=c;a=a+1|0;if((a|0)!=64){continue}break}fa(48)}function ya(a){a=a|0;return a>>>0>4294967176|0}function ua(a){a=a|0;a=Q-a&-16;Q=a;return a|0}function za(a){a=a|0;return ea(a)|0}function Da(){return 131075}function Ca(){return 131072}function xa(a){a=a|0;Y(a)}function wa(){return Q|0}function va(a){a=a|0;Q=a} +// EMSCRIPTEN_END_FUNCS +e=w;p(V);var S=c([]);function T(){return s.byteLength/65536|0}return{"d":sa,"e":za,"f":xa,"g":ya,"h":ta,"i":Fa,"j":Ea,"k":Da,"l":Ca,"m":Ba,"n":Aa,"o":S,"p":wa,"q":va,"r":ua}}return U(W)} +// EMSCRIPTEN_END_ASM + + + + +)(E)}function ca(){return{then:function(c){c({instance:new ba})}}}var da=Error,WebAssembly={};B=[];"object"!==typeof WebAssembly&&F("no native wasm support detected"); +var G,H=!1;function J(c){var f=a["_"+c];f||F("Assertion failed: Cannot call unknown function "+(c+", make sure it is exported"));return f} +function ea(c,f,d,m){var l={string:function(b){var e=0;if(null!==b&&void 0!==b&&0!==b){var g=(b.length<<2)+1;e=K(g);var h=e,k=M;if(0=n){var I=b.charCodeAt(++t);n=65536+((n&1023)<<10)|I&1023}if(127>=n){if(h>=g)break;k[h++]=n}else{if(2047>=n){if(h+1>=g)break;k[h++]=192|n>>6}else{if(65535>=n){if(h+2>=g)break;k[h++]=224|n>>12}else{if(h+3>=g)break;k[h++]=240|n>>18;k[h++]=128|n>>12&63}k[h++]=128|n>>6&63}k[h++]=128|n&63}}k[h]= +0}}return e},array:function(b){var e=K(b.length);N.set(b,e);return e}},p=J(c),r=[];c=0;if(m)for(var q=0;q=g);)++h;if(16k?g+=String.fromCharCode(k):(k-=65536,g+=String.fromCharCode(55296|k>>10,56320|k&1023))}}else g+=String.fromCharCode(k)}b=g}}else b="";else b="boolean"===f?!!b:b;return b}(d);0!==c&&ia(c);return d}var ha="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0,O,N,M,D=a.INITIAL_MEMORY||150994944;a.wasmMemory?G=a.wasmMemory:G=new aa;G&&(O=G.buffer);D=O.byteLength;var P=O;O=P;a.HEAP8=N=new Int8Array(P);a.HEAP16=new Int16Array(P);a.HEAP32=new Int32Array(P); +a.HEAPU8=M=new Uint8Array(P);a.HEAPU16=new Uint16Array(P);a.HEAPU32=new Uint32Array(P);a.HEAPF32=new Float32Array(P);a.HEAPF64=new Float64Array(P);var Q,ja=[],ka=[],la=[];function ma(){var c=a.preRun.shift();ja.unshift(c)}Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(c,f){var d=c&65535,m=f&65535;return d*m+((c>>>16)*m+d*(f>>>16)<<16)|0});if(!Math.fround){var na=new Float32Array(1);Math.fround=function(c){na[0]=c;return na[0]}} +Math.clz32||(Math.clz32=function(c){var f=32,d=c>>16;d&&(f-=16,c=d);if(d=c>>8)f-=8,c=d;if(d=c>>4)f-=4,c=d;if(d=c>>2)f-=2,c=d;return c>>1?f-2:f-c});Math.trunc||(Math.trunc=function(c){return 0>c?Math.ceil(c):Math.floor(c)});var R=0,S=null,U=null;a.preloadedImages={};a.preloadedAudios={};function F(c){if(a.onAbort)a.onAbort(c);A(c);H=!0;c=new da("abort("+c+"). Build with -s ASSERTIONS=1 for more info.");v(c);throw c;}function V(c){return c.startsWith("data:application/octet-stream;base64,")}var W; +W="zstddec-asm.wasm";if(!V(W)){var oa=W;W=a.locateFile?a.locateFile(oa,y):y+oa}function pa(){var c=W;try{if(c==W&&B)return new Uint8Array(B);if(V(c))try{var f=qa(c.slice(37)),d=new Uint8Array(f.length);for(c=0;c>4; +l=(l&15)<<4|p>>2;var q=(p&3)<<6|r;f+=String.fromCharCode(m);64!==p&&(f+=String.fromCharCode(l));64!==r&&(f+=String.fromCharCode(q))}while(d=k){var ba=d.charCodeAt(++u);k=65536+((k&1023)<<10)|ba&1023}if(127>=k){if(h>=l)break;f[h++]=k}else{if(2047>=k){if(h+1>=l)break;f[h++]=192|k>>6}else{if(65535>=k){if(h+2>=l)break;f[h++]=224|k>>12}else{if(h+3>=l)break;f[h++]=240|k>>18;f[h++]=128|k>>12&63}f[h++]=128|k>>6&63}f[h++]=128|k&63}}f[h]= +0}}return m},array:function(d){var m=E(d.length);H.set(d,m);return m}},p=D(b),G=[];b=0;if(n)for(var v=0;v=l);)++h;if(16f?l+=String.fromCharCode(f):(f-=65536,l+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else l+=String.fromCharCode(f)}d=l}}else d="";else d="boolean"===c?!!d:d;return d}(g);0!==b&&K(b);return g}var J="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0,H,F,L,M=[],N=[],O=[];function ca(){var b=a.preRun.shift();M.unshift(b)}var P=0,R=null,S=null;a.preloadedImages={};a.preloadedAudios={}; +function A(b){if(a.onAbort)a.onAbort(b);y(b);C=!0;b=new WebAssembly.RuntimeError("abort("+b+"). Build with -s ASSERTIONS=1 for more info.");r(b);throw b;}function T(){return U.startsWith("data:application/octet-stream;base64,")}var U;U="zstddec-wasm.wasm";if(!T()){var V=U;U=a.locateFile?a.locateFile(V,x):x+V}function W(){var b=U;try{if(b==U&&z)return new Uint8Array(z);throw"both async and sync fetching of the wasm failed";}catch(c){A(c)}} +function da(){return z||"function"!==typeof fetch?Promise.resolve().then(function(){return W()}):fetch(U,{credentials:"same-origin"}).then(function(b){if(!b.ok)throw"failed to load wasm binary file at '"+U+"'";return b.arrayBuffer()}).catch(function(){return W()})}function X(b){for(;0>2];m=f[m>>2];R=!j&m>>>0>33554432|j>>>0>0;q=-72;a:{if(h>>>0>131071){break a}q=ya(a,e,h);if(q>>>0>4294967176){break a}j=f[a+28956>>2];m=e+q|0;l=e;e=q>>>0<4294967177;l=e?m:l;h=h-(e?q:0)|0;e=xa(a,k+52|0,l,h);if(e>>>0>4294967176){q=e;break a}B=f[k+52>>2];if(!b){q=-70;if((B|0)>0){break a}}m=h-e|0;s=e+l|0;b:{c:{d:{if(j){f[a+28956>>2]=0;break d}if((B|0)<5){break c}h=a+28760|0;e=f[h+4>>2];h=f[h>>2];if(!e&h>>>0<=16777216|e>>>0<0){break c}e=f[a+8>>2];j=e+8|0;e=f[e+4>>2];q=0;h=0;while(1){q=(g[(j+(h<<3)|0)+2|0]>22)+q|0;h=h+1|0;if(!(h>>>e|0)){continue}break}f[a+28956>>2]=0;if(q<<8-e>>>0<20){break b}}h=f[a+28912>>2];f[k+204>>2]=h;G=b+c|0;H=f[a+28928>>2]+h|0;e=b;if(B){E=f[a+28740>>2];K=f[a+28736>>2];y=f[a+28732>>2];f[a+28812>>2]=1;f[k+108>>2]=f[a+26676>>2];M=a+26668|0;c=M;e=f[c+4>>2];f[k+100>>2]=f[c>>2];f[k+104>>2]=e;f[k+116>>2]=E;f[k+112>>2]=y;O=b-y|0;f[k+120>>2]=O;if(!m){f[k+72>>2]=0;a=k- -64|0;f[a>>2]=0;f[a+4>>2]=0;f[k+56>>2]=0;f[k+60>>2]=0;q=-20;break a}f[k+68>>2]=s;f[k+72>>2]=s+4;e:{f:{if(m>>>0>=4){r=m+ -4|0;c=s+r|0;f[k+64>>2]=c;h=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);f[k+56>>2]=h;c=g[(m+s|0)+ -1|0];if(c){break f}f[k+60>>2]=0;q=-20;break a}f[k+64>>2]=s;h=g[s|0];f[k+56>>2]=h;g:{switch(m+ -2|0){case 1:h=g[s+2|0]<<16|h;f[k+56>>2]=h;case 0:h=(g[s+1|0]<<8)+h|0;f[k+56>>2]=h;break;default:break g}}c=g[(m+s|0)+ -1|0];if(!c){f[k+60>>2]=0;q=-20;break a}l=((o(c)|-32)-(m<<3)|0)+41|0;f[k+60>>2]=l;break e}l=(o(c)|-32)+9|0;f[k+60>>2]=l;q=-20;if(m>>>0>4294967176){break a}}j=f[a>>2];e=f[j+4>>2];c=e+l|0;f[k+60>>2]=c;t=f[(e<<2)+4592>>2]&h>>>(0-c&31);f[k+76>>2]=t;h:{if(c>>>0>32){n=c;break h}e=k;i:{if((r|0)>=4){n=c&7;f[k+60>>2]=n;r=r-(c>>>3|0)|0;c=s+r|0;f[k+64>>2]=c;h=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);break i}if(!r){r=0;n=c;break h}h=c;c=c>>>3|0;c=(s+r|0)-c>>>0>>0?r:c;n=h-(c<<3)|0;f[k+60>>2]=n;r=r-c|0;c=s+r|0;f[k+64>>2]=c;h=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24)}f[e+56>>2]=h}m=(B|0)<4;S=j+8|0;f[k+80>>2]=S;l=f[a+8>>2];e=f[l+4>>2];c=e+n|0;f[k+60>>2]=c;e=f[(e<<2)+4592>>2]&h>>>(0-c&31);f[k+84>>2]=e;j:{if(c>>>0>32){n=c;break j}j=k;k:{if((r|0)>=4){n=c&7;f[k+60>>2]=n;r=r-(c>>>3|0)|0;c=s+r|0;f[k+64>>2]=c;h=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);break k}if(!r){r=0;n=c;break j}h=c;c=c>>>3|0;c=(s+r|0)-c>>>0>>0?r:c;n=h-(c<<3)|0;f[k+60>>2]=n;r=r-c|0;c=s+r|0;f[k+64>>2]=c;h=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24)}f[j+56>>2]=h}P=m?B:4;T=l+8|0;f[k+88>>2]=T;j=f[a+4>>2];a=f[j+4>>2];l=a+n|0;f[k+60>>2]=l;c=0;w=f[(a<<2)+4592>>2]&h>>>(0-l&31);f[k+92>>2]=w;l:{m:{if(l>>>0>=33){f[k+96>>2]=j+8;break m}n:{o:{p:{if((r|0)>=4){c=l&7;f[k+60>>2]=c;a=r-(l>>>3|0)|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);f[k+56>>2]=h;l=c;break p}if(r){break o}a=0}f[k+96>>2]=j+8;break n}a=l>>>3|0;a=(s+r|0)-a>>>0>>0?r:a;l=l-(a<<3)|0;f[k+60>>2]=l;a=r-a|0;c=s+a|0;f[k+64>>2]=c;h=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);f[k+96>>2]=j+8;f[k+56>>2]=h;c=0;if(l>>>0>32){break m}}D=(P|0)>0?P:0;X=j+8|0;u=a;m=a;j=a;v=a;q=a;c=0;while(1){n=k;q:{r:{if((q|0)>=4){r=l&7;f[k+60>>2]=r;a=q-(l>>>3|0)|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);break r}if(!q){r=l;q=0;break q}a=l>>>3|0;a=(q+s|0)-a>>>0>>0?q:a;r=l-(a<<3)|0;f[k+60>>2]=r;a=q-a|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24)}f[n+56>>2]=h;u=a;m=a;j=a;v=a;q=a}if((c|0)==(D|0)){l=r;c=D;break l}n=(t<<3)+S|0;l=f[n+4>>2];x=f[n>>2];n=l;U=(l&65535)<<16|x>>>16;I=U&255;p=(w<<3)+X|0;l=f[p+4>>2];A=f[p>>2];w=l;V=(l&65535)<<16|A>>>16;Q=V&255;l=(e<<3)+T|0;e=f[l+4>>2];C=f[l>>2];l=e;J=l;F=w;e=n;l=(l&65535)<<16|C>>>16;p=l&255;s:{if(p>>>0>=2){t:{if(!(!R|p>>>0<25)){l=32-r|0;t=l>>>0>p>>>0?p:l;l=t+r|0;f[k+60>>2]=l;Y=h<<(r&31)>>>(0-t&31)|0;r=p-t|0;t=Y<>>0>32){p=l;break u}q=k;v:{if((j|0)>=4){p=l&7;f[k+60>>2]=p;a=j-(l>>>3|0)|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);break v}if(!j){j=0;v=0;q=0;p=l;break u}a=l>>>3|0;a=(j+s|0)-a>>>0>>0?j:a;p=l-(a<<3)|0;f[k+60>>2]=p;a=j-a|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24)}f[q+56>>2]=h;u=a;m=a;j=a;v=a;q=a}l=t+J|0;if(!r){t=p;break t}t=p+r|0;f[k+60>>2]=t;l=(h<<(p&31)>>>(0-r&31)|0)+l|0;break t}p=p+r|0;f[k+60>>2]=p;l=J+(h<<(r&31)>>>(0-l&31)|0)|0;if(p>>>0>32){t=p;break t}q=k;w:{if((v|0)>=4){t=p&7;f[k+60>>2]=t;a=v-(p>>>3|0)|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);break w}if(!v){v=0;t=p;q=0;break t}a=p>>>3|0;a=(s+v|0)-a>>>0>>0?v:a;t=p-(a<<3)|0;f[k+60>>2]=t;a=v-a|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24)}f[q+56>>2]=h;u=a;m=a;j=a;v=a;q=a}p=f[k+100>>2];r=f[k+104>>2];f[k+100>>2]=l;f[k+104>>2]=p;f[k+108>>2]=r;break s}if(!p){if(e){l=f[k+100>>2];t=r;break s}l=f[k+104>>2];f[k+104>>2]=f[k+100>>2];f[k+100>>2]=l;t=r;break s}t=r+1|0;f[k+60>>2]=t;p=J+(!e+(h<<(r&31)>>>31|0)|0)|0;x:{y:{if((p|0)==3){l=f[k+100>>2]+ -1|0;l=!l+l|0;break y}l=f[((p<<2)+k|0)+100>>2];l=!l+l|0;if((p|0)==1){break x}}f[k+108>>2]=f[k+104>>2]}f[k+104>>2]=f[k+100>>2];f[k+100>>2]=l}J=I+Q|0;r=F;z:{if(!Q){p=t;break z}p=t+Q|0;f[k+60>>2]=p;r=(h<<(t&31)>>>(0-V&31)|0)+r|0}A:{if(J>>>0<20){t=p;break A}if(p>>>0>32){t=p;break A}j=k;B:{if((m|0)>=4){t=p&7;f[k+60>>2]=t;a=m-(p>>>3|0)|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);break B}if(!m){m=0;t=p;j=0;v=0;q=0;break A}a=p>>>3|0;a=(m+s|0)-a>>>0>>0?m:a;t=p-(a<<3)|0;f[k+60>>2]=t;a=m-a|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24)}f[j+56>>2]=h;u=a;m=a;j=a;v=a;q=a}p=(w&16777215)<<8|A>>>24;w=(n&16777215)<<8|x>>>24;C:{if(!I){n=t;break C}n=t+I|0;f[k+60>>2]=n;e=(h<<(t&31)>>>(0-U&31)|0)+e|0}t=p;D:{if(n>>>0>32){p=n;break D}j=k;E:{if((u|0)>=4){p=n&7;f[k+60>>2]=p;a=u-(n>>>3|0)|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);break E}if(!u){u=0;m=0;j=0;v=0;q=0;p=n;break D}a=n>>>3|0;a=(s+u|0)-a>>>0>>0?u:a;p=n-(a<<3)|0;f[k+60>>2]=p;a=u-a|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24)}f[j+56>>2]=h;u=a;m=a;j=a;v=a;q=a}F=e+O|0;O=F+r|0;f[k+120>>2]=O;n=p;p=w&255;w=n+p|0;I=t&255;n=w+I|0;f[k+60>>2]=n;t=(f[(p<<2)+4592>>2]&h>>>(0-w&31))+(x&65535)|0;f[k+76>>2]=t;w=(f[(I<<2)+4592>>2]&h>>>(0-n&31))+(A&65535)|0;f[k+92>>2]=w;x=(F+(l>>>0>F>>>0?E:y)|0)-l|0;F:{if(n>>>0>32){p=n;break F}j=k;G:{if((a|0)>=4){p=n&7;f[k+60>>2]=p;a=a-(n>>>3|0)|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);break G}if(!a){a=0;u=0;m=0;j=0;v=0;q=0;p=n;break F}h=n>>>3|0;h=(a+s|0)-h>>>0>>0?a:h;p=n-(h<<3)|0;f[k+60>>2]=p;a=a-h|0;h=s+a|0;f[k+64>>2]=h;h=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24)}f[j+56>>2]=h;u=a;m=a;j=a;v=a;q=a}n=(k+128|0)+(c<<4)|0;f[n+12>>2]=x;f[n+8>>2]=l;f[n+4>>2]=r;f[n>>2]=e;e=C>>>24|0;l=e+p|0;f[k+60>>2]=l;e=(f[(e<<2)+4592>>2]&h>>>(0-l&31))+(C&65535)|0;f[k+84>>2]=e;c=c+1|0;if(l>>>0<=32){continue}break}}q=-20;if((c|0)<(P|0)){break a}}F=G+ -32|0;s=k+112|0;I=k+116|0;e=b;while(1){H:{if(l>>>0>=33){q=-20;if((c|0)<(B|0)){break a}break H}a=f[k+64>>2];x=f[k+72>>2];I:{if(a>>>0>=x>>>0){m=l&7;f[k+60>>2]=m;a=a-(l>>>3|0)|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);break I}h=f[k+68>>2];if((h|0)==(a|0)){m=l;break I}j=l>>>3|0;h=a-j>>>0>>0?a-h|0:j;a=a-h|0;f[k+64>>2]=a;m=l-(h<<3)|0;f[k+60>>2]=m;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24)}if((c|0)>=(B|0)){break H}h=f[k+80>>2]+(f[k+76>>2]<<3)|0;j=f[h+4>>2];u=f[h>>2];h=j;Q=(h&65535)<<16|u>>>16;A=Q&255;l=f[k+96>>2]+(f[k+92>>2]<<3)|0;j=f[l+4>>2];v=f[l>>2];p=j;J=(j&65535)<<16|v>>>16;C=J&255;j=f[k+88>>2]+(f[k+84>>2]<<3)|0;l=f[j+4>>2];w=f[j>>2];j=l;n=j;q=p;r=h;l=(j&65535)<<16|w>>>16;j=l&255;J:{if(j>>>0>=2){K:{if(!(!R|j>>>0<25)){l=32-m|0;D=l>>>0>j>>>0?j:l;l=D+m|0;f[k+60>>2]=l;t=f[k+56>>2];O=t<<(m&31)>>>(0-D&31)|0;m=j-D|0;D=O<>>0>32){j=l;break L}M:{if(a>>>0>=x>>>0){j=l&7;f[k+60>>2]=j;a=a-(l>>>3|0)|0;f[k+64>>2]=a;break M}j=f[k+68>>2];if((j|0)==(a|0)){j=l;break L}t=l>>>3|0;j=a-t>>>0>>0?a-j|0:t;a=a-j|0;f[k+64>>2]=a;j=l-(j<<3)|0;f[k+60>>2]=j}t=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);f[k+56>>2]=t}n=n+D|0;if(!m){l=j;break K}l=j+m|0;f[k+60>>2]=l;n=(t<<(j&31)>>>(0-m&31)|0)+n|0;break K}j=j+m|0;f[k+60>>2]=j;n=n+(f[k+56>>2]<<(m&31)>>>(0-l&31)|0)|0;if(j>>>0>32){l=j;break K}if(a>>>0>=x>>>0){l=j&7;f[k+60>>2]=l;a=a-(j>>>3|0)|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);break K}m=f[k+68>>2];if((m|0)==(a|0)){l=j;break K}l=j>>>3|0;m=a-l>>>0>>0?a-m|0:l;a=a-m|0;f[k+64>>2]=a;l=j-(m<<3)|0;f[k+60>>2]=l;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24)}j=f[k+100>>2];m=f[k+104>>2];f[k+100>>2]=n;f[k+104>>2]=j;f[k+108>>2]=m;break J}if(!j){if(r){n=f[k+100>>2];l=m;break J}n=f[k+104>>2];f[k+104>>2]=f[k+100>>2];f[k+100>>2]=n;l=m;break J}l=m+1|0;f[k+60>>2]=l;j=n+!r+(f[k+56>>2]<<(m&31)>>>31)|0;N:{O:{if((j|0)==3){j=f[k+100>>2]+ -1|0;n=!j+j|0;break O}m=f[((j<<2)+k|0)+100>>2];n=!m+m|0;if((j|0)==1){break N}}f[k+108>>2]=f[k+104>>2]}f[k+104>>2]=f[k+100>>2];f[k+100>>2]=n}j=A+C|0;m=q;P:{if(!C){q=l;break P}q=l+C|0;f[k+60>>2]=q;m=(f[k+56>>2]<<(l&31)>>>(0-J&31)|0)+m|0}Q:{if(j>>>0<20){l=q;break Q}if(q>>>0>32){l=q;break Q}if(a>>>0>=x>>>0){l=q&7;f[k+60>>2]=l;a=a-(q>>>3|0)|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);break Q}j=f[k+68>>2];if((j|0)==(a|0)){l=q;break Q}l=q>>>3|0;j=a-l>>>0>>0?a-j|0:l;a=a-j|0;f[k+64>>2]=a;l=q-(j<<3)|0;f[k+60>>2]=l;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24)}j=(p&16777215)<<8|v>>>24;q=(h&16777215)<<8|u>>>24;R:{if(!A){h=l;break R}h=l+A|0;f[k+60>>2]=h;r=(f[k+56>>2]<<(l&31)>>>(0-Q&31)|0)+r|0}l=j;S:{if(h>>>0>32){j=h;break S}if(a>>>0>=x>>>0){j=h&7;f[k+60>>2]=j;a=a-(h>>>3|0)|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);break S}j=f[k+68>>2];if((j|0)==(a|0)){j=h;break S}p=h>>>3|0;j=a-p>>>0>>0?a-j|0:p;a=a-j|0;f[k+64>>2]=a;j=h-(j<<3)|0;f[k+60>>2]=j;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24)}A=f[k+120>>2]+r|0;f[k+120>>2]=A+m;h=j;j=q&255;p=h+j|0;l=l&255;h=p+l|0;f[k+60>>2]=h;q=f[k+56>>2];f[k+76>>2]=(f[(j<<2)+4592>>2]&q>>>(0-p&31))+(u&65535);f[k+92>>2]=(f[(l<<2)+4592>>2]&q>>>(0-h&31))+(v&65535);C=f[(n>>>0>A>>>0?I:s)>>2];T:{if(h>>>0>32){l=h;break T}j=k;U:{if(a>>>0>=x>>>0){l=h&7;f[k+60>>2]=l;a=a-(h>>>3|0)|0;f[k+64>>2]=a;q=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);break U}l=f[k+68>>2];if((l|0)==(a|0)){l=h;break T}p=h;h=h>>>3|0;h=a-h>>>0>>0?a-l|0:h;l=p-(h<<3)|0;f[k+60>>2]=l;a=a-h|0;f[k+64>>2]=a;q=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24)}f[j+56>>2]=q}a=w>>>24|0;h=a+l|0;f[k+60>>2]=h;f[k+84>>2]=(f[(a<<2)+4592>>2]&q>>>(0-h&31))+(w&65535);t=(k+128|0)+((c&3)<<4)|0;a=t;h=f[a+12>>2];l=f[a+8>>2];f[k+216>>2]=l;f[k+220>>2]=h;h=f[a+4>>2];j=f[a>>2];f[k+208>>2]=j;f[k+212>>2]=h;V:{W:{u=f[k+204>>2];x=j+u|0;X:{if(x>>>0>H>>>0){break X}p=f[k+212>>2];q=j+p|0;if(q+e>>>0>F>>>0){break X}if(G-e>>>0>=q+32>>>0){break W}}a=f[k+220>>2];f[k+40>>2]=f[k+216>>2];f[k+44>>2]=a;a=f[k+212>>2];f[k+32>>2]=f[k+208>>2];f[k+36>>2]=a;q=W(e,G,k+32|0,k+204|0,H,y,K,E);break V}a=e+j|0;h=u;v=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);w=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[e|0]=w;d[e+1|0]=w>>>8;d[e+2|0]=w>>>16;d[e+3|0]=w>>>24;d[e+4|0]=v;d[e+5|0]=v>>>8;d[e+6|0]=v>>>16;d[e+7|0]=v>>>24;v=g[h+12|0]|g[h+13|0]<<8|(g[h+14|0]<<16|g[h+15|0]<<24);h=g[h+8|0]|g[h+9|0]<<8|(g[h+10|0]<<16|g[h+11|0]<<24);d[e+8|0]=h;d[e+9|0]=h>>>8;d[e+10|0]=h>>>16;d[e+11|0]=h>>>24;d[e+12|0]=v;d[e+13|0]=v>>>8;d[e+14|0]=v>>>16;d[e+15|0]=v>>>24;if(j>>>0>=17){h=e+16|0;while(1){j=g[u+20|0]|g[u+21|0]<<8|(g[u+22|0]<<16|g[u+23|0]<<24);v=g[u+16|0]|g[u+17|0]<<8|(g[u+18|0]<<16|g[u+19|0]<<24);d[h|0]=v;d[h+1|0]=v>>>8;d[h+2|0]=v>>>16;d[h+3|0]=v>>>24;d[h+4|0]=j;d[h+5|0]=j>>>8;d[h+6|0]=j>>>16;d[h+7|0]=j>>>24;j=g[u+28|0]|g[u+29|0]<<8|(g[u+30|0]<<16|g[u+31|0]<<24);v=g[u+24|0]|g[u+25|0]<<8|(g[u+26|0]<<16|g[u+27|0]<<24);d[h+8|0]=v;d[h+9|0]=v>>>8;d[h+10|0]=v>>>16;d[h+11|0]=v>>>24;d[h+12|0]=j;d[h+13|0]=j>>>8;d[h+14|0]=j>>>16;d[h+15|0]=j>>>24;u=u+16|0;h=h+16|0;if(h>>>0>>0){continue}break}}j=l;h=a-j|0;f[k+204>>2]=x;if(j>>>0>a-y>>>0){if(j>>>0>a-K>>>0){q=-20;break a}h=h-y|0;l=h+E|0;if(l+p>>>0<=E>>>0){N(a,l,p);break V}a=N(a,l,0-h|0);p=h+p|0;f[k+212>>2]=p;a=a-h|0;h=y}if(j>>>0>=16){p=a+p|0;while(1){j=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);l=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=l;d[a+1|0]=l>>>8;d[a+2|0]=l>>>16;d[a+3|0]=l>>>24;d[a+4|0]=j;d[a+5|0]=j>>>8;d[a+6|0]=j>>>16;d[a+7|0]=j>>>24;j=g[h+12|0]|g[h+13|0]<<8|(g[h+14|0]<<16|g[h+15|0]<<24);l=g[h+8|0]|g[h+9|0]<<8|(g[h+10|0]<<16|g[h+11|0]<<24);d[a+8|0]=l;d[a+9|0]=l>>>8;d[a+10|0]=l>>>16;d[a+11|0]=l>>>24;d[a+12|0]=j;d[a+13|0]=j>>>8;d[a+14|0]=j>>>16;d[a+15|0]=j>>>24;h=h+16|0;a=a+16|0;if(a>>>0

>>0){continue}break}break V}Y:{if(j>>>0<=7){d[a|0]=g[h|0];d[a+1|0]=g[h+1|0];d[a+2|0]=g[h+2|0];d[a+3|0]=g[h+3|0];l=j<<2;h=f[l+4752>>2]+h|0;j=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a+4|0]=j;d[a+5|0]=j>>>8;d[a+6|0]=j>>>16;d[a+7|0]=j>>>24;h=h-f[l+4784>>2]|0;break Y}j=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);l=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=l;d[a+1|0]=l>>>8;d[a+2|0]=l>>>16;d[a+3|0]=l>>>24;d[a+4|0]=j;d[a+5|0]=j>>>8;d[a+6|0]=j>>>16;d[a+7|0]=j>>>24}j=f[k+212>>2];if(j>>>0<9){break V}p=a+j|0;a=a+8|0;h=h+8|0;if((a-h|0)<=15){while(1){j=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);l=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=l;d[a+1|0]=l>>>8;d[a+2|0]=l>>>16;d[a+3|0]=l>>>24;d[a+4|0]=j;d[a+5|0]=j>>>8;d[a+6|0]=j>>>16;d[a+7|0]=j>>>24;h=h+8|0;a=a+8|0;if(a>>>0

>>0){continue}break V}}while(1){j=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);l=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=l;d[a+1|0]=l>>>8;d[a+2|0]=l>>>16;d[a+3|0]=l>>>24;d[a+4|0]=j;d[a+5|0]=j>>>8;d[a+6|0]=j>>>16;d[a+7|0]=j>>>24;j=g[h+12|0]|g[h+13|0]<<8|(g[h+14|0]<<16|g[h+15|0]<<24);l=g[h+8|0]|g[h+9|0]<<8|(g[h+10|0]<<16|g[h+11|0]<<24);d[a+8|0]=l;d[a+9|0]=l>>>8;d[a+10|0]=l>>>16;d[a+11|0]=l>>>24;d[a+12|0]=j;d[a+13|0]=j>>>8;d[a+14|0]=j>>>16;d[a+15|0]=j>>>24;h=h+16|0;a=a+16|0;if(a>>>0

>>0){continue}break}}if(q>>>0>4294967176){break a}f[t>>2]=r;f[t+12>>2]=(A+C|0)-n;f[t+8>>2]=n;f[t+4>>2]=m;c=c+1|0;e=e+q|0;l=f[k+60>>2];continue}break}c=c-P|0;if((c|0)<(B|0)){t=G+ -32|0;while(1){a=(k+128|0)+((c&3)<<4)|0;l=f[a+8>>2];h=f[a+12>>2];f[k+216>>2]=l;f[k+220>>2]=h;j=f[a+4>>2];h=f[a>>2];f[k+208>>2]=h;f[k+212>>2]=j;Z:{_:{j=f[k+204>>2];u=h+j|0;$:{if(u>>>0>H>>>0){break $}m=f[k+212>>2];q=h+m|0;if(q+e>>>0>t>>>0){break $}if(G-e>>>0>=q+32>>>0){break _}}a=f[k+220>>2];f[k+24>>2]=f[k+216>>2];f[k+28>>2]=a;a=f[k+212>>2];f[k+16>>2]=f[k+208>>2];f[k+20>>2]=a;q=W(e,G,k+16|0,k+204|0,H,y,K,E);break Z}a=e+h|0;n=g[j+4|0]|g[j+5|0]<<8|(g[j+6|0]<<16|g[j+7|0]<<24);p=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);d[e|0]=p;d[e+1|0]=p>>>8;d[e+2|0]=p>>>16;d[e+3|0]=p>>>24;d[e+4|0]=n;d[e+5|0]=n>>>8;d[e+6|0]=n>>>16;d[e+7|0]=n>>>24;n=g[j+12|0]|g[j+13|0]<<8|(g[j+14|0]<<16|g[j+15|0]<<24);p=g[j+8|0]|g[j+9|0]<<8|(g[j+10|0]<<16|g[j+11|0]<<24);d[e+8|0]=p;d[e+9|0]=p>>>8;d[e+10|0]=p>>>16;d[e+11|0]=p>>>24;d[e+12|0]=n;d[e+13|0]=n>>>8;d[e+14|0]=n>>>16;d[e+15|0]=n>>>24;if(h>>>0>=17){h=e+16|0;while(1){n=g[j+20|0]|g[j+21|0]<<8|(g[j+22|0]<<16|g[j+23|0]<<24);p=g[j+16|0]|g[j+17|0]<<8|(g[j+18|0]<<16|g[j+19|0]<<24);d[h|0]=p;d[h+1|0]=p>>>8;d[h+2|0]=p>>>16;d[h+3|0]=p>>>24;d[h+4|0]=n;d[h+5|0]=n>>>8;d[h+6|0]=n>>>16;d[h+7|0]=n>>>24;n=g[j+28|0]|g[j+29|0]<<8|(g[j+30|0]<<16|g[j+31|0]<<24);p=g[j+24|0]|g[j+25|0]<<8|(g[j+26|0]<<16|g[j+27|0]<<24);d[h+8|0]=p;d[h+9|0]=p>>>8;d[h+10|0]=p>>>16;d[h+11|0]=p>>>24;d[h+12|0]=n;d[h+13|0]=n>>>8;d[h+14|0]=n>>>16;d[h+15|0]=n>>>24;j=j+16|0;h=h+16|0;if(h>>>0>>0){continue}break}}j=l;h=a-j|0;f[k+204>>2]=u;if(j>>>0>a-y>>>0){if(j>>>0>a-K>>>0){q=-20;break a}h=h-y|0;l=h+E|0;if(l+m>>>0<=E>>>0){N(a,l,m);break Z}a=N(a,l,0-h|0);m=h+m|0;f[k+212>>2]=m;a=a-h|0;h=y}if(j>>>0>=16){l=a+m|0;while(1){j=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);m=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=m;d[a+1|0]=m>>>8;d[a+2|0]=m>>>16;d[a+3|0]=m>>>24;d[a+4|0]=j;d[a+5|0]=j>>>8;d[a+6|0]=j>>>16;d[a+7|0]=j>>>24;j=g[h+12|0]|g[h+13|0]<<8|(g[h+14|0]<<16|g[h+15|0]<<24);m=g[h+8|0]|g[h+9|0]<<8|(g[h+10|0]<<16|g[h+11|0]<<24);d[a+8|0]=m;d[a+9|0]=m>>>8;d[a+10|0]=m>>>16;d[a+11|0]=m>>>24;d[a+12|0]=j;d[a+13|0]=j>>>8;d[a+14|0]=j>>>16;d[a+15|0]=j>>>24;h=h+16|0;a=a+16|0;if(a>>>0>>0){continue}break}break Z}aa:{if(j>>>0<=7){d[a|0]=g[h|0];d[a+1|0]=g[h+1|0];d[a+2|0]=g[h+2|0];d[a+3|0]=g[h+3|0];m=j<<2;h=f[m+4752>>2]+h|0;j=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a+4|0]=j;d[a+5|0]=j>>>8;d[a+6|0]=j>>>16;d[a+7|0]=j>>>24;h=h-f[m+4784>>2]|0;break aa}j=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);m=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=m;d[a+1|0]=m>>>8;d[a+2|0]=m>>>16;d[a+3|0]=m>>>24;d[a+4|0]=j;d[a+5|0]=j>>>8;d[a+6|0]=j>>>16;d[a+7|0]=j>>>24}j=f[k+212>>2];if(j>>>0<9){break Z}l=a+j|0;a=a+8|0;h=h+8|0;if((a-h|0)<=15){while(1){j=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);m=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=m;d[a+1|0]=m>>>8;d[a+2|0]=m>>>16;d[a+3|0]=m>>>24;d[a+4|0]=j;d[a+5|0]=j>>>8;d[a+6|0]=j>>>16;d[a+7|0]=j>>>24;h=h+8|0;a=a+8|0;if(a>>>0>>0){continue}break Z}}while(1){j=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);m=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=m;d[a+1|0]=m>>>8;d[a+2|0]=m>>>16;d[a+3|0]=m>>>24;d[a+4|0]=j;d[a+5|0]=j>>>8;d[a+6|0]=j>>>16;d[a+7|0]=j>>>24;j=g[h+12|0]|g[h+13|0]<<8|(g[h+14|0]<<16|g[h+15|0]<<24);m=g[h+8|0]|g[h+9|0]<<8|(g[h+10|0]<<16|g[h+11|0]<<24);d[a+8|0]=m;d[a+9|0]=m>>>8;d[a+10|0]=m>>>16;d[a+11|0]=m>>>24;d[a+12|0]=j;d[a+13|0]=j>>>8;d[a+14|0]=j>>>16;d[a+15|0]=j>>>24;h=h+16|0;a=a+16|0;if(a>>>0>>0){continue}break}}if(q>>>0>4294967176){break a}e=e+q|0;c=c+1|0;if((B|0)!=(c|0)){continue}break}}c=f[k+104>>2];a=M;f[a>>2]=f[k+100>>2];f[a+4>>2]=c;f[a+8>>2]=f[k+108>>2];h=f[k+204>>2]}q=-70;a=H-h|0;if(a>>>0>G-e>>>0){break a}if(!e){q=0-b|0;break a}q=(L(e,h,a)+a|0)-b|0;break a}f[a+28956>>2]=0}h=f[a+28912>>2];f[k+208>>2]=h;x=b+c|0;A=f[a+28928>>2]+h|0;ba:{ca:{da:{ea:{if(!B){e=b;break ea}C=f[a+28740>>2];E=f[a+28736>>2];v=f[a+28732>>2];f[a+28812>>2]=1;f[k+108>>2]=f[a+26676>>2];w=a+26668|0;c=w;e=f[c+4>>2];f[k+100>>2]=f[c>>2];f[k+104>>2]=e;if(!m){f[k+72>>2]=0;a=k- -64|0;f[a>>2]=0;f[a+4>>2]=0;f[k+56>>2]=0;f[k+60>>2]=0;q=-20;break a}f[k+68>>2]=s;f[k+72>>2]=s+4;fa:{ga:{if(m>>>0>=4){j=m+ -4|0;c=s+j|0;f[k+64>>2]=c;e=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);f[k+56>>2]=e;c=g[(m+s|0)+ -1|0];if(c){break ga}f[k+60>>2]=0;q=-20;break a}f[k+64>>2]=s;e=g[s|0];f[k+56>>2]=e;ha:{switch(m+ -2|0){case 1:e=g[s+2|0]<<16|e;f[k+56>>2]=e;case 0:e=(g[s+1|0]<<8)+e|0;f[k+56>>2]=e;break;default:break ha}}c=g[(m+s|0)+ -1|0];if(!c){f[k+60>>2]=0;q=-20;break a}h=((o(c)|-32)-(m<<3)|0)+41|0;f[k+60>>2]=h;j=0;break fa}h=(o(c)|-32)+9|0;f[k+60>>2]=h;q=-20;if(m>>>0>4294967176){break a}}c=h;l=f[a>>2];h=f[l+4>>2];c=c+h|0;f[k+60>>2]=c;h=f[(h<<2)+4592>>2]&e>>>(0-c&31);f[k+76>>2]=h;ia:{if(c>>>0>32){r=c;break ia}m=k;ja:{if((j|0)>=4){r=c&7;f[k+60>>2]=r;j=j-(c>>>3|0)|0;c=s+j|0;f[k+64>>2]=c;e=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);break ja}if(!j){j=0;r=c;break ia}e=c;c=c>>>3|0;c=(j+s|0)-c>>>0>>0?j:c;r=e-(c<<3)|0;f[k+60>>2]=r;j=j-c|0;c=s+j|0;f[k+64>>2]=c;e=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24)}f[m+56>>2]=e}l=l+8|0;f[k+80>>2]=l;p=f[a+8>>2];c=f[p+4>>2];n=c+r|0;f[k+60>>2]=n;c=f[(c<<2)+4592>>2]&e>>>(0-n&31);f[k+84>>2]=c;ka:{if(n>>>0>32){m=n;break ka}q=k;la:{if((j|0)>=4){m=n&7;f[k+60>>2]=m;j=j-(n>>>3|0)|0;e=s+j|0;f[k+64>>2]=e;e=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24);break la}if(!j){j=0;m=n;break ka}e=n>>>3|0;e=(j+s|0)-e>>>0>>0?j:e;m=n-(e<<3)|0;f[k+60>>2]=m;j=j-e|0;e=s+j|0;f[k+64>>2]=e;e=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24)}f[q+56>>2]=e}n=p+8|0;f[k+88>>2]=n;p=m;m=f[a+4>>2];q=f[m+4>>2];a=p+q|0;f[k+60>>2]=a;r=f[(q<<2)+4592>>2]&e>>>(0-a&31);f[k+92>>2]=r;ma:{if(a>>>0>32){j=a;break ma}e=j+s|0;if((j|0)>=4){j=a&7;f[k+60>>2]=j;a=e-(a>>>3|0)|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);break ma}if(!j){j=a;break ma}p=a;a=a>>>3|0;a=e-a>>>0>>0?j:a;j=p-(a<<3)|0;f[k+60>>2]=j;a=e-a|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24)}m=m+8|0;f[k+96>>2]=m;G=x+ -32|0;e=b;q=0;while(1){a=(h<<3)+l|0;h=f[a+4>>2];t=f[a>>2];a=h;H=(a&65535)<<16|t>>>16;D=H&255;m=(r<<3)+m|0;h=f[m+4>>2];u=f[m>>2];p=h;K=(h&65535)<<16|u>>>16;M=K&255;c=(c<<3)+n|0;h=f[c+4>>2];r=f[c>>2];c=h;F=h;y=p;h=a;c=(c&65535)<<16|r>>>16;m=c&255;na:{if(m>>>0>=2){oa:{if(!(!R|m>>>0<25)){c=32-j|0;n=c>>>0>m>>>0?m:c;c=n+j|0;f[k+60>>2]=c;l=f[k+56>>2];s=m-n|0;P=l<<(j&31)>>>(0-n&31)<>>0>32){j=c;break pa}m=k;n=f[k+64>>2];qa:{if(n>>>0>=i[k+72>>2]){j=c&7;f[k+60>>2]=j;c=n-(c>>>3|0)|0;f[k+64>>2]=c;l=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);break qa}j=f[k+68>>2];if((j|0)==(n|0)){j=c;break pa}l=c;c=c>>>3|0;c=n-c>>>0>>0?n-j|0:c;j=l-(c<<3)|0;f[k+60>>2]=j;c=n-c|0;f[k+64>>2]=c;l=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24)}f[m+56>>2]=l}c=F+P|0;if(!s){n=j;break oa}n=j+s|0;f[k+60>>2]=n;c=(l<<(j&31)>>>(0-s&31)|0)+c|0;break oa}m=j+m|0;f[k+60>>2]=m;c=F+(f[k+56>>2]<<(j&31)>>>(0-c&31)|0)|0;if(m>>>0>32){n=m;break oa}j=f[k+64>>2];if(j>>>0>=i[k+72>>2]){n=m&7;f[k+60>>2]=n;j=j-(m>>>3|0)|0;f[k+64>>2]=j;f[k+56>>2]=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);break oa}l=f[k+68>>2];if((l|0)==(j|0)){n=m;break oa}n=m;m=m>>>3|0;m=j-m>>>0>>0?j-l|0:m;n=n-(m<<3)|0;f[k+60>>2]=n;j=j-m|0;f[k+64>>2]=j;f[k+56>>2]=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24)}j=f[k+100>>2];m=f[k+104>>2];f[k+100>>2]=c;f[k+104>>2]=j;f[k+108>>2]=m;break na}if(!m){if(h){c=f[k+100>>2];n=j;break na}c=f[k+104>>2];f[k+104>>2]=f[k+100>>2];f[k+100>>2]=c;n=j;break na}n=j+1|0;f[k+60>>2]=n;j=F+!h+(f[k+56>>2]<<(j&31)>>>31)|0;ra:{sa:{if((j|0)==3){c=f[k+100>>2]+ -1|0;c=!c+c|0;break sa}c=f[((j<<2)+k|0)+100>>2];c=!c+c|0;if((j|0)==1){break ra}}f[k+108>>2]=f[k+104>>2]}f[k+104>>2]=f[k+100>>2];f[k+100>>2]=c}j=D+M|0;l=y;ta:{if(!M){m=n;break ta}m=n+M|0;f[k+60>>2]=m;l=(f[k+56>>2]<<(n&31)>>>(0-K&31)|0)+l|0}ua:{if(j>>>0<20){j=m;break ua}if(m>>>0>32){j=m;break ua}n=f[k+64>>2];if(n>>>0>=i[k+72>>2]){j=m&7;f[k+60>>2]=j;m=n-(m>>>3|0)|0;f[k+64>>2]=m;f[k+56>>2]=g[m|0]|g[m+1|0]<<8|(g[m+2|0]<<16|g[m+3|0]<<24);break ua}j=f[k+68>>2];if((j|0)==(n|0)){j=m;break ua}y=m;m=m>>>3|0;m=n-m>>>0>>0?n-j|0:m;j=y-(m<<3)|0;f[k+60>>2]=j;m=n-m|0;f[k+64>>2]=m;f[k+56>>2]=g[m|0]|g[m+1|0]<<8|(g[m+2|0]<<16|g[m+3|0]<<24)}m=(p&16777215)<<8|u>>>24;n=(a&16777215)<<8|t>>>24;va:{if(!D){a=j;break va}a=j+D|0;f[k+60>>2]=a;h=(f[k+56>>2]<<(j&31)>>>(0-H&31)|0)+h|0}j=m;wa:{if(a>>>0>32){m=a;break wa}p=f[k+64>>2];if(p>>>0>=i[k+72>>2]){m=a&7;f[k+60>>2]=m;a=p-(a>>>3|0)|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);break wa}m=f[k+68>>2];if((m|0)==(p|0)){m=a;break wa}y=a;a=a>>>3|0;a=p-a>>>0>>0?p-m|0:a;m=y-(a<<3)|0;f[k+60>>2]=m;a=p-a|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24)}a=m;m=n&255;n=a+m|0;j=j&255;a=n+j|0;f[k+60>>2]=a;p=f[(m<<2)+4592>>2];m=f[k+56>>2];f[k+76>>2]=(p&m>>>(0-n&31))+(t&65535);f[k+92>>2]=(f[(j<<2)+4592>>2]&m>>>(0-a&31))+(u&65535);xa:{if(a>>>0>32){n=a;break xa}j=k;p=f[k+64>>2];ya:{if(p>>>0>=i[k+72>>2]){n=a&7;f[k+60>>2]=n;a=p-(a>>>3|0)|0;f[k+64>>2]=a;m=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);break ya}n=f[k+68>>2];if((n|0)==(p|0)){n=a;break xa}m=a;a=a>>>3|0;a=p-a>>>0>>0?p-n|0:a;n=m-(a<<3)|0;f[k+60>>2]=n;a=p-a|0;f[k+64>>2]=a;m=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24)}f[j+56>>2]=m}a=r>>>24|0;j=a+n|0;f[k+60>>2]=j;f[k+84>>2]=(f[(a<<2)+4592>>2]&m>>>(0-j&31))+(r&65535);f[k+128>>2]=h;j=f[k+208>>2];f[k+136>>2]=c;f[k+132>>2]=l;za:{Aa:{m=h+l|0;Ba:{if(m+e>>>0>G>>>0){break Ba}t=h+j|0;if(t>>>0>A>>>0){break Ba}if(x-e>>>0>=m+32>>>0){break Aa}}a=f[k+140>>2];f[k+8>>2]=f[k+136>>2];f[k+12>>2]=a;a=f[k+132>>2];f[k>>2]=f[k+128>>2];f[k+4>>2]=a;m=W(e,x,k,k+208|0,A,v,E,C);break za}a=e+h|0;n=g[j+4|0]|g[j+5|0]<<8|(g[j+6|0]<<16|g[j+7|0]<<24);p=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);d[e|0]=p;d[e+1|0]=p>>>8;d[e+2|0]=p>>>16;d[e+3|0]=p>>>24;d[e+4|0]=n;d[e+5|0]=n>>>8;d[e+6|0]=n>>>16;d[e+7|0]=n>>>24;n=g[j+12|0]|g[j+13|0]<<8|(g[j+14|0]<<16|g[j+15|0]<<24);p=g[j+8|0]|g[j+9|0]<<8|(g[j+10|0]<<16|g[j+11|0]<<24);d[e+8|0]=p;d[e+9|0]=p>>>8;d[e+10|0]=p>>>16;d[e+11|0]=p>>>24;d[e+12|0]=n;d[e+13|0]=n>>>8;d[e+14|0]=n>>>16;d[e+15|0]=n>>>24;if(h>>>0>=17){h=e+16|0;while(1){n=g[j+20|0]|g[j+21|0]<<8|(g[j+22|0]<<16|g[j+23|0]<<24);p=g[j+16|0]|g[j+17|0]<<8|(g[j+18|0]<<16|g[j+19|0]<<24);d[h|0]=p;d[h+1|0]=p>>>8;d[h+2|0]=p>>>16;d[h+3|0]=p>>>24;d[h+4|0]=n;d[h+5|0]=n>>>8;d[h+6|0]=n>>>16;d[h+7|0]=n>>>24;n=g[j+28|0]|g[j+29|0]<<8|(g[j+30|0]<<16|g[j+31|0]<<24);p=g[j+24|0]|g[j+25|0]<<8|(g[j+26|0]<<16|g[j+27|0]<<24);d[h+8|0]=p;d[h+9|0]=p>>>8;d[h+10|0]=p>>>16;d[h+11|0]=p>>>24;d[h+12|0]=n;d[h+13|0]=n>>>8;d[h+14|0]=n>>>16;d[h+15|0]=n>>>24;j=j+16|0;h=h+16|0;if(h>>>0>>0){continue}break}}h=a-c|0;f[k+208>>2]=t;if(c>>>0>a-v>>>0){if(c>>>0>a-E>>>0){m=-20;break za}h=h-v|0;j=h+C|0;if(j+l>>>0<=C>>>0){N(a,j,l);break za}a=N(a,j,0-h|0);l=h+l|0;f[k+132>>2]=l;a=a-h|0;h=v}if(c>>>0>=16){l=a+l|0;while(1){c=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);j=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=j;d[a+1|0]=j>>>8;d[a+2|0]=j>>>16;d[a+3|0]=j>>>24;d[a+4|0]=c;d[a+5|0]=c>>>8;d[a+6|0]=c>>>16;d[a+7|0]=c>>>24;c=g[h+12|0]|g[h+13|0]<<8|(g[h+14|0]<<16|g[h+15|0]<<24);j=g[h+8|0]|g[h+9|0]<<8|(g[h+10|0]<<16|g[h+11|0]<<24);d[a+8|0]=j;d[a+9|0]=j>>>8;d[a+10|0]=j>>>16;d[a+11|0]=j>>>24;d[a+12|0]=c;d[a+13|0]=c>>>8;d[a+14|0]=c>>>16;d[a+15|0]=c>>>24;h=h+16|0;a=a+16|0;if(a>>>0>>0){continue}break}break za}Ca:{if(c>>>0<=7){d[a|0]=g[h|0];d[a+1|0]=g[h+1|0];d[a+2|0]=g[h+2|0];d[a+3|0]=g[h+3|0];j=c<<2;c=f[j+4752>>2]+h|0;h=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);d[a+4|0]=h;d[a+5|0]=h>>>8;d[a+6|0]=h>>>16;d[a+7|0]=h>>>24;h=c-f[j+4784>>2]|0;break Ca}c=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);j=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=j;d[a+1|0]=j>>>8;d[a+2|0]=j>>>16;d[a+3|0]=j>>>24;d[a+4|0]=c;d[a+5|0]=c>>>8;d[a+6|0]=c>>>16;d[a+7|0]=c>>>24}c=f[k+132>>2];if(c>>>0<9){break za}l=a+c|0;a=a+8|0;h=h+8|0;if((a-h|0)<=15){while(1){c=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);j=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=j;d[a+1|0]=j>>>8;d[a+2|0]=j>>>16;d[a+3|0]=j>>>24;d[a+4|0]=c;d[a+5|0]=c>>>8;d[a+6|0]=c>>>16;d[a+7|0]=c>>>24;h=h+8|0;a=a+8|0;if(a>>>0>>0){continue}break za}}while(1){c=g[h+4|0]|g[h+5|0]<<8|(g[h+6|0]<<16|g[h+7|0]<<24);j=g[h|0]|g[h+1|0]<<8|(g[h+2|0]<<16|g[h+3|0]<<24);d[a|0]=j;d[a+1|0]=j>>>8;d[a+2|0]=j>>>16;d[a+3|0]=j>>>24;d[a+4|0]=c;d[a+5|0]=c>>>8;d[a+6|0]=c>>>16;d[a+7|0]=c>>>24;c=g[h+12|0]|g[h+13|0]<<8|(g[h+14|0]<<16|g[h+15|0]<<24);j=g[h+8|0]|g[h+9|0]<<8|(g[h+10|0]<<16|g[h+11|0]<<24);d[a+8|0]=j;d[a+9|0]=j>>>8;d[a+10|0]=j>>>16;d[a+11|0]=j>>>24;d[a+12|0]=c;d[a+13|0]=c>>>8;d[a+14|0]=c>>>16;d[a+15|0]=c>>>24;h=h+16|0;a=a+16|0;if(a>>>0>>0){continue}break}}a=f[k+60>>2];Da:{if(a>>>0>32){j=a;break Da}c=f[k+64>>2];if(c>>>0>=i[k+72>>2]){j=a&7;f[k+60>>2]=j;a=c-(a>>>3|0)|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);break Da}h=f[k+68>>2];if((h|0)==(c|0)){j=a;break Da}j=a;a=a>>>3|0;a=c-a>>>0>>0?c-h|0:a;j=j-(a<<3)|0;f[k+60>>2]=j;a=c-a|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24)}a=m>>>0<4294967177;e=a?e+m|0:e;q=a?q:m;B=B+ -1|0;if(B){c=f[k+84>>2];n=f[k+88>>2];r=f[k+92>>2];m=f[k+96>>2];h=f[k+76>>2];l=f[k+80>>2];continue}break}if(q>>>0>4294967176){break a}if(j>>>0<=32){a=f[k+64>>2];if(a>>>0>=i[k+72>>2]){f[k+60>>2]=j&7;a=a-(j>>>3|0)|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);q=-20;break a}c=f[k+68>>2];if((c|0)!=(a|0)){break da}q=-20;if(j>>>0<32){break a}}c=f[k+104>>2];a=w;f[a>>2]=f[k+100>>2];f[a+4>>2]=c;f[a+8>>2]=f[k+108>>2];h=f[k+208>>2]}q=-70;a=A-h|0;if(a>>>0>x-e>>>0){break a}if(e){break ca}a=0;break ba}b=j>>>3|0;b=a-b>>>0>>0?a-c|0:b;f[k+60>>2]=j-(b<<3);a=a-b|0;f[k+64>>2]=a;f[k+56>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);q=-20;break a}a=L(e,h,a)+a|0}q=a-b|0}z=k+224|0;return q}function ca(a,b,c,e,f){var i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;a:{if(e>>>0<10){break a}n=g[c+4|0]|g[c+5|0]<<8;j=g[c|0]|g[c+1|0]<<8;p=j+6|0;k=g[c+2|0]|g[c+3|0]<<8;r=n+(p+k|0)|0;if(e>>>0>>0){break a}if(!j){return-72}l=c+6|0;I=h[f+2>>1];b:{c:{if(j>>>0>=4){l=g[(j+l|0)+ -1|0];i=-1;if(!l){break b}t=j+2|0;j=t+c|0;m=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);l=(o(l)|-32)+9|0;break c}m=g[l|0];d:{switch(j+ -2|0){case 1:m=g[c+8|0]<<16|m;case 0:m=(g[c+7|0]<<8)+m|0;break;default:break d}}l=g[(j+l|0)+ -1|0];if(!l){break a}t=6;l=((o(l)|-32)-(j<<3)|0)+41|0}if(!k){return-72}D=c+p|0;B=k+D|0;e:{if(k>>>0>=4){p=g[B+ -1|0];i=-1;if(!p){break b}u=k+ -4|0;j=D+u|0;x=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);j=(o(p)|-32)+9|0;break e}x=g[D|0];f:{switch(k+ -2|0){case 1:x=g[D+2|0]<<16|x;case 0:x=(g[D+1|0]<<8)+x|0;break;default:break f}}j=g[B+ -1|0];if(!j){break a}j=((o(j)|-32)-(k<<3)|0)+41|0}if(!n){return-72}y=n+B|0;g:{if(n>>>0>=4){p=g[y+ -1|0];i=-1;if(!p){break b}v=n+ -4|0;k=B+v|0;z=g[k|0]|g[k+1|0]<<8|(g[k+2|0]<<16|g[k+3|0]<<24);k=(o(p)|-32)+9|0;break g}z=g[B|0];h:{switch(n+ -2|0){case 1:z=g[B+2|0]<<16|z;case 0:z=(g[B+1|0]<<8)+z|0;break;default:break h}}k=g[y+ -1|0];if(!k){break a}k=((o(k)|-32)-(n<<3)|0)+41|0}e=e-r|0;i=-72;if(!e){break b}i:{j:{if(e>>>0>=4){n=g[(e+y|0)+ -1|0];i=-1;if(!n){break b}if(e>>>0<=4294967176){break j}return e}A=g[y|0];k:{switch(e+ -2|0){case 1:A=g[y+2|0]<<16|A;case 0:A=(g[y+1|0]<<8)+A|0;break;default:break k}}i=g[(e+y|0)+ -1|0];if(!i){break a}e=((o(i)|-32)-(e<<3)|0)+41|0;break i}w=e+ -4|0;e=y+w|0;A=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24);e=(o(n)|-32)+9|0}q=f+4|0;f=b+3>>>2|0;F=f+a|0;G=F+f|0;H=G+f|0;M=a+b|0;N=M+ -3|0;l:{if(H>>>0>=N>>>0){r=H;n=G;p=F;break l}f=0-I&31;p=F;n=G;r=H;while(1){i=(m<<(l&31)>>>f<<2)+q|0;s=h[i>>1];d[a|0]=s;d[a+1|0]=s>>>8;C=g[i+2|0];s=g[i+3|0];i=(x<<(j&31)>>>f<<2)+q|0;E=h[i>>1];d[p|0]=E;d[p+1|0]=E>>>8;E=g[i+2|0];J=g[i+3|0];i=(z<<(k&31)>>>f<<2)+q|0;K=h[i>>1];d[n|0]=K;d[n+1|0]=K>>>8;K=g[i+2|0];O=g[i+3|0];i=(A<<(e&31)>>>f<<2)+q|0;L=h[i>>1];d[r|0]=L;d[r+1|0]=L>>>8;L=g[i+2|0];i=g[i+3|0];s=a+s|0;l=l+C|0;a=(m<<(l&31)>>>f<<2)+q|0;C=h[a>>1];d[s|0]=C;d[s+1|0]=C>>>8;C=g[a+2|0];P=g[a+3|0];p=p+J|0;j=j+E|0;a=(x<<(j&31)>>>f<<2)+q|0;E=h[a>>1];d[p|0]=E;d[p+1|0]=E>>>8;E=g[a+2|0];Q=g[a+3|0];n=n+O|0;k=k+K|0;a=(z<<(k&31)>>>f<<2)+q|0;J=h[a>>1];d[n|0]=J;d[n+1|0]=J>>>8;J=g[a+2|0];K=g[a+3|0];r=i+r|0;e=e+L|0;a=(A<<(e&31)>>>f<<2)+q|0;i=h[a>>1];d[r|0]=i;d[r+1|0]=i>>>8;l=l+C|0;O=g[a+3|0];L=g[a+2|0];if((t|0)<10){a=3}else{t=t-(l>>>3|0)|0;a=t+c|0;m=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);l=l&7;a=0}C=a;j=j+E|0;i=3;if((u|0)<4){a=3}else{u=u-(j>>>3|0)|0;a=D+u|0;x=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);j=j&7;a=0}E=a;k=k+J|0;if((v|0)>=4){v=v-(k>>>3|0)|0;a=B+v|0;z=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);i=0;k=k&7}r=r+O|0;e=e+L|0;if((w|0)<4){a=3}else{w=w-(e>>>3|0)|0;a=y+w|0;A=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);e=e&7;a=0}J=a;a=s+P|0;p=p+Q|0;n=n+K|0;if(r>>>0>=N>>>0){break l}if(!(J|(C|E|i))){continue}break}}if(n>>>0>H>>>0|p>>>0>G>>>0){break a}i=-20;if(a>>>0>F>>>0){break b}m:{n:{o:{p:{if(l>>>0>=33){f=0-I&31;break p}C=F+ -3|0;f=0-I&31;while(1){q:{if((t|0)>=10){m=l>>>3|0;s=0;i=l&7;break q}if((t|0)==6){s=F+ -2|0;t=6;i=l;break n}i=l>>>3|0;s=(t-i|0)<6;m=s?t+ -6|0:i;i=l-(m<<3)|0}t=t-m|0;l=t+c|0;m=g[l|0]|g[l+1|0]<<8|(g[l+2|0]<<16|g[l+3|0]<<24);if(s|a>>>0>=C>>>0){break o}l=(m<<(i&31)>>>f<<2)+q|0;s=h[l>>1];d[a|0]=s;d[a+1|0]=s>>>8;a=g[l+3|0]+a|0;i=g[l+2|0]+i|0;l=(m<<(i&31)>>>f<<2)+q|0;s=h[l>>1];d[a|0]=s;d[a+1|0]=s>>>8;a=a+g[l+3|0]|0;l=i+g[l+2|0]|0;if(l>>>0<33){continue}break}}s=F+ -2|0;break m}s=F+ -2|0;if(i>>>0<=32){break n}l=i;break m}while(1){r:{if((t|0)>=10){l=i&7;m=i>>>3|0;i=0;break r}if((t|0)==6){t=6;l=i;break m}l=i;m=i>>>3|0;i=(t-m|0)<6;m=i?t+ -6|0:m;l=l-(m<<3)|0}t=t-m|0;m=t+c|0;m=g[m|0]|g[m+1|0]<<8|(g[m+2|0]<<16|g[m+3|0]<<24);if(i|a>>>0>s>>>0){break m}i=(m<<(l&31)>>>f<<2)+q|0;C=h[i>>1];d[a|0]=C;d[a+1|0]=C>>>8;a=g[i+3|0]+a|0;i=g[i+2|0]+l|0;if(i>>>0<=32){continue}break}l=i}if(a>>>0<=s>>>0){while(1){c=(m<<(l&31)>>>f<<2)+q|0;i=h[c>>1];d[a|0]=i;d[a+1|0]=i>>>8;l=g[c+2|0]+l|0;a=g[c+3|0]+a|0;if(a>>>0<=s>>>0){continue}break}}s:{if(a>>>0>=F>>>0){break s}i=a;c=m<<(l&31)>>>f|0;a=(c<<2)+q|0;d[i|0]=g[a|0];if(g[a+3|0]==1){l=g[a+2|0]+l|0;break s}if(l>>>0>31){break s}a=g[((c<<2)+q|0)+2|0]+l|0;l=a>>>0<32?a:32}t:{u:{v:{w:{if(j>>>0>=33){a=0-I&31;break w}i=G+ -3|0;a=0-I&31;while(1){x:{if((u|0)>=4){f=j>>>3|0;m=0;c=j&7;break x}if(!u){f=G+ -2|0;u=0;c=j;break u}c=j>>>3|0;m=(u+D|0)-c>>>0>>0;f=m?u:c;c=j-(f<<3)|0}u=u-f|0;f=D+u|0;x=g[f|0]|g[f+1|0]<<8|(g[f+2|0]<<16|g[f+3|0]<<24);if(m|p>>>0>=i>>>0){break v}f=(x<<(c&31)>>>a<<2)+q|0;j=h[f>>1];d[p|0]=j;d[p+1|0]=j>>>8;j=g[f+3|0]+p|0;f=g[f+2|0]+c|0;c=(x<<(f&31)>>>a<<2)+q|0;p=h[c>>1];d[j|0]=p;d[j+1|0]=p>>>8;p=j+g[c+3|0]|0;j=f+g[c+2|0]|0;if(j>>>0<33){continue}break}}f=G+ -2|0;break t}f=G+ -2|0;if(c>>>0<=32){break u}j=c;break t}while(1){y:{if((u|0)>=4){m=c>>>3|0;i=0;j=c&7;break y}if(!u){u=0;j=c;break t}j=c>>>3|0;i=(u+D|0)-j>>>0>>0;m=i?u:j;j=c-(m<<3)|0}u=u-m|0;c=D+u|0;x=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);if(i|p>>>0>f>>>0){break t}c=(x<<(j&31)>>>a<<2)+q|0;i=h[c>>1];d[p|0]=i;d[p+1|0]=i>>>8;p=g[c+3|0]+p|0;c=g[c+2|0]+j|0;if(c>>>0<=32){continue}break}j=c}if(p>>>0<=f>>>0){while(1){c=(x<<(j&31)>>>a<<2)+q|0;i=h[c>>1];d[p|0]=i;d[p+1|0]=i>>>8;j=g[c+2|0]+j|0;p=g[c+3|0]+p|0;if(p>>>0<=f>>>0){continue}break}}z:{if(p>>>0>=G>>>0){break z}c=x<<(j&31)>>>a|0;a=(c<<2)+q|0;d[p|0]=g[a|0];if(g[a+3|0]==1){j=g[a+2|0]+j|0;break z}if(j>>>0>31){break z}a=g[((c<<2)+q|0)+2|0]+j|0;j=a>>>0<32?a:32}A:{B:{C:{D:{if(k>>>0>=33){a=0-I&31;break D}i=H+ -3|0;a=0-I&31;while(1){E:{if((v|0)>=4){f=k>>>3|0;m=0;c=k&7;break E}if(!v){f=H+ -2|0;v=0;c=k;break B}c=k>>>3|0;m=(v+B|0)-c>>>0>>0;f=m?v:c;c=k-(f<<3)|0}v=v-f|0;f=B+v|0;z=g[f|0]|g[f+1|0]<<8|(g[f+2|0]<<16|g[f+3|0]<<24);if(m|n>>>0>=i>>>0){break C}f=(z<<(c&31)>>>a<<2)+q|0;k=h[f>>1];d[n|0]=k;d[n+1|0]=k>>>8;k=g[f+3|0]+n|0;f=g[f+2|0]+c|0;c=(z<<(f&31)>>>a<<2)+q|0;n=h[c>>1];d[k|0]=n;d[k+1|0]=n>>>8;n=k+g[c+3|0]|0;k=f+g[c+2|0]|0;if(k>>>0<33){continue}break}}f=H+ -2|0;break A}f=H+ -2|0;if(c>>>0<=32){break B}k=c;break A}while(1){F:{if((v|0)>=4){m=c>>>3|0;p=0;k=c&7;break F}if(!v){v=0;k=c;break A}k=c>>>3|0;p=(v+B|0)-k>>>0>>0;m=p?v:k;k=c-(m<<3)|0}v=v-m|0;c=B+v|0;z=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);if(p|n>>>0>f>>>0){break A}c=(z<<(k&31)>>>a<<2)+q|0;i=h[c>>1];d[n|0]=i;d[n+1|0]=i>>>8;n=g[c+3|0]+n|0;c=g[c+2|0]+k|0;if(c>>>0<=32){continue}break}k=c}if(n>>>0<=f>>>0){while(1){c=(z<<(k&31)>>>a<<2)+q|0;i=h[c>>1];d[n|0]=i;d[n+1|0]=i>>>8;k=g[c+2|0]+k|0;n=g[c+3|0]+n|0;if(n>>>0<=f>>>0){continue}break}}G:{if(n>>>0>=H>>>0){break G}c=z<<(k&31)>>>a|0;a=(c<<2)+q|0;d[n|0]=g[a|0];if(g[a+3|0]==1){k=g[a+2|0]+k|0;break G}if(k>>>0>31){break G}a=g[((c<<2)+q|0)+2|0]+k|0;k=a>>>0<32?a:32}a=0-I&31;H:{I:{J:{if(e>>>0<=32){while(1){K:{if((w|0)>=4){f=e>>>3|0;n=0;c=e&7;break K}if(!w){f=M+ -2|0;w=0;c=e;break I}c=e>>>3|0;n=(w+y|0)-c>>>0>>0;f=n?w:c;c=e-(f<<3)|0}w=w-f|0;e=y+w|0;A=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24);if(n|r>>>0>=N>>>0){break J}e=(A<<(c&31)>>>a<<2)+q|0;f=h[e>>1];d[r|0]=f;d[r+1|0]=f>>>8;f=g[e+3|0]+r|0;e=g[e+2|0]+c|0;c=(A<<(e&31)>>>a<<2)+q|0;i=h[c>>1];d[f|0]=i;d[f+1|0]=i>>>8;r=f+g[c+3|0]|0;e=e+g[c+2|0]|0;if(e>>>0<33){continue}break}}f=M+ -2|0;break H}f=M+ -2|0;if(c>>>0<=32){break I}e=c;break H}while(1){L:{if((w|0)>=4){n=c>>>3|0;m=0;e=c&7;break L}if(!w){w=0;e=c;break H}e=c>>>3|0;m=(w+y|0)-e>>>0>>0;n=m?w:e;e=c-(n<<3)|0}w=w-n|0;c=y+w|0;A=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);if(m|r>>>0>f>>>0){break H}c=(A<<(e&31)>>>a<<2)+q|0;i=h[c>>1];d[r|0]=i;d[r+1|0]=i>>>8;r=g[c+3|0]+r|0;c=g[c+2|0]+e|0;if(c>>>0<=32){continue}break}e=c}if(r>>>0<=f>>>0){while(1){c=(A<<(e&31)>>>a<<2)+q|0;i=h[c>>1];d[r|0]=i;d[r+1|0]=i>>>8;e=g[c+2|0]+e|0;r=g[c+3|0]+r|0;if(r>>>0<=f>>>0){continue}break}}M:{if(r>>>0>=M>>>0){break M}c=A<<(e&31)>>>a|0;a=(c<<2)+q|0;d[r|0]=g[a|0];if(g[a+3|0]==1){e=g[a+2|0]+e|0;break M}if(e>>>0>31){break M}a=g[((c<<2)+q|0)+2|0]+e|0;e=a>>>0<32?a:32}i=(t|0)==6?(l|0)==32?u?-20:(j|0)==32?v?-20:(k|0)==32?w?-20:(e|0)==32?b:-20:-20:-20:-20:-20}return i}return-20}function ra(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,h=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,N=0,O=0,P=0,R=0;B=z-16|0;z=B;p=f[d+8>>2];q=f[d+4>>2];a:{if(p>>>0>q>>>0){e=-72;break a}h=f[b+8>>2];r=f[b+4>>2];if(h>>>0>r>>>0){e=-70;break a}n=f[b>>2];m=f[d>>2];if(!(!f[a+28964>>2]|f[a+29024>>2]!=1)){e=-104;if((r|0)!=f[a+29032>>2]|(n|0)!=f[a+29028>>2]|(h|0)!=f[a+29036>>2]){break a}}v=r?n+r|0:n;K=a+4120|0;N=a+6176|0;O=a+16|0;D=a+26668|0;P=a+10280|0;R=a+28728|0;q=q?m+q|0:m;r=p?m+p|0:m;F=q-r|0;w=a+160144|0;p=a+28752|0;x=a+29028|0;y=a+28804|0;C=a+28972|0;s=a+28988|0;G=a+160164|0;t=a+28856|0;H=t;m=r;E=h?h+n|0:n;n=E;while(1){b:{e=-1;h=p;j=w;c:{d:{e:{f:{g:{h:{i:{j:{switch(f[a+28964>>2]){case 3:k=f[y>>2];h=f[a+28744>>2];break d;case 1:e=f[a+29e3>>2];break i;case 4:break g;case 2:break h;case 0:break j;default:break a}}f[a+28964>>2]=1;f[a+28992>>2]=0;f[a+28996>>2]=0;f[a+29012>>2]=0;f[a+29016>>2]=0;f[a+29e3>>2]=0;f[a+28976>>2]=0;e=f[b+4>>2];f[x>>2]=f[b>>2];f[x+4>>2]=e;f[x+8>>2]=f[b+8>>2];e=0}e=Q(h,j,e,f[a+28908>>2]);if(e>>>0>4294967176){break a}if(e){h=f[a+29e3>>2];k=e-h|0;j=q-m|0;if(k>>>0>j>>>0){if(j){L((a+h|0)+160144|0,m,j);h=j+f[a+29e3>>2]|0;f[a+29e3>>2]=h}f[d+8>>2]=f[d+4>>2];a=f[a+28908>>2]?2:6;e=((a>>>0>e>>>0?a:e)-h|0)+3|0;break a}L((a+h|0)+160144|0,m,k);f[a+29e3>>2]=e;m=k+m|0;j=1;break c}k:{j=f[p>>2];h=f[p+4>>2];if((j|0)==-1&(h|0)==-1|f[a+28772>>2]==1){break k}k=j;j=v-n|0;if(!h&k>>>0>j>>>0|h>>>0>0){break k}Ba(B,r,F);h=f[B>>2];if(h>>>0>F>>>0){break k}m=a;o=n;p=r;u=h;l:{m:{switch(f[a+28960>>2]+1|0){default:t=f[a+28944>>2];n:{if(!t){break n}k=f[t+26692>>2];e=f[t+26688>>2];o:{p:{s=f[t>>2];if(s){if(!e){break p}c[e|0](k,s);c[e|0](k,t);break n}if(!e){break o}c[e|0](k,t);break n}M(s)}M(t)}f[a+28960>>2]=0;f[a+28944>>2]=0;f[a+28948>>2]=0;k=0;break l;case 2:f[a+28960>>2]=0;break;case 0:break m}}k=f[a+28948>>2]}e=Aa(m,o,j,p,u,k);if(e>>>0>4294967176){break a}f[a+28964>>2]=0;f[a+28744>>2]=0;n=e+n|0;m=h+r|0;break b}q:{if(f[a+28772>>2]==1|f[a+29024>>2]!=1){break q}j=f[p>>2];h=f[p+4>>2];if((j|0)==-1&(h|0)==-1|(!h&j>>>0<=v-n>>>0|h>>>0<0)){break q}e=-70;break a}r:{s:{switch(f[a+28960>>2]+1|0){default:h=f[a+28944>>2];t:{if(!h){break t}e=f[h+26692>>2];j=f[h+26688>>2];u:{v:{k=f[h>>2];if(k){if(!j){break v}c[j|0](e,k);c[j|0](e,h);break t}if(!j){break u}c[j|0](e,h);break t}M(k)}M(h)}e=0;f[a+28960>>2]=0;f[a+28944>>2]=0;f[a+28948>>2]=0;j=1;break r;case 2:f[a+28960>>2]=0;break;case 0:break s}}e=f[a+28948>>2];if(!e){e=0;j=1;break r}f[a+28956>>2]=f[a+28740>>2]!=(f[e+4>>2]+f[e+8>>2]|0);j=0}f[a+28792>>2]=0;f[a+28796>>2]=0;f[y>>2]=0;k=f[a+28908>>2];f[a+28744>>2]=k?1:5;h=R;f[h+8>>2]=0;f[h+12>>2]=0;f[h>>2]=0;f[h+4>>2]=0;f[a+10280>>2]=201326604;f[a+28952>>2]=0;f[a+28808>>2]=0;f[a+28812>>2]=0;f[a+28800>>2]=3;f[D+8>>2]=f[814];h=f[813];f[D>>2]=f[812];f[D+4>>2]=h;f[a+12>>2]=P;f[a+8>>2]=K;f[a+4>>2]=N;f[a>>2]=O;w:{if(j){break w}f[a+28952>>2]=f[e+26676>>2];h=f[e+4>>2];f[a+28736>>2]=h;f[a+28732>>2]=h;h=h+f[e+8>>2]|0;f[a+28728>>2]=h;f[a+28740>>2]=h;if(f[e+26680>>2]){f[a+28808>>2]=1;f[a+28812>>2]=1;f[a+12>>2]=e+10276;f[a+8>>2]=e+4116;f[a+4>>2]=e+6172;f[a>>2]=e+12;f[a+26668>>2]=f[e+26664>>2];f[a+26672>>2]=f[e+26668>>2];f[a+26676>>2]=f[e+26672>>2];break w}f[a+28808>>2]=0;f[a+28812>>2]=0}x:{if(((g[w|0]|g[w+1|0]<<8|(g[w+2|0]<<16|g[w+3|0]<<24))&-16)==407710288){e=g[a+160148|0]|g[a+160149|0]<<8|(g[a+160150|0]<<16|g[a+160151|0]<<24);k=7;break x}e=Q(p,w,f[a+29e3>>2],k);if(e>>>0>4294967176){break a}if(e){e=-72;break a}h=f[a+28780>>2];if(!(!h|(h|0)==f[a+28952>>2])){e=-32;break a}k=2;e=3;if(!f[a+28784>>2]){break x}f[a+28848>>2]=2048144761;f[a+28852>>2]=1640531534;f[a+28840>>2]=0;f[a+28844>>2]=0;f[a+28832>>2]=668265295;f[a+28836>>2]=-1028477379;f[a+28824>>2]=-1379879466;f[a+28828>>2]=1625958382;f[a+28816>>2]=0;f[a+28820>>2]=0;f[H+32>>2]=0;f[H+36>>2]=0;h=t;f[h+24>>2]=0;f[h+28>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h>>2]=0;f[h+4>>2]=0}f[a+28744>>2]=e;f[y>>2]=k;j=f[a+28760>>2];k=j;h=f[a+28764>>2];j=!h&j>>>0>1024|h>>>0>0;e=j?k:1024;h=j?h:0;j=h;f[a+28760>>2]=e;f[a+28764>>2]=h;if(!h&e>>>0>i[a+28980>>2]|h>>>0>0){e=-16;break a}h=f[a+28768>>2];o=h>>>0>4?h:4;h=0;k=0;if(!f[a+29024>>2]){k=f[p+4>>2];u=k;I=f[p>>2];A=!j&e>>>0<131072|j>>>0<0;J=A?e:131072;e=J+e|0;j=(A?j:0)+j|0;j=e>>>0>>0?j+1|0:j;A=e- -64|0;j=j-((e>>>0<4294967232)+ -1|0)|0;e=(k|0)==(j|0)&A>>>0>I>>>0|j>>>0>k>>>0;k=e?I:A;j=e?u:j;k=(j|0)==1&k>>>0<0|j>>>0<1?k:-16}j=f[C>>2];u=f[s>>2];e=k+o|0;if(j+u>>>0>=l(e,3)>>>0){h=f[G>>2]+1|0}f[G>>2]=h;if(!(h>>>0<128?!(j>>>0>>0|u>>>0>>0):0)){y:{z:{h=f[a+28936>>2];if(h){if(e>>>0<=h+ -160168>>>0){break z}e=-64;break a}h=f[a+28968>>2];A:{if(!h){break A}j=g[a+28920|0]|g[a+28921|0]<<8|(g[a+28922|0]<<16|g[a+28923|0]<<24);if(j){c[j|0](g[a+28924|0]|g[a+28925|0]<<8|(g[a+28926|0]<<16|g[a+28927|0]<<24),h);break A}M(h)}f[s>>2]=0;f[C>>2]=0;j=a;h=g[a+28916|0]|g[a+28917|0]<<8|(g[a+28918|0]<<16|g[a+28919|0]<<24);B:{if(h){h=c[h|0](g[a+28924|0]|g[a+28925|0]<<8|(g[a+28926|0]<<16|g[a+28927|0]<<24),e)|0;break B}h=U(e)}f[j+28968>>2]=h;if(h){break y}e=-64;break a}h=f[a+28968>>2]}f[s>>2]=k;f[a+28984>>2]=h+o;f[C>>2]=o}f[a+28964>>2]=2}e=q-m|0;k=f[y>>2];if(f[a+28800>>2]|k+ -3>>>0>=2){break f}j=e>>>0>1?e:1;h=f[a+28744>>2];j=j>>>0>>0?j:h;break e}j=a;k=v-n|0;h=f[a+28992>>2];o=f[a+28996>>2]-h|0;u=k>>>0>>0;e=u?k:o;if(e){L(n,h+f[a+28984>>2]|0,e);h=f[a+28992>>2]}h=e+h|0;f[j+28992>>2]=h;n=e+n|0;C:{if(u){break C}f[a+28964>>2]=2;j=f[a+28756>>2];e=f[s>>2];if(!j&i[a+28752>>2]<=e>>>0|j>>>0<0|h+f[a+28768>>2]>>>0<=e>>>0){break C}f[a+28992>>2]=0;f[a+28996>>2]=0}j=k>>>0>=o>>>0;break c}h=f[a+28744>>2];j=h}if(!j){f[a+28964>>2]=0;break b}if(e>>>0>=j>>>0){o=(k|0)==7;h=a;D:{E:{if(!f[a+29024>>2]){F:{if((k|0)==7){e=f[a+28992>>2];k=0;break F}e=f[a+28992>>2];k=f[s>>2]-e|0}e=S(a,f[a+28984>>2]+e|0,k,m,j);if(e>>>0>4294967176){break a}if(!(e|o)){break E}f[a+28996>>2]=f[a+28992>>2]+e;k=4;break D}e=S(a,n,o?0:v-n|0,m,j);if(e>>>0>4294967176){break a}n=e+n|0}k=2}f[h+28964>>2]=k;m=j+m|0;j=1;break c}if((m|0)==(q|0)){m=q;break b}f[a+28964>>2]=3}e=f[a+28976>>2];j=h-e|0;G:{if((k|0)==7){k=q-m|0;k=j>>>0>>0?j:k;break G}if(j>>>0>f[C>>2]-e>>>0){e=-20;break a}k=q-m|0;k=j>>>0>>0?j:k;if(!k){k=0;break G}L(f[a+28968>>2]+e|0,m,k);e=f[a+28976>>2]}f[a+28976>>2]=e+k;m=k+m|0;if(k>>>0>>0){break b}f[a+28976>>2]=0;k=f[y>>2];j=(k|0)==7;e=f[a+28968>>2];if(!f[a+29024>>2]){H:{if((k|0)==7){k=f[a+28992>>2];o=0;break H}k=f[a+28992>>2];o=f[s>>2]-k|0}e=S(a,f[a+28984>>2]+k|0,o,e,h);if(e>>>0>4294967176){break a}if(!(e|j)){f[a+28964>>2]=2;j=1;break c}f[a+28964>>2]=4;f[a+28996>>2]=f[a+28992>>2]+e;j=1;break c}e=S(a,n,j?0:v-n|0,e,h);if(e>>>0>4294967176){break a}f[a+28964>>2]=2;n=e+n|0;j=1}if(j){continue}}break}f[d+8>>2]=m-f[d>>2];h=n-f[b>>2]|0;f[b+8>>2]=h;f[x+8>>2]=h;h=f[b+4>>2];f[x>>2]=f[b>>2];f[x+4>>2]=h;I:{if(!((n|0)!=(E|0)|(m|0)!=(r|0))){b=f[a+29020>>2];f[a+29020>>2]=b+1;if((b|0)<15){break I}e=-70;if((v|0)==(E|0)){break a}e=-72;if((q|0)!=(r|0)){break I}break a}f[a+29020>>2]=0}b=f[a+28744>>2];if(!b){b=f[a+29016>>2];if(f[a+28996>>2]==f[a+28992>>2]){e=0;if(!b){break a}b=f[d+8>>2];if(b>>>0>=i[d+4>>2]){f[a+28964>>2]=2;e=1;break a}f[d+8>>2]=b+1;break a}e=1;if(b){break a}f[d+8>>2]=f[d+8>>2]+ -1;f[a+29016>>2]=1;break a}e=(b-f[a+28976>>2]|0)+(f[a+28804>>2]==3?3:0)|0}z=B+16|0;return e|0}function ea(a,b,c,e,f){var i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;a:{if(e>>>0<10){break a}k=g[c+4|0]|g[c+5|0]<<8;i=g[c|0]|g[c+1|0]<<8;p=i+6|0;j=g[c+2|0]|g[c+3|0]<<8;r=k+(p+j|0)|0;if(e>>>0>>0){break a}if(!i){return-72}l=c+6|0;F=h[f+2>>1];b:{c:{if(i>>>0>=4){l=g[(i+l|0)+ -1|0];x=-1;if(!l){break b}l=(o(l)|-32)+9|0;i=i+2|0;n=i+c|0;m=g[n|0]|g[n+1|0]<<8|(g[n+2|0]<<16|g[n+3|0]<<24);break c}m=g[l|0];d:{switch(i+ -2|0){case 1:m=g[c+8|0]<<16|m;case 0:m=(g[c+7|0]<<8)+m|0;break;default:break d}}l=g[(i+l|0)+ -1|0];if(!l){break a}l=((o(l)|-32)-(i<<3)|0)+41|0;i=6}if(!j){return-72}B=c+p|0;z=j+B|0;e:{if(j>>>0>=4){n=g[z+ -1|0];x=-1;if(!n){break b}t=j+ -4|0;j=B+t|0;C=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);n=(o(n)|-32)+9|0;break e}C=g[B|0];f:{switch(j+ -2|0){case 1:C=g[B+2|0]<<16|C;case 0:C=(g[B+1|0]<<8)+C|0;break;default:break f}}n=g[z+ -1|0];if(!n){break a}n=((o(n)|-32)-(j<<3)|0)+41|0}if(!k){return-72}A=k+z|0;g:{if(k>>>0>=4){j=g[A+ -1|0];x=-1;if(!j){break b}p=(o(j)|-32)+9|0;q=k+ -4|0;j=z+q|0;D=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);break g}D=g[z|0];h:{switch(k+ -2|0){case 1:D=g[z+2|0]<<16|D;case 0:D=(g[z+1|0]<<8)+D|0;break;default:break h}}j=g[A+ -1|0];if(!j){break a}p=((o(j)|-32)-(k<<3)|0)+41|0}e=e-r|0;x=-72;if(!e){break b}i:{j:{if(e>>>0>=4){j=g[(e+A|0)+ -1|0];x=-1;if(!j){break b}if(e>>>0<=4294967176){break j}return e}y=g[A|0];k:{switch(e+ -2|0){case 1:y=g[A+2|0]<<16|y;case 0:y=(g[A+1|0]<<8)+y|0;break;default:break k}}j=g[(e+A|0)+ -1|0];if(!j){break a}j=((o(j)|-32)-(e<<3)|0)+41|0;break i}E=e+ -4|0;e=E+A|0;y=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24);j=(o(j)|-32)+9|0}v=f+4|0;e=b+3>>>2|0;G=e+a|0;H=G+e|0;I=H+e|0;K=a+b|0;L=K+ -3|0;l:{if(I>>>0>=L>>>0){r=t;u=q;e=E;w=i;f=I;s=H;k=G;break l}x=0-F&31;k=G;s=H;f=I;M=1;while(1){e=(m<<(l&31)>>>x<<1)+v|0;r=g[e+1|0];d[a|0]=g[e|0];e=(C<<(n&31)>>>x<<1)+v|0;u=g[e+1|0];d[k|0]=g[e|0];e=(D<<(p&31)>>>x<<1)+v|0;w=g[e+1|0];d[s|0]=g[e|0];e=(y<<(j&31)>>>x<<1)+v|0;J=g[e+1|0];d[f|0]=g[e|0];e=l+r|0;l=(m<<(e&31)>>>x<<1)+v|0;r=g[l+1|0];d[a+1|0]=g[l|0];n=n+u|0;l=(C<<(n&31)>>>x<<1)+v|0;u=g[l+1|0];d[k+1|0]=g[l|0];p=p+w|0;l=(D<<(p&31)>>>x<<1)+v|0;N=g[l+1|0];d[s+1|0]=g[l|0];j=j+J|0;l=(y<<(j&31)>>>x<<1)+v|0;J=g[l+1|0];d[f+1|0]=g[l|0];l=e+r|0;m:{if((i|0)<10){w=i;break m}w=i-(l>>>3|0)|0;e=w+c|0;m=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24);l=l&7}n=n+u|0;n:{if((t|0)<4){r=t;break n}r=t-(n>>>3|0)|0;e=B+r|0;C=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24);n=n&7}p=p+N|0;o:{if((q|0)<4){u=q;break o}u=q-(p>>>3|0)|0;e=z+u|0;D=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24);p=p&7}e=j+J|0;f=f+2|0;p:{if((E|0)<4){j=e;e=E;break p}j=e&7;e=E-(e>>>3|0)|0;y=A+e|0;y=g[y|0]|g[y+1|0]<<8|(g[y+2|0]<<16|g[y+3|0]<<24)}s=s+2|0;k=k+2|0;a=a+2|0;J=(t|0)>3;N=(q|0)>3;O=(E|0)>3;P=(i|0)>9;i=w;E=e;q=u;t=r;M=P&(J&N&O)&M;if(M&f>>>0>>0){continue}break}}if(s>>>0>I>>>0|k>>>0>H>>>0){break a}x=-20;if(a>>>0>G>>>0){break b}q:{r:{s:{if(l>>>0>=33){q=0-F&31;break s}E=G+ -3|0;q=0-F&31;t:{u:{while(1){v:{if((w|0)>=10){m=l>>>3|0;t=0;i=l&7;break v}if((w|0)==6){i=l;w=6;break u}i=l>>>3|0;t=(w-i|0)<6;m=t?w+ -6|0:i;i=l-(m<<3)|0}w=w-m|0;l=w+c|0;m=g[l|0]|g[l+1|0]<<8|(g[l+2|0]<<16|g[l+3|0]<<24);if(!(t|a>>>0>=E>>>0)){l=(m<<(i&31)>>>q<<1)+v|0;t=g[l+1|0];d[a|0]=g[l|0];i=i+t|0;l=(m<<(i&31)>>>q<<1)+v|0;t=g[l+1|0];d[a+1|0]=g[l|0];a=a+2|0;l=i+t|0;if(l>>>0<=32){continue}break s}break}if(i>>>0>32){break t}}while(1){w:{if((w|0)>=10){m=i>>>3|0;t=0;l=i&7;break w}if((w|0)==6){w=6;break t}l=i>>>3|0;t=(w-l|0)<6;m=t?w+ -6|0:l;l=i-(m<<3)|0}w=w-m|0;i=w+c|0;m=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24);i=a>>>0>=G>>>0;if(!(t?0:!i)){if(i){break q}break r}i=(m<<(l&31)>>>q<<1)+v|0;t=g[i+1|0];d[a|0]=g[i|0];a=a+1|0;i=l+t|0;if(i>>>0<=32){continue}break}}l=i}if(a>>>0>=G>>>0){break q}}while(1){c=(m<<(l&31)>>>q<<1)+v|0;i=g[c+1|0];d[a|0]=g[c|0];l=i+l|0;a=a+1|0;if((G|0)!=(a|0)){continue}break}}x:{y:{z:{if(n>>>0>=33){c=0-F&31;i=r+B|0;break z}t=H+ -3|0;c=0-F&31;A:{B:{C:{while(1){D:{if((r|0)>=4){q=n>>>3|0;m=0;a=n&7;break D}if(!r){r=0;i=B;a=n;break B}a=n>>>3|0;m=(r+B|0)-a>>>0>>0;q=m?r:a;a=n-(q<<3)|0}r=r-q|0;i=B+r|0;C=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24);if(m|k>>>0>=t>>>0){break C}i=(C<<(a&31)>>>c<<1)+v|0;n=g[i+1|0];d[k|0]=g[i|0];a=a+n|0;i=(C<<(a&31)>>>c<<1)+v|0;n=g[i+1|0];d[k+1|0]=g[i|0];k=k+2|0;n=a+n|0;if(n>>>0<33){continue}break}i=r+B|0;break z}if(a>>>0>32){break A}}while(1){E:{if((r|0)>=4){q=a>>>3|0;m=0;n=a&7;break E}if(!r){break A}i=a>>>3|0;m=(r+B|0)-i>>>0>>0;q=m?r:i;n=a-(q<<3)|0}r=r-q|0;i=B+r|0;C=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24);a=k>>>0>=H>>>0;if(!(m?0:!a)){if(!a){break y}break x}a=(C<<(n&31)>>>c<<1)+v|0;t=g[a+1|0];d[k|0]=g[a|0];k=k+1|0;a=n+t|0;if(a>>>0<=32){continue}break}}n=a}if(k>>>0>=H>>>0){break x}}while(1){a=(C<<(n&31)>>>c<<1)+v|0;r=g[a+1|0];d[k|0]=g[a|0];n=n+r|0;k=k+1|0;if((H|0)!=(k|0)){continue}break}}F:{G:{H:{if(p>>>0>=33){c=0-F&31;m=u+z|0;break H}r=I+ -3|0;c=0-F&31;I:{J:{K:{while(1){L:{if((u|0)>=4){q=p>>>3|0;k=0;a=p&7;break L}if(!u){u=0;m=z;a=p;break J}a=p>>>3|0;k=(u+z|0)-a>>>0>>0;q=k?u:a;a=p-(q<<3)|0}u=u-q|0;m=z+u|0;D=g[m|0]|g[m+1|0]<<8|(g[m+2|0]<<16|g[m+3|0]<<24);if(k|s>>>0>=r>>>0){break K}p=(D<<(a&31)>>>c<<1)+v|0;k=g[p+1|0];d[s|0]=g[p|0];a=a+k|0;p=(D<<(a&31)>>>c<<1)+v|0;k=g[p+1|0];d[s+1|0]=g[p|0];s=s+2|0;p=a+k|0;if(p>>>0<33){continue}break}m=u+z|0;break H}if(a>>>0>32){break I}}while(1){M:{if((u|0)>=4){q=a>>>3|0;k=0;p=a&7;break M}if(!u){break I}p=a>>>3|0;k=(u+z|0)-p>>>0>>0;q=k?u:p;p=a-(q<<3)|0}u=u-q|0;m=z+u|0;D=g[m|0]|g[m+1|0]<<8|(g[m+2|0]<<16|g[m+3|0]<<24);a=s>>>0>=I>>>0;if(!(k?0:!a)){if(!a){break G}break F}a=(D<<(p&31)>>>c<<1)+v|0;k=g[a+1|0];d[s|0]=g[a|0];s=s+1|0;a=k+p|0;if(a>>>0<=32){continue}break}}p=a}if(s>>>0>=I>>>0){break F}}while(1){a=(D<<(p&31)>>>c<<1)+v|0;k=g[a+1|0];d[s|0]=g[a|0];p=k+p|0;s=s+1|0;if((I|0)!=(s|0)){continue}break}}c=0-F&31;N:{O:{P:{Q:{R:{S:{if(j>>>0<=32){while(1){T:{if((e|0)>=4){q=j>>>3|0;s=0;a=j&7;break T}if(!e){e=0;k=A;a=j;break R}a=j>>>3|0;s=(e+A|0)-a>>>0>>0;q=s?e:a;a=j-(q<<3)|0}e=e-q|0;k=A+e|0;y=g[k|0]|g[k+1|0]<<8|(g[k+2|0]<<16|g[k+3|0]<<24);if(s|f>>>0>=L>>>0){break S}j=(y<<(a&31)>>>c<<1)+v|0;k=g[j+1|0];d[f|0]=g[j|0];a=a+k|0;j=(y<<(a&31)>>>c<<1)+v|0;k=g[j+1|0];d[f+1|0]=g[j|0];f=f+2|0;j=a+k|0;if(j>>>0<33){continue}break}}k=e+A|0;break P}if(a>>>0>32){break Q}}while(1){U:{if((e|0)>=4){q=a>>>3|0;s=0;j=a&7;break U}if(!e){break Q}j=a>>>3|0;s=(e+A|0)-j>>>0>>0;q=s?e:j;j=a-(q<<3)|0}e=e-q|0;k=A+e|0;y=g[k|0]|g[k+1|0]<<8|(g[k+2|0]<<16|g[k+3|0]<<24);a=f>>>0>=K>>>0;if(!(s?0:!a)){if(!a){break O}break N}a=(y<<(j&31)>>>c<<1)+v|0;r=g[a+1|0];d[f|0]=g[a|0];f=f+1|0;a=j+r|0;if(a>>>0<=32){continue}break}}j=a}if(f>>>0>=K>>>0){break N}}while(1){a=(y<<(j&31)>>>c<<1)+v|0;e=g[a+1|0];d[f|0]=g[a|0];j=e+j|0;f=f+1|0;if((K|0)!=(f|0)){continue}break}}x=(w|0)==6?(l|0)==32?(n|0)==32?(i|0)==(B|0)?(p|0)==32?(m|0)==(z|0)?(j|0)==32?(k|0)==(A|0)?b:-20:-20:-20:-20:-20:-20:-20:-20}return x}return-20}function ja(a,b,c,e){var i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=a+255|0;u=t+ -3|0;a:{b:{c:{d:{if(h[e+2>>1]){if(!c){return-72}e:{f:{if(c>>>0>=4){v=-1;i=g[(b+c|0)+ -1|0];if(!i){break b}if(c>>>0<=4294967176){break f}return c}k=g[b|0];g:{switch(c+ -2|0){case 1:k=g[b+2|0]<<16|k;case 0:k=(g[b+1|0]<<8)+k|0;break;default:break g}}i=g[(b+c|0)+ -1|0];if(!i){return-20}i=((o(i)|-32)-(c<<3)|0)+41|0;c=0;break e}i=(o(i)|-32)+9|0;c=c+ -4|0;j=c+b|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24)}m=h[e>>1];i=m+i|0;l=k>>>(0-i&31)|0;p=f[(m<<2)+4592>>2];h:{if(i>>>0>32){j=i;break h}if((c|0)>=4){j=i&7;c=c-(i>>>3|0)|0;i=c+b|0;k=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24);break h}if(!c){c=0;j=i;break h}j=i;i=i>>>3|0;i=(b+c|0)-i>>>0>>0?c:i;j=j-(i<<3)|0;c=c-i|0;i=c+b|0;k=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24)}n=l&p;r=e+4|0;e=j+m|0;m=p&k>>>(0-e&31);if(e>>>0>32){i=e;e=a;break c}if((c|0)>=4){i=e&7;c=c-(e>>>3|0)|0;e=c+b|0;k=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24);break d}if(!c){c=0;i=e;break d}i=e>>>3|0;i=(b+c|0)-i>>>0>>0?c:i;c=c-i|0;j=c+b|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);i=e-(i<<3)|0;if(i>>>0<=32){break d}e=a;break c}if(!c){return-72}i:{j:{if(c>>>0>=4){v=-1;i=g[(b+c|0)+ -1|0];if(!i){break b}if(c>>>0<=4294967176){break j}return c}k=g[b|0];k:{switch(c+ -2|0){case 1:k=g[b+2|0]<<16|k;case 0:k=(g[b+1|0]<<8)+k|0;break;default:break k}}i=g[(b+c|0)+ -1|0];if(!i){return-20}i=((o(i)|-32)-(c<<3)|0)+41|0;c=0;break i}i=(o(i)|-32)+9|0;c=c+ -4|0;j=c+b|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24)}m=h[e>>1];i=m+i|0;l=k>>>(0-i&31)|0;p=f[(m<<2)+4592>>2];l:{if(i>>>0>32){j=i;break l}if((c|0)>=4){j=i&7;c=c-(i>>>3|0)|0;i=c+b|0;k=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24);break l}if(!c){c=0;j=i;break l}j=i;i=i>>>3|0;i=(b+c|0)-i>>>0>>0?c:i;j=j-(i<<3)|0;c=c-i|0;i=c+b|0;k=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24)}n=l&p;r=e+4|0;e=j+m|0;m=p&k>>>(0-e&31);m:{if(e>>>0>32){i=e;e=a;break m}n:{if((c|0)>=4){i=e&7;c=c-(e>>>3|0)|0;e=c+b|0;k=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24);break n}if(!c){c=0;i=e;break n}i=e>>>3|0;i=(b+c|0)-i>>>0>>0?c:i;c=c-i|0;j=c+b|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);i=e-(i<<3)|0;if(i>>>0<=32){break n}e=a;break m}e=a;while(1){o:{if((c|0)>=4){k=i>>>3|0;j=0;i=i&7;break o}if(!c){c=0;break m}k=i>>>3|0;j=(b+c|0)-k>>>0>>0;k=j?c:k;i=i-(k<<3)|0}c=c-k|0;q=c+b|0;k=g[q|0]|g[q+1|0]<<8|(g[q+2|0]<<16|g[q+3|0]<<24);if(j|e>>>0>=u>>>0){break m}l=(n<<2)+r|0;j=h[l>>1];n=g[l+3|0];d[e|0]=g[l+2|0];m=(m<<2)+r|0;l=h[m>>1];p=g[m+3|0];d[e+1|0]=g[m+2|0];i=i+n|0;n=j+(f[(n<<2)+4592>>2]&k>>>(0-i&31))|0;j=i+p|0;m=l+(f[(p<<2)+4592>>2]&k>>>(0-j&31))|0;p:{q:{if(j>>>0>32){i=j;break q}if((c|0)>=4){i=j&7;c=c-(j>>>3|0)|0;j=c+b|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);break p}if(!c){c=0;i=j;break q}i=j>>>3|0;l=q-i|0;k=j;j=l>>>0>>0?c:i;i=k-(j<<3)|0;c=c-j|0;j=c+b|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);if(l>>>0>=b>>>0){break p}}e=e+2|0;break m}j=(n<<2)+r|0;l=h[j>>1];n=g[j+3|0];d[e+2|0]=g[j+2|0];m=(m<<2)+r|0;j=h[m>>1];p=g[m+3|0];d[e+3|0]=g[m+2|0];i=i+n|0;n=l+(f[(n<<2)+4592>>2]&k>>>(0-i&31))|0;i=i+p|0;m=j+(f[(p<<2)+4592>>2]&k>>>(0-i&31))|0;e=e+4|0;if(i>>>0<33){continue}break}}v=-70;t=t+ -2|0;if(e>>>0>t>>>0){break b}s=2;while(1){j=(n<<2)+r|0;q=h[j>>1];u=g[j+3|0];d[e|0]=g[j+2|0];p=e+1|0;i=i+u|0;if(i>>>0>32){n=m;break a}r:{s:{if((c|0)>=4){n=i>>>3|0;l=i&7;break s}if(!c){c=0;l=i;j=k;break r}j=i>>>3|0;n=(b+c|0)-j>>>0>>0?c:j;l=i-(n<<3)|0}c=c-n|0;j=c+b|0;j=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24)}if(p>>>0>t>>>0){break b}n=q+(f[(u<<2)+4592>>2]&k>>>(0-i&31))|0;i=(m<<2)+r|0;q=h[i>>1];k=g[i+3|0];d[e+1|0]=g[i+2|0];p=e+2|0;i=k+l|0;if(i>>>0>32){s=3;break a}m=f[(k<<2)+4592>>2]&j>>>(0-i&31);t:{u:{if((c|0)>=4){l=i>>>3|0;i=i&7;break u}if(!c){c=0;break t}e=i>>>3|0;l=(b+c|0)-e>>>0>>0?c:e;i=i-(l<<3)|0}c=c-l|0;e=c+b|0;j=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24)}k=j;m=m+q|0;e=p;if(e>>>0<=t>>>0){continue}break}break b}e=a;while(1){v:{if((c|0)>=4){k=i>>>3|0;j=0;i=i&7;break v}if(!c){c=0;break c}k=i>>>3|0;j=(b+c|0)-k>>>0>>0;k=j?c:k;i=i-(k<<3)|0}c=c-k|0;s=c+b|0;k=g[s|0]|g[s+1|0]<<8|(g[s+2|0]<<16|g[s+3|0]<<24);if(j|e>>>0>=u>>>0){break c}j=(n<<2)+r|0;l=h[j>>1];q=g[j+3|0];d[e|0]=g[j+2|0];m=(m<<2)+r|0;j=h[m>>1];p=g[m+3|0];d[e+1|0]=g[m+2|0];n=l+(k<<(i&31)>>>(0-q&31)|0)|0;i=i+q|0;m=j+(k<<(i&31)>>>(0-p&31)|0)|0;w:{j=i+p|0;x:{if(j>>>0>32){i=j;break x}if((c|0)>=4){i=j&7;c=c-(j>>>3|0)|0;j=c+b|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);break w}if(!c){c=0;i=j;break x}i=j>>>3|0;l=s-i|0;k=j;j=l>>>0>>0?c:i;i=k-(j<<3)|0;c=c-j|0;j=c+b|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);if(l>>>0>=b>>>0){break w}}e=e+2|0;break c}j=(n<<2)+r|0;l=h[j>>1];q=g[j+3|0];d[e+2|0]=g[j+2|0];m=(m<<2)+r|0;j=h[m>>1];p=g[m+3|0];d[e+3|0]=g[m+2|0];n=l+(k<<(i&31)>>>(0-q&31)|0)|0;i=i+q|0;m=j+(k<<(i&31)>>>(0-p&31)|0)|0;e=e+4|0;i=i+p|0;if(i>>>0<33){continue}break}}v=-70;u=t+ -2|0;if(e>>>0>u>>>0){break b}s=2;while(1){j=(n<<2)+r|0;n=h[j>>1];q=g[j+3|0];d[e|0]=g[j+2|0];p=e+1|0;j=i+q|0;if(j>>>0>32){n=m;break a}y:{z:{if((c|0)>=4){l=j>>>3|0;j=j&7;break z}if(!c){c=0;l=k;break y}t=j;j=j>>>3|0;l=(b+c|0)-j>>>0>>0?c:j;j=t-(l<<3)|0}c=c-l|0;l=c+b|0;l=g[l|0]|g[l+1|0]<<8|(g[l+2|0]<<16|g[l+3|0]<<24)}if(p>>>0>u>>>0){break b}n=n+(k<<(i&31)>>>(0-q&31)|0)|0;i=(m<<2)+r|0;m=h[i>>1];k=g[i+3|0];d[e+1|0]=g[i+2|0];p=e+2|0;i=j+k|0;if(i>>>0>32){s=3;break a}j=l<<(j&31)>>>(0-k&31)|0;A:{B:{if((c|0)>=4){l=i>>>3|0;i=i&7;break B}if(!c){c=0;k=l;break A}e=i>>>3|0;l=(b+c|0)-e>>>0>>0?c:e;i=i-(l<<3)|0}c=c-l|0;e=c+b|0;k=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24)}m=j+m|0;e=p;if(e>>>0<=u>>>0){continue}break}}return v}d[p|0]=g[((n<<2)+r|0)+2|0];return(e+s|0)-a|0}function W(a,b,c,e,h,i,j,k){var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=-70;n=f[c>>2];s=n+f[c+4>>2]|0;a:{if(s>>>0>b-a>>>0){break a}r=-20;l=f[e>>2];if(n>>>0>h-l>>>0){break a}h=b+ -32|0;t=l+n|0;b=a+n|0;q=f[c+8>>2];b:{if((n|0)<=7){m=q;if((n|0)<1){break b}while(1){d[a|0]=g[l|0];l=l+1|0;a=a+1|0;if(a>>>0>>0){continue}break}m=q;break b}if(b>>>0<=h>>>0){while(1){m=g[l+4|0]|g[l+5|0]<<8|(g[l+6|0]<<16|g[l+7|0]<<24);n=g[l|0]|g[l+1|0]<<8|(g[l+2|0]<<16|g[l+3|0]<<24);d[a|0]=n;d[a+1|0]=n>>>8;d[a+2|0]=n>>>16;d[a+3|0]=n>>>24;d[a+4|0]=m;d[a+5|0]=m>>>8;d[a+6|0]=m>>>16;d[a+7|0]=m>>>24;m=g[l+12|0]|g[l+13|0]<<8|(g[l+14|0]<<16|g[l+15|0]<<24);n=g[l+8|0]|g[l+9|0]<<8|(g[l+10|0]<<16|g[l+11|0]<<24);d[a+8|0]=n;d[a+9|0]=n>>>8;d[a+10|0]=n>>>16;d[a+11|0]=n>>>24;d[a+12|0]=m;d[a+13|0]=m>>>8;d[a+14|0]=m>>>16;d[a+15|0]=m>>>24;l=l+16|0;a=a+16|0;if(a>>>0>>0){continue}break}m=q;break b}if(h>>>0>=a>>>0){n=a;m=l;while(1){o=g[m+4|0]|g[m+5|0]<<8|(g[m+6|0]<<16|g[m+7|0]<<24);p=g[m|0]|g[m+1|0]<<8|(g[m+2|0]<<16|g[m+3|0]<<24);d[n|0]=p;d[n+1|0]=p>>>8;d[n+2|0]=p>>>16;d[n+3|0]=p>>>24;d[n+4|0]=o;d[n+5|0]=o>>>8;d[n+6|0]=o>>>16;d[n+7|0]=o>>>24;o=g[m+12|0]|g[m+13|0]<<8|(g[m+14|0]<<16|g[m+15|0]<<24);p=g[m+8|0]|g[m+9|0]<<8|(g[m+10|0]<<16|g[m+11|0]<<24);d[n+8|0]=p;d[n+9|0]=p>>>8;d[n+10|0]=p>>>16;d[n+11|0]=p>>>24;d[n+12|0]=o;d[n+13|0]=o>>>8;d[n+14|0]=o>>>16;d[n+15|0]=o>>>24;m=m+16|0;n=n+16|0;if(n>>>0>>0){continue}break}l=(h-a|0)+l|0;a=h}m=q;if(b>>>0<=a>>>0){break b}while(1){d[a|0]=g[l|0];l=l+1|0;a=a+1|0;if((b|0)!=(a|0)){continue}break}m=f[c+8>>2]}a=b-q|0;f[e>>2]=t;c:{d:{if(m>>>0>b-i>>>0){if(m>>>0>b-j>>>0){break a}a=a-i|0;e=a+k|0;j=f[c+4>>2];if(e+j>>>0<=k>>>0){N(b,e,j);break c}b=N(b,e,0-a|0);m=a+j|0;f[c+4>>2]=m;b=b-a|0;break d}m=f[c+4>>2];i=a}c=b+m|0;if((m|0)<=7){if((m|0)<1){break c}while(1){d[b|0]=g[i|0];i=i+1|0;b=b+1|0;if(b>>>0>>0){continue}break}break c}a=b-i|0;e:{if(a>>>0<=7){d[b|0]=g[i|0];d[b+1|0]=g[i+1|0];d[b+2|0]=g[i+2|0];d[b+3|0]=g[i+3|0];e=i;i=a<<2;a=e+f[i+4752>>2]|0;e=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);d[b+4|0]=e;d[b+5|0]=e>>>8;d[b+6|0]=e>>>16;d[b+7|0]=e>>>24;i=a-f[i+4784>>2]|0;break e}a=g[i+4|0]|g[i+5|0]<<8|(g[i+6|0]<<16|g[i+7|0]<<24);e=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24);d[b|0]=e;d[b+1|0]=e>>>8;d[b+2|0]=e>>>16;d[b+3|0]=e>>>24;d[b+4|0]=a;d[b+5|0]=a>>>8;d[b+6|0]=a>>>16;d[b+7|0]=a>>>24}l=b+8|0;a=i+8|0;if(c>>>0<=h>>>0){e=l+m|0;if((l-a|0)<=15){while(1){b=g[a+4|0]|g[a+5|0]<<8|(g[a+6|0]<<16|g[a+7|0]<<24);c=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);d[l|0]=c;d[l+1|0]=c>>>8;d[l+2|0]=c>>>16;d[l+3|0]=c>>>24;d[l+4|0]=b;d[l+5|0]=b>>>8;d[l+6|0]=b>>>16;d[l+7|0]=b>>>24;a=a+8|0;l=l+8|0;if(l>>>0>>0){continue}break c}}while(1){b=g[a+4|0]|g[a+5|0]<<8|(g[a+6|0]<<16|g[a+7|0]<<24);c=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);d[l|0]=c;d[l+1|0]=c>>>8;d[l+2|0]=c>>>16;d[l+3|0]=c>>>24;d[l+4|0]=b;d[l+5|0]=b>>>8;d[l+6|0]=b>>>16;d[l+7|0]=b>>>24;b=g[a+12|0]|g[a+13|0]<<8|(g[a+14|0]<<16|g[a+15|0]<<24);c=g[a+8|0]|g[a+9|0]<<8|(g[a+10|0]<<16|g[a+11|0]<<24);d[l+8|0]=c;d[l+9|0]=c>>>8;d[l+10|0]=c>>>16;d[l+11|0]=c>>>24;d[l+12|0]=b;d[l+13|0]=b>>>8;d[l+14|0]=b>>>16;d[l+15|0]=b>>>24;a=a+16|0;l=l+16|0;if(l>>>0>>0){continue}break}break c}f:{if(l>>>0>h>>>0){h=l;break f}g:{if((l-a|0)<=15){b=l;i=a;while(1){e=g[i+4|0]|g[i+5|0]<<8|(g[i+6|0]<<16|g[i+7|0]<<24);j=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24);d[b|0]=j;d[b+1|0]=j>>>8;d[b+2|0]=j>>>16;d[b+3|0]=j>>>24;d[b+4|0]=e;d[b+5|0]=e>>>8;d[b+6|0]=e>>>16;d[b+7|0]=e>>>24;i=i+8|0;b=b+8|0;if(b>>>0>>0){continue}break}break g}b=l;i=a;while(1){e=g[i+4|0]|g[i+5|0]<<8|(g[i+6|0]<<16|g[i+7|0]<<24);j=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24);d[b|0]=j;d[b+1|0]=j>>>8;d[b+2|0]=j>>>16;d[b+3|0]=j>>>24;d[b+4|0]=e;d[b+5|0]=e>>>8;d[b+6|0]=e>>>16;d[b+7|0]=e>>>24;e=g[i+12|0]|g[i+13|0]<<8|(g[i+14|0]<<16|g[i+15|0]<<24);j=g[i+8|0]|g[i+9|0]<<8|(g[i+10|0]<<16|g[i+11|0]<<24);d[b+8|0]=j;d[b+9|0]=j>>>8;d[b+10|0]=j>>>16;d[b+11|0]=j>>>24;d[b+12|0]=e;d[b+13|0]=e>>>8;d[b+14|0]=e>>>16;d[b+15|0]=e>>>24;i=i+16|0;b=b+16|0;if(b>>>0>>0){continue}break}}a=(h-l|0)+a|0}if(c>>>0<=h>>>0){break c}while(1){d[h|0]=g[a|0];a=a+1|0;h=h+1|0;if((c|0)!=(h|0)){continue}break}}r=s}return r}function Aa(a,b,c,d,e,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;if(h){u=f[h+8>>2];v=f[h+4>>2]}a:{i=f[a+28908>>2];k=i?1:5;b:{c:{if(k>>>0>e>>>0){m=b;break c}s=a+28816|0;w=a+28752|0;x=h+10276|0;y=h+4116|0;z=h+6172|0;A=h+12|0;B=a+4120|0;C=a+6176|0;D=a+16|0;p=a+26668|0;E=a+10280|0;o=a+28856|0;t=o;m=b;while(1){if(((g[d|0]|g[d+1|0]<<8|(g[d+2|0]<<16|g[d+3|0]<<24))&-16)==407710288){k=i?1:5;while(1){if(e>>>0<8){return-72}i=g[d+4|0]|g[d+5|0]<<8|(g[d+6|0]<<16|g[d+7|0]<<24);if(i>>>0>4294967287){return-14}i=i+8|0;i=i>>>0>e>>>0?-72:i;if(i>>>0>4294967176){break b}e=e-i|0;if(e>>>0>>0){break c}d=d+i|0;if(((g[d|0]|g[d+1|0]<<8|(g[d+2|0]<<16|g[d+3|0]<<24))&-16)==407710288){continue}break}}d:{if(h){i=f[h+8>>2];j=f[h+4>>2];f[a+28744>>2]=k;f[a+28792>>2]=0;f[a+28796>>2]=0;f[a+10280>>2]=201326604;f[a+28808>>2]=0;f[a+28812>>2]=0;f[a+28800>>2]=3;f[a+28804>>2]=0;f[a+28956>>2]=f[a+28740>>2]!=(i+j|0);f[p+8>>2]=f[814];i=f[813];f[p>>2]=f[812];f[p+4>>2]=i;f[a+12>>2]=E;f[a+8>>2]=B;f[a+4>>2]=C;f[a>>2]=D;f[a+28952>>2]=f[h+26676>>2];i=f[h+4>>2];f[a+28736>>2]=i;f[a+28732>>2]=i;i=i+f[h+8>>2]|0;f[a+28728>>2]=i;f[a+28740>>2]=i;if(f[h+26680>>2]){f[a+28808>>2]=1;f[a+28812>>2]=1;f[a+12>>2]=x;f[a+8>>2]=y;f[a+4>>2]=z;f[a>>2]=A;f[a+26668>>2]=f[h+26664>>2];f[a+26672>>2]=f[h+26668>>2];f[a+26676>>2]=f[h+26672>>2];break d}f[a+28808>>2]=0;f[a+28812>>2]=0;break d}i=za(a,v,u);if(i>>>0>4294967176){break b}i=f[a+28728>>2]}if((i|0)!=(m|0)){f[a+28740>>2]=i;f[a+28728>>2]=m;j=f[a+28732>>2];f[a+28732>>2]=m;f[a+28736>>2]=(j-i|0)+m}j=f[a+28908>>2];if(e>>>0<(j?5:9)>>>0){i=-72;break a}k=j?1:5;i=g[(k+d|0)+ -1|0];l=i>>>6|0;n=f[(l<<2)+4736>>2]+(k+f[((i&3)<<2)+4720>>2]|0)|0;i=(i&32)>>>5|0;i=(n+(i^1)|0)+(i&!l)|0;if(i>>>0>4294967176){break a}if(e>>>0>>0){i=-72;break a}j=Q(w,d,i,j);if(j>>>0>4294967176){i=j;break a}if(j){i=-72;break a}j=f[a+28780>>2];if(!(!j|(j|0)==f[a+28952>>2])){i=-32;break a}if(f[a+28784>>2]){f[a+28848>>2]=2048144761;f[a+28852>>2]=1640531534;f[a+28840>>2]=0;f[a+28844>>2]=0;f[a+28832>>2]=668265295;f[a+28836>>2]=-1028477379;f[a+28824>>2]=-1379879466;f[a+28828>>2]=1625958382;f[a+28816>>2]=0;f[a+28820>>2]=0;f[o+32>>2]=0;f[o+36>>2]=0;f[t+24>>2]=0;f[t+28>>2]=0;j=o;f[j+16>>2]=0;f[j+20>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j>>2]=0;f[j+4>>2]=0}q=c?c+m|0:m;e=e-i|0;d=d+i|0;k=m;while(1){if(e>>>0<3){i=-72;break a}r=g[d|0]|g[d+1|0]<<8;l=(r|g[d+2|0]<<16)>>>3|0;i=-20;e:{f:{n=r>>>1&3;j=n;switch(j+ -1|0){case 2:break a;case 0:break e;default:break f}}j=l}e=e+ -3|0;if(e>>>0>>0){i=-72;break a}d=d+3|0;g:{h:{switch(n|0){case 0:if(!k){i=0;if(!j){break g}i=-74;break a}if(j>>>0>q-k>>>0){i=-70;break a}L(k,d,j);i=j;break g;case 1:if(!k){i=0;if(!l){break g}i=-74;break a}if(l>>>0>q-k>>>0){i=-70;break a}O(k,g[d|0],l);i=l;break g;case 2:break h;default:break a}}i=ba(a,k,q-k|0,d,j);if(i>>>0>4294967176){break a}}if(f[a+28784>>2]){aa(s,k,i)}k=i?i+k|0:k;e=e-j|0;d=d+j|0;if(!(r&1)){continue}break}i=f[a+28756>>2];j=i;l=f[a+28752>>2];if((l|0)!=-1|(i|0)!=-1){i=-20;n=l;l=k-m|0;if((n|0)!=(l|0)|l>>31!=(j|0)){break a}}if(f[a+28784>>2]){i=-22;if(e>>>0<4){break a}if((g[d|0]|g[d+1|0]<<8|(g[d+2|0]<<16|g[d+3|0]<<24))!=($(s)|0)){break a}e=e+ -4|0;d=d+4|0}i=k-m|0;if(i>>>0>=4294967177){break a}m=i?k:m;F=1;c=c-i|0;i=f[a+28908>>2];k=i?1:5;if(e>>>0>=k>>>0){continue}break}}i=-72;if(e){break b}i=m-b|0}return i}return F?(i|0)==-10?-72:i:i}function S(a,b,c,d,e){var h=0,j=0,k=0;k=f[a+28804>>2];j=f[a+28744>>2];a:{if(k+ -3>>>0>=2){break a}j=f[a+28744>>2];if(f[a+28800>>2]){break a}h=e>>>0>1?e:1;j=f[a+28744>>2];j=h>>>0>>0?h:j}h=-72;b:{c:{d:{if((e|0)!=(j|0)){break d}e:{if(!c){break e}h=f[a+28728>>2];if((h|0)==(b|0)){break e}f[a+28740>>2]=h;f[a+28728>>2]=b;j=f[a+28732>>2];f[a+28732>>2]=b;f[a+28736>>2]=(j-h|0)+b}h=-1;f:{g:{h:{i:{j:{switch(k|0){case 0:h=1;k:{if(f[a+28908>>2]){break k}h=5;if(((g[d|0]|g[d+1|0]<<8|(g[d+2|0]<<16|g[d+3|0]<<24))&-16)!=407710288){break k}L(a+160144|0,d,e);f[a+28804>>2]=6;f[a+28744>>2]=8-e;break b}if(h>>>0>e>>>0){f[a+28904>>2]=-72;return-72}b=g[(d+h|0)+ -1|0];c=b>>>6|0;h=f[(c<<2)+4736>>2]+(f[((b&3)<<2)+4720>>2]+h|0)|0;b=(b&32)>>>5|0;h=(h+(b^1)|0)+(b&!c)|0;f[a+28904>>2]=h;if(h>>>0>4294967176){break d}L(a+160144|0,d,e);f[a+28804>>2]=1;f[a+28744>>2]=h-e;break b;case 1:b=a+160144|0;L(b+(f[a+28904>>2]-e|0)|0,d,e);b=Q(a+28752|0,b,f[a+28904>>2],f[a+28908>>2]);if(b>>>0>4294967176){return b}h=-72;if(b){break d}b=f[a+28780>>2];if(b){h=-32;if((b|0)!=f[a+28952>>2]){break d}}if(f[a+28784>>2]){f[a+28816>>2]=0;f[a+28820>>2]=0;b=a+28856|0;f[b>>2]=0;f[b+4>>2]=0;b=a+28848|0;f[b>>2]=2048144761;f[b+4>>2]=1640531534;b=a+28840|0;f[b>>2]=0;f[b+4>>2]=0;b=a+28832|0;f[b>>2]=668265295;f[b+4>>2]=-1028477379;b=a+28824|0;f[b>>2]=-1379879466;f[b+4>>2]=1625958382;b=a+28864|0;f[b>>2]=0;f[b+4>>2]=0;b=a+28872|0;f[b>>2]=0;f[b+4>>2]=0;b=a+28880|0;f[b>>2]=0;f[b+4>>2]=0;b=a+28888|0;f[b>>2]=0;f[b+4>>2]=0}break c;case 2:c=g[d|0]|g[d+1|0]<<8;b=(c|g[d+2|0]<<16)>>>3|0;h=-20;l:{m:{d=c>>>1&3;e=d;switch(e+ -1|0){case 0:break l;case 2:break d;default:break m}}e=b}if(e>>>0>i[a+28768>>2]){break d}c=c&1;f[a+28932>>2]=b;f[a+28800>>2]=d;f[a+28744>>2]=e;if(e){f[a+28804>>2]=c?4:3;break b}if(c){if(!f[a+28784>>2]){break i}f[a+28804>>2]=5;f[a+28744>>2]=4;break b}break c;case 3:case 4:h=-20;n:{o:{switch(f[a+28800>>2]){case 2:h=ba(a,b,c,d,e);break n;case 0:if(!b){h=-74;if(e){break d}break g}h=-70;if(e>>>0>c>>>0){break d}L(b,d,e);if(e>>>0<=4294967176){break g}return e;case 1:break o;default:break d}}e=f[a+28932>>2];h=e?-74:0;if(!b){break n}h=-70;if(e>>>0>c>>>0){break n}O(b,g[d|0],e);h=e}j=0;f[a+28744>>2]=0;if(h>>>0>4294967176){break d}break f;case 6:break h;case 7:break i;case 5:break j;default:break d}}h=-22;if((g[d|0]|g[d+1|0]<<8|(g[d+2|0]<<16|g[d+3|0]<<24))!=($(a+28816|0)|0)){break d}}h=0;f[a+28804>>2]=0;f[a+28744>>2]=0;break d}L((a-e|0)+160152|0,d,e);f[a+28804>>2]=7;b=a;a=a+160148|0;f[b+28744>>2]=g[a|0]|g[a+1|0]<<8|(g[a+2|0]<<16|g[a+3|0]<<24);break b}j=f[a+28744>>2]-e|0;f[a+28744>>2]=j;h=e}c=h;if(c>>>0>i[a+28768>>2]){return-20}h=f[a+28796>>2];e=c;k=e+f[a+28792>>2]|0;if(k>>>0>>0){h=h+1|0}f[a+28792>>2]=k;f[a+28796>>2]=h;if(f[a+28784>>2]){aa(a+28816|0,b,c);j=f[a+28744>>2]}f[a+28728>>2]=b+c;if(j){return c}if(f[a+28804>>2]==4){b=f[a+28756>>2];d=b;e=f[a+28752>>2];if((e|0)!=-1|(b|0)!=-1){h=-20;if((e|0)!=f[a+28792>>2]|(d|0)!=f[a+28796>>2]){break d}}if(f[a+28784>>2]){f[a+28804>>2]=5;f[a+28744>>2]=4;return c}f[a+28804>>2]=0;f[a+28744>>2]=0;return c}f[a+28744>>2]=3;f[a+28804>>2]=2;return c}return h}f[a+28804>>2]=2;f[a+28744>>2]=3}return 0}function da(a,b,c,h,i){var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;k=z-144|0;z=k;j=-44;a:{if(i>>>0<1500){break a}C=f[a>>2];m=O(h+624|0,0,108);v=C&255;if(v>>>0>12){break a}q=h+1244|0;D=_(q,m,k+8|0,k+12|0,b,c);if(D>>>0<=4294967176){i=f[k+12>>2];if(i>>>0>v>>>0){break a}p=h+680|0;j=i;while(1){c=j;j=j+ -1|0;if(!f[m+(c<<2)>>2]){continue}break}b=1;j=0;o=c+1|0;if(o>>>0>=2){while(1){r=b<<2;w=f[r+m>>2];f[p+r>>2]=x;x=w+x|0;r=(b|0)!=(c|0);b=b+1|0;if(r){continue}break}}r=h+732|0;f[p>>2]=x;w=f[k+8>>2];if(w){while(1){s=g[j+q|0];y=p+(s<<2)|0;b=f[y>>2];f[y>>2]=b+1;b=r+(b<<1)|0;d[b+1|0]=s;d[b|0]=j;j=j+1|0;if((w|0)!=(j|0)){continue}break}}H=h+676|0;w=a+4|0;b=0;f[h+680>>2]=0;b:{if(o>>>0>=2){p=(i^-1)+v|0;j=1;while(1){q=j<<2;s=f[q+m>>2];f[h+q>>2]=b;b=(s<>>0<2|b>>>0>=m>>>0){break b}i=b;while(1){j=1;while(1){o=j<<2;f[o+(l(i,52)+h|0)>>2]=f[h+o>>2]>>>i;o=(c|0)!=(j|0);j=j+1|0;if(o){continue}break}i=i+1|0;if(i>>>0>>0){continue}break}break b}p=i+1|0;b=p-c|0}f[k- -64>>2]=f[h+48>>2];c=f[h+44>>2];f[k+56>>2]=f[h+40>>2];f[k+60>>2]=c;c=f[h+36>>2];f[k+48>>2]=f[h+32>>2];f[k+52>>2]=c;c=f[h+28>>2];f[k+40>>2]=f[h+24>>2];f[k+44>>2]=c;c=f[h+20>>2];f[k+32>>2]=f[h+16>>2];f[k+36>>2]=c;c=f[h+4>>2];f[k+16>>2]=f[h>>2];f[k+20>>2]=c;c=f[h+12>>2];f[k+24>>2]=f[h+8>>2];f[k+28>>2]=c;if(x){I=p-v|0;o=0;while(1){c=r+(o<<1)|0;i=g[c+1|0];m=p-i|0;s=v-m|0;y=1<>2];c:{if(s>>>0>=b>>>0){j=m+I|0;t=((j|0)>1?j:1)<<2;u=f[t+H>>2];i=l(m,52)+h|0;f[k+128>>2]=f[i+48>>2];n=f[i+44>>2];f[k+120>>2]=f[i+40>>2];f[k+124>>2]=n;n=f[i+36>>2];f[k+112>>2]=f[i+32>>2];f[k+116>>2]=n;n=f[i+28>>2];f[k+104>>2]=f[i+24>>2];f[k+108>>2]=n;n=f[i+20>>2];f[k+96>>2]=f[i+16>>2];f[k+100>>2]=n;n=f[i+12>>2];f[k+88>>2]=f[i+8>>2];f[k+92>>2]=n;n=f[i+4>>2];f[k+80>>2]=f[i>>2];f[k+84>>2]=n;n=x-u|0;F=w+(c<<2)|0;d:{if((j|0)<2){break d}t=f[t+(k+80|0)>>2];if(!t){break d}i=q|m<<16&16711680|16777216;j=0;while(1){B=(j<<2)+F|0;e[B>>1]=i;e[B+2>>1]=i>>>16;j=j+1|0;if((t|0)!=(j|0)){continue}break}}if(n){B=r+(u<<1)|0;i=0;while(1){A=B+(i<<1)|0;j=g[A+1|0];u=p-j|0;G=(k+80|0)+(j<<2)|0;j=f[G>>2];t=j+(1<>1]=u;e[A+2>>1]=u>>>16;j=j+1|0;if(j>>>0>>0){continue}break}f[G>>2]=t;i=i+1|0;if((n|0)!=(i|0)){continue}break}}j=c+y|0;break c}j=c+y|0;if(c>>>0>=j>>>0){break c}i=q|m<<16&16711680|16777216;while(1){m=w+(c<<2)|0;e[m>>1]=i;e[m+2>>1]=i>>>16;c=c+1|0;if((j|0)!=(c|0)){continue}break}}f[E>>2]=j;o=o+1|0;if((x|0)!=(o|0)){continue}break}}f[a>>2]=C&-16776961|v<<16|256}j=D}z=k+144|0;return j}function ya(a,b,c){var e=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=-20;a:{if(c>>>0<3){break a}b:{c:{d:{e:{e=g[b|0];l=e&3;switch(l-1|0){case 0:break b;case 1:break d;case 2:break e;default:break c}}if(f[a+28808>>2]){break d}return-30}if(c>>>0<5){break a}j=3;h=g[b|0]|g[b+1|0]<<8|(g[b+2|0]<<16|g[b+3|0]<<24);f:{g:{h:{i:{k=e>>>2&3;switch(k+ -2|0){case 1:break g;case 0:break h;default:break i}}i=h>>>14&1023;e=h>>>4&1023;h=!k;break f}i=h>>>18|0;j=4;e=h>>>4&16383;h=0;break f}e=h>>>4&262143;if(e>>>0>131072){break a}i=g[b+4|0]<<10|h>>>22;j=5;h=0}n=i+j|0;if(n>>>0>c>>>0){break a}if(!(!f[a+28956>>2]|e>>>0<769)){c=0;while(1){k=c>>>0<16324;c=c- -64|0;if(k){continue}break}}j:{if((l|0)==3){b=b+j|0;c=a+29040|0;j=f[a+12>>2];k=f[j>>2]>>>8|0;if(h){if(k&255){b=Fa(c,e,b,i,j);break j}b=X(c,e,b,i,j);break j}if(k&255){b=ca(c,e,b,i,j);break j}b=ea(c,e,b,i,j);break j}c=a+10280|0;if(h){h=b+j|0;b=Y(c,h,i,a+26680|0);if(b>>>0>4294967176|i>>>0<=b>>>0){break a}b=X(a+29040|0,e,b+h|0,i-b|0,c);break j}b=Ea(c,a+29040|0,e,b+j|0,i,a+26680|0)}if(b>>>0>4294967176){break a}f[a+28928>>2]=e;f[a+28808>>2]=1;f[a+28912>>2]=a+29040;if((l|0)==2){f[a+12>>2]=a+10280}b=a+e|0;a=b+29064|0;d[a|0]=0;d[a+1|0]=0;d[a+2|0]=0;d[a+3|0]=0;d[a+4|0]=0;d[a+5|0]=0;d[a+6|0]=0;d[a+7|0]=0;a=b+29056|0;d[a|0]=0;d[a+1|0]=0;d[a+2|0]=0;d[a+3|0]=0;d[a+4|0]=0;d[a+5|0]=0;d[a+6|0]=0;d[a+7|0]=0;a=b+29048|0;d[a|0]=0;d[a+1|0]=0;d[a+2|0]=0;d[a+3|0]=0;d[a+4|0]=0;d[a+5|0]=0;d[a+6|0]=0;d[a+7|0]=0;a=b+29040|0;d[a|0]=0;d[a+1|0]=0;d[a+2|0]=0;d[a+3|0]=0;d[a+4|0]=0;d[a+5|0]=0;d[a+6|0]=0;d[a+7|0]=0;return n}i=2;k:{l:{switch((e>>>2&3)+ -1|0){default:i=1;h=e>>>3|0;break k;case 0:h=(g[b|0]|g[b+1|0]<<8)>>>4|0;break k;case 2:break l}}i=3;h=(g[b|0]|g[b+1|0]<<8|g[b+2|0]<<16)>>>4|0}e=i+h|0;if(e+32>>>0>c>>>0){if(e>>>0>c>>>0){break a}b=L(a+29040|0,b+i|0,h);f[a+28928>>2]=h;f[a+28912>>2]=b;a=b+h|0;d[a+24|0]=0;d[a+25|0]=0;d[a+26|0]=0;d[a+27|0]=0;d[a+28|0]=0;d[a+29|0]=0;d[a+30|0]=0;d[a+31|0]=0;d[a+16|0]=0;d[a+17|0]=0;d[a+18|0]=0;d[a+19|0]=0;d[a+20|0]=0;d[a+21|0]=0;d[a+22|0]=0;d[a+23|0]=0;d[a+8|0]=0;d[a+9|0]=0;d[a+10|0]=0;d[a+11|0]=0;d[a+12|0]=0;d[a+13|0]=0;d[a+14|0]=0;d[a+15|0]=0;d[a|0]=0;d[a+1|0]=0;d[a+2|0]=0;d[a+3|0]=0;d[a+4|0]=0;d[a+5|0]=0;d[a+6|0]=0;d[a+7|0]=0;return e}f[a+28928>>2]=h;f[a+28912>>2]=b+i;return e}i=2;m:{n:{switch((e>>>2&3)+ -1|0){default:i=1;c=e>>>3|0;break m;case 0:c=(g[b|0]|g[b+1|0]<<8)>>>4|0;break m;case 2:break n}}if(c>>>0<4){break a}c=g[b|0]|g[b+1|0]<<8|g[b+2|0]<<16;if(c>>>0>2097167){break a}i=3;c=c>>>4|0}b=O(a+29040|0,g[b+i|0],c+32|0);f[a+28928>>2]=c;f[a+28912>>2]=b;m=i+1|0}return m}function aa(a,b,c){var d=0,e=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=f[a+4>>2];j=c+f[a>>2]|0;if(j>>>0>>0){e=e+1|0}f[a>>2]=j;f[a+4>>2]=e;d=f[a+72>>2];h=d+c|0;a:{b:{if(h>>>0<=31){if(!b){break b}L((a+d|0)+40|0,b,c);h=f[a+72>>2]+c|0;break b}l=b+c|0;if(d){L(d+(a+40|0)|0,b,32-d|0);j=f[a+72>>2];f[a+72>>2]=0;h=f[a+12>>2];c=f[a+8>>2];k=Ka(g[a+40|0]|g[a+41|0]<<8|(g[a+42|0]<<16|g[a+43|0]<<24),g[a+44|0]|g[a+45|0]<<8|(g[a+46|0]<<16|g[a+47|0]<<24),668265295,-1028477379);d=c+k|0;e=A+h|0;f[a+8>>2]=Ka(La(d,d>>>0>>0?e+1|0:e,31),A,-2048144761,-1640531535);f[a+12>>2]=A;d=f[a+20>>2];c=f[a+16>>2];e=Ka(g[a+48|0]|g[a+49|0]<<8|(g[a+50|0]<<16|g[a+51|0]<<24),g[a+52|0]|g[a+53|0]<<8|(g[a+54|0]<<16|g[a+55|0]<<24),668265295,-1028477379);h=c+e|0;d=A+d|0;f[a+16>>2]=Ka(La(h,h>>>0>>0?d+1|0:d,31),A,-2048144761,-1640531535);f[a+20>>2]=A;d=f[a+28>>2];c=f[a+24>>2];e=Ka(g[a+56|0]|g[a+57|0]<<8|(g[a+58|0]<<16|g[a+59|0]<<24),g[a+60|0]|g[a+61|0]<<8|(g[a+62|0]<<16|g[a+63|0]<<24),668265295,-1028477379);h=c+e|0;d=A+d|0;f[a+24>>2]=Ka(La(h,h>>>0>>0?d+1|0:d,31),A,-2048144761,-1640531535);f[a+28>>2]=A;h=f[a+36>>2];c=f[a+32>>2];d=a- -64|0;k=Ka(g[d|0]|g[d+1|0]<<8|(g[d+2|0]<<16|g[d+3|0]<<24),g[d+4|0]|g[d+5|0]<<8|(g[d+6|0]<<16|g[d+7|0]<<24),668265295,-1028477379);d=c+k|0;e=A+h|0;f[a+32>>2]=Ka(La(d,d>>>0>>0?e+1|0:e,31),A,-2048144761,-1640531535);f[a+36>>2]=A;b=(b-j|0)+32|0}if(b+32>>>0<=l>>>0){p=l+ -32|0;c=f[a+32>>2];k=f[a+36>>2];d=f[a+24>>2];m=f[a+28>>2];h=f[a+16>>2];n=f[a+20>>2];j=f[a+8>>2];o=f[a+12>>2];while(1){i=Ka(g[b+24|0]|g[b+25|0]<<8|(g[b+26|0]<<16|g[b+27|0]<<24),g[b+28|0]|g[b+29|0]<<8|(g[b+30|0]<<16|g[b+31|0]<<24),668265295,-1028477379)+c|0;e=k+A|0;c=Ka(La(i,i>>>0>>0?e+1|0:e,31),A,-2048144761,-1640531535);k=A;i=Ka(g[b+16|0]|g[b+17|0]<<8|(g[b+18|0]<<16|g[b+19|0]<<24),g[b+20|0]|g[b+21|0]<<8|(g[b+22|0]<<16|g[b+23|0]<<24),668265295,-1028477379)+d|0;e=m+A|0;d=Ka(La(i,i>>>0>>0?e+1|0:e,31),A,-2048144761,-1640531535);m=A;i=Ka(g[b+8|0]|g[b+9|0]<<8|(g[b+10|0]<<16|g[b+11|0]<<24),g[b+12|0]|g[b+13|0]<<8|(g[b+14|0]<<16|g[b+15|0]<<24),668265295,-1028477379)+h|0;e=n+A|0;h=Ka(La(i,i>>>0>>0?e+1|0:e,31),A,-2048144761,-1640531535);n=A;i=Ka(g[b|0]|g[b+1|0]<<8|(g[b+2|0]<<16|g[b+3|0]<<24),g[b+4|0]|g[b+5|0]<<8|(g[b+6|0]<<16|g[b+7|0]<<24),668265295,-1028477379)+j|0;e=o+A|0;j=Ka(La(i,i>>>0>>0?e+1|0:e,31),A,-2048144761,-1640531535);o=A;b=b+32|0;if(b>>>0<=p>>>0){continue}break}f[a+32>>2]=c;f[a+36>>2]=k;f[a+24>>2]=d;f[a+28>>2]=m;f[a+16>>2]=h;f[a+20>>2]=n;f[a+8>>2]=j;f[a+12>>2]=o}if(b>>>0>=l>>>0){break a}h=l-b|0;L(a+40|0,b,h)}f[a+72>>2]=h}}function $(a){var b=0,c=0,d=0,e=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=a+40|0;r=f[a+72>>2];n=d+r|0;b=f[a+4>>2];s=b;i=f[a>>2];a:{if(!b&i>>>0>=32|b>>>0>0){e=f[a+16>>2];h=f[a+20>>2];b=La(e,h,7);l=A;c=f[a+12>>2];o=c;m=f[a+8>>2];j=La(m,c,1);c=j+b|0;b=A+l|0;b=c>>>0>>0?b+1|0:b;l=f[a+24>>2];j=f[a+28>>2];k=La(l,j,12);c=k+c|0;b=A+b|0;b=c>>>0>>0?b+1|0:b;k=f[a+32>>2];q=f[a+36>>2];p=La(k,q,18);c=p+c|0;b=A+b|0;b=c>>>0

>>0?b+1|0:b;p=c;c=b;b=Ka(m,o,-2147483648,-1813351001);t=A;Ka(m,o,668265295,-1028477379);c=Ka(Ka(A>>>1|b,t,-2048144761,-1640531535)^p,A^c,-2048144761,-1640531535)+ -1028477341|0;b=A+ -2048144777|0;b=c>>>0<3266489955?b+1|0:b;o=Ka(e,h,-2147483648,-1813351001);m=A;Ka(e,h,668265295,-1028477379);c=Ka(Ka(A>>>1|o,m,-2048144761,-1640531535)^c,A^b,-2048144761,-1640531535)+ -1028477341|0;b=A+ -2048144777|0;e=c;c=c>>>0<3266489955?b+1|0:b;b=Ka(l,j,-2147483648,-1813351001);h=A;Ka(l,j,668265295,-1028477379);c=Ka(Ka(A>>>1|b,h,-2048144761,-1640531535)^e,A^c,-2048144761,-1640531535)+ -1028477341|0;b=A+ -2048144777|0;e=c;c=c>>>0<3266489955?b+1|0:b;b=Ka(k,q,-2147483648,-1813351001);h=A;Ka(k,q,668265295,-1028477379);b=Ka(Ka(A>>>1|b,h,-2048144761,-1640531535)^e,A^c,-2048144761,-1640531535)+ -1028477341|0;c=A+ -2048144777|0;e=b;b=b>>>0<3266489955?c+1|0:c;break a}b=f[a+28>>2]+668265263|0;c=f[a+24>>2]+374761413|0;if(c>>>0<374761413){b=b+1|0}e=c}b=b+s|0;c=e+i|0;if(c>>>0>>0){b=b+1|0}e=c;i=a+48|0;b:{if(n>>>0>>0){c=d;break b}while(1){c=b;h=g[d|0]|g[d+1|0]<<8|(g[d+2|0]<<16|g[d+3|0]<<24);b=g[d+4|0]|g[d+5|0]<<8|(g[d+6|0]<<16|g[d+7|0]<<24);Ka(h,b,668265295,-1028477379);b=Ka(La(Ka(A>>>1|Ka(h,b,-2147483648,-1813351001),A,-2048144761,-1640531535)^e,A^c,27),A,-2048144761,-1640531535)+ -1028477341|0;c=A+ -2048144777|0;e=b;b=b>>>0<3266489955?c+1|0:c;c=i;d=c;i=c+8|0;if(i>>>0<=n>>>0){continue}break}}d=c+4|0;c:{if(d>>>0>n>>>0){d=c;break c}c=Ka(La(Ka(g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24),0,-2048144761,-1640531535)^e,b^A,23),A,668265295,-1028477379)+ -1640531463|0;b=A+374761393|0;b=c>>>0<2654435833?b+1|0:b;e=c}if(d>>>0>>0){a=(a+r|0)+40|0;while(1){e=Ka(La(Ka(g[d|0],0,374761413,668265263)^e,b^A,11),A,-2048144761,-1640531535);b=A;d=d+1|0;if((a|0)!=(d|0)){continue}break}}a=Ka(e^b>>>1,b,668265295,-1028477379);c=A;a=Ka(a^((c&536870911)<<3|a>>>29),c^c>>>29,-1640531463,374761393);d=A;A=d;return a^d}function Q(a,b,c,d){var e=0,h=0,i=0,j=0,k=0,l=0,m=0;f[a>>2]=0;f[a+4>>2]=0;f[a+32>>2]=0;f[a+36>>2]=0;f[a+24>>2]=0;f[a+28>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;h=d?1:5;if(h>>>0>c>>>0){return h}if(!b){return-1}e=1;a:{b:{c:{d:{e:{f:{g:{h:{if((d|0)==1){d=b;if(c){break h}d=-72;break g}e=g[b|0]|g[b+1|0]<<8|(g[b+2|0]<<16|g[b+3|0]<<24);if((e|0)!=-47205080){break f}e=h;d=(b+h|0)+ -1|0}d=g[d|0];i=d>>>6|0;e=f[(i<<2)+4736>>2]+(f[((d&3)<<2)+4720>>2]+e|0)|0;d=(d&32)>>>5|0;d=(e+(d^1)|0)+(d&!i)|0}if(d>>>0>c>>>0){break a}f[a+24>>2]=d;d=-14;c=b+h|0;i=g[c+ -1|0];if(i&8){break a}k=i&32;if(!k){d=-16;c=g[c|0];if(c>>>0>167){break a}d=c&7;c=(c>>>3|0)+10|0;j=c&31;if(32<=(c&63)>>>0){e=1<>>32-j;c=1<>>3,e>>>3|0)+c|0;j=e+A|0;j=d>>>0>>0?j+1|0:j;l=d;h=h+1|0}m=i>>>6|0;e=i>>>2|0;d=0;switch((i&3)+ -1|0){case 2:break c;case 1:break d;case 0:break e;default:break b}}d=-10;if((e&-16)!=407710288){break a}d=8;if(c>>>0<8){break a}f[a+8>>2]=0;f[a+12>>2]=0;f[a+32>>2]=0;f[a+36>>2]=0;f[a+24>>2]=0;f[a+28>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;b=g[b+4|0]|g[b+5|0]<<8|(g[b+6|0]<<16|g[b+7|0]<<24);f[a+20>>2]=1;f[a>>2]=b;f[a+4>>2]=0;return 0}d=g[b+h|0];h=h+1|0;break b}c=b+h|0;d=g[c|0]|g[c+1|0]<<8;h=h+2|0;break b}c=b+h|0;d=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);h=h+4|0}i=e&1;i:{j:{switch(m+ -1|0){default:e=-1;c=-1;if(!k){break i}e=g[b+h|0];c=0;break i;case 0:c=0;b=b+h|0;b=(g[b|0]|g[b+1|0]<<8)+256|0;if(b>>>0<256){c=1}e=b;break i;case 1:b=b+h|0;e=g[b|0]|g[b+1|0]<<8|(g[b+2|0]<<16|g[b+3|0]<<24);c=0;break i;case 2:break j}}b=b+h|0;e=g[b|0]|g[b+1|0]<<8|(g[b+2|0]<<16|g[b+3|0]<<24);c=g[b+4|0]|g[b+5|0]<<8|(g[b+6|0]<<16|g[b+7|0]<<24)}f[a+32>>2]=i;f[a+28>>2]=d;b=e;f[a>>2]=b;f[a+4>>2]=c;d=0;f[a+20>>2]=0;e=k?b:l;f[a+8>>2]=e;b=k?c:j;f[a+12>>2]=b;f[a+16>>2]=!b&e>>>0<131072|b>>>0<0?e:131072}return d}function Fa(a,b,c,e,f){var i=0,j=0,k=0,l=0,m=0,n=0,p=0;if(!e){return-72}a:{b:{c:{if(e>>>0>=4){j=g[(c+e|0)+ -1|0];i=-1;if(!j){break a}if(e>>>0<=4294967176){break c}return e}j=g[c|0];d:{switch(e+ -2|0){case 1:j=g[c+2|0]<<16|j;case 0:j=(g[c+1|0]<<8)+j|0;break;default:break d}}i=g[(c+e|0)+ -1|0];if(!i){return-20}i=((o(i)|-32)-(e<<3)|0)+41|0;break b}i=(o(j)|-32)+9|0;k=e+ -4|0;e=k+c|0;j=g[e|0]|g[e+1|0]<<8|(g[e+2|0]<<16|g[e+3|0]<<24)}m=f+4|0;n=a+b|0;e=h[f+2>>1];e:{f:{g:{h:{if(i>>>0>=33){f=0-e&31;break h}p=n+ -3|0;f=0-e&31;while(1){i:{if((k|0)>=4){j=i>>>3|0;l=0;e=i&7;break i}if(!k){l=n+ -2|0;k=0;e=i;break f}e=i>>>3|0;l=(c+k|0)-e>>>0>>0;j=l?k:e;e=i-(j<<3)|0}k=k-j|0;i=k+c|0;j=g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24);if(l|a>>>0>=p>>>0){break g}i=(j<<(e&31)>>>f<<2)+m|0;l=h[i>>1];d[a|0]=l;d[a+1|0]=l>>>8;a=g[i+3|0]+a|0;i=g[i+2|0]+e|0;e=(j<<(i&31)>>>f<<2)+m|0;l=h[e>>1];d[a|0]=l;d[a+1|0]=l>>>8;a=a+g[e+3|0]|0;i=i+g[e+2|0]|0;if(i>>>0<33){continue}break}}l=n+ -2|0;break e}l=n+ -2|0;if(e>>>0<=32){break f}i=e;break e}while(1){j:{if((k|0)>=4){i=e&7;j=e>>>3|0;e=0;break j}if(!k){k=0;i=e;break e}i=e;j=e>>>3|0;e=(c+k|0)-j>>>0>>0;j=e?k:j;i=i-(j<<3)|0}k=k-j|0;j=k+c|0;j=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);if(e|a>>>0>l>>>0){break e}e=(j<<(i&31)>>>f<<2)+m|0;p=h[e>>1];d[a|0]=p;d[a+1|0]=p>>>8;a=g[e+3|0]+a|0;e=g[e+2|0]+i|0;if(e>>>0<=32){continue}break}i=e}if(a>>>0<=l>>>0){while(1){c=(j<<(i&31)>>>f<<2)+m|0;e=h[c>>1];d[a|0]=e;d[a+1|0]=e>>>8;i=g[c+2|0]+i|0;a=g[c+3|0]+a|0;if(a>>>0<=l>>>0){continue}break}}k:{if(a>>>0>=n>>>0){break k}e=a;c=j<<(i&31)>>>f|0;a=(c<<2)+m|0;d[e|0]=g[a|0];if(g[a+3|0]==1){i=g[a+2|0]+i|0;break k}if(i>>>0>31){break k}a=g[((c<<2)+m|0)+2|0]+i|0;i=a>>>0<32?a:32}i=k?-20:(i|0)!=32?-20:b}return i}function P(a,b,c,d,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;p=z-16|0;z=p;a:{if(h>>>0<=3){f[p+12>>2]=0;L(p+12|0,d,h);a=P(a,b,c,p+12|0,4);k=a>>>0<4294967177?a>>>0>h>>>0?-20:a:a;break a}s=O(a,0,(f[b>>2]<<1)+2|0);j=g[d|0]|g[d+1|0]<<8|(g[d+2|0]<<16|g[d+3|0]<<24);a=j&15;k=-44;if(a>>>0>10){break a}f[c>>2]=a+5;c=d+h|0;r=c+ -4|0;t=c+ -7|0;u=c+ -5|0;c=4;h=j>>>4|0;q=a+6|0;m=32<>2];i=d;j=0;while(1){b:{c:{if(!l){a=j;break c}a=j;if((h&65535)==65535){while(1){d:{if(i>>>0>>0){h=(g[i+2|0]|g[i+3|0]<<8|(g[i+4|0]<<16|g[i+5|0]<<24))>>>c|0;i=i+2|0;break d}c=c+16|0;h=h>>>16|0}a=a+24|0;if((h&65535)==65535){continue}break}}l=h&3;if((l|0)==3){while(1){c=c+2|0;a=a+3|0;h=h>>>2|0;l=h&3;if((l|0)==3){continue}break}}a=a+l|0;k=-48;if(a>>>0>o>>>0){break a}c=c+2|0;e:{if(a>>>0<=j>>>0){a=j;break e}O((j<<1)+s|0,0,a-j<<1);while(1){j=j+1|0;if((j|0)!=(a|0)){continue}break}}j=(c>>3)+i|0;if(!(j>>>0>r>>>0?i>>>0>t>>>0:0)){c=c&7;h=(g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24))>>>c|0;break b}h=h>>>2|0}j=i}i=m+ -1&h;o=(m<<1)+ -1|0;l=o-n|0;k=q+ -1|0;f:{if(i>>>0>>0){break f}h=h&o;i=h-((h|0)<(m|0)?0:l)|0;k=q}l=k;h=i+ -1|0;e[(a<<1)+s>>1]=h;n=((i|0)<1?h:1-i|0)+n|0;if((n|0)<(m|0)){while(1){q=q+ -1|0;m=m>>1;if((n|0)<(m|0)){continue}break}}c=c+l|0;i=(c>>3)+j|0;g:{if(!(i>>>0>r>>>0?j>>>0>t>>>0:0)){c=c&7;break g}i=r;c=c+(j-i<<3)|0}if((n|0)>=2){l=!h;h=(g[i|0]|g[i+1|0]<<8|(g[i+2|0]<<16|g[i+3|0]<<24))>>>(c&31)|0;j=a+1|0;o=f[b>>2];if(j>>>0<=o>>>0){continue}}break}k=-20;if((n|0)!=1|(c|0)>32){break a}f[b>>2]=a;k=((c+7>>3)+i|0)-d|0}m=k;z=p+16|0;return m}function X(a,b,c,e,f){var i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0;if(!e){return-72}l=h[f+2>>1];a:{b:{c:{if(e>>>0>=4){j=g[(c+e|0)+ -1|0];i=-1;if(!j){break a}if(e>>>0<=4294967176){break c}return e}k=g[c|0];d:{switch(e+ -2|0){case 1:k=g[c+2|0]<<16|k;case 0:k=(g[c+1|0]<<8)+k|0;break;default:break d}}i=g[(c+e|0)+ -1|0];if(!i){return-20}i=((o(i)|-32)-(e<<3)|0)+41|0;e=0;break b}i=(o(j)|-32)+9|0;e=e+ -4|0;j=e+c|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24)}n=f+4|0;p=a+b|0;e:{f:{g:{if(i>>>0>=33){m=0-l&31;j=c+e|0;break g}q=p+ -3|0;m=0-l&31;h:{i:{j:{while(1){k:{if((e|0)>=4){k=i>>>3|0;l=0;f=i&7;break k}if(!e){e=0;j=c;f=i;break i}f=i>>>3|0;l=(c+e|0)-f>>>0>>0;k=l?e:f;f=i-(k<<3)|0}e=e-k|0;j=e+c|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);if(l|a>>>0>=q>>>0){break j}i=(k<<(f&31)>>>m<<1)+n|0;j=g[i+1|0];d[a|0]=g[i|0];f=f+j|0;i=(k<<(f&31)>>>m<<1)+n|0;j=g[i+1|0];d[a+1|0]=g[i|0];a=a+2|0;i=f+j|0;if(i>>>0<33){continue}break}j=c+e|0;break g}if(f>>>0>32){break h}}while(1){l:{if((e|0)>=4){k=f>>>3|0;l=0;i=f&7;break l}if(!e){break h}i=f>>>3|0;l=(c+e|0)-i>>>0>>0;k=l?e:i;i=f-(k<<3)|0}e=e-k|0;j=e+c|0;k=g[j|0]|g[j+1|0]<<8|(g[j+2|0]<<16|g[j+3|0]<<24);f=a>>>0>=p>>>0;if(!(l?0:!f)){if(!f){break f}break e}f=(k<<(i&31)>>>m<<1)+n|0;l=g[f+1|0];d[a|0]=g[f|0];a=a+1|0;f=i+l|0;if(f>>>0<=32){continue}break}}i=f}if(a>>>0>=p>>>0){break e}}while(1){e=(k<<(i&31)>>>m<<1)+n|0;f=g[e+1|0];d[a|0]=g[e|0];i=f+i|0;a=a+1|0;if((p|0)!=(a|0)){continue}break}}i=(i|0)!=32?-20:(c|0)!=(j|0)?-20:b}return i}function _(a,b,c,e,h,i){var j=0,k=0,l=0,m=0,n=0,p=0;m=z-784|0;z=m;j=-72;a:{if(!i){break a}k=d[h|0];l=k&255;b:{c:{if((k|0)<=-1){k=l+ -126>>>1|0;if(k>>>0>=i>>>0){break a}j=-20;l=l+ -127|0;if(l>>>0>=256){break a}if(!l){break b}h=h+1|0;i=0;while(1){j=h+(i>>>1|0)|0;d[a+i|0]=g[j|0]>>>4;d[(i|1)+a|0]=g[j|0]&15;i=i+2|0;if(i>>>0>>0){continue}break}j=l;l=k;break c}if(l>>>0>=i>>>0){break a}f[m+264>>2]=255;i=h+1|0;h=P(m+272|0,m+264|0,m+268|0,i,l);d:{if(h>>>0>4294967176){j=h;break d}j=-44;k=f[m+268>>2];if(k>>>0>6){break d}j=pa(m,m+272|0,f[m+264>>2],k);if(j>>>0>4294967176){break d}j=ja(a,h+i|0,l-h|0,m)}if(j>>>0>4294967176){break a}}k=j;i=b;f[i>>2]=0;f[i+4>>2]=0;h=0;f[i+48>>2]=0;f[i+40>>2]=0;f[i+44>>2]=0;f[i+32>>2]=0;f[i+36>>2]=0;f[i+24>>2]=0;f[i+28>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;j=-20;if(!k){break a}i=0;while(1){p=a+i|0;n=g[p|0];if(n>>>0>11){break a}n=(n<<2)+b|0;f[n>>2]=f[n>>2]+1;h=(1<>1)+h|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}if(!h|h>>>0>4095){break a}i=e;e=32-o(h)|0;f[i>>2]=e;e=(1<>2]=f[a>>2]+1;a=f[b+4>>2];if(a>>>0<2|a&1){break a}f[c>>2]=k+1;j=l+1|0;break a}f[b>>2]=0;f[b+4>>2]=0;f[b+48>>2]=0;f[b+40>>2]=0;f[b+44>>2]=0;f[b+32>>2]=0;f[b+36>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0}z=m+784|0;return j}function U(a){var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;i=8;a:{b:{while(1){if(i+ -1&i){break b}i=i>>>0>8?i:8;d=f[1467];h=d;g=f[1466];j=g;a=a>>>0>8?a+3&-4:8;c:{if(a>>>0<=127){e=(a>>>3|0)+ -1|0;break c}b=o(a);e=((a>>>29-b^4)-(b<<2)|0)+110|0;if(a>>>0<=4095){break c}b=((a>>>30-b^2)-(b<<1)|0)+71|0;e=b>>>0<63?b:63}b=e;c=b&31;if(32<=(b&63)>>>0){b=0;c=d>>>c|0}else{b=d>>>c|0;c=((1<>>c}d=b;if(b|c){while(1){h=c;g=Ja(c,d);b=g;c=b&31;if(32<=(b&63)>>>0){b=0;h=d>>>c|0}else{b=d>>>c|0;h=((1<>>c}d=b;e=e+g|0;g=e<<4;b=f[g+4840>>2];j=g+4832|0;d:{if((b|0)!=(j|0)){c=T(b,i,a);if(c){break a}c=f[b+4>>2];f[c+8>>2]=f[b+8>>2];f[f[b+8>>2]+4>>2]=c;f[b+8>>2]=j;c=g+4836|0;f[b+4>>2]=f[c>>2];f[c>>2]=b;f[f[b+4>>2]+8>>2]=b;e=e+1|0;c=(d&1)<<31|h>>>1;d=d>>>1|0;break d}b=f[1467];f[1466]=f[1466]&La(-2,-1,e);f[1467]=A&b;c=h^1}if(c|d){continue}break}g=f[1466];h=f[1467]}d=o(h);d=63-((d|0)==32?o(g)+32|0:d)<<4;b=d+4832|0;d=f[d+4840>>2];e:{if(!h&g>>>0<1073741824|h>>>0<0){break e}e=99;if((b|0)==(d|0)){break e}while(1){if(!e){break e}c=T(d,i,a);if(c){break a}e=e+ -1|0;d=f[d+8>>2];if((b|0)!=(d|0)){continue}break}d=b}if(Z(a+48|0)){continue}break}if((b|0)==(d|0)){break b}while(1){c=T(d,i,a);if(c){break a}d=f[d+8>>2];if((b|0)!=(d|0)){continue}break}}c=0}return c}function L(a,b,c){var e=0,h=0,i=0;if(c>>>0>=512){x(a|0,b|0,c|0)|0;return a}h=a+c|0;a:{if(!((a^b)&3)){b:{if((c|0)<1){c=a;break b}if(!(a&3)){c=a;break b}c=a;while(1){d[c|0]=g[b|0];b=b+1|0;c=c+1|0;if(c>>>0>=h>>>0){break b}if(c&3){continue}break}}e=h&-4;c:{if(e>>>0<64){break c}i=e+ -64|0;if(c>>>0>i>>>0){break c}while(1){f[c>>2]=f[b>>2];f[c+4>>2]=f[b+4>>2];f[c+8>>2]=f[b+8>>2];f[c+12>>2]=f[b+12>>2];f[c+16>>2]=f[b+16>>2];f[c+20>>2]=f[b+20>>2];f[c+24>>2]=f[b+24>>2];f[c+28>>2]=f[b+28>>2];f[c+32>>2]=f[b+32>>2];f[c+36>>2]=f[b+36>>2];f[c+40>>2]=f[b+40>>2];f[c+44>>2]=f[b+44>>2];f[c+48>>2]=f[b+48>>2];f[c+52>>2]=f[b+52>>2];f[c+56>>2]=f[b+56>>2];f[c+60>>2]=f[b+60>>2];b=b- -64|0;c=c- -64|0;if(c>>>0<=i>>>0){continue}break}}if(c>>>0>=e>>>0){break a}while(1){f[c>>2]=f[b>>2];b=b+4|0;c=c+4|0;if(c>>>0>>0){continue}break}break a}if(h>>>0<4){c=a;break a}e=h+ -4|0;if(e>>>0>>0){c=a;break a}c=a;while(1){d[c|0]=g[b|0];d[c+1|0]=g[b+1|0];d[c+2|0]=g[b+2|0];d[c+3|0]=g[b+3|0];b=b+4|0;c=c+4|0;if(c>>>0<=e>>>0){continue}break}}if(c>>>0>>0){while(1){d[c|0]=g[b|0];b=b+1|0;c=c+1|0;if((h|0)!=(c|0)){continue}break}}return a}function Da(a,b,c){var d=0,e=0,h=0,i=0,j=0,k=0;d=z-128|0;z=d;k=-30;a:{if(c>>>0<9){break a}h=b+8|0;e=da(a+10264|0,h,c+ -8|0,a,10264);if(e>>>0>4294967176){break a}f[d+124>>2]=31;e=e>>>0<4294967177?e+h|0:h;h=b+c|0;c=P(d,d+124|0,d+120|0,e,h-e|0);if(c>>>0>4294967176){break a}i=f[d+124>>2];if(i>>>0>31){break a}j=f[d+120>>2];if(j>>>0>=9){break a}R(a+4104|0,d,i,2256,2384,j);f[d+124>>2]=52;c=c+e|0;e=P(d,d+124|0,d+120|0,c,h-c|0);if(e>>>0>4294967176){break a}i=f[d+124>>2];if(i>>>0>52){break a}j=f[d+120>>2];if(j>>>0>=10){break a}R(a+6160|0,d,i,2512,2736,j);f[d+124>>2]=35;c=c+e|0;e=P(d,d+124|0,d+120|0,c,h-c|0);if(e>>>0>4294967176){break a}i=f[d+124>>2];if(i>>>0>35){break a}j=f[d+120>>2];if(j>>>0>=10){break a}R(a,d,i,2960,3104,j);c=c+e|0;e=c+12|0;if(e>>>0>h>>>0){break a}i=g[c|0]|g[c+1|0]<<8|(g[c+2|0]<<16|g[c+3|0]<<24);h=h-e|0;if(i+ -1>>>0>=h>>>0){break a}f[a+26652>>2]=i;e=g[c+4|0]|g[c+5|0]<<8|(g[c+6|0]<<16|g[c+7|0]<<24);if(e+ -1>>>0>=h>>>0){break a}f[a+26656>>2]=e;c=c+4|0;e=g[c+4|0]|g[c+5|0]<<8|(g[c+6|0]<<16|g[c+7|0]<<24);if(e+ -1>>>0>=h>>>0){break a}f[a+26660>>2]=e;k=(c-b|0)+8|0}z=d+128|0;return k}function Ba(a,b,c){var d=0,e=0,h=0,i=0,j=0,k=0,m=0;h=z-48|0;z=h;a:{if(!(((g[b|0]|g[b+1|0]<<8|(g[b+2|0]<<16|g[b+3|0]<<24))&-16)!=407710288|c>>>0<8)){b=g[b+4|0]|g[b+5|0]<<8|(g[b+6|0]<<16|g[b+7|0]<<24);f[a+8>>2]=0;f[a+12>>2]=0;f[a+4>>2]=0;j=a;a=b+8|0;f[j>>2]=b>>>0>4294967287?-14:a>>>0>c>>>0?-72:a;break a}j=a;d=Q(h+8|0,b,c,0);b:{if(d>>>0>=4294967177){f[a>>2]=d;a=-2;b=-1;break b}if(d){f[a>>2]=-72;a=-2;b=-1;break b}d=f[h+32>>2];c=c-d|0;d=b+d|0;c:{while(1){if(c>>>0<3){e=-72;break c}e=-20;d:{e:{i=g[d|0]|g[d+1|0]<<8;k=i>>>1&3;switch(k+ -1|0){case 2:break c;case 0:break d;default:break e}}k=(g[d+2|0]<<16|i)>>>3|0}e=k+3|0;if(c>>>0>>0){f[a>>2]=-72;a=-2;b=-1;break b}m=m+1|0;c=c-e|0;d=d+e|0;if(!(i&1)){continue}break}if(f[h+40>>2]){if(c>>>0<=3){f[a>>2]=-72;a=-2;b=-1;break b}d=d+4|0}i=f[h+24>>2];c=f[h+8>>2];e=f[h+12>>2];f[a+4>>2]=0;f[a>>2]=d-b;b=(c|0)==-1&(e|0)==-1;a=b?l(i,m):c;b=b?0:e;break b}f[a>>2]=e;a=-2;b=-1}f[j+8>>2]=a;f[j+12>>2]=b}z=h+48|0}function R(a,b,c,g,i,j){var k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0;s=z-112|0;q=a+8|0;p=1<>2]=j;f[a>>2]=1;break a}r=65536<>16;t=p+ -1|0;m=t;l=1;while(1){u=k<<1;n=h[u+b>>1];b:{if((n|0)==65535){f[((m<<3)+q|0)+4>>2]=k;m=m+ -1|0;n=1;break b}l=(r|0)>n<<16>>16?l:0}e[s+u>>1]=n;n=(c|0)!=(k|0);k=k+1|0;if(n){continue}break}f[a+4>>2]=j;f[a>>2]=l;if((c|0)==-1){break a}n=((p>>>3)+(p>>>1)|0)+3|0;k=0;l=0;while(1){a=e[(l<<1)+b>>1];if((a|0)>=1){a=a&65535;r=a>>>0>1?a:1;a=0;while(1){f[((k<<3)+q|0)+4>>2]=l;while(1){k=k+n&t;if(k>>>0>m>>>0){continue}break}a=a+1|0;if((r|0)!=(a|0)){continue}break}}a=(c|0)==(l|0);l=l+1|0;if(!a){continue}break}}c=p>>>0>1?p:1;j=j+1|0;m=0;while(1){a=(m<<3)+q|0;l=f[a+4>>2];k=(l<<1)+s|0;b=h[k>>1];e[k>>1]=b+1;k=j+(o(b)^-32)|0;d[a+3|0]=k;e[a>>1]=(b<<(k&255))-p;b=l<<2;d[a+2|0]=f[b+i>>2];f[a+4>>2]=f[b+g>>2];m=m+1|0;if((c|0)!=(m|0)){continue}break}}function Y(a,b,c,e){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=z-16|0;z=k;f[k+12>>2]=0;f[k+8>>2]=0;h=-44;n=e- -64|0;b=_(n,e,k+8|0,k+12|0,b,c);a:{b:{if(b>>>0>4294967176){break b}j=1;c=f[k+12>>2];i=f[a>>2];if(c>>>0>(i&255)+1>>>0){break a}f[a>>2]=i&-16776961|c<<16&16711680;if(c+1>>>0>=2){h=0;while(1){i=(j<<2)+e|0;m=f[i>>2];f[i>>2]=h;h=(m<>2];if(!o){break b}m=a+4|0;p=c+1|0;h=0;while(1){j=g[h+n|0];a=(j<<2)+e|0;i=a;c=f[a>>2];a=1<>1;l=c+a|0;f[i>>2]=l;i=p-j|0;c:{if(a>>>0>=4){if(c>>>0>=l>>>0){break c}while(1){a=m+(c<<1)|0;d[a+1|0]=i;d[a|0]=h;d[a+3|0]=i;d[a+2|0]=h;d[a+5|0]=i;d[a+4|0]=h;d[a+7|0]=i;d[a+6|0]=h;c=c+4|0;if(c>>>0>>0){continue}break}break c}j=0;if(!a){break c}while(1){l=m+(c+j<<1)|0;d[l+1|0]=i;d[l|0]=h;j=j+1|0;if((a|0)!=(j|0)){continue}break}}h=h+1|0;if((o|0)!=(h|0)){continue}break}}h=b}z=k+16|0;return h}function za(a,b,c){var d=0,e=0,h=0;f[a+28792>>2]=0;f[a+28796>>2]=0;f[a+28728>>2]=0;f[a+28732>>2]=0;f[a+28952>>2]=0;f[a+28808>>2]=0;f[a+28812>>2]=0;f[a+28800>>2]=3;f[a+28804>>2]=0;d=a+28736|0;f[d>>2]=0;f[d+4>>2]=0;d=a+10280|0;f[d>>2]=201326604;f[a+28744>>2]=f[a+28908>>2]?1:5;f[a+12>>2]=d;f[a+8>>2]=a+4120;f[a+4>>2]=a+6176;f[a>>2]=a+16;h=f[813];d=a+26668|0;f[d>>2]=f[812];f[d+4>>2]=h;f[a+26676>>2]=f[814];a:{b:{if(!b|!c){break b}if((g[b|0]|g[b+1|0]<<8|(g[b+2|0]<<16|g[b+3|0]<<24))!=-332356553|c>>>0<=7){break a}f[a+28952>>2]=g[b+4|0]|g[b+5|0]<<8|(g[b+6|0]<<16|g[b+7|0]<<24);e=-30;d=Da(a+16|0,b,c);if(d>>>0>4294967176){break b}f[a+28808>>2]=1;f[a+28812>>2]=1;e=f[a+28728>>2];f[a+28740>>2]=e;h=f[a+28732>>2];b=d>>>0<4294967177?b+d|0:b;f[a+28732>>2]=b;f[a+28728>>2]=b+(c-d|0);f[a+28736>>2]=b+(h-e|0);e=0}return e}f[a+28736>>2]=b;f[a+28740>>2]=0;f[a+28732>>2]=b;f[a+28728>>2]=b+c;return 0}function pa(a,b,c,f){var i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0;n=z-512|0;z=n;j=-46;a:{if(c>>>0>255){break a}j=-44;if(f>>>0>12){break a}p=a+4|0;q=65536<>16;m=1<>1];b:{if((l|0)==65535){d[((k<<2)+p|0)+2|0]=i;k=k+ -1|0;l=1;break b}j=(q|0)>l<<16>>16?j:0}e[n+s>>1]=l;l=(c|0)!=(i|0);i=i+1|0;if(l){continue}break}e[a+2>>1]=j;e[a>>1]=f;l=((m>>>3)+(m>>>1)|0)+3|0;i=0;j=0;while(1){a=e[(j<<1)+b>>1];if((a|0)>=1){a=a&65535;q=a>>>0>1?a:1;a=0;while(1){d[((i<<2)+p|0)+2|0]=j;while(1){i=i+l&r;if(i>>>0>k>>>0){continue}break}a=a+1|0;if((q|0)!=(a|0)){continue}break}}a=(c|0)!=(j|0);j=j+1|0;if(a){continue}break}j=-1;if(i){break a}c=m>>>0>1?m:1;f=f+1|0;j=0;i=0;while(1){b=(i<<2)+p|0;k=(g[b+2|0]<<1)+n|0;a=h[k>>1];e[k>>1]=a+1;k=f+(o(a)^-32)|0;d[b+3|0]=k;e[b>>1]=(a<<(k&255))-m;i=i+1|0;if((c|0)!=(i|0)){continue}break}}z=n+512|0;return j}function T(a,b,c){var d=0,e=0,g=0,h=0;e=a+4|0;d=(e+b|0)+ -1&0-b;b=f[a>>2];if(d+c>>>0<=(b+a|0)+ -4>>>0){g=f[a+4>>2];f[g+8>>2]=f[a+8>>2];f[f[a+8>>2]+4>>2]=g;if((e|0)!=(d|0)){d=d-e|0;g=f[a+ -4>>2];g=a-(g>>31^g)|0;e=d+f[g>>2]|0;f[g>>2]=e;f[(g+(e&-4)|0)+ -4>>2]=e;a=a+d|0;b=b-d|0;f[a>>2]=b}a:{if(c+24>>>0<=b>>>0){e=(a+c|0)+8|0;b=b-c|0;d=b+ -8|0;f[e>>2]=d;f[(e+(d&-4)|0)+ -4>>2]=7-b;h=e;g=f[e>>2]+ -8|0;b:{if(g>>>0<=127){d=(g>>>3|0)+ -1|0;break b}b=o(g);d=((g>>>29-b^4)-(b<<2)|0)+110|0;if(g>>>0<=4095){break b}b=((g>>>30-b^2)-(b<<1)|0)+71|0;d=b>>>0<63?b:63}b=d;d=b<<4;f[h+4>>2]=d+4832;d=d+4840|0;f[e+8>>2]=f[d>>2];f[d>>2]=e;f[f[e+8>>2]+4>>2]=e;d=f[1467];e=b&31;if(32<=(b&63)>>>0){b=1<>>32-e;h=1<>2]=b;f[((b&-4)+a|0)+ -4>>2]=b;break a}f[(a+b|0)+ -4>>2]=b}a=a+4|0}else{a=0}return a}function Z(a){var b=0,c=0,d=0,e=0,g=0,h=0;d=ma(a);if((d|0)>=1){c=16;e=a+d|0;b=e+ -16|0;f[b+12>>2]=16;f[b>>2]=16;a=f[1464];a:{b:{if(!(!a|f[a+8>>2]!=(d|0))){c=f[d+ -4>>2];h=d-(c>>31^c)|0;g=f[h+ -4>>2];f[a+8>>2]=e;c=-16;a=h-(g>>31^g)|0;if(f[(a+f[a>>2]|0)+ -4>>2]>-1){break b}c=f[a+4>>2];f[c+8>>2]=f[a+8>>2];f[f[a+8>>2]+4>>2]=c;b=b-a|0;f[a>>2]=b;break a}f[d+12>>2]=16;f[d>>2]=16;f[d+8>>2]=e;f[d+4>>2]=a;f[1464]=d}a=c+d|0;b=b-a|0;f[a>>2]=b}f[((b&-4)+a|0)+ -4>>2]=b^-1;h=a;e=f[a>>2]+ -8|0;c:{if(e>>>0<=127){b=(e>>>3|0)+ -1|0;break c}g=o(e);b=((e>>>29-g^4)-(g<<2)|0)+110|0;if(e>>>0<=4095){break c}b=((e>>>30-g^2)-(g<<1)|0)+71|0;b=b>>>0<63?b:63}c=b<<4;f[h+4>>2]=c+4832;c=c+4840|0;f[a+8>>2]=f[c>>2];f[c>>2]=a;f[f[a+8>>2]+4>>2]=a;c=f[1467];a=b&31;if(32<=(b&63)>>>0){b=1<>>32-a;a=1<0}function xa(a,b,c,d){var e=0,h=0,i=0,j=0;j=-72;a:{b:{if(!d){break b}h=g[c|0];if(!h){break a}e=h<<24>>24;i=c+1|0;c:{if((e|0)>-1){break c}if((e|0)==-1){if((d|0)<3){break b}h=(g[c+1|0]|g[c+2|0]<<8)+32512|0;i=c+3|0;break c}if((d|0)<2){break b}h=(g[c+1|0]|h<<8)+ -32768|0;i=c+2|0}f[b>>2]=h;b=i+1|0;d=c+d|0;if(b>>>0>d>>>0){break b}j=-20;i=g[i|0];e=V(a+16|0,a,i>>>6|0,35,9,b,d-b|0,2960,3104,3264,f[a+28812>>2],f[a+28956>>2],h);if(e>>>0>4294967176){break b}b=e>>>0<4294967177?b+e|0:b;e=V(a+4120|0,a+8|0,i>>>4&3,31,8,b,d-b|0,2256,2384,3792,f[a+28812>>2],f[a+28956>>2],h);if(e>>>0>4294967176){break b}b=e>>>0<4294967177?b+e|0:b;a=V(a+6176|0,a+4|0,i>>>2&3,52,9,b,d-b|0,2512,2736,4064,f[a+28812>>2],f[a+28956>>2],h);if(a>>>0>4294967176){break b}j=(a+b|0)-c|0}return j}f[b>>2]=0;return(d|0)==1?1:-72}function N(a,b,c){var e=0;a:{if((a|0)==(b|0)){break a}if((b-a|0)-c>>>0<=0-(c<<1)>>>0){return L(a,b,c)}e=(a^b)&3;b:{c:{if(a>>>0>>0){if(e){e=a;break b}if(!(a&3)){e=a;break c}e=a;while(1){if(!c){break a}d[e|0]=g[b|0];b=b+1|0;c=c+ -1|0;e=e+1|0;if(e&3){continue}break}break c}d:{if(e){break d}if(a+c&3){while(1){if(!c){break a}c=c+ -1|0;e=c+a|0;d[e|0]=g[b+c|0];if(e&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c+ -4|0;f[c+a>>2]=f[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c+ -1|0;d[c+a|0]=g[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){f[e>>2]=f[b>>2];b=b+4|0;e=e+4|0;c=c+ -4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){d[e|0]=g[b|0];e=e+1|0;b=b+1|0;c=c+ -1|0;if(c){continue}break}}return a}function O(a,b,c){var e=0,g=0,h=0,i=0;a:{if(!c){break a}e=a+c|0;d[e+ -1|0]=b;d[a|0]=b;if(c>>>0<3){break a}d[e+ -2|0]=b;d[a+1|0]=b;d[e+ -3|0]=b;d[a+2|0]=b;if(c>>>0<7){break a}d[e+ -4|0]=b;d[a+3|0]=b;if(c>>>0<9){break a}e=0-a&3;g=e+a|0;b=l(b&255,16843009);f[g>>2]=b;c=c-e&-4;e=c+g|0;f[e+ -4>>2]=b;if(c>>>0<9){break a}f[g+8>>2]=b;f[g+4>>2]=b;f[e+ -8>>2]=b;f[e+ -12>>2]=b;if(c>>>0<25){break a}f[g+24>>2]=b;f[g+20>>2]=b;f[g+16>>2]=b;f[g+12>>2]=b;f[e+ -16>>2]=b;f[e+ -20>>2]=b;f[e+ -24>>2]=b;f[e+ -28>>2]=b;i=g&4|24;c=c-i|0;if(c>>>0<32){break a}e=b;h=b;b=g+i|0;while(1){f[b+24>>2]=h;f[b+28>>2]=e;f[b+16>>2]=h;f[b+20>>2]=e;f[b+8>>2]=h;f[b+12>>2]=e;f[b>>2]=h;f[b+4>>2]=e;b=b+32|0;c=c+ -32|0;if(c>>>0>31){continue}break}}return a}function M(a){var b=0,c=0,d=0,e=0,g=0;if(a){c=a+ -4|0;e=f[c>>2];d=e;b=c;g=f[a+ -8>>2];if((g|0)<=-1){a=c+g|0;b=f[a+5>>2];f[b+8>>2]=f[a+9>>2];f[f[a+9>>2]+4>>2]=b;d=e+(g^-1)|0;b=a+1|0}a=c+e|0;c=f[a>>2];if((c|0)!=f[(a+c|0)+ -4>>2]){e=f[a+4>>2];f[e+8>>2]=f[a+8>>2];f[f[a+8>>2]+4>>2]=e;d=c+d|0}f[b>>2]=d;f[((d&-4)+b|0)+ -4>>2]=d^-1;g=b;d=f[b>>2]+ -8|0;a:{if(d>>>0<=127){a=(d>>>3|0)+ -1|0;break a}e=o(d);a=((d>>>29-e^4)-(e<<2)|0)+110|0;if(d>>>0<=4095){break a}a=((d>>>30-e^2)-(e<<1)|0)+71|0;a=a>>>0<63?a:63}c=a<<4;f[g+4>>2]=c+4832;c=c+4840|0;f[b+8>>2]=f[c>>2];f[c>>2]=b;f[f[b+8>>2]+4>>2]=b;c=f[1467];b=a&31;if(32<=(a&63)>>>0){a=1<>>32-b;b=1<>2]=h;s=-1;a:{b:{switch(c|0){case 1:if(!k){s=-72;break a}s=-20;c=g[j|0];if(c>>>0>h>>>0){break a}c=c<<2;h=f[c+m>>2];c=f[c+l>>2];d[a+11|0]=0;f[a>>2]=0;f[a+4>>2]=0;f[a+12>>2]=c;d[a+10|0]=h;e[a+8>>1]=0;f[b>>2]=a;s=1;break a;case 0:f[b>>2]=n;s=0;break a;case 3:if(!o){s=-20;break a}s=0;if(!p|(q|0)<25){break a}a=(8<>>0>>0){continue}break}break a;case 2:break b;default:break a}}s=-20;c=P(r,r+124|0,r+120|0,j,k);if(c>>>0>4294967176){break a}h=f[r+120>>2];if(h>>>0>i>>>0){break a}R(a,r,f[r+124>>2],l,m,h);f[b>>2]=a;s=c}z=r+128|0;return s}function Ga(a){var b=0;b=1047;a:{switch(a|0){case 1:return 1065;case 10:return 1081;case 12:return 1106;case 14:return 1128;case 16:return 1156;case 20:return 1200;case 22:return 1225;case 40:return 1262;case 42:return 1284;case 62:return 1310;case 64:return 1339;case 66:return 1376;case 60:return 1413;case 44:return 1466;case 46:return 1514;case 48:return 1555;case 30:return 1593;case 32:return 1617;case 34:return 1637;case 70:return 1684;case 72:return 1716;case 74:return 1738;case 100:return 1775;case 102:return 1800;case 104:return 1843;default:b=1024;break;case 0:break a}}return b}function Ca(a){var b=0,d=0,e=0,g=0,h=0,i=0;a:{b:{if(!a){break b}b=-64;if(f[a+28936>>2]){break a}g=f[a+28924>>2];d=f[a+28920>>2];b=f[a+28944>>2];c:{if(!b){break c}h=f[b+26692>>2];e=f[b+26688>>2];d:{e:{i=f[b>>2];if(i){if(!e){break e}c[e|0](h,i);c[e|0](h,b);break c}if(!e){break d}c[e|0](h,b);break c}M(i)}M(b)}f[a+28960>>2]=0;f[a+28944>>2]=0;f[a+28948>>2]=0;f:{g:{b=f[a+28968>>2];if(b){if(!d){break g}c[d|0](g,b);f[a+28968>>2]=0;c[d|0](g,a);break b}f[a+28968>>2]=0;if(!d){break f}c[d|0](g,a);break b}M(b)}M(a)}b=0}return b}function Ea(a,b,c,d,e,g){var h=0,i=0,j=0;if(!c){return-70}if(!e){return-20}i=c>>>8|0;h=l(e>>>0>>0?(e<<4>>>0)/(c>>>0)|0:15,24);j=l(i,f[h+1884>>2])+f[h+1880>>2]|0;a:{if(j+(j>>>3|0)>>>0>2]+l(f[h+1876>>2],i)>>>0){g=da(a,d,e,g,2048);if(g>>>0>4294967176){return g}h=-72;if(g>>>0>=e>>>0){break a}return ca(b,c,d+g|0,e-g|0,a)}g=Y(a,d,e,g);if(g>>>0>4294967176){return g}h=-72;if(g>>>0>=e>>>0){break a}h=ea(b,c,d+g|0,e-g|0,a)}return h}function wa(){var a=0,b=0;a=U(160168);if(!a){return 0}f[a+28924>>2]=0;f[a+28916>>2]=0;f[a+28920>>2]=0;f[a+28980>>2]=134217729;f[a+28936>>2]=0;f[a+28908>>2]=0;f[a+28948>>2]=0;f[a+160164>>2]=0;f[a+29004>>2]=0;f[a+29008>>2]=0;f[a+28988>>2]=0;f[a+28740>>2]=0;f[a+29020>>2]=0;f[a+29024>>2]=0;f[a+28940>>2]=0;f[a+28944>>2]=0;f[a+28956>>2]=0;f[a+28960>>2]=0;b=a+28964|0;f[b>>2]=0;f[b+4>>2]=0;f[a+28972>>2]=0;return a|0}function La(a,b,c){var d=0,e=0,f=0,g=0;g=c&63;f=g;d=f&31;if(32<=f>>>0){d=-1>>>d|0}else{e=-1>>>d|0;d=(1<>>d}f=d&a;d=b&e;e=g&31;if(32<=g>>>0){d=f<>>32-e|d<>>0){d=-1<>>32-c|-1<>>0){c=0;a=d>>>b|0}else{c=d>>>b|0;a=((1<>>b}a=a|g;A=c|f;return a} - - - -function sa(a){a=a|0;var b=0,d=0,e=0,g=0;f[a+29020>>2]=0;f[a+28964>>2]=0;b=f[a+28944>>2];a:{if(!b){break a}e=f[b+26692>>2];d=f[b+26688>>2];b:{c:{g=f[b>>2];if(g){if(!d){break c}c[d|0](e,g);c[d|0](e,b);break a}if(!d){break b}c[d|0](e,b);break a}M(g)}M(b)}f[a+28960>>2]=0;f[a+28944>>2]=0;f[a+28948>>2]=0;return(f[a+28908>>2]?1:5)|0}function Ia(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=l(e,f);g=c&65535;h=a&65535;i=l(g,h);f=(i>>>16|0)+l(f,g)|0;e=(f&65535)+l(e,h)|0;a=(l(b,c)+j|0)+l(a,d)+(f>>>16)+(e>>>16)|0;b=i&65535|e<<16;A=a;return b}function ma(a){var b=0,c=0;b=f[1204];c=a+3&-4;a=b+c|0;a:{if(a>>>0<=b>>>0?(c|0)>=1:0){break a}if(a>>>0>B()<<16>>>0){if(!(y(a|0)|0)){break a}}f[1204]=a;return b}f[1468]=48;return-1}function Ja(a,b){var c=0,d=0;if(a|b){d=b+ -1|0;c=a+ -1|0;if((c|0)!=-1){d=d+1|0}c=o(a^c)+32|0;a=o(b^d);a=(a|0)==32?c:a;b=63-a|0;A=0-(63>>0)|0;return b}A=0;return 64}function qa(){var a=0,b=0,c=0;while(1){b=a<<4;c=b+4832|0;f[b+4836>>2]=c;f[b+4840>>2]=c;a=a+1|0;if((a|0)!=64){continue}break}Z(48)}function fa(a){a=a|0;return Ga(a>>>0<4294967177?0:0-a|0)|0}function ga(a){a=a|0;return a>>>0>4294967176|0}function ia(a){a=a|0;a=z-a&-16;z=a;return a|0}function Ka(a,b,c,d){a=Ia(a,b,c,d);return a}function va(a){a=a|0;return Ca(a)|0}function oa(a){a=a|0;return U(a)|0}function ha(a){a=a|0;return u()|0}function ua(){return 131075}function ta(){return 131072}function na(a){a=a|0;M(a)}function la(){return z|0}function ka(a){a=a|0;z=a}function Ha(){qa()} -// EMSCRIPTEN_END_FUNCS -function B(){return buffer.byteLength/65536|0}return{"e":Ha,"f":oa,"g":na,"h":ga,"i":fa,"j":wa,"k":va,"l":ua,"m":ta,"n":sa,"o":ra,"p":la,"q":ka,"r":ia,"s":ha}}var C=new Uint8Array(wasmMemory.buffer);for(var D=new Uint8Array(123),E=25;E>=0;--E){D[48+E]=52+E;D[65+E]=E;D[97+E]=26+E}D[43]=62;D[47]=63;function F(uint8Array,offset,b64){var G,H,E=0,I=offset,J=b64.length,K=offset+(J*3>>2)-(b64[J-2]=="=")-(b64[J-1]=="=");for(;E>4;if(I>2;if(I=n){var I=b.charCodeAt(++t);n=65536+((n&1023)<<10)|I&1023}if(127>=n){if(h>=g)break;k[h++]=n}else{if(2047>=n){if(h+1>=g)break;k[h++]=192|n>>6}else{if(65535>=n){if(h+2>=g)break;k[h++]=224|n>>12}else{if(h+3>=g)break;k[h++]=240|n>>18;k[h++]=128|n>>12&63}k[h++]=128|n>>6&63}k[h++]=128|n&63}}k[h]= -0}}return f},array:function(b){var f=M(b.length);fa.set(b,f);return f}},p=L(c),r=[];c=0;if(m)for(var q=0;q=g);)++h;if(16k?g+=String.fromCharCode(k):(k-=65536,g+=String.fromCharCode(55296|k>>10,56320|k&1023))}}else g+=String.fromCharCode(k)}b=g}}else b="";else b="boolean"===e?!!b:b;return b}(d);0!==c&&ja(c);return d}var ia="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0,P,fa,O,C=a.INITIAL_MEMORY||150994944;a.wasmMemory?G=a.wasmMemory:G=new aa;G&&(P=G.buffer);C=P.byteLength;var Q=P;P=Q;a.HEAP8=fa=new Int8Array(Q);a.HEAP16=new Int16Array(Q);a.HEAP32=new Int32Array(Q); -a.HEAPU8=O=new Uint8Array(Q);a.HEAPU16=new Uint16Array(Q);a.HEAPU32=new Uint32Array(Q);a.HEAPF32=new Float32Array(Q);a.HEAPF64=new Float64Array(Q);var ka=[],la=[],ma=[],na=[];function oa(){var c=a.preRun.shift();ka.unshift(c)}Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(c,e){var d=c&65535,m=e&65535;return d*m+((c>>>16)*m+d*(e>>>16)<<16)|0});if(!Math.fround){var pa=new Float32Array(1);Math.fround=function(c){pa[0]=c;return pa[0]}} -Math.clz32||(Math.clz32=function(c){var e=32,d=c>>16;d&&(e-=16,c=d);if(d=c>>8)e-=8,c=d;if(d=c>>4)e-=4,c=d;if(d=c>>2)e-=2,c=d;return c>>1?e-2:e-c});Math.trunc||(Math.trunc=function(c){return 0>c?Math.ceil(c):Math.floor(c)});var R=0,T=null,U=null;a.preloadedImages={};a.preloadedAudios={};function J(c){if(a.onAbort)a.onAbort(c);A(c);K=!0;c=new da("abort("+c+"). Build with -s ASSERTIONS=1 for more info.");v(c);throw c;} -function V(c){return String.prototype.startsWith?c.startsWith("data:application/octet-stream;base64,"):0===c.indexOf("data:application/octet-stream;base64,")}var W="zstddec.wasm";if(!V(W)){var qa=W;W=a.locateFile?a.locateFile(qa,y):y+qa} -function ra(){try{if(B)return new Uint8Array(B);var c=W;if(V(c))try{var e=sa(c.slice(37)),d=new Uint8Array(e.length);for(c=0;c>4;l=(l&15)<<4|p>>2;var q=(p&3)<<6|r;e+=String.fromCharCode(m);64!==p&&(e+=String.fromCharCode(l));64!==r&&(e+=String.fromCharCode(q))}while(d */ 'use strict'; -define(['zstddec'], function() { - // DEV: zstddec.js has been compiled with `-s EXPORT_NAME="ZD" -s MODULARIZE=1` to avoid a clash with xzdec which uses "Module" as its exported object - // Note that we include zstddec above in requireJS definition, but we cannot change the name in the function list - // There is no longer any need to load it in index.html + +// DEV: Put your RequireJS definition in the rqDefZD array below, and any function exports in the function parenthesis of the define statement +// We need to do it this way in order to load the wasm or asm versions of zstddec conditionally. Older browsers can only use the asm version +// because they cannot interpret WebAssembly. +var rqDefZD = []; + +// Select asm or wasm conditionally +if ('WebAssembly' in self) { + console.debug('Using WASM zstandard decoder'); + rqDefZD.push('zstddec-wasm'); +} else { + console.debug('Using ASM zstandard decoder'); + rqDefZD.push('zstddec-asm'); +} + +define(rqDefZD, function() { + // DEV: zstddec.js has been compiled with `-s EXPORT_NAME="ZD" -s MODULARIZE=1` to avoid a clash with xzdec.js + // Note that we include zstddec-wasm or zstddec-asm above in requireJS definition, but we cannot change the name in the function list // For explanation of loading method below to avoid conflicts, see https://github.com/emscripten-core/emscripten/blob/master/src/settings.js /** @@ -39,7 +53,8 @@ define(['zstddec'], function() { * @type EMSInstanceExt */ var zd; - ZD().then(function(instance) { + + var instantiateDecoder = function (instance) { // Instantiate the zd object zd = instance; // Create JS API by wrapping C++ functions @@ -82,6 +97,21 @@ define(['zstddec'], function() { zd._outBuffer.ptr = mallocOrDie(3 << 2); // 3 x 32bit bytes // Reserve w/asm memory for the outBuffer data steam zd._outBuffer.dst = mallocOrDie(zd._outBuffer.size); + }; + + ZD().then(instantiateDecoder) + .catch(function (err) { + console.debug(err); + if (/CompileError.+?WASM/i.test(err.message)) { + console.log("WASM failed to load, falling back to ASM...", err); + ZD = null; + require(['zstddec-asm'], function() { + ZD().then(instantiateDecoder) + .catch(function (err) { + console.error('Could not instantiate any decoder!', err); + }); + }); + } }); /** @@ -94,7 +124,7 @@ define(['zstddec'], function() { * Is the decompressor already working? * @type Boolean */ - appstate.zdBusy = false; + var busy = false; /** * @typedef Decompressor @@ -113,6 +143,7 @@ define(['zstddec'], function() { function Decompressor(reader) { this._reader = reader; } + /** * Set up the decompression stream, and initiate a read loop to decompress from the beginning of the cluster * until we reach in the decompressed byte stream @@ -121,7 +152,7 @@ define(['zstddec'], function() { * @returns {Promise} Promise for an ArrayBuffer with decoded data */ Decompressor.prototype.readSlice = function(offset, length) { - appstate.zdBusy = true; + busy = true; this._inStreamPos = 0; this._inStreamChunkedPos = 0; this._outStreamPos = 0; @@ -139,7 +170,7 @@ define(['zstddec'], function() { // Should you need to free the decoder stream handle, use command below, but be sure to create a new stream control object // before attempting further decompression // zd._ZSTD_freeDStream(zd._decHandle); - appstate.zdBusy = false; + busy = false; return data; }); }; @@ -152,7 +183,8 @@ define(['zstddec'], function() { * @returns {Promise} A Promise for the readSlice() function */ Decompressor.prototype.readSliceSingleThread = function (offset, length) { - if (zd && !appstate.zdBusy) { + // Tests whether the decompressor is ready (initiated) and not busy + if (zd && !busy) { return this.readSlice(offset, length); } else { // The decompressor is already in progress. @@ -260,4 +292,4 @@ define(['zstddec'], function() { return { Decompressor: Decompressor }; -}); +}); \ No newline at end of file